Windows random number generator is so not random
All too predictable
The pseudo-random number generator used by Microsoft in Windows is flawed, according to security researchers.
A team of cryptographers led by Dr. Benny Pinkas from the Department of Computer Science at the University of Haifa, Israel were able to unravel how the CryptGenRandom function Windows 2000 worked, without assistance from Microsoft. This analysis revealed that random number generation in Windows 2000 is far from genuinely random - or even pseudo-random.
Because of this it was possible for the researchers to predict numbers generated by the software, after first determining the internal state of the generator. The application of the program within Windows magnifies the problem, the researchers explain.
"The generator is run in user mode rather than in kernel mode, and therefore it is easy to access its state even without administrator privileges. The initial values of part of the state of the generator are not set explicitly, but rather are defined by whatever values are present on the stack when the generator is called.
The cryptographers discovered that the state of the generator is refreshed with system generated entropy only after generating 128KB of output for the process running it. "The result of combining this observation with our attack is that learning a single state may reveal 128KB of the past and future output of the generator," they explain.
The non-randomness of the generator is important because the correct operation of SSL and other protocols rely on the randomness. The Haifa team urges Microsoft to publish the code of the random-number generator so that improvements might be made.
"The implication of these findings is that a buffer overflow attack or a similar attack can be used to learn a single state of the generator, which can then be used to predict all random values, such as SSL keys, used by a process in all its past and future operation. This attack is more severe and more efficient than known attacks, in which an attacker can only learn SSL keys if it is controlling the attacked machine at the time the keys are used," the researchers warn.
Thy evaluated Windows 2000 only, but the shortcomings of the random number generator are likely to also be an issue for Windows XP and Vista.
Results of the research were published in a paper entitled Cryptanalysis of the Windows Random Number Generator, which was presented at the recent ACM Conference on Computer and Communications Security in Alexandria, Virginia. ®