Supponendo che SSL / TLS non possa essere usato in questo contesto, questo metodo è abbastanza sicuro per autenticare qualcuno senza che qualcuno ascolti sia in grado di recuperare la password dalle informazioni trasmesse.
- Il client invia una richiesta di accesso.
- Il server risponde con un identificativo univoco per l'accesso
- L'utente inserisce la password
- Il client esegue l'hashing della password e crittografa l'identificativo con la password hash (
encryption(value: identifier, key: hash(password))
) - Il client invia l'identificatore crittografato + lo username
- Il server riceve il messaggio crittografato ottiene la password di decodifica dal database utilizzando il nome utente fornito dal client e controlla se è in grado di recuperare l'identificatore utilizzando la password.
- Se l'identificatore è stato recuperato correttamente, l'autenticazione del server ha esito positivo.