Catch up on stories from the past week (and beyond) at the Slashdot story archive

 



Forgot your password?
typodupeerror
×
Security Encryption Graphics Hardware

Cheap GPUs Rendering Strong Passwords Useless 615

StrongGlad writes with a story at ZDNet describing how it's getting easier to use GPU processing against passwords once considered quite strong. "Take a cheap GPU (like the Radeon HD 5770) and the free GPU-powered password busting tool called 'ighashgpu' and you have yourself a lean, mean password busting machine. How lean and mean? Working against NTLM login passwords, a password of 'fjR8n' can be broken on the CPU in 24 seconds, at a rate of 9.8 million password guesses per second. On the GPU, it takes less than a second at a rate of 3.3 billion passwords per second. Increase the password to 6 characters (pYDbL6), and the CPU takes 1 hour 30 minutes versus only four seconds on the GPU. Go further to 7 characters (fh0GH5h), and the CPU would grind along for 4 days, versus a frankly worrying 17 minutes 30 seconds for the GPU."
This discussion has been archived. No new comments can be posted.

Cheap GPUs Rendering Strong Passwords Useless

Comments Filter:
  • And? (Score:5, Insightful)

    by ledow ( 319597 ) on Sunday June 05, 2011 @03:53PM (#36344746) Homepage

    And any system worth its salt (crypto-hashing joke) won't allow that many attempts against any external or internal authenticator and will NEVER expose its password hashes.

    Seriously, if someone has your password hash, it's game over anyway and it doesn't matter if it takes 2 weeks or 2 months to guess the passwords. And if they don't, then you shouldn't be letting them try several BILLION attempts at guessing a password anyway.

    • Re: (Score:2, Insightful)

      by Anonymous Coward

      Whenever a company "loses" a database with passwords, we scorch them for storing plaintext passwords. If hashing is supposed to help, then it has to create a significant barrier. As the processing power required for brute forcing password hashes makes longer and longer passwords insufficient, it should become clear that the age of passwords as the sole authentication is coming to an end.

      • Re: (Score:2, Informative)

        by Yvanhoe ( 564877 )
        hashing != encryption
        • Re: (Score:3, Insightful)

          by Anonymous Coward

          Like this article shows, they're basically equivalent given enough processing power. The end result is the same; the "hidden" information becomes known, with relatively little ease. Sure, salting may currently help make the brute-force "decryption" of a hashed password more difficult, but hardware is always getting faster and more powerful.

        • by jamesh ( 87723 )

          hashing != encryption

          No the parent poster was correct in his/her terminology. Encryption is what you use if you want to get the original data back again. Hashing is what you use when you only need to prove that the supplied information matches the original information. The latter is the best way to store passwords for user authentication. To be useful, you don't need to know what the original password was, you only need to know that the password the user supplied hashes to the same value as the stored hash.

          If the company is sto

      • by atrus ( 73476 )
        Its all an arms race in speed. However, if people were smart and realized that hashing was never a good solution and instead followed something like PBKDF2 with a large C (thousands of rounds), we still would be safe.
    • Defense in depth. By your line of reasoning, there's no problem storing passwords in cleartext. Although a particular line of defense shouldn't be necessary, doesn't mean you shouldn't worry if it's quickly losing potency. There will always be security vulnerabilities, so for someone, somewhere, it matters, e.g. PSN.
    • by mlts ( 1038732 ) *

      Realistically, we need to have passwords as *an* authentication method, as opposed to *the* auth method.

      Until we can decide on another method of authentication, perhaps one thing to do is have the mechanism that does the password validation (as well as storing hashes) physically secured on a tamper resistant card, similar to how public keys are stored on HSMs.

      The mechanism on the tamper resistant card would have ports to store data on external media (encrypted with LUKS where the whole drive is encrypted wi

  • by ColdWetDog ( 752185 ) on Sunday June 05, 2011 @03:54PM (#36344748) Homepage

    Go further to 7 characters (fh0GH5h), and the CPU would grind along for 4 days, versus a frankly worrying 17 minutes 30 seconds for the GPU."

    OK, so go to 15 characters. Using a password generator I can go as far as I like. Using some sort of password bank program, I can store passwords / phrases of any complexity and use copy and paste, thus having only one strong password to remember.

    So, what am I missing? (And lets keep it on topic, folks).

    • by Securityemo ( 1407943 ) on Sunday June 05, 2011 @04:01PM (#36344828) Journal
      Also, password phrases. Most online stuff allows you to type in whole sentences. This + some substitution with special characters according to some personal mnemonic means pretty much unbreakable passwords. And even if it's overkill in a technical sense, I seem to be able to remember passphrases easier than passwords.
      • by zlogic ( 892404 )

        Password pharses are easier to intercept (and remember) if someone is looking over your shoulder. Even if they skip a character or two they could still guess the word.

    • Rent a few Amazon AWS Cluster GPU Instances and your 15 char password is broken for a mere 4 to 8 USD... Get the point?
      • by PTBarnum ( 233319 ) on Sunday June 05, 2011 @04:33PM (#36345048)

        Exponential growth. Get the point?

        Using the same scaling as the summary, you can crack 8 characters with about 64 GPU hours, which is about $50 on AWS.

        By the time you get to 10 characters, you are talking $700k. 12 characters is into the billions. Of course, I doubt that AWS will scale their fleet to billions of servers just so you can rent it for one hour, so you're going to have to pay to build your own data centers and, for that matter, chip factories.

        • by node 3 ( 115640 ) on Sunday June 05, 2011 @04:47PM (#36345144)

          And that's just to get ONE password. Unless you know what you are going after, you probably aren't going to put in that much effort. And you most likely won't know ahead of time going into it if the password is short enough to be worth even trying (although I suppose you could make some calculated risks here).

        • by martin-boundary ( 547041 ) on Sunday June 05, 2011 @06:19PM (#36345766)

          Exponential growth. Get the point?

          You're right of course, but I'd like to chime in with another observation: people don't grow the size of their passwords to counter Moore's law.

          Statistically, the human population will choose an average (rather low) size of password, and that's going to stay constant over time. When faster machines appear, the average amount of time required to crack a significant fraction of human passwords goes down.

    • Re: (Score:2, Interesting)

      by alt236_ftw ( 2007300 )

      Single point of failure.

      Essentially, you will need to carry a copy of your password bank with you AND the application which opens it at all times to function.
      This means that if it gets compromised (your memory stick gets stolen/your dropbox account gets compromised/ etc...) an attacker will only need to guess/bruteforce/dictionary attack/social engineer/look over your shoulder one password and gain access to everything in your wallet.

      Its not a bad plan in principle, but only if you keep important passwords

    • Most people aren't going to use password bank programs for 15 character passwords, it's too inconvenient. At that point, you might as well give up on passwords and move on to RSA keys.

      This attack is only useful if the attacker can access the password file, it can be trivially stopped remotely by enforcing a delay of 1 second between login attempts. The lesson here is for website owners to keep their password files safe, because users WILL be vulnerable. Implement multiple layers of security around the pas
    • by plsuh ( 129598 ) <plsuh@go[ ]ast.com ['ode' in gap]> on Sunday June 05, 2011 @04:55PM (#36345224) Homepage

      What you're missing is that the percentage of the general population that can consistently (a) remember a long password and (b) type it without a failure at least 50% of the time, is in the single digits. Remember, general population, not geeks.

      I've expressed the opinion for several years now that password authentication is broken, and that we need to move to two-factor authentication schemes ASAP.

      --Paul

  • by homesnatch ( 1089609 ) on Sunday June 05, 2011 @03:55PM (#36344760)
    It is well known that if someone gets your hashed password, it is as good as cracked. 17 minutes vs 4 minutes is irrelevant.

    On a live system, it is quite another story. You can't just remotely try 3.3 Billion passwords per second.. You'll be locked out after 10 attempts or so.
    • by sco08y ( 615665 ) on Sunday June 05, 2011 @05:11PM (#36345314)

      It is well known that if someone gets your hashed password, it is as good as cracked. 17 minutes vs 4 minutes is irrelevant.

      Bullshit. It is well known by people who don't know what they're talking about, which includes TFA.

      Do you seriously think that in the age of bitcoin we can't make a hash function that is arbitrarily difficult?

      Use an adaptive cryptographic hash function: bcrypt [wikipedia.org], PBKDF2 [wikipedia.org] or scrypt [tarsnap.com]. The key feature is a tunable stretch factor that basically sets the number of rounds of hashing. Set that factor (by means of a simple timing loop) to require 1 second of CPU time (or GPU time or whatever) to hash.

      Now the simplest 8 character A-Z password will take an expected 3,311 years to break. You'll obviously want a safety margin, and will expect them to have more computing power a few years down the road. But you can tune the stretch factor to ensure that a reasonably strong password is perfectly good against offline attacks.

      • by letsief ( 1053922 ) on Sunday June 05, 2011 @07:09PM (#36346046)

        It's not that simple. Cryptography is an asymmetric game: you always have to assume the attacker has orders of magnitude more computing resources than the target. Cryptography works because we can (usually) find problems that get exponentially harder and harder to crack. For instance, let's say you just want to encrypt something. A block cipher with a 64-bit key is just on the edge of being brute-forcible today. But, as a general rule, you could use a block cipher with a 128-bit key and it should only be half as fast as the 64-bit cipher (note I said this is a general rule, there are number of factors that influence speed). A 128-bit block cipher is 2^64 times more difficult to crack than a 64-bit block cipher. So, the target can make something 2^64 times more difficult to crack by just doing twice the work.

        Your proposed solution just grows linearly, not exponentially. If you iterate SHA-1 10,000 times instead of just 5,000 you're also doing twice the work, but this time you've only made your password twice as difficult to crack. If you can suddenly start doing twice the work you did before, you have to assume the attackers can as well.

        Yes, iterating hash functions buys us more time, but this is a game that targets can't win. Plus, you're ignoring all of the problems associated with moving to higher iteration counts. Probably first and foremost is interoperability. There's a massive application base out there that just uses MD5 or SHA1 with little to no iteration. It's not easy for software like Windows to change. I think it wasn't until Vista that Microsoft stopped storing a LAN Manager hash of users' passwords, which made then trivial to break. That's been known to be bad for a long, long time. Plus, in most web-based applications its not the client that does the hash operation, its the server. While your new Core i5 processor could probably easily handle bumping up the iteration count by an order of magnitude or so, Google's Gmail servers probably can't.

        Longer, more complicated passwords would be more effective than increasing iteration counts, but people are bad at generating and remembering long passwords. So, the only long term solution seems to be moving to stronger forms of authentication, like smart cards or using devices like smart phones as one-time password devices.

  • My passwords(for important things like the disk encryption one or my work email) are at least 13~15 characters long, including Upper-Lower cases, numbers and special characters, and no dictionary words. Now I did my part, so how about the people on the server side ?
  • by TubeSteak ( 669689 ) on Sunday June 05, 2011 @03:57PM (#36344784) Journal

    Is my five letter password more secure if the salt is 15 characters long?
    Or am I misunderstanding the nature of the attack and of hashed passwords?

    • Re: (Score:3, Informative)

      by mazesc ( 1922428 )
      You are misunderstanding it. Salting only protects from precomputed tables containing (password, hash) entries (rainbow tables) when using a unique salt. I didn't read TFA, but I assume this is a simple brute-force attack. The attacker would just add the salt to each guess, which does not make it any more difficult.
    • by Hermel ( 958089 )

      > Is my five letter password more secure if the salt is 15 characters long?

      No. The salt helps against dictionary attacks. Normally, it is different for every user, but not secret. It does not help against brute-force attacks.

      What does help, is adding more rounds to your key-derivation function (e.g. PBKDF2). Or choosing a longer password.

    • The crazy thing about salt is that it's always known by the attacker...

  • Who cares? (Score:4, Insightful)

    by IICV ( 652597 ) on Sunday June 05, 2011 @03:59PM (#36344800)

    Hooray, you can crack an NTLM [wikipedia.org] password in like five seconds! Too bad Windows has preferentially used Kerberos since Win2K, which means that pretty much any in-practice Windows network you'd like to hack in to is using a real security scheme.

    I mean, really. This article isn't about how much faster a GPU is than a CPU for hash cracking (after all, four days to reverse a hash is still unacceptable, and that's brute forcing it and not using one of the widely available NTLM rainbow tables), it's about how much NTLM sucks and Microsoft should have never contravened the first rule of cryptography and tried to roll their own.

    • Re:Who cares? (Score:4, Informative)

      by ivoras ( 455934 ) <[rh.ref] [ta] [sarovi]> on Sunday June 05, 2011 @04:52PM (#36345186) Homepage

      Technically, MS *did* use a valid and acceptedly secure hash functions, DES and MD4. The problem is that, because of backwards compatibility across their 20-year product spans, they were not as vigilant in updating the protocols. Even when they *did* upgrade them, they went to MD5 (with NTLMv2) - which was again proced weak - but they continued to use the older protocol which allowed trivial attacks.

      Which is why anyone "worth his salt" will laugh if you propose a crypto system which is supposed to last 20 years and is not flexible in its choice of component algorithms.

  • Shameless plug follows...

    Seriously, once you're free from having to remember your own passwords, you can make them as long and complex as you like, and you can use a different *truly random* password for every login, so one compromise won't lead to others. There are freeware workalikes, but none that match 1P's feature set (syncing, browser auto-fill/change plugins, etc). Highly recommended.

  • Windows problem! (Score:4, Informative)

    by SmilingBoy ( 686281 ) on Sunday June 05, 2011 @04:00PM (#36344810)

    This is really a Windows problem. Windows uses a simple, fast hashing function (I think some version of HMAC). This means that an attacker can churn through many passwords very quickly (apparently billions per second per the article). You should really use a slow hashing function that takes around 0.1 to 1 seconds to calculate one hash on the server. Even a GPU will then take very long! Plus don't forget salt (different per user) against rainbow table attacks, plus key strengthening. Something like bcrypt is pretty good, but scrypt is probably even better as it does not only require a lot of CPU time but also significant memory (making dedicated hardware crackers much more expensive).

    • even if the hashing function is fast, you can use many iterations to slow it down.
      • by dave420 ( 699308 )
        Exactly. That was the problem with the password storage on Blackberries. It iterated the HMAC once, whereas iOS 4 does it 10,000 times. Clearly an implementation fault.
  • Faulty Assumtions (Score:4, Insightful)

    by imsabbel ( 611519 ) on Sunday June 05, 2011 @04:01PM (#36344824)

    A 6-7 letter password only using letters and numbers is NOT strong.

    It would be trivial to cover it with rainbow tables and have near realtime cracking even without GPUs.

    _Not weak_ would be 10 letter+, with a salt. Would make brute forcing not really that easy anymore...

  • If only storage technology had kept up with GPUs! Instead of being limited to 8 character passwords because of stringent storage limitations, we could use entire passphrases that might be both fairly easy to remember and far more challenging for password guessing. But I guess we'll have to wait for some sort of technological breakthrough...

    :p

  • Since GPUs are rendering traditional passwords insecure and obsolete, why not go with a broader usage of smart cards? Also, build in mechanisms to deny IP addresses from machines that are attempting to use brute force. I do it with OpenBSD's PF. After so many failed attempts over a period of time, the IP gets blacklisted. After 24 hours, the blacklist gets purged.
  • So the TFA proves that password cracking is exponential in the length of the password, and that GPUs cut down on the rather large constant in front of the exponent. This still does not eliminate the fact that each digit added increases the cracking time exponentially. In other words, use a longer password. Of course, NTLM is a farce since it only hashes 8 byte chunks, so you can't up the cracking time by more than X^8. The moral of the story here is that GPUs are faster than CPUs (for some specialized a

    • by jimicus ( 737525 )

      Is NTLM still in use? It's been deprecated for years - is it even enabled by default on recent versions of Windows?

    • by Hatta ( 162192 )

      This still does not eliminate the fact that each digit added increases the cracking time exponentially. In other words, use a longer password.

      There's only so much entropy a human brain can memorize easily. If you try to make it easier to remember, by making it pronounceable, or even using words, that decreases entropy defeating the purpose of extending your password.

      Dunno what solution there is when computers can brute force passwords longer than a human can memorize.

  • by rossdee ( 243626 ) on Sunday June 05, 2011 @04:30PM (#36345028)

    3m are going to introduce a larger post-it-note

  • The problem with NTLM has been known for some time, but it is not just NTLM. It is in fact any challenge response protocol. Check this slide deck presented at the IETF in 2005: http://www.huitema.net/talks/ietf63-security.ppt [huitema.net]. The punch line is simple: don't rely on challenge response protocols! If the attacker can see both the challenge and the hash, and if the password can be remembered by the user, it will probably be cracked.
  • by pedantic bore ( 740196 ) on Sunday June 05, 2011 @04:36PM (#36345074)

    The title of the article is extremely misleading.

    I don't really care that someone can break short passwords generated via MD4. MD4 is very broken. NTLM is essentially 1992-era technology that was later picked up by Microsoft, who now deprecates its use.

    When a GPU can break 15-character AES256 keys, then I'll start to worry about the security of my 24-character key.

    • No kidding (Score:5, Informative)

      by Sycraft-fu ( 314770 ) on Sunday June 05, 2011 @05:48PM (#36345574)

      Same shit with all the scare on rainbow tables. I remember the hype of "It can crack any password in seconds!" Then I found out it meant any LM password, which has some real limitations on it (14 characters total max, as two 7 character hashes, no upper and lower case). Ahh, not so impressive then.

      Same shit with NTLM. Worlds better than LM, but not current. Wake me when it is a threat vs NTLMv2, which is what Vista and 7 use exclusively unless you manually change security policy (and XP and 2000 support it).

      Then there's the fact that they are talking about short passwords. Security comes in length and it goes up drastically with each character. They are crowing on about how easy 7 character passwords are. Ok, fine, try 14 then. It isn't like if 7 takes 18 minutes 14 takes 38 minutes. It is more like if 7 takes 18 minutes 14 takes years.

      Also to make a long, secure, password doesn't have to be that hard. Just take a phrase and modify it a bit. Say you decide the phrase "There can only be one," should be your password. Do something like "Th3r3 can only be #1!" Fairly easy to remember, yet you have to exhaust a massive space for a brute force attack.

      Finally, all this is an attack against the hashes. While we want hashes to be strong, let's face it they are a last line of defense. This is a situation where someone has already gotten in, gotten high privileges, and stolen that list. This has no relevance to dealing with breaking in to a random system remotely.

      Pretty much this is just fear mongering. Yes, you need to use longer passwords these days. So do so. However a short password really isn't as bad as they make it seem. The risk they are talking about here is only if someone happens to get the hash file from a system with NTLM passwords stored that you use a short password on. Given that the only system that qualifies for that for most people is their home desktop, if they get it the hacker has owned your system already (you have to have admin to get the SAM file) so it doesn't matter.

  • What kind of incompetent fool would still use such a pathetically weak password hashing scheme?

  • by pnot ( 96038 ) on Sunday June 05, 2011 @04:40PM (#36345092)

    Even for Slashdot, this is a little pathetic: the link is to a ZDNet article, which regurgitates a PCPro article, which in turn regurgitates a blog post by the guy who actually ran the tests [wordpress.com], Vijay Devakumar. And here's Ivan Golubev [golubev.com], who wrote the cracking tool.

    Still, ZDNet's advertisers thank you for the hits!

    • Re: (Score:3, Informative)

      In 1998, L0phtCrack showed this to us on out pentiums, and we protected against it by changing the default hash to NTLMv2.
  • by Ececheira ( 86172 ) on Sunday June 05, 2011 @05:14PM (#36345338)

    This article spells it out:
    http://www.baekdal.com/tips/password-security-usability [baekdal.com]

    Too bad most sites are too stupid to allow a long enough password. I'll take a 16-character pass-phrase with all lower case + whitespace over a hard to remember 8 character one anyday.

    • by jensend ( 71114 )

      Reminds me of the famous Bruce Schneier fact:

      Most people use passwords. Some people use passphrases. Bruce Schneier uses an epic passpoem, detailing the lives and works of seven mythical Norse heroes.

  • by wkcole ( 644783 ) on Sunday June 05, 2011 @10:54PM (#36347048)
    1. NTLM hashes have not been deemed a safe way of protecting passwords for many years.
    2. If you use NTLM hashes for password storage and a blackhat has the freedom to run a GPU cracker on them, you've almost certainly already lost whatever those passwords protect. The only advantage in cracking them would be to try them on other systems.
    3. Sure, 5, 6 and 7 character passwords are trivially cracked. The headline reference to "strong passwords" cannot refer to that fact. A short password is a weak password, and that has been known for a long time.
    4. The fastest way to strengthen passwords is to add length, not to expand the element space (as suggested in the referenced article.) To make an 6-character password limited to the base64 ("email safe") character set 64 times harder to guess, i.e. to add 6 bits of variability, just add a character of length. To do that by broadening the character set, you'd need to add a bit to each character, i.e. find another 64 available characters.

    Bottom line: Want a strong password that you can type anywhere? Make it 12 mixed case letters, numbers and at least one punctuation mark. Based on the times claimed in the article, that should take 35,000 current GPU-cracker-years.

Per buck you get more computing action with the small computer. -- R.W. Hamming

Working...