4 ms·
> they impose a heavy performance penalty on authentication to avoid a relatively rare case You're authenticating over the internet. What is 1/10th of a second
by Xk 16y ago
> they impose a heavy performance penalty on authentication to avoid a relatively rare case
You're authenticating over the internet. What is 1/10th of a second to authenticate the first time you want to log in relative to everything else? It's like complaining you have to put the key into your car before starting a five hundred mile road trip. Yes, it takes a few seconds. But worth it? Most definitely.
- codexon 16y agoIf you have 10 people logging in per second, you put a 1 second delay on future requests which is certainly noticeable. Maybe the correct thing to do is to make the key derivation executed on the client side, but then this would erode the experience of mobile phone users.
- tptacek 16y agoThere is no way to securely do this clientside. It's hard to imagine a situation in which login overhead is painful where scaling in general isn't already a huge concern; presumably, anything you do after login is going to be more painful than bcrypt.
- Xk 16y agoI would imagine some kind of zero-knowledge proof would work here, but that would require more server interaction than just doing the hashes in the first place.
- deleted 16y ago[deleted]
- Xk 16y agoIf you have ten people logging in per second, you've got to have more than one server. Distribute the login requests. And if it really kills you to make it take a full second, then make it take 1/10th of a second: there, now your hashing is faster than the time it takes to dynamically generate a page. People really need to learn that security doesn't come free, and some times you just need to bite down and say "You know what? I never plan on getting broken into, but just in case I do I'll take the tenth of a second extra computation in exchange for doing the right thing."