3 ms·
Some background: on Unix, Firefox obtains seed entropy from /dev/urandom, while on Windows it calls RtlGenRandom() for some reason instead of CryptGenRandom().
by gms 17y ago
Some background: on Unix, Firefox obtains seed entropy from /dev/urandom, while on Windows it calls RtlGenRandom() for some reason instead of CryptGenRandom(). This seeding material is then fed to the random number generator, a NIST SP800-90 Hash_DRBG.
However they do obtain additional (optional) entropy (if you're familiar with the NIST DRBG's, then I'm talking about the 'Additional Input' parameter) by reading system time while periodically reading a bunch of system dirs to advance time in a non-deterministic manner. And that's where this bug creeps up.
- itgoon 17y ago> it calls RtlGenRandom() for some reason instead of CryptGenRandom() It is calling a kernel interface. The prefix "Rtl" means that it is in the kernel run time library. Reference: http://blogs.msdn.com/wdkdocs/archive/2008/12/19/windows-kernel-routine-naming-conventions.aspx http://blogs.msdn.com/wdkdocs/archive/2008/12/19/windows-ker...
- gms 17y agoAha, cheers for the explanation.