Breaking a Password Manager
Interesting story of breaking the security of the RoboForm password manager in order to recover a cryptocurrency wallet password.
Grand and Bruno spent months reverse engineering the version of the RoboForm program that they thought Michael had used in 2013 and found that the pseudo-random number generator used to generate passwords in that version—and subsequent versions until 2015—did indeed have a significant flaw that made the random number generator not so random. The RoboForm program unwisely tied the random passwords it generated to the date and time on the user’s computer—it determined the computer’s date and time, and then generated passwords that were predictable. If you knew the date and time and other parameters, you could compute any password that would have been generated on a certain date and time in the past.
If Michael knew the day or general time frame in 2013 when he generated it, as well as the parameters he used to generate the password (for example, the number of characters in the password, including lower- and upper-case letters, figures, and special characters), this would narrow the possible password guesses to a manageable number. Then they could hijack the RoboForm function responsible for checking the date and time on a computer and get it to travel back in time, believing the current date was a day in the 2013 time frame when Michael generated his password. RoboForm would then spit out the same passwords it generated on the days in 2013.
Subscribe to comments on this entry
Time is random in small measures • June 4, 2024 8:32 AM
@ALL
When you see
“… unwisely tied the random passwords it generated to the date and time on the user’s computerit determined the computer’s date and time, and then generated passwords that were predictable.”
You might get the impression that using “time” is a bad idea.
The answer is both “Yes and No” and depends in very large part on the measure or quantity you use and how you use it.
All clocks drift even those atomic clocks up in GPS satellites as far as we can tell the drift has some ideal properties as a source of entropy. The problem is extracting it and debiasing it.
The more accurate the clock the less entropy you get in any given time period. If you use say one of a series of fast rotating neutron stars
https://esahubble.org/images/potm2404a/
Then you are looking at thousands of years to get a bit you might be able to extract.
Use a water clock and you might get usable bits of entropy at a rate of several a minute.
The problem programmers face is “Computers are deterministic” and governed by an XTAL clock that gets multiplied by PLL circuits to the low microwave frequencies and every internal action is tied to it in some way.
So there is no entropy because you measure with the clock that generates the signal.
Which means using a signal that is fully independent of the XTAL clock in the computer, and that is not easy (there are tricks you can do in that there are usually two XTALs in a PC the AT-Cut CPU crystal at 30MHz or more and the B-Cut RTC crystal at 32KHz and you can “Waggon Wheel” them).
There are books written on this subject (and our host has written a couple of them) but they all only scratch the surface of the issues of time measurement and entropy. It’s very definitely a “here be dragons” subject and why most people should look for other sources of entropy that are easier to understand.