Quais conjuntos de codificação para habilitar para SSL Socket?
Estou usando o SSLSocket do Java para proteger as comunicações entre um cliente e um programa do servidor. O programa do servidor também atende a solicitações HTTPS de navegadores da web.
De acordo com "Criptografia inicial com Java", página 371, você deve sempre chamarsetEnabledCipherSuites
Nas suasSSLSocket
/ SSLServerSocket
para garantir que o pacote de criptografia que acaba sendo negociado seja suficientemente forte para seus propósitos.
Dito isto, uma chamada para o meuSSLSocketFactory
'sgetDefaultCipherSuites
método produz alguns180 opções. Essas opções variam deTLS_RSA_WITH_AES_256_CBC_SHA
(o que eu acho que é bastante seguro) paraSSL_RSA_WITH_RC4_128_MD5
(não tenho certeza se isso é seguro, dado o status atual do MD5) paraSSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA
(não totalmente certo o que isso faz).
O que é uma lista sensata de conjuntos de codificação para restringir os soquetes?
Observe que o cliente e o servidor têm acesso aoCastelo inflável provedor de serviços, e que eles podem ou não ter arquivos de política criptográfica ilimitados instalados.