Я использую 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
(не совсем уверен, что это делает).
Какой разумный список наборов шифров для ограничения сокетов?