2013-09-01 15 views
5

Per quanto ho capito, l'autenticazione Digest (che è un'operazione a senso unico) ha cancellato la password e trasmesso i dati hash al server. Il server utilizzerà quindi la password memorizzata, cancellandola e confrontandola con l'uguaglianza con la password hash ricevuta. Dovrebbe essere al sicuro da un attacco da uomo medio.Concept of Digest authentication - funziona davvero?

Quello che non capisco è se sono l'hacker di mezzo, non ho bisogno della password originale. Bene, basta usare la password di hash poiché è quella con cui il server verrà confrontato.

Quindi, qual è l'utilizzo di questo meccanismo di autenticazione Digest? Non sembra funzionare da questa panoramica generale.

risposta

13

L'autenticazione del digest non funziona come descritto.

  1. Il server non memorizza la password unshsh. Il server memorizza un hash di Username: realm: password.
  2. Il client non invia lo stesso hash per ogni autenticazione.

L'autenticazione del digest è un protocollo challenge-response. Per avviare il processo, il client richiede un URL protetto e il server risponde con il dominio e uno nonce. Il client utilizza il regno e nonce per calcolare:

md5(md5(username:realm:password):nonce:md5(httpMethod:uri)) 

Il nonce fa sì che ogni autenticazione per produrre un valore hash diverso, e in questo modo previene gli attacchi replay. Inoltre, fornisce una (debole) protezione contro gli attaccanti che ascoltano la tua comunicazione perché la password in chiaro non passa sul filo, anche se questo non impedisce a un aggressore di crackare l'hash una volta che ce l'hanno.

+0

@ yapkm01: questo risponde alla tua domanda, è tutto poco chiaro? – Syon

+0

Sì. Molte grazie! A proposito, cosa intendi per reame qui? – yapkm01

+0

Realm è una stringa che viene visualizzata all'utente quando richiede all'utente il nome utente e la password durante il processo di autenticazione. Il valore di questa stringa varia a seconda del sistema che esegue l'autenticazione, ma generalmente è qualcosa che aiuta l'utente a sapere quali credenziali di accesso devono essere utilizzate. Ad esempio, se esegui l'autenticazione digest per Gmail, il dominio potrebbe essere qualcosa come "gmail.com". – Syon