Date: Thu, 26 Oct 2000 09:56:00 -0700 (PDT) From: Matt Dillon <dillon@earth.backplane.com> To: Ed Hall <edhall@weirdnoise.com> Cc: freebsd-current@FreeBSD.ORG Subject: Re: entropy reseeding is totally broken Message-ID: <200010261656.e9QGu0f35180@earth.backplane.com> References: <200010260731.AAA16904@screech.weirdnoise.com>
next in thread | previous in thread | raw e-mail | index | archive | help
:In real life, machines don't always get rebooted in a completely :controlled fashion (panic, power failure, etc.). Anything that :makes a reboot longer or less reliable is a definite non-starter. : :I can guarantee you, if the current /dev/random code isn't fixed before :it makes STABLE, folks running servers 24/7 are going to rip it right :out. : : -Ed I don't understand why /dev/random has to be reseeded with so many bytes in the first place... 64 or 128 bytes ought to do it, and if they don't then there is something fundamentally wrong with /dev/random that needs to be addressed. The proper way to address is NOT to try to push a larger seed into it. Hell, a *4* byte reseeding should generate sufficient randomness for our purposes (though obviously it is not cryptographically secure enough). I am certainly not willing to wait more then 500ms on boot for /dev/random to seed, and I doubt very many other people would be either. In regards to 'reboot' verses 'shutdown' ... the solution here is simple: don't try to save the random seed from the shutdown script. I would argue that the very *LAST* thing you want to do when shutting a machine down is start writing out files. And, frankly, depending on people using 'shutdown' is silly since most people run their machines either until they drop, or use 'reboot' rather then 'shutdown'. The solution is to deal with entropy at boot time, and also regenerate the file from /etc/periodic/daily. At boot time you do this: * load the entropy file (128 bytes is plenty!) * fold in the current time (including microseconds) * fold in the "/" directory's mtime * fold in some junk from /var/log and dmesg. * save the entropy file * done. From /etc/periodic/daily you do this: * generate a random number * store it as the entropy file (128 bytes is plenty!) -Matt To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200010261656.e9QGu0f35180>