Il processo coinvolge due parti interessate A (client) e B (server) e l'attaccante M. M è in grado di intercettare tutte le comunicazioni tra A e B (Man in the Middle) e persino di modificarlo. Tuttavia, la chiave privata di A non è stata compromessa.
Il successo del processo di autenticazione dipende dalla capacità di A di firmare un pacchetto arbitrario inviato da B con la sua chiave privata.
Il processo di autenticazione procede come segue:
-
A stabilisce una connessione TCP con B.
-
B calcola un nonce e lo associa alla connessione in entrata da A.
-
B ha già la chiave pubblica di A.
-
M si connette con A.
-
B calcola un nonce e lo associa alla connessione in entrata da M.
-
M avvia il processo di autenticazione, B genera un nuovo nonce basato sulla nonce generata nel passaggio 5 e alcuni stati interni e lo invia a M.
-
M rimane inattivo e aspetta che A avvii il processo di autenticazione.
-
A avvia il processo di autenticazione, B genera un nuovo nonce basato sulla nonce generata nel passaggio 2 e qualche stato interno e lo invia ad A.
-
M intercetta la comunicazione B - > A al punto 8 e sostituisce il nonce con quello ricevuto al punto 6.
-
A firma il pacchetto e lo rimanda a B.
-
M intercetta il pacchetto A - > B del passo 10, impedisce di passare e riprodurlo come è proprio.
-
B verifica il nonce e la firma e identifica M come A.
-
M masquerades come A.
Cosa si può fare per evitare che M diventi A negli occhi di B?