Menu

I.S.C. ¤ 8vo Semestre ¤ ITSNCG

Diffie-Hellman



El protocolo criptográfico Diffie-Hellman, es un protocolo de establecimiento de claves entre partes que no han tenido contacto previo, utilizando un canal inseguro, y de manera anónima (no autentificada).

Se emplea generalmente como medio para acordar claves simétricas que serán empleadas para el cifrado de una sesión (establecer clave de sesión). Siendo no autenticado, sin embargo, provee las bases para varios protocolos autenticados.

Su seguridad radica en la extrema dificultad (conjeturada, no demostrada) de calcular logaritmos discretos en un cuerpo finito.




Para dos partes Alice y Bob que intentan establecer una clave secreta y un adversario Mallory, la versión básica es como sigue:
Se establecen un primo y un generador (2 ). Estos son públicos, conocidos no solo por las partes Alice y Bob sino también por el adversario Mallory .
Alice escoge al azar, calcula , y envía a Bob
Bob escoge al azar, calcula , y envía a Alice


Nótese que tanto A como B pueden calcular el valor . En efecto, lo podemos demostrar usando las propiedades del grupo :

Para Alice:

Para Bob:


Como ambas partes pueden calcular entonces la podemos usar como clave compartida.



Ataques



Ataques pasivos


Un adversario Mallory que poseyera p, g, A y B, podría calcular el secreto compartido si tuviera también uno de los valores privados (a o b). Obtener a o b a partir de A oB invirtiendo la función ( y ) es el problema del logaritmo discreto en , un problema que se cree intratable computacionalmente siempre que p sea un número primo grande de 200 o más dígitos y que no cumplan ciertas características debilitantes.


Ataques activos
El protocolo es sensible a ataques activos del tipo Man-in-the-middle. Si la comunicación es interceptada por un tercero, éste se puede hacer pasar por el emisor cara al destinatario y viceversa, ya que no se dispone de ningún mecanismo para validar la identidad de los participantes en la comunicación. Así, el "hombre en el medio" podría acordar una clave con cada participante y retransmitir los datos entre ellos, escuchando la conversación en ambos sentidos. Una vez establecida la comunicación simétrica el atacante tiene que seguir en medio interceptado y modificando el tráfico para que no se den cuenta. Observar que para que el ataque sea operativo el atacante tiene que conocer el método de cifrado simétrico que será utilizado. Basarse en la ocultación de algoritmo simétrico de cifrado no cumple con losprincipios de Kerckhoffs (la efectividad del sistema no debe depender de que su diseño permanezca en secreto).







Para evitar este tipo de ataque se suele usar una o más de las siguientes técnicas:

Control de tiempos
Autenticación previa de las partes. Por ejemplo usar en protocolo de capa subyacente autenticación. Podríamos primero establecer una conexión TLS y sobre esa capa aplicar el algoritmo de Diffie-Hellman
Autenticación del contenido. Por ejemplo podríamos usar MAC sobre el contenido de los mensajes
Cifrando las claves públicas con un algoritmo de clave pública (asimétrico), evitando el problema de Man-in-the-middle, y a su vez comprobando que la clave pública sea distinta de 0 y 1. 





[Accesado de: http://serdis.dis.ulpgc.es/~ii-cript/PAGINA%20WEB%20CLASICA/CRIPTPGRAFIA%20MODERNA/ALGORITMO%20DE%20DEFFI-HELLMAN.html]

No hay comentarios:

Publicar un comentario