¿Por qué Windows 98 / IE5 no puede conectarse a sitios HTTPS en 2015?

34

Recientemente encontré un CD de instalación antiguo para Windows 98 Segunda edición, y buscando un poco de nostalgia, lo instalé dentro de VirtualBox. Win98SE se entregó con IE 5.0, y navegar por la web con ese navegador fue una experiencia tan difícil como podría imaginar.

Me di cuenta de que, sin importar lo que intentara, no podía hacer que IE se conectara a ningún sitio a cualquier HTTPS. Y me hizo preguntarme por qué era eso. ¿Todos los certificados de CA de confianza con los que se envió expiraron? ¿Se eliminaron todos los algoritmos TLS / SSL predeterminados en los últimos 16 años? ¿Necesitaba el IE High Encryption Pack (wow, hace mucho que no pienso en eso)?

Tengo curiosidad por si esto afectaría a otros sistemas operativos de esa era (¡Mandrake 6!) o si el problema central es de alguna manera específico de Windows.

    
pregunta smitelli 04.08.2015 - 16:30
fuente

5 respuestas

37

El problema principal es probablemente que un IE de esa era quisiera admitir SSL 2.0 y, por lo tanto, envía su mensaje inicial ( ClientHello ) en formato SSL 2.0, que no tiene nada en común con el ClientHello de versiones posteriores del protocolo (SSL 3.0 y todas las versiones TLS). Eso permitió que el navegador se conectara a un servidor que conocía SSL 2.0 pero nada más, mientras que ClientHello todavía documenta que el cliente está listo para usar algo más moderno.

Sin embargo, los servidores modernos ya no admiten el formato SSL-2.0 ClientHello . Ha habido un período transitorio durante el cual todavía aceptaron ese formato (aunque no permitirían que la conexión realmente usara SSL 2.0), pero ahora abandonaron el soporte por completo. En particular, el formato SSL-2.0 ClientHello no tiene espacio para extensiones como SNI, lo que explica la necesidad de eliminar dicho soporte.

Otras cuestiones incluyen las siguientes:

  • IE 6.0 admite TLS 1.0 pero está desactivado de forma predeterminada. No sé si IE 5 habría soportado TLS 1.0, pero en cualquier caso no se habría habilitado de forma predeterminada. Sin embargo, muchos servidores modernos rechazan también SSL 3.0 (debido a POODLE, como lo señaló @etherealflux).

  • El código del cliente no sabrá nada de AES, ya que data de antes de la estandarización de ese algoritmo. Intentará utilizar conjuntos de cifrado basados en RC2, 3DES, posiblemente RC4 (esto requeriría cierta verificación porque RC4 era propiedad de Nemesis, el Netscape de IE, por lo que posiblemente IE 5 no lo usaría). Estos algoritmos no son muy populares entre los administradores de servidores en la actualidad ...

  • Los sitios modernos utilizan claves criptográficas bastante grandes. Típicamente, RSA con claves de al menos 2048 bits. Un antiguo Windows + IE podría ser más limitado en el tamaño de las claves RSA que puede manejar. En particular, un Windows + IE que cumpla con las normas de exportación de EE. UU. Sobre criptografía de la era anterior a 2000 podría estar limitado a un tamaño máximo de 1024 bits para claves RSA. La misma combinación también se negaría a usar 3DES o cualquier cosa con una clave simétrica superior a 56 bits, mientras que ningún servidor decente de 2015 aceptaría nada menos que 128 bits.

Para los sistemas basados en Linux, no hay implementación central de SSL (a menudo hay una biblioteca OpenSSL, pero no es algo tan generalizado como SChannel y CryptoAPI de Microsoft). Así que cada navegador tendrá sus propias reglas. Antes del año 2000, esto habría significado a Nestcape Navigator (el que se salta cuando se ve algo en UTF-8 ...). ¿Tal vez algún navegador temprano basado en KDE podría hacer algo de SSL? En ese caso, probablemente usaría OpenSSL y que aún debería poder conectarse a algunos servidores, con la configuración correcta (en particular si se evita el formato SSL-2.0 para el ClientHello ).

    
respondido por el Thomas Pornin 04.08.2015 - 17:47
fuente
6

Puede haber más razones, solo enumeraré algunas que se me ocurrieron:

  1. Al establecer la conexión SSL / TLS (el protocolo de enlace), el cliente envía una lista de conjuntos de cifrado al servidor. La responsabilidad del servidor es seleccionar el que se utilizará. En caso de que no haya un cifrado adecuado, la conexión se termina.
  2. SNI - Extensión de indicación de nombre de servidor. AFAIK esto no es compatible con IE6 y versiones anteriores en XP.

Para ser honesto, ni siquiera estoy seguro de si IE5 es compatible con TLS.

    
respondido por el bayotop 04.08.2015 - 16:36
fuente
2

Lo más probable es que estés en lo correcto. La mayoría de los sitios web ahora prohíben el uso de protocolos SSL obsoletos. Recuerde que SSL v3.0 fue parte del ataque POODLE , entre otros ¡cosas! Si su navegador solo admite los protocolos deshabilitados, no llegará muy lejos.

Wikipedia tiene un gran cuadro en su página sobre SSL / TLS , que muestra qué protocolos son compatibles de forma predeterminada en varios navegadores versiones Lo más importante es que Internet Exploder 6 solo admite hasta TLS 1.0, y está deshabilitado de forma predeterminada. Esto significa que su navegador probablemente está intentando utilizar SSL v3.0.

Debería poder verificar el estado de sus certificados de confianza. Después de tantos años, espero que hayan caducado. Sin embargo, ¡el sistema operativo es tan antiguo que las búsquedas de Google no ofrecen muchos consejos sobre cómo hacerlo!

    
respondido por el etherealflux 04.08.2015 - 16:38
fuente
2

La causa probable podría ser que no haya muchos servidores compatibles con las condiciones de cifrado que IE5 tiene la capacidad de usar. En el momento del lanzamiento de su IE, solo tenía soporte SSL y no TLS.

SSL 1.0 nunca fue lanzado públicamente. SSL 2.0 y 3.0 han quedado en desuso. A pesar de que los servidores en libertad podrían admitirlos, es probable que no se encuentren en los servidores de los sitios web más populares.

El estándar TLS 1.0 no se definió hasta 1999. Y Microsoft ha sido notoria durante mucho tiempo por no cumplir con los estándares de manera oportuna. Probablemente tenga IE 5.0 o 5.01 (edición de corrección de errores) empaquetado en su sistema operativo que carece de cifrado. La versión con cifrado fue 5.5. No está empaquetado con su versión del sistema operativo pero es compatible. Sin embargo, no serás libre y claro aún. Solo es compatible con TLS 1.0 de 128 bits, que IE desactiva de forma predeterminada.

Además, el certificado EV, el certificado SHA-2 y los certificados ECDSA tampoco son compatibles. Encontrar un servidor en la naturaleza que tenga un certificado de 128 bits con TLS 1.0 y un juego de cifrado de la era IE5 será extremadamente raro.

    
respondido por el Bacon Brad 04.08.2015 - 18:14
fuente
2

Instala Opera compatible con Windows 98, Estoy usando 10.10.

Accede a la barra de menú.

Herramientas - > Perferencias = > Pestaña avanzada

Seleccione Seguridad y luego el botón Protocolos de seguridad ...

La ventana emergente tiene una casilla de verificación para Habilitar SSL 3.

¡Éxito! El sitio de Google que usa HTTPS funciona de nuevo!

    
respondido por el Leslie 16.08.2015 - 11:42
fuente

Lea otras preguntas en las etiquetas