News for hackers. Stuff that matters.
Re:LivingSocial Hacked – 50 Million Customers Affected by mdasen on Friday April 26, 2013 @05:55PM (#5615730)
That's good. However, if a good proportion of people use one of the 1,000 most common passwords, then they can hack those accounts in the time it takes to compute 50M * 1,000 hashes. With CUDA, it seems that you can do hundreds of millions per second. At 100,000,000 per second, you could compute that in 500 seconds (under 10 minutes). http://www.golubev.com/hashgpu.htm - this claims into the billions per second.

When were talking 5B tries per second, that means trying the most common 100,000 passwords against each of the 50M accounts in under 20 minutes. The most common 1,000,000 passwords against all 50M accounts in under 3 hours; the most common 10M passwords against all 50M accounts in a little over a day.

Hashing is good, salting is better, but unless there was a work factor involved like PBKDF2, bcrypt, or scrypt, it seems like it's protection against people who don't know what they're doing more than against people who know what they're doing. I'm not the type to say that we need to protect against people who have the money to make ASICs (app-specific integrated circuits likely used by governments), but I do think protection against nVidia chips is warranted.

Now, it's genuinely possible that by "hashed and salted", they mean they used bcrypt or PBKDF2 (and simply aren't giving details in the email). But, if it's a salted SHA1, I think phishing would be harder than cracking a substantial proportion of them.

