3 ms·
One possible option is challenge-response authentication. There a number of variations, but the simplest example is to hash both the hashed password and a nonce
by Smerity 15y ago
One possible option is challenge-response authentication. There a number of variations, but the simplest example is to hash both the hashed password and a nonce on both ends and check the resulting hash[1]. This means that the server only requires that the hashed password is stored, and the client never sends the password in plaintext as it generates the hash itself. As long as the nonce is unique each time, we can prevent replay attacks.
Various schemes introduce a client nonce and server nonce (to prevent man-in-the-middle attacks) or generate a shared secret nonce through methods similar to the Diffie-Hellman key exchange (so attackers can't work out the nonce).
[1] Ensure that h(h(passwd)+nonce) is equal on both ends where h(passwd) is either stored (server) or created by the user providing the plaintext password.
[2] http://en.wikipedia.org/wiki/Challenge-response_authentication#Simple_Example_mutual_authentication_sequence http://en.wikipedia.org/wiki/Challenge-response_authenticati...
- TwistedWave 15y agoThe goal of hashing the passwords is to not store them in plaintext in the database, in case the server is compromised. In your case, an attacker doesn't need the password, the hash is enough to login.
- roel_v 15y agoI suppose you mean "goal <...> is to not store them in plaintext"? I was confused there for a second.
- TwistedWave 15y agoIndeed, thanks. I fixed it.