Desde Linux Darkcrizt  

Marvin Attack, un ataque para descifrar RSA basado en el tiempo

Marvin Attack

Marvin es el regreso de una vulnerabilidad de 25 años que permite realizar operaciones de firma y descifrado RSA

Durante la ESORICS 2023 (por sus siglas en inglés Simposio europeo sobre investigación en seguridad informática) que se celebro del 25 al 29 de septiembre en Países Bajos, un investigador de seguridad que trabaja para Red Hat, presentó «Marvin Attack», una técnica de ataque que permite determinar los datos originales midiendo los retrasos durante las operaciones de descifrado basándose en el algoritmo RSA.

Marvin Attack, es una variación del método Bleichenbacher, propuesto en 1998, y continúa el desarrollo de los ataques ROBOT y New CAT publicados en 2017 y 2019.

El ataque Marvin es el regreso de una vulnerabilidad de 25 años que permite realizar operaciones de firma y descifrado RSA como un atacante con la capacidad de observar solo el tiempo de la operación de descifrado realizada con la clave privada.

En 1998, Daniel Bleichenbacher descubrió que los mensajes de error proporcionados por los servidores SSL para errores en el relleno PKCS #1 v1.5 permitían un ataque de texto cifrado elegido de forma adaptativa; Este ataque rompe por completo la confidencialidad de TLS cuando se utiliza con cifrado RSA. En 2018 , Hanno Böck, Juraj Somorovsky y Craig Young demostraron 19 años después que muchos servidores de Internet todavía eran vulnerables a ligeras variaciones del ataque original.

Básicamente se menciona que la esencia del método es que un atacante, basándose en diferentes reacciones del servidor y diferentes tiempos de ejecución, puede separar los bloques de Oracle correctos e incorrectos agregados con el estándar PKCS #1 v1.5 para alinear los datos cifrados a lo largo del límite del bloque. Al manipular información sobre la exactitud de los bloques de relleno, un atacante puede usar la fuerza bruta para recrear un texto cifrado adecuado.

En este caso, el ataque no recupera directamente la clave privada, sino que sólo permite descifrar el texto cifrado o generar un mensaje firmado falso. Para llevar a cabo un ataque con éxito, es necesario enviar un volumen muy grande de mensajes de prueba para descifrarlos.

El uso de un ataque contra servidores TLS que utilizan cifrado basado en claves RSA permite al atacante almacenar pasivamente el tráfico interceptado y luego descifrarlo. Para los servidores que soportan PFS, llevar a cabo un ataque se vuelve mucho más difícil y el éxito depende de qué tan rápido se lleve a cabo el ataque.

Además, el método permite generar una firma digital ficticia que verifica el contenido de los mensajes ServerKeyExchange en TLS 1.2 o los mensajes CertificateVerify en TLS 1.3 transmitidos en la etapa de intercambio de claves, que se puede utilizar para realizar ataques MITM para interceptar la conexión TLS entre el cliente y el servidor.

Se menciona que la diferencia entre el método Marvin se reduce a una tecnología mejorada para separar datos incrementales correctos e incorrectos, filtrar falsos positivos, determinar con mayor precisión los retrasos en los cálculos y utilizar canales adicionales de terceros durante la medición.

En la práctica, el método propuesto permite descifrar el tráfico o generar firmas digitales sin conocer la clave RSA privada. Para probar la aplicabilidad del ataque, se publicó un script especial para verificar servidores TLS y herramientas para identificar problemas en bibliotecas.

El problema afecta a varias implementaciones de protocolos que utilizan RSA y PKCS. A pesar de que las bibliotecas criptográficas modernas contienen algún tipo de protección contra ataques basados ​​en el método Bleichenbacher, el estudio reveló que las bibliotecas tienen canales de fuga abiertos y no proporcionan un tiempo de procesamiento constante para paquetes con relleno correcto y erróneo. Por ejemplo, la implementación del ataque GnuTLS por parte de Marvin no está ligada al código que realiza directamente cálculos relacionados con RSA, sino que utiliza diferentes tiempos de ejecución para el código que decide si mostrar un mensaje de error en particular.

El autor del estudio también cree que la clase de vulnerabilidades considerada no se limita a RSA y puede afectar a muchos otros algoritmos criptográficos que dependen de bibliotecas estándar para cálculos de números enteros.

Para confirmar la posibilidad de llevar a cabo el ataque Marvin en la práctica, el investigador demostró la aplicabilidad del método a aplicaciones basadas en las bibliotecas M2Crypto y pyca/criptografía, en las que unas pocas horas fueron suficientes para comprometer el cifrado al realizar un experimento en un portátil promedio.

Finalmente si estás interesado en poder conocer más al respecto, puedes consultar los detalles en el siguiente enlace.

Leave A Comment

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.