Why do that at all, in the first place. Do we need to "preserve" the random seed between restarts ? What would happen if we don't? Will the computer have 0 randomness when it boots?
Questa risulta essere una domanda molto più profonda di quanto tu possa immaginare. Cercherò di renderlo giustizia senza scrivere un libro di testo.
Fondamentalmente: i computer fanno schifo a caso; quando hai una certa casualità (aka entropia), è una buona idea tenerti stretto.
Supponiamo che il tuo computer non abbia un generatore di numeri casuali dell'hardware. (I moderni chip Intel hanno l'istruzione rdrand
che si collega a un hardware rng, ma per ragioni politiche, il kernel Linux non lo usa.)
Al boot, da dove viene il puro casualness del kernel? Secondo Wikipedia :
The Linux kernel generates entropy from keyboard timings, mouse movements, and IDE timings and makes the random character data available to other operating system processes through the special files /dev/random and /dev/urandom. This capability was introduced in Linux version 1.3.30.
Quindi mouse, tastiera e tempistica degli eventi I / O del disco fisso. Diciamo che hai bisogno di entropia durante l'avvio del sistema operativo (ad esempio, si avvia sshd
che deve generare chiavi al suo primo avvio), non hai ancora caricato i driver del mouse e della tastiera e che all'inizio del ciclo di avvio non ho fatto moltissime chiamate di I / O del disco - diavolo, abbastanza presto nel boot il kernel è ancora in esecuzione in una RAM FS, e anche dopo potresti essere su un SSD o una chiavetta che ha tempi IO molto prevedibili.
Quindi torna alla tua domanda:
What would happen if we don't? Will the computer have 0 randomness when it boots?
È possibile.
Su piccoli dispositivi Linux embedded come i router che si avviano dalla memoria flash (sia quelli di piccole dimensioni che quelli di grandi dimensioni che alimentano Internet), questo è in realtà un problema serio.
Per una lettura fantastica su questo argomento, vedere il documento del 2012 Estrazione di Ps e Q: Rilevazione di chiavi deboli diffuse in Dispositivi di rete che ha la scoperta scioccante che
0.75% of TLS certificates [on the internet] share keys due to insufficient entropy during key generation.