Re:LivingSocial Hacked – 50 Million Customers Affected by vog on Friday April 26, 2013 @07:34PM (#5616107)
> ... then they can hack those accounts in the time it takes to compute 50M 1,000 hashes*

That's why you might want to use Bcrypt instead of SHA-1 or SHA-256.

https://en.wikipedia.org/wiki/Bcrypt

Re:LivingSocial Hacked – 50 Million Customers Affected by EvanKelly on Friday April 26, 2013 @07:08PM (#5616028)
Maybe I'm misunderstanding (entirely possible!) and I think your point still stands, but isn't it 50M * 1,000 hashes * # of possible salts?

EDIT: Just realized that the salts have to be stored somewhere and the attacker probably grabbed those as well. I think that answers my question.

Re:LivingSocial Hacked – 50 Million Customers Affected by mpyne on Friday April 26, 2013 @07:12PM (#5616040)
No, because the salt is stored with the password. Salts are used to defend against reversing a password hash into a password, but they don't appreciably impede bruteforcing passwords into hashes.
Re:LivingSocial Hacked – 50 Million Customers Affected by nwh on Friday April 26, 2013 @09:18PM (#5616407)
It does mean that for a large dictionary attack things will go a lot slower. Rather than one computing one hash and comparing it to 50M hashes, the same word must be hashed with 50M different salts and then compared with their respective hashes.
Re:LivingSocial Hacked – 50 Million Customers Affected by hexonexxon on Saturday April 27, 2013 @02:23PM (#5618580)
You can rent miners on the bitcoin network to use their pooled hashrate to break passwords, same with moxie's service cloudcracker.com
Re:LivingSocial Hacked – 50 Million Customers Affected by mpyne on Friday April 26, 2013 @10:12PM (#5616522)
That's a more specific way of phrasing reversing the hash into a password, yes. ;)
Re:LivingSocial Hacked – 50 Million Customers Affected by rmc on Sunday April 28, 2013 @02:29PM (#5622180)
Salts are used to make rainbow tables useless.
Re:LivingSocial Hacked – 50 Million Customers Affected by twistedpair on Friday April 26, 2013 @07:34PM (#5616106)
I'm curious why I've never heard anyone suggesting to make a public/private key pair, burn the the private key, and just encrypt passwords with the public key as your hashing function.

Short of finding an exploit in GPG, you'd have to crack the public key used which would be near impossible if a long key was used. This assumes you keep that key safe.

So why not literally make a key pair and throw away the key?

Re:LivingSocial Hacked – 50 Million Customers Affected by bcoates on Friday April 26, 2013 @08:23PM (#5616266)
At best, that's just a hash function, so no matter how long the key is you can still just guess passwords and do trial encryptions just like you would with a hashed, salted password.

If you used the same key for all your site's passwords an attacker could build a rainbow table so you don't even get to not salt.

It would be a lot slower than a normal hash so it'd be harder to brute force, but you can get the same protection in a simpler, more predictable system by just using PBKDF2 with enough repeated hashes.

Re:LivingSocial Hacked – 50 Million Customers Affected by eksith on Friday April 26, 2013 @08:34PM (#5616291)
The situation is a bit more complicated than that : http://security.stackexchange.com/a/6415

I don't subscribe to one "scheme" for passwords since the easiest method (to implement, not crack) will be the avenue malicious hackers also pursue.

This is why most of my custom jobs involve an application specific salt per installation, in addition to the user-unique salt + password hash and then CFB encrypt the salt using another app-specific password + username hash.

Re:LivingSocial Hacked – 50 Million Customers Affected by bcoates on Friday April 26, 2013 @08:57PM (#5616351)
I'm not saying PBKDF2 is ideal, I'm just saying that it has all the possible advantages of the proposed GPG based password storage without any of the weirdness of using crypto primitives in a way they weren't intended for.
Re:LivingSocial Hacked – 50 Million Customers Affected by floody-berry on Saturday April 27, 2013 @02:27PM (#5618598)
people actually pay you just to make shit up?
Re:LivingSocial Hacked – 50 Million Customers Affected by eksith on Sunday April 28, 2013 @08:12PM (#5623434)
Yes, actually. And to be more civilized when I disagree with them.

Edit: My standard response

http://eksith.wordpress.com/2013/04/08/diy-hashing-if-you-mu...

Re:LivingSocial Hacked – 50 Million Customers Affected by sk5t on Saturday April 27, 2013 @03:55PM (#5618860)
I can't disagree with your sentiment... there comes a point where a hardware security module makes more sense than extraordinarily convoluted, tortured concealment of the salt and hashing mechanism.
Re:LivingSocial Hacked – 50 Million Customers Affected by floody-berry on Sunday April 28, 2013 @06:45AM (#5620852)
It was perhaps unnecessarily blunt, but that is the root problem with most of these leaks: Someone who doesn't know what they're doing implementing a scheme that is only slightly more secure than storing the passwords in plaintext.

It turns out LivingSocial was actually using SHA-1 with a 40 byte salt [1].

> LivingSocial never stores passwords in plain text. LivingSocial passwords were hashed with SHA1 using a random 40 byte salt. What this means is that our system took the passwords entered by customers and used an algorithm to change them into a unique data string (essentially creating a unique data fingerprint) – that’s the “hash”. To add an additional layer of protection, the “salt” elongates the password and adds complexity. We have switched our hashing algorithm from SHA1 to bcrypt.

A 40 byte salt? "_additional_ layer of protection"? "elongates the password"? It's clear they thought they were implementing extra security (hey, let's use a 40 byte salt instead of 16, mega protection!) but failed miserably because they did not know what they were trying to combat.

[1] https://www.livingsocial.com/createpassword

Re:LivingSocial Hacked – 50 Million Customers Affected by pindi on Friday April 26, 2013 @07:59PM (#5616197)
A similar method is a "pepper", a form of salt common to all users and stored in the application configuration, allowing the passwords to resist attack even if the hash and user-specific salt are lost. The reason it's not often used is that the assumption is that if your database is compromised, any other commonly-used secret keys on the server will be too. It can be useful for defense in depth, though.
Re:LivingSocial Hacked – 50 Million Customers Affected by marshray on Saturday April 27, 2013 @10:36PM (#5619933)
Serious question: How is "pepper" any different than encrypting a traditional salted hash using a symmetric cipher as if it were any other kind of data?
Re:LivingSocial Hacked – 50 Million Customers Affected by babuskov on Friday April 26, 2013 @08:00PM (#5616202)
Maybe because encryption using public key is much more CPU intensive and slower than hashing? Since you have users logging into the system all the time, you would need to encrypt the typed password in order to compare it with the record in the database, and this could put a great load on the server CPU if you have many users logging in.
Re:LivingSocial Hacked – 50 Million Customers Affected by Evbn on Sunday April 28, 2013 @11:42PM (#5623952)
That is the goal. Slower hashing is harder to crack, is more secure.

Login load is nothing compared to the rest of the app.

Re:LivingSocial Hacked – 50 Million Customers Affected by CoffeeDregs on Friday April 26, 2013 @08:18PM (#5616253)
Sounds as if you're suggesting increasing the work for the encryption/decryption? If so, there are well known ways of increasing the work and they're designed specifically for hashing [this kind of data]. I suspect the reason people haven't used pub/priv for such uses is that there are better algorithms for it.