/ dev / random agujeros de seguridad

4

Estoy leyendo un poco sobre los problemas de seguridad que rodean a / dev / random, pero está resultando difícil encontrar buenas fuentes de información. ¿Alguien puede ayudar? Le pregunté a Google y obtuve un montón de artículos de la versión anterior a 2006, así que asumo que muchos de los problemas señalados allí se han solucionado. También he estado revisando la fuente, pero no soy un experto en cifrado o seguridad, por lo que es muy probable que mi análisis personal no sea suficiente. Cualquier ayuda o dirección sería muy apreciada.

EDITAR: para que mi pregunta sea más específica, lo que quiero saber es cómo se mezcla el conjunto de entropía, cómo se estima el nivel del conjunto y cómo / dev / random realmente calcula sus valores en función de lo que hay en la piscina. Quiero saber por qué se hacen las cosas cómo se hacen y cuáles son las debilidades de los métodos utilizados. Sé cómo se llena la piscina.

Mi objetivo final es implementar un TRNG que rellene / dev / random. Ahora, puedo llevar su salida (agradable y blanca) a la agrupación, solo quiero saber si vale la pena omitir la agrupación completamente y escribir un módulo para poblar directamente / dev / random. Supongo que aquí un atacante puede envenenar a la agrupación para desordenar la salida del dispositivo al azar.

En este momento estoy trabajando con Ubuntu, la versión del kernel es 2.6.32

    
pregunta Sheena 12.09.2011 - 09:36
fuente

2 respuestas

3

Para muchas aplicaciones criptográficas, / dev / random es una forma segura de recopilar (pseudo) datos aleatorios. Sin embargo, hay varios problemas clave que parecen estar en la línea de lo que estás preguntando.

Uno de los problemas es que es posible escribir en / dev / random. Según Wikipedia,

  

También es posible escribir en / dev / random. Esto permite a cualquier usuario mezclar datos aleatorios en el grupo. Los datos no aleatorios son inofensivos, porque solo un usuario privilegiado puede emitir el ioctl necesario para aumentar la estimación de entropía. La cantidad actual de entropía y el tamaño del grupo de entropía del kernel de Linux están disponibles en / proc / sys / kernel / random /.

Esto tiene sentido para una máquina no comprometida, sin embargo, si alguien ha arraigado una caja, en teoría podría escribir datos no aleatorios (que parecen aleatorios) en / dev / random y causar problemas con las claves criptográficas generadas desde ese punto en adelante. . Es difícil determinar la gravedad de un ataque de este tipo, ya que si la raíz ya estuviera comprometida, sin duda existirían vectores de ataque más significativos (todo el software podría, en ese momento, tener una puerta trasera).

El segundo conjunto de problemas, detallado en el documento Análisis del generador de números aleatorios de Linux (marzo de 2006) , se centra en problemas con las máquinas de estado guardado. Esto se encuentra principalmente en Linux live-cd's que tienen la misma entropía integrada (solo lectura) al iniciar, pero en el mundo de hoy también puede aplicarse a máquinas virtualizadas que tienen estados restaurados, o máquinas que usan software que puede revertir a una " estado bueno conocido "al apagar. Si la entropía se puede determinar en el arranque, entonces / dev / random puede verse comprometido (ya que es un valor de inicio conocido).

Hay varias formas de mejorar el estándar / dev / random, el más conocido de los cuales puede ser Entremon Gathering Daemon (http://egd.sourceforge.net/). EGD puede funcionar como un "sustituto del espacio de usuario" para / dev / random, lo que puede permitir que las aplicaciones tengan un PRNG significativamente más seguro.

Por último, si está interesado en la entropía "verdaderamente aleatoria", considere usar un servicio como Random.org que utiliza la atmósfera ruido para crear true , no pseudo, números aleatorios.

Espero que esto ayude!

    
respondido por el dshaw 22.11.2011 - 21:21
fuente
1

Recursos:

Puedes elegir la versión de tu interés desde la parte superior. La fuente para el software RNG está bastante bien comentada, así que dejaré la interpretación a tu disposición.

    
respondido por el Jeff Ferland 22.11.2011 - 21:52
fuente

Lea otras preguntas en las etiquetas