Encontré este artículo que afirma que la firma criptográfica asimétrica de la clave obtenida con DH evita MITM:
Idea clave:
El valor de 'firma' es una firma del correspondiente privado clave sobre los siguientes datos, en el siguiente orden:
string session identifier byte SSH_MSG_USERAUTH_REQUEST
Ahora el atacante tiene un problema, ya que el cliente y el servidor tienen diferentes ideas sobre qué identificador de sesión se supone que debe ser. Obviamente, el servidor rechazará la firma proporcionada por el cliente y la autenticación de clave pública fallará.
Me gustaría verificar si mi comprensión de esto es correcta:
Deje que Alice ( A
) sea cliente, MITM ( M
) un atacante y Bob ( B
) un servidor ssh.
Suposiciones:
-
M
se encuentra en medio de la comunicación, interceptando todas las comunicaciones entreA
yB
-
M
de alguna manera engañó aA
para que crea que esB
y también engañó aB
para que piense que esA
(re huellas digitales, etc.). -
Sin embargo,
M
no ha logrado penetrar la máquina deA
ni la máquina deB
, dejando la clave pública deA
en la cuenta deA
enB
máquina intacta
Mientras se cumplan las condiciones anteriores de esta:
El identificador de sesión se calcula en función (entre otras cosas) del secreto compartido negociado por los compañeros que utilizan el algoritmo Diffie-Hellman.
= > mientras que M
puede falsificar intercambios de DH con A
y B
, necesariamente tendrán que ser 2 secretos compartidos diferentes (falsos) (a menos que haya alguna forma para que M
comprometa eso mediante la modificación de modificando intercambiaron números DH, no observándolos).
Cuando este secreto compartido se usa como componente de la creación de datos a firmar (parte o la totalidad del identificador de sesión), una cosa que M
no puede falsificar y no sabe es la clave privada de A
que se usará para firmar el ID de sesión basado en (1er) secreto compartido falso.
Por lo tanto, la firma digital del ID de sesión (+ otros datos de sesión según la descripción anterior) falla la verificación en B
, o los ID de sesión no coincidirán, rompiendo la comunicación de manera efectiva.
Preguntas:
-
¿es correcto este razonamiento? Si no, ¿dónde están los errores?
-
¿la creación de ID de sesión es el "eslabón más débil" en esta cadena? Es decir, si
M
podría predecirlo (por ejemplo, si es un hash predecible que es susceptible de ataque estadístico, incluso si DH no lo es) y adivínelo de alguna manera (muy improbable, sí, pero es incluso teóricamente imposible) ?), entoncesM
tendría una ID de sesión "genuina" firmada porA
y asíB
pensaría que la firma de autenticación es correcta?
Me doy cuenta de que esto es casi imposible en la práctica, pero ¿es completamente teórico imposible?