¿Con qué frecuencia siembra / dev / urandom muestra de / dev / random?


15

A menos que esté totalmente confundido y no haga eso.

Quiero saber si / dev / urandom ganará o no una mayor entropía si tomo un RNG de hardware y conecto su entropía en / dev / random.

Entonces, para reformular, si tuviera que aumentar la entropía de / dev / random en X bits / seg (es decir, / dev / random después de la inyección le permite muestrear X bits / seg), ¿aumentará la transferencia de entropía a urandom?


2
Si bien no es muy relevante, 2uo.de/myths-about-urandom y blog.cloudflare.com/… (en particular el gráfico en blog.cloudflare.com/content/images/image01.png ) podría ser una lectura útil.
user1686

Si tuviera un verdadero RNG de hardware, podría usarlo directamente.
Michael Hampton

Respuestas:


25

No es realmente exacto decir que las /dev/urandommuestras de /dev/random. En cambio, los dos grupos están respaldados por la misma fuente de entropía. Cuando el recuento de entropía de las agrupaciones llega a cero, se reinicializan desde la agrupación de entrada compartida. Entonces, si le das a la entrada de kernel entropía de alguna manera, puede usar eso para cualquiera /dev/randomo /dev/urandom, dependiendo de cuál se lea.

Sin embargo, /dev/urandom también tiene una tasa limitada en cuanto a la frecuencia con la que puede solicitar una nueva siembra. Por defecto, solo puede reiniciarse una vez cada 60 segundos.

Nada de eso realmente importa en la práctica, porque mientras el grupo se siembra inicialmente con al menos 128 bits de entropía, predecir cualquier salida requeriría no solo ver las salidas anteriores sino también romper los algoritmos utilizados, incluida al menos la resistencia previa a la imagen de SHA-1 ( que permanece intacto ).


7

Depende de la implementación. Pero típicamente, /dev/randomy /dev/urandomextrae la entropía del mismo grupo, así será.

Diagrama de https://blog.cloudflare.com/ensuring-randomness-with-linuxs-random-number-generator/


4

En Linux, todos los datos escritos en / dev / random o / dev / urandom se copian tanto en el grupo de bloqueo (fuente de aleatoriedad para / dev / random) como en el grupo sin bloqueo (fuente de aleatoriedad para / dev / urandom).

Solo mira la función random_write .

Pero los datos escritos en / dev / random no son contados por el estimador de entropía interno (después de todo, algunos adversarios locales pueden tratar de redirigir / dev / zero o alguna otra fuente altamente no aleatoria a / dev / random), así que si tiene problemas con el bloqueo / dev / random, solo escribir en / dev / random no ayuda.

En Linux, escriba en / dev / random (o / dev / urandom, no hay diferencia), pero lea siempre desde / dev / urandom (una vez que se siembra; en realidad, la mejor manera es usar un nuevo sistema de llamada getrandom ).

No sé cómo funciona en otros Unices.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.