En realidad, el artículo no dice que el cliente SmartScreen use SSLv2; solo dice que el servidor a los contactos de SmartScreen estaría encantado de aceptar conexiones entrantes utilizando el protocolo SSLv2. Sería sorprendente si SmartScreen utilizara SSLv2: lo más plausible es que Microsoft reutilizara su propio código existente para un cliente SSL, y ese código hace SSLv3 + de forma predeterminada. El uso de SSLv2 implicaría un esfuerzo adicional sin ganancia.
Además, la mayoría de lo que se dice sobre la seguridad de SSLv2 (en este artículo o en cualquier otro lugar) está cubierto por una capa pesada de FUD . SSLv2 tiene problemas , suficientes para justificar que no se use (especialmente porque SSLv3 y TLS están disponibles), pero no tanto como lo que generalmente se sugiere. Consulte, por ejemplo, esta página ; se afirma que:
- integridad del mensaje comprometida. La autenticación de mensajes SSLv2 utiliza la función MD5 y es insegura.
- ataque del hombre en el medio. No hay protección del apretón de manos en SSLv2, lo que permite un ataque de hombre en el medio.
- ataque de truncamiento. SSLv2 se basa en TCP FIN para cerrar la sesión, por lo que el atacante puede falsificar un TCP FIN y el interlocutor no puede saber si fue un fin legítimo de los datos o no.
- Integridad de mensaje débil para cifrados de exportación. Las claves criptográficas en SSLv2 se usan tanto para la autenticación de mensajes como para el cifrado, por lo que si se negocian esquemas de encriptación débiles (por ejemplo, claves de 40 bits), el código de autenticación de mensajes usa la misma clave débil, que no es necesaria.
El primer punto es francamente FUD. Es una reacción instintiva: "¡MD5? ¡MALO MALO MALO!". No está comprobado. No estoy no diciendo que MD5 es sólido como una roca; pero afirmo que la verificación de integridad en SSLv2 no es tan fácil de superar.
El segundo punto es, en el mejor de los casos, confuso y engañoso. Los "ataques de intermediario" a los que se alude son los siguientes: en SSL (v2, v3 + ...), tanto el cliente como el servidor pueden admitir varios conjuntos de cifrado; el cliente envía la lista de suites que admite y el servidor elige una. Con SSLv2, un atacante que está en posición de hacer un MitM puede alterar la lista enviada por el cliente, para obligar al cliente y al servidor a usar un conjunto de cifrado específico (dentro del conjunto de conjuntos que ambos admiten , por supuesto). La alteración no se detecta más adelante (mientras que, en SSLv3 +, se detectaría al final del protocolo de enlace). Luego, según el razonamiento, SSLv2 es débil porque el atacante puede obligar al cliente y al servidor a usar un "conjunto de cifrado débil" (por ejemplo, uno con claves de 40 bits). ¿Pero puede? De hecho, el atacante puede forzar el uso de una suite de cifrado que tanto el cliente como el servidor ya estaban listos para aceptar , y esa es la debilidad. Lo que rompe el ataque es la actualización optimista a conjuntos de cifrado más fuertes cuando están disponibles; pero la debilidad real es cuando el cliente y los servidores aceptan usar claves de 40 bits.
El cuarto punto es más de lo mismo: dice que si una tecla es débil y se usa para dos usos, al romperla se puede atacar a los dos. Pero la verdadera debilidad aquí es usar una tecla débil.
Sólo el tercer punto es realmente cierto: un atacante puede forzar el cierre de una conexión, y las máquinas no pueden saber si el interlocutor fue el propósito del cierre. Este es un problema grave con HTTP / 1.0 sin el atributo Content-Length pero no con otros protocolos, incluido HTTP como se usa en la actualidad.
Resumen: SSLv2 está "roto", pero no tanto como se rumorea. No, un atacante no puede descifrar instantáneamente una conexión SSLv2. Y personalmente, considero altamente improbable que el cliente SmartScreen use SSLv2; tendría demasiado poco sentido.
(Ninguno de los anteriores dice nada acerca de los problemas de privacidad con SmartScreen).