RSA 1024bit: Logran romper el algoritmo en GNUPG

Hoy hablaremos de un fallo de seguridad encontrado en la implementación de los algoritmos RSA en libgcrypt, la biblioteca de programación que utiliza GnuPG.


Expertos en seguridad informática descubren una vulnerabilidad crítica en la biblioteca de desarrollo criptográfica de GnuPG. Esta vulnerabilidad permite romper el algoritmo de 1024b y obtener la clave privada para descifrar los mensajes.

GnuPG, GPG o GNU Privacy Guard es una aplicación de cifrado open source muy popular, utilizada por muchos sistemas operativos, entre ellos, GNU/Linux, FreeBSD, Windows y MacOSX.

Es el mismo software utilizado por Edward Snowden, ex trabajador de la NSA (National Security Agency) para mantener seguras sus comunicaciones.Edward Snowden

Esta vulnerabilidad, etiquetada con el código CVE-2017-7526, reside en la biblioteca de cifrado utilizada por GNUPG, que es propenso a un ataque local de Flush-Reload.

El grupo de investigadores, que comprende especialistas de las universidades de Eindhoven, Illinois, Pennsylvania, Maryland y Adelaide, encontraron que el método de ventana deslizante “izquierda-derecha” utilizado por la biblioteca libgcrypt para llevar a cabo los mecanismos matemáticos de la criptografía, expone significativamente más información sobre bits de exponentes, lo que permite recuperar la clave privada completamente.

En el paper que escribieron al respecto, mencionan lo siguiente:

En este paper, nosotros demostramos una rotura completa de la implementación de RSA-1024 de Libgcrypt. Nuestro ataque hace uso del hecho de que libgcrypt utiliza el método “izquierda-derecha” para calcular la expansión de la ventana deslizante.

El patrón de cuadrados y multiplicaciones en la ventana deslizante “izquierda-derecha” expone más información acerca de los exponentes que si fuera “derecha-izquierda”. Mostramos cómo extender el algoritmo Heninger-Shackam para la reconstrucción parcial de la clave para lograr usar esta información y obtener la clave RSA-1024 completa.

El Ataque de cache L3 requiere que un atacante ejecute un software arbitrario en el hardware donde se encuentra la clave privada RSA.

El ataque permite a un atacante extraer la clave de cifrado secreta de un sistema analizando el patrón de uso de memoria o de salidas electromagnéticas a un dispositivo que las emite durante el proceso de descifrado.

Así en la práctica, hay maneras más fáciles de acceder a las claves privadas que montar este ataque. No obstante, en equipos con máquinas virtuales, este ataque podría se rusado por una VM para obtener las claves privadas de otra VM.

Los investigadores también proveyeron evidencia de que el mismo tipo de ataque funciona para RSA-2048, aunque se requiere más tiempo de cálculo que el utilizado para romper el RSA-1024.

El paper fue titulado “Sliding right into disaster: Left-to-right sliding windows leak” (Deslizamiento justo al desastre: Fuga de las ventanas deslizantes izquierda-derecha) tiene como autores a Daniel J. Bernstein, Joachim Breitner, Daniel Genkin, Leon Groot Bruinderincrypto rsa cipher criptografia encryption key k, Nadia Heninger, Christine van Vredendaal, Tanja Lange and Yuval Yarom.

Libgcrypt liberó la versión v1.7.8 con la corrección del error, y las distribuciones Debian, ArchLinux y Ubuntu ya actualizaron sus bibliotecas con la última versión de Libgcrypt, por lo que actualizando el paquete (o todos los paquetes de la distro) estaría solucionado.

Les recomiendo que verifiquen en sus distribuciones si ya disponen de la última versión de la biblioteca.

Y, para los más adentrados en la materia, los invito a pasar por RSA: ¿Cómo funciona este algoritmo de cifrado? para estudiar nociones más profundas del funcionamiento de RSA.

¡¡Hasta la próxima!!

Fuente: http://thehackernews.com/2017/07/gnupg-libgcrypt-rsa-encryption.html