TLSv1 no funciona sin habilitar sslv2

TLSv1 no funciona sin habilitar sslv2

Estoy usando la versión Apache 2.2.4. Ya sé que esta versión solo admite SSLv2, SSLv3 y TLSv1.0, pero sucede algo extraño cuando la uso:

Cuando SSLv2 está deshabilitado, el navegador web (Internet Explorer en mi caso) usa SSLv3

SSL 3.0, 3DES con cifrado de 168 bits (Alto); RSA con intercambio de 2048 bits.

Cuando habilito SSLv2, el navegador web usa TLSv1.0:

TLS 1.0, AES con cifrado de 256 bits (Alto); RSA con intercambio de 2048 bits

Y finalmente, cuando desactivo ambos protocolos (SSLv2 y v3), ¡la página web no se carga en absoluto!

Usé esta configuración para Apache:

SSLProtocol all
SSLCipherSuite all

¿Podrías explicarme esto? ¿Cómo se puede utilizar TLSv1.0 sin habilitar SSLv2?

Respuesta1

Este comportamiento se debe a la especificación original de TLS v1 RFC (RFC 2246, sección "E. Compatibilidad con versiones anteriores de SSL").

Básicamente, este RFC establece que la mayoría de los servidores no utilizarán diferentes puertos de escucha para diferentes versiones de SSL/TLS. Por lo tanto, para garantizar la compatibilidad con versiones anteriores del software, se recomienda iniciar primero la conexión utilizando un mensaje de saludo SSL "antiguo", luego actualizar la conexión a TLS cuando sea compatible con ambos lados y nunca intentar establecer una conexión directamente utilizando TLS ("TLS 1.0 Los clientes que admiten servidores SSL Versión 2.0 deben enviar mensajes de saludo al cliente SSL Versión 2.0").

Las versiones anteriores de Java (JRE5) solían tener este comportamiento, pero se mejoró con versiones más nuevas que ahora manejan el protocolo de enlace TLS directamente. Tal vez debería verificar la versión de su navegador y el nivel de parche y verificar si este comportamiento persiste después de deshabilitar SSLv2 también en el lado del navegador.

información relacionada