¿Por qué no funciona el protocolo TLS sin los conjuntos de cifrado SSLv3?

32

Mientras inhabilito SSLv3 de nuestros archivos ssl.conf para superar la vulnerabilidad de Poodle, también deshabilité los cifrados SSLv3 usando !SSLv3 . Con los cifrados desactivados, no pudimos acceder al sitio web a través de Firefox e IE. El siguiente fue el mensaje de error de Firefox:

An error occurred during a connection to xxxx.example.com.
Cannot communicate securely with peer: no common encryption algorithm(s).
(Error code: ssl_error_no_cypher_overlap)

Así que volvimos y habilitamos el conjunto de cifrado SSLv3 y todo comenzó a funcionar bien. En este momento, el protocolo SSLv3 está deshabilitado, pero los cifrados SSLv3 están habilitados.

  • ¿Estoy asumiendo correctamente que obtuvimos el error con uno de los navegadores porque los cifrados TLS no estaban disponibles en el navegador?
  • ¿Es posible que el protocolo utilizado sea TLSv3, pero los cifrados son de SSLv3?

SSLProtocol all -SSLv2 -SSLv3
#SSLProtocol -all +SSLv3
#   SSL Cipher Suite:
# List the ciphers that the client is permitted to negotiate.
# See the mod_ssl documentation for a complete list.
SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:!MEDIUM:!LOW

Podemos actualizar los navegadores en nuestra oficina, pero no podemos hacer eso en las máquinas de nuestros clientes. ¿Está deshabilitado el protocolo SSLv3, pero con los cifrados habilitados una configuración recomendada? En otras palabras, ¿estamos bien con la conexión a través de TLS con cifrados SSLv3?

    
pregunta Sree 16.10.2014 - 06:11
fuente

3 respuestas

31

Supongo que de su configuración ssl.conf está utilizando el módulo mod_ssl del servidor web Apache. Este módulo se basa en OpenSSL para proporcionar el motor de criptografía.

De la documentación en OpenSSL , indica:

  

Versión del protocolo: SSLv2, SSLv3, TLSv1.2. Los cifrados TLSv1.0 son   marcado con SSLv3 . TLSv1.1 no ha agregado nuevos cifrados

Puedes confirmar lo anterior ejecutando el siguiente comando:

$ openssl ciphers -v 'TLSv1' | sort
ADH-AES128-SHA          SSLv3 Kx=DH       Au=None Enc=AES(128)  Mac=SHA1
ADH-AES256-SHA          SSLv3 Kx=DH       Au=None Enc=AES(256)  Mac=SHA1
ADH-CAMELLIA128-SHA     SSLv3 Kx=DH       Au=None Enc=Camellia(128) Mac=SHA1
ADH-CAMELLIA256-SHA     SSLv3 Kx=DH       Au=None Enc=Camellia(256) Mac=SHA1
...

Esto significa que si su archivo de configuración excluye el juego de cifrado SSLv3, ¡también está eliminando efectivamente el soporte para TLSv1.0! Eso lo deja con el juego de cifrado TLSv1.2 solo porque el soporte para SSLv2 también se eliminó:

$ openssl ciphers -v 'ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:!MEDIUM:!LOW:!SSLv3' | sort
AES128-GCM-SHA256       TLSv1.2 Kx=RSA      Au=RSA  Enc=AESGCM(128) Mac=AEAD
AES128-SHA256           TLSv1.2 Kx=RSA      Au=RSA  Enc=AES(128)  Mac=SHA256
AES256-GCM-SHA384       TLSv1.2 Kx=RSA      Au=RSA  Enc=AESGCM(256) Mac=AEAD
AES256-SHA256           TLSv1.2 Kx=RSA      Au=RSA  Enc=AES(256)  Mac=SHA256
...

Por lo anterior, no es difícil ver por qué no debería NO eliminar SSLv3 del conjunto de cifrado. Deshabilitar el protocolo SSLv3 es más que suficiente para proteger a sus clientes de la vulnerabilidad de POODLE.

El mensaje de error que está experimentando es probable porque está usando navegadores más antiguos como Firefox < 27.0 o Internet Explorer < 11.0 ya que estas versiones no son compatibles con TLSv1.2 de forma predeterminada.

    
respondido por el Question Overflow 16.10.2014 - 08:50
fuente
7

POODLE es un problema de protocolo, no un problema de cifrado. (De hecho, funciona tanto con AES como con DES, por lo que puede ver que es independiente del cifrado utilizado). Deshabilitar los cifrados SSLv3 no es necesario (y, como ha descubierto, probablemente no sea deseable). Deshabilitar solo el protocolo es suficiente para proteger contra POODLE.

    
respondido por el David 16.10.2014 - 06:17
fuente
4

Escribí un artículo sobre cómo obtener un A + en la prueba SSL de Qualys y contiene detalles de configuraciones SSL favorables:

ssl_ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS;

Es una configuración de NginX, por lo que es posible que deba cambiar el formato ligeramente, ya que parece que está utilizando Apache. Esto se puede implementar como un conjunto más amplio de cambios de configuración para fortalecer su configuración SSL.

fuente: enlace

    
respondido por el Scott Helme 16.10.2014 - 09:06
fuente

Lea otras preguntas en las etiquetas