Come funziona l'autenticazione se la password fornisce un valore diverso per ogni accesso?

1

In che modo un'applicazione autentica la password di un utente se ogni volta che fornisce la sua password per accedere al suo account la password fornisce un valore diverso?

    
posta Joy 06.07.2017 - 09:21
fonte

2 risposte

6

La premessa della tua domanda non è corretta. Un diverso sale non viene utilizzato ogni volta che viene fornita la password.

Ecco come funziona la quthentication basata su password:

  • Al momento della registrazione, l'utente invia la sua password al server. Il server genera un salt casuale e memorizza l'hash salato e il sale.
  • Al momento dell'accesso, l'utente invia nuovamente la sua password al server. Il server recupera il sale memorizzato per quell'utente, rehash con esso la password e lo confronta con l'hash memorizzato.
risposta data 06.07.2017 - 09:31
fonte
1

Potrebbe essere più chiaro se si separa il processo di registrazione dal processo di autenticazione.

Al momento della registrazione:

  • L'utente fornisce le credenziali. Molto spesso questo include UserID + Password. Tieni presente che l'utente (o l'agente utente) non fornisce sale in questa fase.

  • Il server genera un sale esclusivo per quell'utente e lo utilizza in un algoritmo di hashing unidirezionale per generare un digest-password.

  • Il sale è memorizzato nel database insieme a password-digest.

Al momento dell'autenticazione (quando l'utente torna al login) - ogni volta:

  • L'utente fornisce la UserID + Password. Tieni presente che l'utente non fornisce sale.

  • Il server utilizza l'ID utente come chiave di ricerca e recupera il sale e il digest-password-memorizzato per quell'utente

  • Il server combina quindi la password fornita dall'utente + recuperata nello stesso modo di prima - per generare un digest basato su password fornito dall'utente. Si noti che il sale viene recuperato dal database, non appena generato.

  • Il server confronta quindi lo stored-password-digest con il digest-user-supplied-password-based per decidere se l'autenticazione ha esito positivo o negativo.

risposta data 06.07.2017 - 11:58
fonte

Leggi altre domande sui tag