miércoles, 14 de noviembre de 2007

Windows no aleatorio

La generación de números aleatorios es fundamental para la criptografía, usada en protocolos seguros como SSL o IPSec. Todos de alguna forma u otra usamos la criptografía y los números aleatorios todos los días en nuestros navegadores, por ejemplo. Hay que hacer una aclaración en el término "aleatorio" ya que más bien en la práctica se usan números pseudo-aleatorios. La razón es que es difícil generar números verdaderamente aleatorios y esto es especialmente cierto para las computadoras.

 

Microsoft, como otros sistemas operativos, debe de proporcionar de alguna manera estos números pseudos-aleatorios para las aplicaciones, como por ejemplo al hacer una conexión segura con Internet Explorer o Firefox. La función para el caso de Windows 2000 se llama "CryptGenRandom" y estudios de investigadores han demostrado que esta función genera números predecibles, lo cual implica que podemos intentar hacer un ataque para descifrar datos que de otra manera hubieran permanecido cifrados y de hecho lograrlo sin comprometer al equipo víctima (como lo hacen otros ataques).

 

La causa es que esta compañía a lo largo de los años, prefiere diseñar y crear algoritmos privados, es decir, que no publica sus algoritmos para el escrutinio público y así al esconder los detalles piensa que da seguridad a sus diseños. Otros algoritmos, como el famoso AES (Advanced Encryption Standard), fueron públicos y se pusieron bajo la lupa del público para entre "todos" verificar la seguridad (hasta la fecha no se le han encontrado debilidades). Para empeorar las cosas, la función en cuestión "CryptGenRandom" se ejecuta en modo usuario y no en modo kernel, lo cual facilita un ataque.

 

Bueno, yo uso Windows XP, Vista y Windows 2003, estoy a salvo ya que el estudio fue hecho en Windows 2000. Esperen, será que esta misma función se usa en estos sistemas más modernos? Sabemos que por falta de tiempo y por eficiencia muchas líneas de código de "reciclan" y se re-usan, no me sorprendería saber que la infame función ha sido heredada. Lo malo es que los que se pondrán a investigar esto probablemente serán "los otros" (como los de la serie "Lost") para intentar hacer esos ataques que tanto les gustan.

El estudio, llamado "Cryptanalysis of the Random Number Generator of the Windows Operating System" se encuentra en:

http://eprint.iacr.org/2007/419.pdf

http://eprint.iacr.org/2007/419