¿Por qué no puedo mitigar un intercambio de claves Diffie-Hellman?

92

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 ):

  
  1. Se me ocurren dos números primos g y p y te digo cuáles son.
  2.   
  3. 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 ).
  4.   
  5. 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 ")
  6.   
  7. Ahora, tome el número que le envié y realice exactamente la misma operación con it . Así que eso es Ba mod p .
  8.   
  9. Hago la misma operación con el resultado que me enviaste, así que: Ab mod p .
  10.   

Aquí están los mismos 5 pasos con Alpha controlando la red:

  1. Intentas enviarme g y p , pero Alpha intercepta y aprende g y p
  2. Se te ocurre a e intentas enviarme el resultado de ga mod p ( A ), pero Alpha intercepta y aprende A
  3. Alpha aparece con b y te envía el resultado de gb mod p ( B )
  4. Ejecutas Ba mod p
  5. 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í?

    
pregunta orokusaki 15.06.2015 - 22:40
fuente

5 respuestas

146

Diffie-Hellman es un protocolo de intercambio de claves, pero no hace nada con respecto a la autenticación.

Hay una forma conceptual de alto nivel para ver eso. En el mundo de las redes de computadoras y la criptografía, todo lo que puede ver, en realidad, son ceros y unos enviados a través de algunos cables. Las entidades pueden distinguirse entre sí únicamente por los ceros y los que pueden o no pueden enviar. Por lo tanto, el usuario "Bob" está realmente definido solo por su capacidad para computar cosas que los que no son Bobs no pueden computar. Como todos pueden comprar las mismas computadoras, Bob solo puede ser Bob por su conocimiento de algún valor que solo Bob conoce.

En el intercambio Diffie-Hellman sin procesar que presentas, hablas con una entidad que se supone genera un valor secreto aleatorio sobre la marcha y lo usas. Todo el mundo puede hacer tal generación aleatoria. En ninguna parte del protocolo hay una operación que solo un Bob específico pueda hacer. Por lo tanto, el protocolo no puede lograr ningún tipo de autenticación, no sabes con quién estás hablando. Sin autenticación, la suplantación es factible, y eso incluye la doble suplantación simultánea, mejor conocida como Man-in-the-Middle . En el mejor de los casos, Diffie-Hellman sin formato ofrece una característica más débil: aunque no sabe con quién está hablando, aún sabe que está hablando con la misma entidad durante la sesión.

Un solo algoritmo criptográfico no lo llevará lejos; cualquier protocolo de comunicación significativo ensamblará varios algoritmos para que se logren algunas características de seguridad definidas. Un buen ejemplo es SSL / TLS ; otra es SSH . En SSH, se usa un intercambio de claves Diffie-Hellman, pero la parte pública del servidor (su gb mod p ) está firmado por el servidor. El cliente sabe que habla con el servidor correcto porque el cliente recuerda (de un paso de inicialización anterior) la clave pública del servidor (generalmente de tipo RSA o DSA); En el modelo explicado anteriormente, los servidores legítimos se definen y distinguen de los imitadores por su conocimiento de la clave privada de firma correspondiente a la clave pública recordada por el cliente. Esa firma proporciona la autenticación; El Diffie-Hellman luego produce un secreto compartido que se usará para cifrar y proteger todos los intercambios de datos para esa conexión (utilizando un cifrado simétrico y algoritmos MAC).

Por lo tanto, si bien Diffie-Hellman no hace todo lo que necesita por sí solo, sigue ofreciendo una característica útil, a saber, un intercambio de claves , que no obtendrías de firmas digitales, y que proporciona el secreto compartido temporal necesario para cifrar los datos realmente intercambiados.

    
respondido por el Tom Leek 16.06.2015 - 00:37
fuente
55

Tom ha proporcionado una buena explicación de por qué Diffie-Hellman no puede estar a salvo contra el hombre en el medio. Ahora, esto responde a la pregunta original del OP, pero probablemente deja a algunos lectores con la pregunta de seguimiento (razonable): ¿Por qué no solo usamos la criptografía de clave pública (asimétrica) para garantizar la confidencialidad de nuestros mensajes, y eliminamos D-H por completo? Hay algunas razones para no hacer esto:

  • Hay algoritmos que solo admiten la firma, pero no el cifrado de mensajes (ECDSA, por ejemplo)
  • El cifrado y descifrado simétrico es mucho más rápido que hacerlo de forma asimétrica
  • Probablemente, lo más importante es que queremos asegurarnos de secreto de reenvío . Después de todo, no es imposible que la clave privada de uno de sus socios de comunicación se vea comprometida en algún momento. Ahora, si solo confiaste en el cifrado asimétrico, todos los mensajes que enviaste a ese compañero podrían ser descifrados por el atacante en retrospectiva. Por el contrario, si usamos Diffie-Hellman y, para ser precisos, Diffie-Hellman efímero , generamos un nuevo par de claves DH para cada sesión de comunicación y lo desechamos (= no lo almacenemos) después , lo que significa que es imposible descifrar nuestros mensajes más adelante.
