Loophole in Windows Random Number Generator
Invisible Pink Unicorn writes "A security loophole in the pseudo-random number generator used by Windows was recently detailed in a paper presented by researchers at the University of Haifa. The team found a way to decipher how the number generator works, and thus compute previous and future encryption keys used by the computer, and eavesdrop on private communication. Their conclusion is that Microsoft needs to improve the way it encodes information. They recommend that Microsoft publish the code of their random number generators as well as of other elements of the Windows security system to enable computer security experts outside Microsoft to evaluate their effectiveness. Although they only checked Windows 2000, they assume that XP and Vista use similar random number generators and may also be vulnerable. The full text of the paper is available in PDF format."
129775, 80123133, 5580012. 6740091, 6558, 42!
The World Wide Web is dying. Soon, we shall have only the Internet.
I assume this is only a problem for those whose motherboard doesn't have a hardware random-number generator?
snort. please. stop.
HA HA HA HA HA HA HA HA
No. Really. It hurts.
AHAHAHAHAHAHAHA goomph.
No folly is more costly than the folly of intolerant idealism. - Winston Churchill
How accurate would they have to be with predicting the generator seed times for the keys to work? Would that be a hitch? I'm not an expert in the field, so I honestly don't know.
Quiz: True or False -- On a scale of 1 to 10, what is your middle name?
Maybe it's just me, but I didn't think anyone would be stupid enough to use rand for SSL like the article is implying.
From what I can see, this is an old article anyway.
WTF? does this mean that in Vista you just pray for a random number?
* Carthago Delenda Est *
I am still at a loss to wonder why a PC does not have a white noise generator built into it yet. Even the best random number algorithms are pseudo random, so blasting Microsoft for their algorithm is a little like blasting the kid for not carrying enough of a bucket when the dam is the thing that broke.
Put white noise hardware and real random number hardware on PCs, and this whole problem goes away.
This is my sig.
Your system must meet the requirements to be able to run the Windows Random Number Generator on Vista. Otherwise, you will need to use Windows Number Generator Basic. The only number WNGB can generate is 4.
In other news, Miguel de Icaza said that he believes that the random number generator is a good idea. Linux should have one because Microsoft is going to win anyway, so linux would better be prepared if it doesn't want to be locked out of the future markets, and presented a beta version of the algorithm. Members of the GNOME foundation are participating in the standarization: ''it's better to provide our own insecure random number generator'' said ownen taylor.
The abstract made me think that this was akin to the sequence number prediction problems in older TCP implementations, but it doesn't seem that this provides much opportunity for a remote attack. What is teh actual scope of the problem, how could this be practically used in an exploit?
I thought of doing something like this years ago for EverQuest. Presume it used the standard random number generator as published by Knuth, among others. Get a series, then crank through seeds until you found the sequence that matched it, done.
Never got beyond the thought stage because the problem was that those random values were probably shared amongst many clients, and thus it would be impossible to get a pure sequence without losing some values to other clients. And this assumes such a calculation would be doable in something less than many times the age of the universe. But in theory it could have worked.
Then just wait for a high string of good hits to be in the pipeline, and jump into battle.
(-1: Post disagrees with my already-settled worldview) is not a valid mod option.
stop eating smurfs.
liqbase
So that's why my tanks and battleships always lose to spearmen.
so, open it up... let some 'real' developers look at it! (not a bait, but i guess that is the essence?) 'open source' windows!
Although they only checked Windows 2000, they assume that XP and Vista use similar random number generators and may also be vulnerable. The full text of the paper is available in PDF format."
And what happens when we make assumptions? we make an ass of me, and you make more money
The only benefit that could possibly be derived by publishing algorithms and/or code for Windows security would be if (a) changes proposed would be implemented quickly and (b) everyone planet-wide upgraded.
If both of these did not happen, especially if (b) didn't happen, what you would be doing is exposing all non-upgrading users to the full brunt of whatever flaws their might be. Would this really be productive? Does this remind you of various failures in Linux code that led to rootkits being developed for it. Did the victims of such attacks think it was all for the best because they didn't upgrade in a timely manner?
Yes, relying on people not reverse-engineering code to protect users isn't a great plan. But the current situation - as regrettable as it is - is this is the only plan. There are no fallbacks, there are no alternatives. Most of the running copies of Windows aren't going to be "fixed" in any way whatsoever.
Now if only we had a plan for getting a girlfriend. And I don't mean Flargina the Elf, because from what I hear, shes packing something and its not a bow.
-The world would be a better place if everyone had a hoverboard
"The team found a way to decipher how the number generator works, and thus compute previous and future encryption keys used by the computer, and eavesdrop on private communication."
:D
See?! Windows has had a pseudo-Time Machine all along.
Go Microsoft!!
http://xkcd.com/221/
I can't even read past where some educated people try to recommend to M$ that they open up some of thier double-super-secret source code. Imagine the possibilities and good things that could happen if they did that. Its just that kind of rational thinking that makes the developers at microsoft upset. How dare anyone suggest it could be done better.
"A gentleman never strikes a lady with his hat on." - Fred Allen
Hi,
I would suggest pluggable Crypto. So you can choose your own trusted Crypto provider in your operating system. This way anyone who likes peer reviewed opensource crypto can just plug it into M$ windows and doesn't need to rely on proprietary crap^H^Hypto.
Regards,
Holger
That it will be possible to predict what values Excel will give us in our spreadsheets?
When things get complex, multiply by the complex conjugate.
I thought that True Random Number Generators had been built into all newer CPUs. It appears, after a quick Google search, that's not the case. Via provides a TRNG on their C3, AMD provides one on their Geode processor, and Intel provides one on their "Firmware Hub." What's not clear to me is why, given the obvious need for a TRNG, Intel and AMD haven't incorporated one into the mainstream x-86 architecture.
Um, our programmers are all in conference negotiating the next shutdown dialog, but we have plenty of spare lawyers, so we'll fix this problem with a DMCA law suit in 5, 4, 3, 2...
I wonder if this is a similar problem?
The submitter is jumping to some conclusions. The word "eavesdrop" does not occur in the paper.
Is there a list of slots machines that run windows?
That sort of attack could probably be used against online Nethack servers such as nethack.alt.org. You could predict what set of items you'd get if you generated a character at a specific value of time(NULL). You'd also be able to predict the future for that character. You'd try out sequences of moves on your PC, and then send the sequence that got you the best results.
/dev/urandom. (They might already be doing that.)
Unfortunately extra non-determinism would be introduced by bones files, and you'd get a new random sequence if you logged out. The server admin could also stop this attack quite easily by sourcing random data (or just the seed) from
>north
You're an immobile computer, remember?
Why bother checking the other versions: after all, anything that matters is on Windows 2000 already!
The role of the writer is not to say what we can all say, but what we are unable to say. -Anais Nin
factor 966971: 966971
Use Excel. Its solutions appear to be far less predictable than the current RNG.
Have gnu, will travel.
Although they only checked Windows 2000, they assume that XP and Vista use similar random number generators
That's a hell of an assumption to make. Wherein Win2k probably had a semi reasonable (if apparently crackable) random number generator, Vista probably has a confused gnome inside that's hit on the head and presented with a keyboard when a random number is requested. It then needs to connect to the internet and report my name, hardware configuration, IP, SSN and 3 credit card numbers to the Windows Genuine Disadvantage hive mind in Redmond to ensure that I paid for a version of windows that is authorized to include the Random Gnome (R) (TM), or if I should pay more to upgrade to Random Gnome Ultimate.
65532
65533
65534
100000
...it's Tommy Tutone.
You'd think that computers would have built-in hardware based RNGs by now. On-board sound, video, network, etc.......where is the radioactive decay RNG? After all, in 1985 plutonium should be available in every corner drugstore.
That was random... [dodges chair]
I suggest using the uptime of the previous session as a random number generator. Of course the numbers would always be small, but at least they'd be completely random...
Don't worry! I spoke to a MS rep and they told me that Windows Vista was the most secure operating system available!
Troll: "nine,nine,nine,nine,nine,nine,nine,nine,nine,nine,nine..."
Dilbert: "Are you sure that is random?"
Troll: "That's the thing with random numbers, you can never be sure... nine,nine,nine,nine,nine..."
Multimedia Games bingo slots. (I saw one in a casino that had exited to the desktop, it looked to be running a version of Windows XP.)
Some of the Multimedia Games bingo slots are apparently even retrofits for some older WMS Games slots (such as Jackpot Party, Instant Winner) among any others.
However, it seems like those slots get their bingo card results from numbers drawn from a central computer, rather than an on-chip random number generator on the actual machine. Either way, the bingo card results appear to determine the actual reel spin result, so it's like the machine is practically showing the virtual reel result by using a bingo card, before spinning the reels.
if they know how it works and thus can predict it why can they only guess that it's the same code in xp and vista? like any experiment, once your assumption is proven correct in one experiment you should be able to predict the outcome in all experiments.
I got the idea from a project that used a webcam snapping pictures of a Lava Lamp® as a hardware RNG.
But then you name your toon "Wi" and it all goes to hell...
Proud member of the American Non Sequitur Society. We might not make much sense, but boy do we love pizza!
Of all major operating systems, UNIX is the only one originally meant for gaming.
The only benefit that could possibly be derived by publishing algorithms and/or code for Windows security would be if (a) changes proposed would be implemented quickly and (b) everyone planet-wide upgraded.
No. I am going to implement some fairly important software next week that would have strongly relied on CryptRandGen. It will run on Windows 2000, among other things.
Because of this paper, we know the extent of the vulnerability ("trust us, it's broken, but we won't say how" isn't enough to figure out how much time to budget for fixing it), and my software will rely only weakly on CryptRandGen, or possibly not at all.
http://outcampaign.org/
What's the point? Seems like once the system is running your malicious code, the job's already done. Why wouldn't an attacker just stop there and install their keylogger/rootkit of choice?
I am willing to bet two things:
1) This does not affect current versions of Windows.
2) This only affects exported versions of Windows. (The PRNG may still be there but may not be default.)
The RC4 implementation screams of a bit-size issue. It also goes to reason since they are in a non-US country. Furthermore, I doubt this affects current versions based on the information available. If you want, go throw the CMVP RNG validation list and find the Microsoft certificates. All of the RNGs that are approved do not use RC4.
I believe there is a lot of hot-air and presumption and in the paper. They published findings and ASSUMED that nothing has been changed with relation to the PRNG. The algorithm certificates shown above clearly shows this is not the case. Furthermore, they do not state which cryptographic provider is used to perform the generation. I believe this PRNG might be from DSS_BASE, which has since been deprecated. This would mean the problem does not exist. They also ask for Microsoft's code, yet I see none of their own. Without their code, how can their paper be reasonably verified.
I say show me some more, before you cry that this is the way all PRNGs since W2K have been implemented.
"Some days you just can't get rid of a bomb."
Have a random number!
23
IMO the attack is not so severe as they make it sound. While this is a nice piece of reverse engineering and cryptanalysis, in practice the security implications are small.
The bottom line is that every process has its own copy of the RNG state. That means that breaking into one process will not help you deduce the random numbers being used by another. (The authors comment that there may be similarities between the two states, but they don't have any way to turn that into a practical attack.) So the only thing this does is it lets an attacker who compromises a certain process or program, such as IE, be able to learn the random number state. From that he can deduce old random numbers that were used, as well as deduce new random numbers that will be created in the future.
That second part is hard to avoid, but the first part, running the state backward (confusingly called forward security by cryptographers), is a sign of bad design of the RNG. Okay, Microsoft messed that up. But what are the security implications?
The implication is that if someone breaks into your computer, here is something more he can do. Not only can he take over going forward, he can learn a certain amount of data about the past. If you had an SSL protected session in the past, then he could go back and figure out what they keys were back then and decrypt the data.
But how bad is this, really? Compared to the harm he can already do by breaking into your computer? Given that he's there, he can learn all of your future SSL keys anyway. Anywhere you go in the future, your bank, paypal, ebay, any site he can learn all of your passwords and account numbers. He doesn't need to compromise the RNG for this, he can just watch your keystrokes. Basically, you are totally screwed if this happens.
Given the enormous magnitude of the security lost, the additional harm from being able to decrypt a few old requests is quite small. You are basically owned from then on. If you have insecure software that is vulnerable to such attacks, you're screwed anyway. A weakness in the RNG state means you are slightly more screwed, that's all. It's not a major change in the security equation.
The bottom line is that most of the damage comes from the break-in. Again, not to take anything away from these guys' work, but the attack they describe is at worst just the icing on a very nasty cake. Microsoft should fix it, and it sounds like they probably have in Vista, but nobody needs to change their security practices because of this flaw.
No text.
http://outcampaign.org/
Is that the NSA secret surveillance access?
--
U.S. Government corruption TimeLines
Example: Complete 911 Timeline, 3895 events
But I doubt anyone remembers that. Two researchers were able to crack the SSL key of Netscape back in the 90s because Netscape was using plain-old rand just using the current system time as the seed.
The bitter lessons of a veteran coder: http://bitterprogrammer.blogspot.com
One of the fundamental tenets of good cryptography is that if you can't see the algorithm, then it is not secure. That means all of the algorithm, including the RNG, if you use one. If you can't cryptanalyze it, you can't make any judgements about security. The fact that the Windows RNG is closed source and proprietary automatically excludes it from use in cryptographic functionality, and I'm quite surprised to discover that it is actually being used this way. (Actually, I'm not surprised; I'm surprised that some people consider it secure.)
And after the various faults with RNGs in the past on UNIX and Mainframes, I'm surprised that anyone is so naive as to believe that Windows had a good one. Microsoft's past history is so poor that only the most naive of programmers would assume that their RNG could be used for security purposes. It might be fine for simulations and gaming purposes, but that's it.
Considering that any cryptographer worth a Google search would know that almost all PRNG's have been broken, I'm wondering why anyone is making an issue of this; I thought all cryptographers just assumed that the host OS RNG is insecure by default. Or could it be that we have a lot more naive Windows developers than previously thought?
The society for a thought-free internet welcomes you.
Assorted stuff I do sometimes: Lemuria.org
"Although they only checked Windows 2000, they assume that XP and Vista use similar random number generators and may also be vulnerable"
This is a stupid article and headline.
Technomancy is much more reliable, just train an imp to flip a coin and how to convert from binary to decimal. Of course youll have to feed the imp from time to time...
Now the world has gone to bed, Darkness won't engulf my head, I can see by infra-red, How I hate the night.
So they have just cracked it on Windows 2000. What's that, seven years? At this rate they will have racked XP just after the sucessor to Vista has come out. I can only assume they have been doing with some sort of brute force strategy.
I have excellent Karma and I am not afraid to Troll it.
Looks like Firefox on Windows is ok for SSL, as they use their own RNG on Windows in NSS instead of just wrapping the Win32 API.
Apparently this is one of those problems.
Patents Drive Free Software as Hurricanes Drive Construction Industry
4, 8, 15, 16, 23, 42!
I'm sorry, all this RNG stuff just remines me of NSA key, and all the backdoor crap that Windows has suffered. I am reminded by the paper "Reflections on Trusting Trust."
I honestly have 100% no doubts that "Microsoft" is purposely installing multitudes of access methodologies in the form of bugs with "plausible deniability" for U.S. security officials. The telco's do it, they've been caught and are now asking for immunity. Now whether or not is is actually "Microsoft," or people working within the company secretly for the various security agencies purposely inserting these nearly impossible to find bugs is a different question.
Call me paranoid, but if I told you there was a secret room through which all internet traffic gets directed in all the major internet NOCs, you'd call that paranoid as well.
We aren't talking about one user, we are talking about, at least, all w2k users.
The paper makes reference to a O(2^23) time to compute the previous state, given any current state. Maybe I am being a bit pedantic, but any undergraduate CS major familiar with big-O notation could tell you that O(2^23)=O(1); authors should just drop O() when they want to communicate the static (input-independent) run time of an algorithm.
An unjust law is no law at all. - St. Augustine
about 19 seconds on a 2.80MHz Pentium IV :-)
You should think scientists know how to distinguish Mhz from GHz
It's official. Most of you are morons.
I was using a vendor's demo code for some low-level fiberchannel control. Their application would fill a buffer with random data, loop it back over the interface, and compare it. It seemed to work for large transfer, but it would report that the first 3 bytes were corrupted. Digging deeper in to the code, I found they were reusing some buffers... not great, but if their random numbers were good, there would be no chance that the previous buffer equals the new buffer... then I checked out their random number generator: 92, 17, 204, 3, 3, 3, 3, 3, 3, 3, 3, 3 ...
HIV Crosses Species Barrier... into Muppets
Now I don't know what the crypto folk are like, but I have yet to see any real evidence to suggest that they'd be any better.
Engineering is the art of compromise.
You assume that the RNG wasn't designed to fail to begin with. US government has had private companies do these things before, many many times. Google for Crypto AG for one example.
Oh yes it did. /dev/urandom on a system with no entropy sources. Or at least, you could seed it however you liked and it made no difference to the output.
Recent kernels patched a flaw where you couldn't explicitly seed
One description is here: http://lwn.net/Articles/239835/
What this meant for little embedded linux systems (eg routers) which are used for any crypto (eg VPNs) I'll leave as a thought exercise for the reader.
But, with the linux case the problem was reported, discussed and patched in about a week.
I don't think those two numbers are that far from each other.
Look - MS has slightly different standards than the industry in lots of areas. The fact that MS mail handling, HTML generation and interpretation, and other things are not entirely compatible with the accepted (or official) standards is nothing new.
So, in this case, they're just using the MS standard for PRNG. The industry sees it as a pseudo random number generator. For MS, it's a predictable random number generator. Just because the rest of the industry hasn't caught up with Microsoft yet is no reason to assume MS is wrong. You Linux zealots just always assume your way is right.
Stop-Prism.org: Opt Out of Surveillance
This could be a big issue if it definitely exists in XP and/or Vista. But oh dear... somehow these guys had time to uncover such a complex technical issue but not QUITE enough time to check if it applied to the current products.
Or rather -- they know damn well, but by better leaving in that element of doubt allows them to milk a little publicity. It sounds like they might have hit something interesting.
In fact this is an allegation of a design issue, seemingly without proof-of-concept. It affects a 7-year old product, which is 2x superseded and has been unsupported (without enterprise contract) for 2 years.
Their biggest achievement is convincing anybody this is newsworthy.
Yeah yeah, this is a bit offtopic, but since this is Microsoft we're talking about, I just wanted, for the record, to say that Google is a WAY better company than Microsoft. Hopefully, a chair won't come flying out at me from my computer screen for saying that. :-)
Given how many undiscovered vulnerabilities in previous versions of windows have shown up in every release up till whatever was current at the time, it seems like the big ASSumption is on your part. For the record your post doesn't make you sound cynical, it makes you sound stupid.
The Farewell Tour II
Are you saying this isn't how it works? This comic clearly states otherwise.
/. UID gets tossed around like a geek IQ, though unfair, I see people use it as a metric all the time.
Slashdot comic
Si Hoc Legere Scis Nimium Eruditionis Habes
How are they supposed to be fixed... if they are undiscovered?
Oh wait... maybe we should check the record and see all the tons of flaws and exploits which show up in OS X and Teh Lunix? Because they have MORE than enough security problems to make anyone except the most unwashed of the ignorant and uninformed masses know that OSX and Teh Lunix's security model is based 100% upon obscurity. Not even taking security into account, they aren't even programmed well. Why else do they have to come out with new versions every six months?
For the record, you post makes you sound not only stupid, but fatally uninformed.
http://da.nieltiggemann.de/science/rng/dilbert.png
OK, so no one is reading these but I misspoke - NSS does use the windows random number generator aka "SystemFunction036" to seed the NSS RNG, but only in combination with a lot of other noise sources. So... less bad?
This paper uses the term "backward security" to mean something similar but subtly different about future secrets. The paper's matching term "forward security" talks about keeping older secrets secure.
The paper claims that this terminology is "common." I guess it depends on what community you're in.