El ataque DROWN ( Decrypting RSA with Obsolete and Weakened eNcryption ) es una vulnerabilidad de seguridad entre protocolos que ataca a servidores que admiten conjuntos de protocolos modernos SSLv3/ TLS , aprovechando su compatibilidad con el protocolo SSLv2 , obsoleto e inseguro, para lanzar un ataque contra conexiones que utilizan protocolos actualizados que, de otro modo, serían seguras. [ 1 ] [ 2 ] DROWN puede afectar a todo tipo de servidores que ofrecen servicios cifrados con SSLv3/TLS pero que también admiten SSLv2, siempre que compartan las mismas credenciales de clave pública entre ambos protocolos. [ 3 ] Además, si se utiliza el mismo certificado de clave pública en un servidor diferente que admite SSLv2, el servidor TLS también es vulnerable debido a que el servidor SSLv2 filtra información de clave que puede utilizarse contra el servidor TLS. [ 3 ]
Los detalles completos de DROWN se anunciaron en marzo de 2016, junto con un parche que desactiva SSLv2 en OpenSSL; a la vulnerabilidad se le asignó el identificador CVE - 2016-0800 . [ 4 ] El parche por sí solo no será suficiente para mitigar el ataque si el certificado se encuentra en otro host SSLv2. La única contramedida viable es desactivar SSLv2 en todos los servidores.
Los investigadores estimaron que el 33% de todos los sitios HTTPS se vieron afectados por esta vulnerabilidad a partir del 1 de marzo de 2016. [ 5 ]
Detalles
DROWN es un acrónimo de "Decrypting RSA with Obsolete and Weakened eNcryption" (Descifrado RSA con cifrado obsoleto y debilitado). [ 6 ] Explota una vulnerabilidad en la combinación de protocolos utilizados y la configuración del servidor, en lugar de un error de implementación específico. Según quienes lo descubrieron, la vulnerabilidad no se puede solucionar modificando el software del cliente, como los navegadores web. [ 3 ]
La vulnerabilidad incluye un ataque de texto cifrado elegido utilizando un servidor SSLv2 como oráculo de Bleichenbacher . SSLv2 funcionaba cifrando directamente el secreto maestro mediante RSA , y los conjuntos de cifrado de exportación de 40 bits cifraban solo 40 bits del secreto maestro y revelaban los 88 bits restantes como texto plano. El texto cifrado RSA de 48 bytes, cifrado con SSLv3/TLS, se "recorta" a partes de 40 bits y se utiliza en el mensaje ClientMasterKey de SSLv2, que el servidor interpreta como la parte de 40 bits del secreto maestro de SSLv2 (los otros 88 bits pueden ser cualquier valor enviado por el cliente como texto plano). Mediante un ataque de fuerza bruta al cifrado de 40 bits, el mensaje ServerVerify puede utilizarse como oráculo. El ataque de prueba de concepto demostró cómo tanto las configuraciones multi-GPU como la computación en la nube comercial podían realizar parte de los cálculos necesarios para descifrar el código, con un coste aproximado de 18 000 dólares para la configuración de GPU y un coste de 400 dólares por ataque para la nube. Un ataque exitoso proporcionará la clave de sesión para un handshake TLS capturado.
Los investigadores, que describieron el ataque anterior como un ataque DROWN general, también encontraron una vulnerabilidad específica en la implementación de SSLv2 de OpenSSL que permitía lo que denominaron un ataque DROWN especial . Esto redujo drásticamente el esfuerzo necesario para romper el cifrado, posibilitando ataques de intermediario en tiempo real que requerían recursos informáticos modestos. Hasta 2015, la implementación de SSLv2 de OpenSSL no verificaba la longitud correcta de las claves en texto plano y cifrado, permitiendo, por ejemplo, que solo se cifraran 8 bits del secreto maestro. Hasta 2015, OpenSSL también sobrescribía los bytes incorrectos en el secreto maestro de SSLv2 durante su intento de aplicar la contramedida de Bleichenbacher. Hasta 2016, OpenSSL también negociaba sin problemas conjuntos de cifrado SSLv2 deshabilitados. A diferencia de SSLv3 y versiones posteriores, en SSLv2 el cliente debía elegir entre una lista de conjuntos de cifrado ofrecidos por el servidor, pero OpenSSL permitía el uso de conjuntos de cifrado no incluidos en la lista.
Los primeros en reportar el error fueron los investigadores de seguridad Nimrod Aviram y Sebastian Schinzel. [ 7 ]
Mitigación
Para protegerse contra DROWN, los operadores de servidores deben asegurarse de que sus claves privadas no se utilicen en ningún lugar con software de servidor que permita conexiones SSLv2. Esto incluye servidores web, servidores SMTP, servidores IMAP y POP, y cualquier otro software que admita SSL/TLS. [ 8 ]
El grupo OpenSSL ha publicado un aviso de seguridad y un conjunto de parches destinados a mitigar la vulnerabilidad eliminando la compatibilidad con protocolos y cifrados obsoletos. [ 9 ] Sin embargo, si el certificado del servidor se utiliza en otros servidores que admiten SSLv2, sigue siendo vulnerable, al igual que los servidores parcheados.
Numerosas fuentes han recomendado que los operadores del sitio corrijan la vulnerabilidad lo antes posible.
Referencias
- ↑ Leyden, John (1 de marzo de 2016). "Un tercio de todos los sitios web HTTPS son vulnerables al ataque DROWN" . The Register . Consultado el 2 de marzo de 2016 .
- ↑ Goodin, Dan (1 de marzo de 2016). "Más de 11 millones de sitios web HTTPS en peligro por un nuevo ataque de descifrado" . Ars Technica . Consultado el 2 de marzo de 2016 .
- ^ Nimrod Aviram, Sebastian Schinzel, Juraj Somorovsky, Nadia Heninger , Maik Dankel, Jens Steube, Luke Valenta, David Adrian, J. Alex Halderman , Viktor Dukhovni , Emilia Käsper, Shaanan Cohney, Susanne Engels, Christof Paar y Yuval Shavitt. DROWN: Rompiendo TLS usando SSLv2 , 2016
- ↑ "Resumen de vulnerabilidades del Sistema Nacional de Concienciación Cibernética para CVE-2016-0800" . web.nvd.nist.gov . Consultado el 2 de marzo de 2016 .
- ↑ "Ataque DROWN" . drownattack.com . Consultado el 24 de marzo de 2016 .
- ↑ "Nuevo ataque de descifrado TLS afecta a uno de cada tres servidores debido a la compatibilidad con SSLv2 heredado" . PCWorld . Consultado el 2 de marzo de 2016 .
- ↑ "DROWN - Ataque entre protocolos en TLS usando SSLv2 - CVE-2016-0800 - Portal de clientes de Red Hat" . access.redhat.com . Consultado el 2 de marzo de 2016 .
- ↑ "Ataque DROWN" . 1 de marzo de 2016.
- ↑ "Ataque entre protocolos a TLS usando SSLv2 (DROWN) (CVE-2016-0800)" . OpenSSL. 1 de marzo de 2016.
Enlaces externos
- Sitio web oficial
- Documento técnico
- Lista de avisos de seguridad archivados el 19/07/2018 en Wayback Machine.
- ataques criptográficos
- 2016 en informática
- Seguridad de la capa de transporte
- vulnerabilidades de seguridad informática