Graves problemas en el algoritmo que genera los números aleatorios en Debian

CortafuegosSeguridad

La criptografía en Debian ha sufrido un grave revés. Se ha descubierto que el generador de números aleatorios del paquete OpenSSL de Debian es predecible.

Esto hace que las claves generadas con él ya no sean realmente fiables o verdaderamente seguras. El problema tiene (y tendrá por muchos años) una importante repercusión y numerosos efectos colaterales en otros paquetes y distribuciones.Debian ha publicado una actualización para OpenSSL que solventa múltiples vulnerabilidades, siendo la más grave un fallo en el generador de números aleatorios que los volvía predecibles, o sea, “poco aleatorios”. Luciano Bello, desarrollador de Debian, daba la voz de alarma. Sólo afecta al OpenSSL de Debian porque esta distribución parchea su propia versión de OpenSSL, a su manera. En este caso, ha eliminado una línea crucial de código que limita el generador a producir sólo 2^18 claves (solamente 262.144), en vez de poder elegir claves de, por ejemplo 2^1.024 posibilidades.Los sistemas de cifrado basados en criptografía asimétrica necesitan del cálculo de números aleatorios para generar claves de sesión, públicas y privadas… se basan en la aleatoriedad en general para un buen funcionamiento. De hecho, su seguridad radica en la aleatoriedad real de esos cálculos: cuanta más entropía, más complicado de predecir y más “calidad” del cifrado. Igual para la generación de claves.

El fallo fue introducido en la versión OpenSSL 0.9.8c-1 de septiembre de 2006. Al intentar solucionar un código aparentemente incorrecto con la herramienta Valgrind, se eliminó por error una línea crucial para el sustento entrópico de OpenSSL que nada tenía que ver. Se eliminaron más líneas de código de la cuenta. Valgrind es un programa que detecta y alerta sobre el uso de memoria no inicializada (lo que sería un fallo en cualquier otra aplicación) pero en OpenSSL es legítimo porque se utiliza para ganar entropía. Un claro ejemplo de lo peligroso de intentar solucionar un fallo sin entender completamente el problema, y de introducir cambios no supervisados en este caso, por los desarrolladores oficiales de OpenSSL.

A efectos prácticos, se podría deducir la clave privada a partir de la pública de los usuarios, con lo que la criptografía asimétrica, usada en SSL y SSH por ejemplo, deja de ser fiable para la autenticación y para la confidencialidad. Cualquier clave pública o firma, generada por esa versión de OpenSSL en Debian en los últimos dos años… pasa a ser sospechosa y vulnerable.

Incluso Debian, como medida preventiva, ha deshabilitado el acceso SSH a sus sistemas centrales. El problema para los administradores de un servidor público con SSL no es pequeño. Los administradores, para empezar, deben tener conocimiento de este desastre. Después, regenerar la clave para que tenga la fortaleza que debe. Y por último, volver a certificarlas, con el coste económico que conlleva según el certificador.

Aunque el problema es específico de Debian, puede arrastrar a las numerosas distribuciones basadas en ella. Pero además, puede salpicar a cualquier distribución donde se hayan importado claves débiles. Las claves afectadas son las usadas en SSH, OpenVPN, DNSSEC, claves utilizadas en certificados X.509 y para conexiones SSL/TLS. Las claves generadas con GnuPG o GNUTLS no se ven afectadas porque no usan OpenSSL.

Un problema similar se reportó en Windows. En noviembre de 2007, un equipo de investigadores israelíes publicaron un análisis criptográfico sobre el algoritmo usado por Microsoft Windows 2000 y XP para generar números aleatorios, el PRNG (Pseudo-Random Number Generator). Descubrieron que contenía serios problemas en su implementación. Las conclusiones del estudio revelaban (entre otros fallos) que es posible, y relativamente sencillo, predecir los resultados previos y futuros del algoritmo a partir del conocimiento de un estado interno del generador, así como las claves de sesión usadas y las que se usarán en un futuro para cifrar información. Vista no sufría el problema, y Microsoft dijo que lo arreglaría en el Service Pack 3 para XP. Según parece no ha sido así y aunque han mejorado algunas funciones criptográficas con él, no han resuelto este problema en concreto.

Debian y Ubuntu han publicado ya actualizaciones para todos los paquetes afectados. El proceso de comprobación de claves y de generación e implantación de nuevos certificados puede ser complejo. Se recomienda a todos los administradores que acudan a los enlaces del apartado de “más información” para actualizar sus sistemas y claves.

Lea también :