Cuando hacemos uso de conexiones y protocolos seguros como HTTPS, pensamos que nuestros datos están viajando de forma segura, lejos del alcance y control de piratas informáticos y usuarios no autorizados. Sin embargo, no siempre es así. Varios estudios han demostrado cómo la mayor parte de las conexiones están utilizando algoritmos de cifrado inseguros como MD5 y SHA1, pese a que en múltiples ocasiones se ha demostrado su debilidad y se ha recomendado que los administradores de los servidores actualicen sus servidores a otros protocolos más seguros y blindados.
MD5, al igual que el algoritmo SHA1, aún son muy utilizados en la capa de transporte de Internet. Siguiendo con los planes de demostrar su debilidad e incitar a los responsables de los servidores a actualizar sus protocolos seguros, un grupo de investigadores de seguridad han publicado un informe donde se prueban una serie de ataques contra estos algoritmos y la facilidad para romper el cifrado de las conexiones seguras, no solo para los protocolos HTTPS, sino también para otros protocolos como Internet Protocol Security y Secure Shell. Os recomendamos leer todo sobre cifrado asimétrico en nuestro tutorial.
Estos ataques han sido denominados con el nombre SLOTH, acrónimo de «security losses from obsolete and truncated transcript hashes» o pérdidas de seguridad de los hashes obsoletos y de transcripción truncados» en español. Esta recopilación de ataques se basa, entre otros proyectos, en las vulnerabilidades POODLE, FREAK y Logjam que han demostrado, anteriormente, la debilidad de los algoritmos.
SLOTH – Suplantando el contenido de paquetes con el mismo HASH MD5
Uno de los ataques SLOTH demuestra la facilidad con la que se puede romper la seguridad de los sistemas de autenticación de un cliente que utiliza conexiones TLS. Aunque no se trata de un sistema muy extendido, algunos bancos y organizaciones sí que hacen uso de este tipo de autenticación para comprobar que el usuario está conectado a la VPN o web/plataforma de una compañía, siendo el usuario quien facilita el certificado en lugar de ser el propio servidor.
De esta manera, cuando el usuario final y las firmas RSA-MD5 se autentican en el servidor, gracias a los ataques SLOTH, un atacante que haya tenido control sobre el resto de paquetes de la comunicación puede suplantar fácilmente la identidad del usuario final enviando paquetes modificados de una forma concreta tanto al servidor como al usuario. Para romper la seguridad de MD5 con esta técnica, el atacante necesita realizar algunos cálculos de hash que, con una estación de trabajo empresarial (48 núcleos) tardarían poco más de una hora, encontrando una colisión (mismo hash para mensajes diferentes) al completar los cálculos de 2^64 (conocido como «la paradoja del cumpleaños»).
Esto no queda aquí. En ocasiones, si el atacante solo busca una colisión de hash puede hallarla al calcular solo 2^15 valores, e incluso hallando 2^39 es posible que encuentre coincidencias que le permitan al atacante modificar el contenido de los mensajes sin variar el hash del mensaje original.
¿Hasta dónde llega la vulnerabilidad de MD5?
Los investigadores responsables de SLOTH llevan algún tiempo trabajando con diferentes desarrolladores de software que hacía uso de estos algoritmos vulnerables para poder solucionarlo. Entre otras, algunas de las aplicaciones, así como los protocolos que han sido denominados como vulnerables son:
- TLS, en sus versiones 1.1, 1.2, y 1.3
- IKE (Internet Key Exchange) 1 y 2
- SSH 2
- OpenSSL
- NSS (Network Security Services)
- Oracle Java
- BouncyCastle Java (APis criptográficas de Java)
- PolarSSL / mbedTLS.
Los investigadores de seguridad también aseguran que al menos el 32% de todos los servidores conectados a Internet utilizan conexiones TLS vulnerables compatibles con las formas RSA-MD5. Debemos recordar que las firmas basadas en MD5 se introdujeron en 2008 con la actualización TLS 1.2. Si esto no se hubiera llegado a llevar a cabo, a día de hoy MD5 podría ser uno de los algoritmos más seguros, siendo inviables estos ataques. Sin embargo, SLOTH es una muestra más de la inseguridad con la que nos conectamos a Internet, y una muestra de la necesidad de implementar conexiones seguras en nuestros servidores.
Gracias a SLOTH, TLS 1.3 acabará con las firmas MD5 y otros algoritmos inseguros
Aunque por lo general solucionar una vulnerabilidad a tan gran escala es bastante complicado, los investigadores de seguridad ya se encuentran trabajando en ello. Con el desarrollo y el despliegue de las conexiones TLS 1.3 se pretende deshabilitar por defecto el uso de todas las formas MD5, aunque eso signifique reducir drásticamente la compatibilidad. Sin embargo, para evitar que vuelva a ocurrir lo mismo que ha ocurrido en ocasiones anteriores, es responsabilidad final de los responsables de seguridad asegurarse de que, efectivamente, las firmas MD5 están deshabilitadas en los servidores.
Más información sobre los ataques SLOTH y las debilidades MD5 en el siguiente enlace.
¿Qué opinas de los ataques contra MD5? ¿Crees que es necesario revisar y actualizar los algoritmos y sistemas de autenticación utilizados actualmente?