Re:Enough with the Salts: Updates on Secure Password Schemes
by geoelectric on Wednesday April 01, 2015 @01:53PM
(#9305465)
What I don't understand (truly--I'm a curious neophyte here) is why a random number would be better than salting with, say, their username.
If the assumption is that the random number is known, per both guidelines that only the user-given secret can be assumed secret and that the article says it could conceivably be stored plaintext, isn't it effectively equivalent to just another username?
Re:Enough with the Salts: Updates on Secure Password Schemes
by tarentel on Wednesday April 01, 2015 @02:55PM
(#9305933)
If two websites use this scheme and they both get hacked and a user has an account on both with the same username/password the attacker has to do half as much work. Another reason is an attacker can compute a rainbow table prior to getting access to the hashed passwords. This would reduce the amount of time the owners of the site would have to respond in the event of a breach. Finally, it's really easy and cheap to generate a random salt.
Re:Enough with the Salts: Updates on Secure Password Schemes
by icebraining on Wednesday April 01, 2015 @02:40PM
(#9305827)
You can, but it prevents you from allowing changing the username (which might be fine, but why tie yourself?) and it provides less entropy - a username + password can be small enough to fit in a rainbow table, while a random salt can have whatever size you want.
Re:Enough with the Salts: Updates on Secure Password Schemes
by nathanaldensr on Wednesday April 01, 2015 @03:10PM
(#9306041)
Excellent explanation. I'll further this by adding that, in my use of the excellent PBKDF2.NET library, I generate a salt with the same number of bits that the hashing algorithm generates (e.g., 256-bit salt for SHA256). I can't remember where I read that this was a good practice, though. :(
Re:Enough with the Salts: Updates on Secure Password Schemes
by Akkuma on Wednesday April 01, 2015 @03:41PM
(#9306262)
Why not combine the two approaches? If you have a global salt stored either with your app on a separate server you make the attack require getting access to not only the database, but your global salt as well. A global salt on its own is clearly inferior, but at least to me combined with a unique per user salt should at least offer comparable if not better security.
Think about it: adding a known global salt to each password in the same manner before hashing is effectively the same (in the long run) as not salting. Once the attacker figures out the pattern you used, he can proceed to crack specific passwords, then search for the resultant hashes in the database.