Il protocollo di scambio di chiavi Diffie-Hellman è vulnerabile all'uomo nell'attacco centrale?

1

Protocollo di scambio di chiavi Diffie-Hellman vulnerabile all'uomo nell'attacco centrale? Se sì, allora che tipo di MITM è? Credo che sia un attacco di ripetizione o un attacco a staffetta, non sono sicuro però.

    
posta Mohammad 21.04.2018 - 16:42
fonte

1 risposta

1

È vulnerabile in una versione. Per essere più chiari, le tre versioni base di Diffie-Hellman sono:

  1. DH anonimo, in cui Alice e Bob si scambiano semplicemente valori senza segno;

  2. Fixed DH (a volte semplicemente chiamato DH);

  3. DH temporaneo (vedi sotto).

DH anonimo è facilmente vulnerabile a un attacco MitM, come segue.

Alice genera un valore X, Bob genera Y, Eve genera Z.

Alice invia g ^ X mod p. Eve intercetta il messaggio e lo modifica con g ^ Z (il suo valore casuale) mod p, prima di inviarlo a Bob.

Bob ora pensa che Alice gli abbia inviato g ^ Z mod p, in quanto non esiste alcuna firma né alcun altro meccanismo di autenticazione.

Bob invia g ^ Y mod p. Eve intercetta il messaggio, lo modifica con g ^ Z mod p e lo invia ad Alice.

Alice ora calcola (g ^ Z mod p) ^ X mod p.

Bob ora calcola (g ^ Z mod p) ^ Y mod p.

Eve calcola (g ^ X mod p) ^ Z mod p, che è il suo segreto con Alice, e (g ^ Y mod p) ^ Z mod p, che è il suo segreto con Bob.

Alice crittografa "Ti amo" con (g ^ X mod p) ^ Z mod p.

Quella chiave è stata concordata con Eve, quindi Eve può decifrare il messaggio, cambiarlo in "Ti odio" e ricodificarlo con il suo segreto con Bob. In altre parole, Eve può fungere da proxy avendo concordato una chiave diversa con Alice e Bob.

Questo può essere evitato usando il Fixed DH - dove g ^ X e g ^ Y sono firmati da una CA attendibile - o, meglio ancora, da DH effimera.

In DH effimero (DHE) X, Y vengono cambiati ogni volta, ad ogni sessione. Sono inoltre firmati, al fine di prevenire MitM. Tuttavia, poiché cambiano sempre e la firma cambia con il messaggio firmato, in che modo l'altra parte può verificare l'autenticità della firma?

La soluzione DHE è semplice: usa un certificato. Se Alice può firmare la propria g ^ X con una chiave privata e dimostrare che la chiave pubblica corrispondente è associata a lei, tramite un certificato, Bob può verificare il certificato e, così facendo, verificare l'identità di Alice e quindi l'autenticità della sua g ^ X.

Pertanto, DHE funziona in questo modo.

  1. Alice ottiene in precedenza da un'autorità di certificazione (CA) attendibile che dice "Nome: Alice, PublicKey: PKAlice. Firmato da CA".

Più formalmente, il certificato è Cert_Alice = (Alice, PKAlice) _CA, il che significa che contiene la chiave pubblica di Alice PKAlice ed è firmato dalla CA.

Lo stesso è fatto da Bob, che ottiene un certificato simile.

  1. Alice genera X e calcola g ^ X mod p.

  2. Alice quindi invia due messaggi a Bob, M1 = (g ^ X mod p, PKAlice) _Alice (firmato da Alice) e M2 = Cert_Alice.

  3. Bob verifica che M2 sia stato effettivamente firmato dalla CA attendibile (utilizzando il noto PKCA per vedere se il messaggio firmato corrisponde alla firma) e che appartiene davvero ad Alice.

  4. Se M2 ha superato i test precedenti, significa che è stato inviato da Alice (a meno che qualcuno non abbia rubato la chiave privata di Alice e il certificato sia ancora valido). A questo punto, Bob utilizza il certificato PKAlice, che era all'interno di M2, per verificare la firma di M1. Se tutto è OK, Bob memorizza g ^ X mod p.

  5. Bob genera Y e calcola g ^ Y mod p

  6. Bob quindi invia due messaggi ad Alice, M3 = (g ^ Y mod p, PKBob) _Bob (firmato da Bob) e M4 = Cert_Bob.

  7. Alice controlla la validità di M4 (vedi 4).

  8. Se M4 è stato completamente verificato, Alice utilizza il PKBob certificato, che si trovava all'interno di M4, per verificare la firma di M3. Se tutto è OK, Alice memorizza g ^ Y mod p.

  9. Alice e Bob calcolano separatamente (g ^ Y mod p) ^ X mod p == (g ^ X mod p) ^ Y mod p.

Ad ogni nuova sessione, riavvia da 2.

Ovviamente, l'uso di messaggi firmati dopo lo scambio DH consentirebbe di rilevare immediatamente che qualcosa di strano è successo, ma non c'è nulla nel DH anonimo che impedisce gli attacchi MitM.

    
risposta data 21.04.2018 - 18:27
fonte

Leggi altre domande sui tag