¿Qué Cipher Suites habilitar para SSL Socket?
Estoy usando el SSLSocket de Java para asegurar las comunicaciones entre un cliente y un programa de servidor. El programa del servidor también sirve las solicitudes HTTPS de los navegadores web.
De acuerdo a "Criptografía inicial con Java", página 371, siempre debes llamarsetEnabledCipherSuites
en tuSSLSocket
/ SSLServerSocket
para asegurarse de que la suite de cifrado que termina siendo negociada sea lo suficientemente fuerte para sus propósitos.
Dicho esto, una llamada a miSSLSocketFactory
esgetDefaultCipherSuites
método produce algunos180 opciones Estas opciones van desdeTLS_RSA_WITH_AES_256_CBC_SHA
(que creo que es bastante seguro) aSSL_RSA_WITH_RC4_128_MD5
(no estoy seguro si eso es seguro, dado el estado actual de MD5) paraSSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA
(No estoy completamente seguro de lo que hace eso).
¿Qué es una lista sensata de suites de cifrado para restringir los sockets?
Tenga en cuenta que el cliente y el servidor tienen acceso a laCastillo inflable proveedor de servicios, y que pueden tener o no archivos de políticas criptográficas ilimitados instalados.