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"
League of Legends database compromised, passwords hashed without salt
51–60 of 109 posts
Re: League of Legends database compromised, passwords hashed without salt
#52Earlier 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.
Re: League of Legends database compromised, passwords hashed without salt
#53Re: League of Legends database compromised, passwords hashed without salt
#54Earlier 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.
Re: League of Legends database compromised, passwords hashed without salt
#55It 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.
Re: League of Legends database compromised, passwords hashed without salt
#56Earlier 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…
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
#57I'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.
Re: League of Legends database compromised, passwords hashed without salt
#58Just 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.
Re: League of Legends database compromised, passwords hashed without salt
#59Earlier 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…
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
#60I 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.