Live data from Hacker News

League of Legends database compromised, passwords hashed without salt

euw.leagueoflegends.com

51–60 of 109 posts

Re: League of Legends database compromised, passwords hashed without salt

#51

Earlier quoted context omitted.

I was going to ask: is there actually any benefit salting a password that will be encrypted?

Despite the other reply you got (which was my original 'lol'), no, there isn't an advantage to salting a password that is going to be encrypted with symmetrical encryption. I mean, what would that even mean? Encrypt("salt"+"password", key) = ENCRYPTED_DATA Decrypt(ENCRYPTED_DATA, key) = "salt"+"password"

In short, it is BEST to HASH with a salt. Hash with a salt and don't use symmetrical key encryption methods.

Re: League of Legends database compromised, passwords hashed without salt

#52
post #51

Earlier quoted context omitted.

Despite the other reply you got (which was my original 'lol'), no, there isn't an advantage to salting a password that is going to be encrypted with symmetrical encryption. I mean, what would that even mean? Encrypt("salt"+"password", key) = ENCRYPTED_DATA Decrypt(ENCRYPTED_DATA, key) = "salt"+"password"

In short, it is BEST to HASH with a salt. Hash with a salt and don't use symmetrical key encryption methods.

Yup, always hash with a salt (or use an algorithm that does it for you). I added another example below for this guy. And yes, definitely don't use symmetric encryption.

Re: League of Legends database compromised, passwords hashed without salt

#54
post #8

Earlier quoted context omitted.

There's Secure Remote Password, which stores a non-reversible verifier instead: http://en.wikipedia.org/wiki/Secure_Remote_Password_protocol Apparently it's quite tricky to implement properly though.

It's also quite tricky to explain to your investors and your customers that your password database was stolen. Maybe some day there will be "Security as a Service" where someone helps you do this properly.

I believe @tptacek will gladly accept your money for this service. As will Cigital.

Re: League of Legends database compromised, passwords hashed without salt

#55
post #2

It says encrypted not hashed, these are not the same thing. Encryption uses keys and without the keys you can't get the value without a huge brute force effort. Hash without salt can be broken trivially. It'd bad either way but encrypted is way better than leaked hash.

Come on now, this is a PR release. Most users aren't going to know what "hashed" means, but most people do know what encrypted means. There's nothing to be deduced from their using the word encrypted.

Re: League of Legends database compromised, passwords hashed without salt

#56

Earlier quoted context omitted.

No. God, I hope we don't find out they're use symmetric encryption. Do I need to explain why that's a stupid idea? In case I do: 1) The site doesn't need my password in plaintext. 2) If the server is compromised, the attackers don't just have salted or unsalted hashes THEY HAVE FULL PLAINTEXT PASSWORDS (unless it's some weird case where they have DB but not FS access). No, either way, they're wrong. (Sigh, I'm sorry…

No, you didn't need to explain that. (I hear ya though.) Yes, they are probably wrong. However, unlike the recent LinkedIn leak, at the moment we know almost nothing about how they were storing passwords. (Although, according to a thread on their forums, they did leave a user's previous and current passwords both simultaneously active -- not a good sign.) I think that HN didn't used to so readily confuse speculation…

Well, considering they said they compared "hashes" later on, and the hopeful unlikeliness that they were really using symmetric encryption, I feel like it's a pretty sure educated guess and not just a knee-jerk reaction.

edit: I didn't mean to be personally chastizing in my first post, I'm just extremely distraught at the advice I see in these threads, the continued confusion of people and the fact that people with massive userbases either aren't paying attention or are in this ignorant group of "it won't happen to me" people.

Re: League of Legends database compromised, passwords hashed without salt

#57
post #32

I'm nearly positive the US code salted the hashes (it's been a long time since I was in that code :). I say US code because (again, memory is dim) I think they had a partnership with a company in the EU and that (might have) included authentication. The platform guys at Riot were the sharpest group of engineers I've worked with. Smart and able to get stuff done without bike shedding. They did stuff right.

It is possible to tell the passwords were unsalted because: "We compared encrypted password hashes and discovered that 11 passwords were shared by over 10,000 players each" and one of the points of salting is to make impossible to identify identical passwords from the hashes.

You left out an 'un' in front of salted. Or you're wrong. I'm hoping you just mistyped. [edit :)]

Re: League of Legends database compromised, passwords hashed without salt

#58
post #3

Just be sure you don't use your LoL password on any other game/email. The hackers will very likely test the info against your email and diablo 3.

Your weakest link is the website with the weakest security. Now they will try your password on your other accounts.

Re: League of Legends database compromised, passwords hashed without salt

#59
post #42
post #32

Earlier quoted context omitted.

It is possible to tell the passwords were unsalted because: "We compared encrypted password hashes and discovered that 11 passwords were shared by over 10,000 players each" and one of the points of salting is to make impossible to identify identical passwords from the hashes.

Not really. You get that with per-password salting, but having a single salt for your whole database is not uncommon. Since the main point of salting AFAIK is to ward off rainbow tables, it's better than nothing. EDIT: As noted in the comments, the way I put this originally was kind of flip and misleading and I apologize for creating confusion. My point was that I've seen a number of places do it that way, so just th…

What?

So if I have access to that salt, I generate a new rainbow table and get a huge percent of your users.

The point of salting is to make rainbow tables no more efficient than brute forcing. If each user has a unique salt, there's literally no benefit to generating a rainbow table.

Re: League of Legends database compromised, passwords hashed without salt

#60
I don't understand why this keeps happening. When someone designs the user/password model for a website or software do they serious not even consider properly encrypting the passwords? This is not rocket science, implementing a relatively secure password hashing setup takes a minimal amount of work. Hell, adding a salt is an extra field in the database, an extra line of code when creating a user and an extra "+salt" when computing the hash.

I honestly think they spend more time coming up with ridiculous password requirements than actually encrypting the passwords. Possible dialog:

Dev 1: The passwords must have at least one symbol, one number, no dictionary words, and it can't be longer than 15 characters.

Dev 2: That'll be pretty secure, which hashing functions should we use? And should we salt it?

Dev 1: I think MD5 should be secure enough and salts are just overkill.

Post reply on HN