The cloud is proving itself a double-edged sword: It grants individuals and organizations with limited resources quick, inexpensive access to a wealth of computing power. That's all well and good for a research organization crunching data to cure a debilitating disease or a developer who has authored the next big mobile app. But bad guys can harness that same inexpensive power to commit cyber crimes in a new, convenient way.
A German white-hat hacker named Thomas Roth claims he has found a way to use EC2 and some custom software to crack the password of WPA-PSK-protected networks in around 20 minutes. With some tweaks to his software -- which tests 400,000 passwords per second using the EC2 compute power -- Roth said he has could reduce that cracking time to six minutes, about $1.68 worth of time on Amazon EC2. (Amazon charges 28 cents per minute to use its services.)
The exploitation of public cloud services to perform misdeeds isn't entirely new, a point that Roth himself acknowledges in his blog: "Moxie Marlinspike, a hacker/sailor/pyrotechnician, is running a service called WPACracker that can be used for cracking handshake captures of WPA-PSK using several very large dictionaries on a 400 CPU cluster that runs on the Amazon cloud."
What's new here, according to Roth, is the speed with which password storage on SHA-1 hashes can be extracted, thanks to Amazon's new cluster GPU instances. "GPUs are (depending on the algorithm and the implementation) some hundred times faster compared to standard quad-core CPUs when it comes to brute forcing SHA-1 and MD," Roth explained.
GPU-assisted servers were previously available only in supercomputers and not to the public at large, according to Roth; that's changed with EC2.
Roth attributes the success of his brute-force technique to a weakness in SHA-1. In an earlier blog posting, he wrote, "SHA-1 was never made to store passwords. SHA-1 is a hash algorithm, it was made for verifying data. It was made to be as fast and as collision free as possible, and that's the problem when using it for storing passwords: It's too fast! ... Instead of hash algorithms, one should use key-derivation functions like PBKDF2 or scrypt. Some of these functions hash passwords some thousand times and make brute forcing a lot harder."