El pasado día 4 de noviembre, un equipo de investigadores israelíes
encabezados por el Dr. Benny Pinkas, de la Universidad de Haifa y
estudiantes de la Universidad de Jerusalén, 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 contiene serios problemas en su
implementación.
Las conclusiones del estudio revelan (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.
Los sistemas de cifrado basados en criptografía asimétrica necesitan del
cálculo de números aleatorios para generar claves de sesión, y de la
arbitrariedad 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. El
algoritmo es usado, por ejemplo, en cada conexión SSL (conexiones
seguras) que se establece entre el navegador y los servidores HTTP, y
también el cifrado local de información. De ser explotada esta
vulnerabilidad, un atacante podrían llegar a predecir esos números
generados, y desvelar los datos cifrados con este protocolo, obteniendo
así una información que suele transmitirse cifrada precisamente por su
importancia.
Otro problema descubierto además de una aleatoriedad débil, es la forma
en la que es aplicada. Después de analizar el algoritmo mediante
ingeniería inversa, los investigadores descubrieron que el estado del
generador se actualiza cada 128KB de salida. Teniendo en cuenta que una
conversación SSL del navegador por ejemplo consume entre 100 y 200
bytes, obteniendo un solo estado se pueden desvelar hasta de 600 a 1.200
conexiones futuras que utilizan la misma clave. Cualquier información
cifrada anterior o posteriormente desde esa misma máquina quedaría
comprometida si se tiene acceso a ella. Lo que mitiga el problema es que
para poder llegar a tener acceso a esa información inicial de la que se
deducirían el resto de "estados del algoritmo", un atacante necesita
poder tener acceso como administrador en el sistema. Digamos que para
poder aprovechar el problema del algoritmo y poder descifrar la
información, necesitaría tener el total control de la máquina para
llegar a conocer un estado, con lo que el sistema ya estaría
comprometido en sí.
En un principio, se creyó que el fallo sólo afectaba a los equipos con
el sistema operativo Windows 2000. Pero días más tarde Microsoft ha
reconocido que Windows XP también utiliza el mismo algoritmo. Aunque no
así los sistemas equipados con Windows Vista, Server 2003 o Server 2008.
Microsoft no cataloga el fallo en su algoritmo como problema de
seguridad y lo ha etiquetado como acceso local a información sensible.
Alega que dicha información sólo estaría accesible para el propio
usuario que la use o para un administrador con acceso al sistema, que
por definición tiene control total de la máquina. Por su parte, los
investigadores alegan que el peligro radica en el hecho en que el
usuario podría tener acceso a información que no debería ser accesible
de ningún modo por nadie, ni siquiera él mismo. En general, para que la
vulnerabilidad pueda ser explotada, es necesario combinarla con un
ataque previo.
Pinkas y su equipo pusieron sus investigaciones en conocimiento de
Microsoft en marzo, y tras hacer público su hallazgo, y a pesar de que
sólo ha sido catalogado como bug por parte del fabricante, Microsoft ha
reconocido que introducirá una modificación en su generador de números
aleatorios en Service Pack 3 para Windows XP, cuyo lanzamiento está
previsto para la primera mitad de 2008. Por el contrario, no se ha dado
ninguna información sobre si el problema será subsanado próximamente
para Windows 2000.
No es la primera vez que se encuentran fallos en algoritmos para generar
números pseudoaleatorios. Históricamente la arbitrariedad real ha sido
perseguida por los programadores, de ahí que se utilice la palabra "pseudo" y no se hable de aleatoriedad real. Por otro lado, cabe
recordar que los propios empleados de Microsoft ya recomendaron en
agosto de 2007 una revisión del algoritmo en uno de sus documentos
técnicos, titulado "On the Possibility of a Back Door in the NIST
SP800-90 Dual Ec Prng".
Fuente: Hispasec