Come lo descrivi, le cose vanno come segue: il tuo sito Web deve inoltrare una richiesta a un altro sito Web, e quest'ultimo accetterà solo se la richiesta viene fornita con un "blob di autenticazione" che è l'hash di un identificativo utente e la sua password. Questo blob (il risultato MD5) è quindi "la password" poiché mostra che è sufficiente per garantire l'accesso; questo è molto debole per quanto riguarda gli intercettatori, dal momento che spiare la linea sarebbe sufficiente per recuperare il blob, a quel punto l'attaccante potrebbe collegarlo alle richieste che vorrebbe inviare.
Se il protocollo non è come descritto sopra, ma lega l'hash ai dati richiesti (ad esempio l'hash non viene calcolato sull'ID utente e sulla passphrase da solo , ma anche sul percorso dei dati richiesti), quindi l'autenticazione è un po 'meno debole, ma ancora non buona; Mostrerebbe i due classici peccati:
-
L'intercettazione rivela un valore hash calcolato sulla passphrase e alcuni dati noti, consentendo un attacco dizionario offline : l'hacker "prova" solo alcune potenziali password finché non viene trovata una corrispondenza con l'hash osservato. Dato che una GPU da 150 $ può calcolare miliardi di istanze MD5 al secondo, anche le password di media potenza non resisteranno per molto tempo all'assalto.
-
L'intera comunicazione non è protetta, quindi gli intercettatori osserveranno i dati stessi (i dati per i quali è stata utilizzata l'autenticazione di accesso, quindi i dati sensibili ). Gli attaccanti attivi saranno in grado di manipolare le richieste e le risposte in modo arbitrario.
La riscossione si ottiene con l'uso di SSL , che risolve entrambi i problemi.