4 ms·
Hmm... I didn't say the salt was a key (since hashes are one-way that would be silly, right?). I was referring to using a salt to enhance security on stored p
by CoffeeDregs 15y ago
Hmm... I didn't say the salt was a key (since hashes are one-way that would be silly, right?). I was referring to using a salt to enhance security on stored passwords and, in that case, I don't think that a salt is a nonce since it's used repeatedly (in either per-account or per-application usage) to produce the hash value to match the stored password hash. In this case, it's certainly not a public value.
Of course, if you're using an algorithm that demands that you
decide what to do with a salt, you're rearranging deck
chairs on the titanic anyways.
I'll bite: how do you store passwords securely?
- tptacek 15y agoYou do not use a salt "repeatedly". The salt needs to be unique per hash. Maybe you should stop offering advice on this topic.
- CoffeeDregs 15y agohttp://en.wikipedia.org/wiki/Salt_(cryptography) http://en.wikipedia.org/wiki/Salt_(cryptography) In a typical usage for password authentication, the salt is stored along with the output of the one-way function, sometimes along with the number of iterations to be used in generating the output (for key stretching). Salt is closely related to the concept of nonce. Two important bits there: salt != nonce (closely related); salt is typically stored for future usage (e.g. repetition) (I quoted the iteration bit, but am not referring to that in my usage of "repetition"). Edit: replying here since the thread is too deep. You've got a couple of issues there: you haven't answered my question about storing passwords; you've committed the "appeal to ridicule" fallacy. Further: I don't doubt you know more about this than do I, but I'd love for you to educate me rather than ridicule me. I assume your consulting clients receive better treatment?
- tptacek 15y agoAt least 51% of interested Wikipedians also do not completely understand the concept of a "salt".
- timsally 15y agoTo store a password securely, you use a hashing algorithm that isn't designed to be fast, i.e. bcrypt. Please read: http://codahale.com/how-to-safely-store-a-password/ http://codahale.com/how-to-safely-store-a-password/. Giving advice and in general debating about a specialized topic like crypto is a touchy business. With specialized topics in general, those without deep domain knowledge typically get things wrong. And in a topic like crypto, wrong advice can have significant negative consequences for those that follow it. The reason why Thomas is taking you to task on this one is that your original post talks about secret salts. That's a big red flag that there is a lack of understanding of underlying, fundamental security principles.