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_REQUESTAhora 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:
-
Mse encuentra en medio de la comunicación, interceptando todas las comunicaciones entreAyB -
Mde alguna manera engañó aApara que crea que esBy también engañó aBpara que piense que esA(re huellas digitales, etc.). -
Sin embargo,
Mno ha logrado penetrar la máquina deAni la máquina deB, dejando la clave pública deAen la cuenta deAenBmá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
Mpodrí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) ?), entoncesMtendría una ID de sesión "genuina" firmada porAy asíBpensarí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?