Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

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.


I believe they mean hashed (as pointed out later in the article) but if it was encryption I'd disagree pretty strongly with the assertion it's safer than straight hashing.

If you don't need the original password, hashing should be used, not encryption. Hashing means there is no issue of key management as is the case with the encryption system. If those keys are mishandled then it's trivial to recover all the plaintext passwords.

Decryption would be difficult without the keys, but it's likely that (a) they have keys stored somewhere insecure or (b) they'd perform the encryption with a single key for all passwords. For (b), this means you simply had to have a valid account and you'd have a plaintext-ciphertext pair to bruteforce. Once that single key is extracted you'd have access to all the other passwords as well.


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.


Later it says "We compared encrypted password hashes" so they are probably hashed.


That is an admission, otherwise this act would be futile.

"We think someone stole animals from our pet shop, so we compared the empty cages to filled ones to figure out..."


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


It is really kind-of very good practice to salt passwords. We've talked a bit about this recently here on HN:

http://queue.acm.org/detail.cfm?id=2254400

http://news.ycombinator.com/item?id=4082746


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.


Thanks. I'm no security expert but I couldn't see how it would make a difference.


Sure, to help illustrate it further: (don't use SHA1, I'm using it to avoid a discussion of why you wouldn't manually use a salt with bcrypt)

user1: SHA1("salt123"+"puppydog11") = SOME_HASH

user2: SHA1("salt456"+"puppydog11") = SOME_DIFF_HASH

This way, even for the same password, there are different salts, and thus different hashes. No one can run a rainbow attack unless they've generated rainbow tables for that salt (frankly, it would be possible, but useless to generate a rainbow table for a specific salt)




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: