Durante mis lecciones de seguridad de la información, el profesor dijo que Alice puede autenticarse con Bob de la siguiente manera utilizando RSA:
- Bob genera y envía un Nonce a Alice
- Alice firma este Nonce con su clave privada y se lo envía a Bob
- Bob descifra el paquete con la clave pública de Alice y verifica que el mismo Nonce que envió es el que recibió
Sin embargo, con este método aún es posible un ataque MITM. Eve (el atacante) puede simplemente reenviar el Nonce a Alice y luego enviar el Nonce firmado a Bob. Desde la perspectiva de Bob, Eve se autentica como Alicia.
Bob ----Nonce---> Eve ---Nonce---> Alice
Bob <--S(Nonce)-- Eve <--S(Nonce)- Alice
¿Hay una manera de garantizar que el Nonce firmado llegue realmente del remitente correcto?