Después de leer la respuesta seleccionada de "Diffie-Hellman Key Exchange" en un lenguaje sencillo 5 veces no puedo, por mi vida, entender cómo me protege de un ataque MitM.
Dado el siguiente extracto (de respuesta de tylerl ):
- Se me ocurren dos números primos g y p y te digo cuáles son.
- A continuación, elige un número secreto ( a ), pero no se lo dice a nadie. En su lugar, calcula ga mod p y me envías ese resultado. (Lo llamaremos A ya que proviene de a ).
- Hago lo mismo, pero llamaremos a mi número secreto b y al número calculado B . Entonces calculo gb mod p y te envío el resultado (llamado " B ")
- Ahora, tome el número que le envié y realice exactamente la misma operación con it . Así que eso es Ba mod p .
- Hago la misma operación con el resultado que me enviaste, así que: Ab mod p .
Aquí están los mismos 5 pasos con Alpha controlando la red:
- Intentas enviarme
g
yp
, pero Alpha intercepta y aprendeg
yp
- Se te ocurre
a
e intentas enviarme el resultado dega mod p
(A
), pero Alpha intercepta y aprendeA
- Alpha aparece con
b
y te envía el resultado degb mod p
(B
) - Ejecutas
Ba mod p
- Alpha se ejecuta
Ab mod p
Durante todo este proceso, Alpha pretende ser usted y crea un secreto compartido conmigo utilizando el mismo método.
Ahora, tanto tú como Alpha, y Alpha y yo tenemos pares de secretos compartidos.
Ahora piensas que es seguro hablar conmigo en secreto, porque cuando me envías mensajes cifrados con tu secreto, Alpha los descifra utilizando el secreto creado por ti y Alpha, los cifra utilizando el secreto creado por Alpha y yo, luego envía ellos a mi. Cuando te respondo, Alpha hace lo mismo a la inversa.
¿Me estoy perdiendo algo aquí?