¿Por qué hacer eso, en primer lugar? ¿Necesitamos "preservar" la semilla aleatoria entre reinicios? ¿Qué pasaría si no lo hacemos? ¿Tendrá la computadora una aleatoriedad 0 cuando arranque?
Esto resulta ser una pregunta mucho más profunda de lo que te imaginas. Intentaré hacerle justicia sin escribir un libro de texto.
Básicamente: las computadoras apestan al azar; cuando tienes algo de aleatoriedad real (también conocida como entropía), es una buena idea mantenerla.
Supongamos que su computadora no tiene un generador de números aleatorios de hardware. (Los chips de Intel modernos tienen la instrucción rdrand
que se conecta a un hardware rng, pero por razones políticas, el kernel de Linux no lo usa).
En el arranque, ¿de dónde obtiene el núcleo una aleatoriedad pura? Según Wikipedia :
El kernel de Linux genera entropía a partir de los tiempos del teclado, los movimientos del mouse y los tiempos IDE, y hace que los datos de caracteres aleatorios estén disponibles para otros procesos del sistema operativo a través de los archivos especiales / dev / random y / dev / urandom. Esta capacidad se introdujo en la versión 1.3.30 de Linux.
Por lo tanto, el mouse, el teclado y la sincronización de los eventos de IO del disco duro. Digamos que necesita la entropía durante el inicio del sistema operativo (por ejemplo, inicia sshd
que necesita generar claves en su primer inicio), aún no ha cargado los controladores del teclado y del mouse, y que al principio del ciclo de inicio no lo hará. han realizado muchas llamadas de E / S en el disco - demonios, con suficiente antelación en el arranque, el kernel todavía se está ejecutando en una RAM FS, e incluso después de eso puede estar en un SSD o una unidad flash que tiene tiempos de E / S muy predecibles.
Entonces volvamos a tu pregunta:
¿Qué pasaría si no lo hacemos? ¿Tendrá la computadora una aleatoriedad 0 cuando arranque?
Es posible.
En los dispositivos Linux incrustados pequeños, como los enrutadores que arrancan desde la memoria flash (tanto los pequeños como los grandes centros de datos que alimentan Internet), este es realmente un problema grave.
Para una lectura impresionante sobre este tema, vea el documento de 2012 Extracción de sus Ps y Qs: Detección de claves débiles generalizadas en Dispositivos de red que tiene el sorprendente descubrimiento de que
El 0,75% de los certificados TLS [en Internet] comparten claves debido a una entropía insuficiente durante la generación de claves.