Я использую Java SSLSocket для защиты связи между клиентом и серверной программой. Программа сервера также обслуживает HTTPS-запросы из веб-браузеров.
В соответствии с "" Начало криптографии с Java", страница 371, вы всегда должны называть setEnabledCipherSuites на SSLSocket/SSLServerSocket для обеспечения того, чтобы набор шифров, который заканчивается обсуждением, достаточно силен для ваших целей.
При этом вызов моего метода SSLSocketFactory getDefaultCipherSuites дает 180 опций. Эти параметры варьируются от TLS_RSA_WITH_AES_256_CBC_SHA (который, по моему мнению, достаточно безопасен) до SSL_RSA_WITH_RC4_128_MD5 (не так уверен, если это безопасно, учитывая текущий статус MD5) до SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA (не совсем уверен, что это делает).
Какой разумный список наборов шифров для ограничения сокетов?