When doing a Man-in-the-middle attack against a classic one-way authentication server, the attacker just have to:
- Use a certificate credible enough to be trusted by the victim,
- Act as a standard client toward the real server, relaying victim's requests.
However, I was wondering if using TLS mutual authentication could have an impact in this scheme?
Can an attacker:
- Impersonate the server during the server authentication step,
- Initiate the TLS handshake toward the real server,
- Relay the communication between the real server and the victim (challenges, answers, ...) to pass the client authentication step,
- And then still be in measure to decipher, spy and alter the communication between the two hosts?
Is such a scenario always possible, is it maybe dependent on the cipher suite used?
In particular in step 3) the attacker is forced to forward genuine handshake data (even if signed by his own fake cert) from the server to the client, may this handshake data be used to establish a secret between the genuine client and server preventing further action from the attacker (some Diffie-Hellman-Merckle magic for instance) or invalidate the session (each parts having missing secrets, no one is able to pursue the communication anymore)?