10 ms·
> As long as the salt value remains secret, this is a very effective method against rainbow attacks and other current methods of attack But salts aren't used t
by woliveirajr 6y ago
> As long as the salt value remains secret, this is a very effective method against rainbow attacks and other current methods of attack
But salts aren't used to be a secret: they are used to make existing rainbow tables useless, as the salt wasn't used to precompute the rainbow tables.
In the example they use "2@3" pre- and post-appended to the password. Ok, so any rainbow table that haven't used 2@3 is useless. But "password" will always be a lousy password and 6 characters of salt isn't that great.
- rileymat2 6y agoIf they use an unique salt for each password you are right, if they use the same salt for each password then the article is correct(ish). I should say correct enough.
- kstrauser 6y agoEven then it's better than nothing. If every company used different salt, rainbow tables would have to be completely regenerated for each company. (This is still awful, because then two users with the same password would have the same digest. If you know that joe@example.com has password "badpass", and jane@example.com has the same hashed password, then hers is also "badpass". So use randomly per-user salts, gang! Even better, pick a tested implementation of PBKDF2 or Argon2 and use that implementation. Don't roll your own crypto!) But still, it's better than nothing.
- rileymat2 6y agoOh, yeah, I agree, it is better than nothing. Just pointing out that I have seen conditions where the article is not terribly wrong in its statement. Things like bcrypt are nice because they take care of that for you.
- deleted 6y ago[deleted]
- _trampeltier 6y agoWhy not just use joe@example.com as part of the salt? So every user has a different salt.
- deleted 6y ago[deleted]
- stickfigure 6y agoUsernames and email addresses change.
- ryanlol 6y agoDoes anyone actually use rainbow tables to crack password hashes anymore with GPUs being so fast?
- kstrauser 6y agoAn O(1) "is this hash known?" lookup is going to be faster than any GPU code.
- ryanlol 6y agoIn a world with unlimited IO throughput and very few hashes to crack, yeah. Discussion from 2017: https://hashcat.net/forum/thread-6219.html https://hashcat.net/forum/thread-6219.html From 2018: https://security.stackexchange.com/questions/186953/cracking-passwords-via-hashcat-or-rainbow-tables-which-is-faster https://security.stackexchange.com/questions/186953/cracking... GPUs are much faster now. I doubt you’ll find many people using rainbowcrack or similar tools in 2021. OTOH https://www.rainbowcrackalack.com/ https://www.rainbowcrackalack.com/
- kstrauser 6y agoHuh, TIL. Thanks for the links.
- mjevans 6y agoWhat about taking results from one leak's reversed passwords and applying it to all future hash leaks? It's the same logic as applying well known target data like birthdays, anniversaries, etc.
- kstrauser 6y agoSalting makes that nearly impossible.
- mjevans 6y agoSalting makes each crack take either it's own rainbow table or other methods. I was talking about _reversed_ passwords, guesses that fulfill the algorithm. Bonus points if they look like names, words, etc, but even random junk might just be a pwgen password.
- La1n 6y ago>if they use the same salt for each password then the article is correct(ish). Wouldn't it be a pepper then? https://en.wikipedia.org/wiki/Pepper_(cryptography) https://en.wikipedia.org/wiki/Pepper_(cryptography) edit: nvm, it seems the main difference is a pepper being secret.
- cschneid 6y agoYep - a pepper is an app-wide value that forces an attacker to get both a configuration value (from the source, or env vars) and also the hashes of the passwords (a db dump). Just another incremental thing for an attacker to overcome that is cheap & easy to implement. Salts must be unique per password as far as I know? Otherwise they don't do their main goal which is to make every guess useful against only one hash. (ie: guess 'hunter2', check if any user had hunter2 as a password, but salted, you'd only be able to guess if cschneid had hunter2 since you'd be hashing hunter2-sssssaaaaallllltttt).
- rileymat2 6y agoYeah, I was trying to imply a correctish for a general audience. If right or wrong is a spectrum.
- dane-pgp 6y agoIt's maybe also worth pointing out that if the same salt is used for each password, then an attacker who can leak the hashes after creating their own account (with a known password) can try brute-forcing the salt. If the attacker hasn't seen the code, they won't know whether the salt is prepended, or appended, or both to the password (or if there are two salts), but the amount of computation needed to try all possible salts is roughly equivalent to the amount needed to crack a single well-chosen (unsalted) password.