El proceso involucra a dos partes interesadas A (cliente) y B (servidor) y el atacante M. M es capaz de interceptar todas las comunicaciones entre A y B (Man in the Middle) e incluso modificarlas. Sin embargo, la clave privada de A no ha sido comprometida.
El éxito del proceso de autenticación depende de la capacidad de A para firmar un paquete arbitrario enviado por B con su clave privada.
El proceso de autenticación se realiza de la siguiente manera:
-
A establece una conexión TCP con B.
-
B calcula un nonce y lo asocia con la conexión entrante de A.
-
B ya tiene la clave pública de A.
-
M se conecta con A.
-
B calcula un nonce y lo asocia con la conexión entrante de M.
-
M inicia el proceso de autenticación, B genera un nuevo nonce basado en el nonce generado en el paso 5 y algún estado interno y lo envía a M.
-
M permanece inactivo y espera a que A inicie el proceso de autenticación.
-
A inicia el proceso de autenticación, B genera un nuevo nonce basado en el nonce generado en el paso 2 y algún estado interno y lo envía a A.
-
M intercepta la comunicación B - > A en el paso 8 y reemplaza el nonce por el que recibió en el paso 6.
-
A firma el paquete y lo envía de vuelta a B.
-
M intercepta el paquete A - > B del paso 10, impide que pase y lo reproduce como propio.
-
B verifica el nonce y la firma e identifica M como A.
-
M se enmascara como A.
¿Qué se puede hacer para evitar que M se convierta en A en los ojos de B?