GNU/Linux
Enviado por donvergonio • 23 de Mayo de 2012 • Informe • 471 Palabras (2 Páginas) • 594 Visitas
GNU/Linux fue el primer sistema operativo en implementar un generador de números aleatorios a nivel de sistema operativo. La implementación utiliza hashes seguros en lugar de cifrados, como se necesita para evitar restricciones legales que existían cuando el algoritmo fue diseñado originalmente. La implementación también fue diseñada bajo la premisa que cualquier hash o cifrado podría, eventualmente, ser débil por lo que el diseño es robusto frente a cualquiera de esas debilidades.
En estas implementaciones el generador mantiene un estimado del número de bits de ruido en la fuente de entropía. Desde esta fuente se crean los números aleatorios. Cuando son leídos, /dev/random sólo devolverá bytes aleatorios dentro del número estimado de bits de ruido en la fuente de entropía. /dev/random debería de ser adecuado para situaciones en las que se necesite aleatoriedad de alta calidad como podría ser el caso de generación de claves. Cuando la fuente de entropía está vacía, las lecturas de /dev/random se bloquearán hasta que ruido adicional del ambiente sea recogido.1
Una contraparte para /dev/random es /dev/urandom que reutiliza la fuente interna para producir más bits seudoaleatorios. Esto implica que llamadas de lectura nunca se bloquearán, pero la salida puede contener menos entropía que una lectura de /dev/random. La intención es servir como un generador de números seudoaleatorios criptográficamente seguro. Éste puede ser utilizado en aplicaciones que no necesiten de tanta seguridad.
También es posible escribir a /dev/random. Esto permite a cualquier usuario mezclar datos aleatorios a la fuente. Datos no aleatorios son inocuos porque sólo un usuario con los privilegios adecuados podrá utilizar ioctl para aumentar la estimación de entropía.
En marzo de 2006, Gutterman, Pinkas y Reinman publicaron un análisis criptográfico detallado del generador de números aleatorios de GNU/Linux2 en el que describen varias debilidades. Probablemente la más severa es en sistemas embebidos (routers) o aquellos que corren completamente en memoria como LiveCD o clientes sin almacenamiento físico, para los que el estado de arranque es predecible y la fuente de entropía disponible del ambiente es limitada. Para un sistema con memoria flash recomiendan guardar información del generador de números aleatorios en el momento de apagar el sistema de forma que pueda ser incluido al mismo en el próximo arranque. En caso de un router para el que el tráfico de la red representa la fuente primaria de entropía notan que guardar información cada vez que se lo reinicia "requeriría que atacantes potenciales se inmiscuyeran en todo el tráfico de la red" desde el momento en que se pone el router en servicio por primera vez, o bien, que tuviesen acceso directo al estado interno del router. Esto, notan, es particularmente crítico en el caso de un router inalámbrico
...