|
Graves problemas en el algoritmo que genera números aleatorios en Debian |
|
|
|
|
Origen: hispasec.com
|
|
miércoles, 14 de mayo de 2008 |
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 varios años) una importante repercusión y numerosos efectos
colaterales en otros paquetes y distribuciones [quizás en Ubuntu].
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.
|