Quando si effettua un attacco Man-in-the-middle contro un classico server di autenticazione unidirezionale, l'autore dell'attacco deve solo:
- Utilizza un certificato sufficientemente credibile per essere considerato attendibile dalla vittima,
- Agire come client standard verso il server reale, inoltrando le richieste della vittima.
Tuttavia, mi chiedevo se l'utilizzo dell'autenticazione reciproca TLS potesse avere un impatto in questo schema?
Può un utente malintenzionato:
- Impersonare il server durante il passaggio autenticazione server ,
- Avvia l'handshake TLS verso il server reale,
- Trasmettere la comunicazione tra il server reale e la vittima (sfide, risposte, ...) per passare il passaggio autenticazione client ,
- E quindi essere ancora in grado di decifrare, spiare e alterare la comunicazione tra i due host?
Questo scenario è sempre possibile, dipende forse dalla suite di cifratura utilizzata?
In particolare nel passaggio 3) l'attaccante è costretto a inoltrare dati autentici di handshake (anche se firmati dal suo falso cert) dal server al client, possono essere usati questi dati di handshake per stabilire un segreto tra il vero client e server che impedisce ulteriori azioni da parte dell'utente malintenzionato (ad esempio una magia Diffie-Hellman-Merckle) o annulla la sessione (ogni parte ha i segreti mancanti, nessuno è più in grado di perseguire la comunicazione)?