respondido por el zinfandel 16.06.2015 - 01:06
fuente
2

Después de un intercambio de clave DH, ambas partes saben qué clave han computado. Si ningún hombre en el medio se ha infiltrado en la conexión, ambas partes tendrán la misma clave. Si la conexión ha sido interrumpida, tendrán claves diferentes. Si hay un medio por el cual una parte puede preguntar a la otra qué clave está usando, el intermediario solo podrá permanecer sin ser detectado si es capaz de responder de la misma manera que lo haría la parte legítima. Si bien a menudo se responde a la pregunta con una firma digital, para dificultar la suplantación, la pregunta también se puede hacer / responder a través de cosas como la comunicación por voz. Si una aplicación de voz muestra a los participantes la clave de cifrado actual y un participante selecciona arbitrariamente un rango y una estrella de cine popular (por ejemplo, Marilyn Monroe), y le pide a la otra que lea los dígitos del quince al veinticinco en su mejor voz de Marilyn Monroe, un el participante real que tenga los números frente a él podría hacerlo de manera rápida y fluida y, en ausencia de un ataque MITM, los dígitos coincidirían con los que vio la primera parte. Un atacante de hombre en el medio no tendría ningún problema en detectar la pregunta y, dado el tiempo, podría falsificar un archivo de voz del comunicante legítimo haciendo una mala imitación de Marilyn Monroe diciendo los dígitos apropiados, pero tener dificultades para hacerlo tan rápido como el real.

En resumen, el DH por sí mismo puede ser sólido contra los ataques MITM si cada participante sabe algo que el otro participante podrá hacer con un número de manera más eficiente que un atacante. Sin embargo, generalmente se usan otros protocolos junto con DH, ya que es útil para que el proceso de autenticación sea automático, y la mayoría de las formas de autenticación que no dependen del cifrado (cosas como voz, frases, etc.) requieren validación humana. Además, a menudo es necesario que las entidades soliciten la comunicación de extraños. Si quisiera hablar con un representante de Acme Bank, un impostor de hombre en el medio podría establecer una oficina falsa en "Acme Bank" y atender mi llamada, y hacer que otra persona en una sala falsa transmita todo lo que yo diga al verdadero Acme Bank, y nadie sería el más sabio. Si no tengo idea de lo bien o mal que un empleado real de Acme Bank podría imitar a Marilyn Monroe, no tendría forma de saber que la imitación de un impostor no era la misma.

    
respondido por el supercat 16.06.2015 - 19:17
fuente
2

DH no es generalmente resistente a los ataques de Man in the Middle.

Si Alice y Bob (A < - > B) pueden configurar un secreto compartido. Luego, Frank puede configurar un secreto compartido con Alice (A < - > F) Al mismo tiempo, Frank puede configurar un segundo secreto compartido (diferente) con Bob (F < - > B). Frank puede luego descifrar A- > F los mensajes y volver a cifrar y enviar a bob F- > B & viceversa.

* Así que necesitas alguna forma de asegurarte de que el mensaje realmente vino de (fue firmado por) Alice. Ya sea con un secreto previamente compartido (entregado a través de algún otro canal) o usando una Autoridad de Certificación (para la confianza del proxy). O algún otro método.

Si solo confía un poco en una CA, entonces Alice puede configurar un secreto compartido de DH con Bob, firmando el mensaje con el certificado de la CA. Bob comprueba que los mensajes fueron firmados por la CA. Frank no puede falsificar los mensajes, ya que no tienen el certificado requerido.

Ahora Alice y Bob tienen un secreto compartido. Frank no pudo fingir su camino hacia el medio. Sin embargo, la CA no tuvo parte en la creación del secreto compartido (solo firmó las partes enviadas en el camino), por lo que la CA tampoco puede actuar como un mal actor. Incluso si Frank los amenaza con una llave de $ 5.

* Un poco simplista, pero esa es la idea general.

    
respondido por el DarcyThomas 18.06.2015 - 04:35
fuente
0

Aquí es donde fallan las habilidades descriptivas lingüísticas del idioma inglés. Diffie helman es resistente a las mitologías si una entidad externa fuera de banda puede ayudar a distribuir claves y / o verificar la identidad. Encontrará en la literatura, lo que en su mayoría define es una red de confianza conectada que rodea la identidad del destinatario o, en la mayoría de los casos, la persona adjunta a la clave o al certificado.

    
respondido por el munchkin 18.06.2015 - 07:44
fuente