El intercambio de claves entre clientes antes de iniciar sus propias comunicaciones seguras es importante desde varios puntos de vista. Sin embargo, se plantea la siguiente pregunta: ¿cómo conseguir un intercambio seguro de claves? A efectos de la comunicación, es necesario garantizar:
El protocolo ISAKMP está definido por el RFC 2408. Para su funcionamiento hace uso del protocolo de transporte UDP en el puerto 500.
ISAKMP es un protocolo general para generar asociaciones de seguridad (SA, Security Associations), es decir, no se ocupa de cómo reemplazar claves autenticadas. Esta es la tarea del protocolo IKE. El ISAKMP se utiliza para autenticar a las partes comunicantes e intercambiar datos para las claves de cifrado.
No se trata de una comunicación Cliente-Servidor, sino de una comunicación de tipo Llamada-Respuesta. La parte que quiere crear una nueva SA inicia la comunicación con el protocolo ISAKMP.
IKE es un protocolo flexible de "negociación" definido por la Recomendación RFC 2409. Permite la negociación de un método específico de autenticación, cifrado, longitudes de clave y su intercambio seguro. Para ello, utiliza el algoritmo Diffie-Hellman (algoritmo D-H).
El protocolo IKE se utiliza para intercambiar claves de sesión, llamadas claves de sesión. Los mensajes IKE se encapsulan en paquetes ISAKMP.
El protocolo IKE puede dividirse en dos fases independientes. La primera fase construye un canal seguro y autenticado entre entidades comunicantes (ordenadores). En esta fase, la identidad de las partes comunicantes se autentica de forma protegida. Ambas partes en la comunicación acuerdan el uso de SA y realizan un intercambio de claves compartido PSK autenticado. Posteriormente, se establece un túnel seguro para la segunda fase. Hay dos modos disponibles para crear el túnel:
Algunas de las ventajas del modo agresivo son el ahorro de ancho de banda y del tiempo necesario para la transferencia de mensajes.
Una desventaja del modo agresivo es el intercambio de información importante antes de que se establezca la conexión cifrada, que es susceptible de interceptación, conocida como Sniffing.
En la primera fase, es posible utilizar 4 formas diferentes de intercambiar la clave PSK:
Cada opción de intercambio de claves se puede utilizar en el modo principal o agresivo, es decir, hay en total 8 opciones diferentes para la primera etapa del protocolo IKE. El modo principal debe ser implementado siempre, el modo agresivo es opcional, es aconsejable que también sea implementado.
El resultado de la primera etapa del protocolo IKE es la autenticación mutua de las partes comunicantes, el intercambio de la clave simétrica compartida PSK y la creación de la IKE Security Association (SA).
La segunda fase (llamada Modo Rápido) crea un SA para la sesión IPSec, es decir, se establecen los parámetros de conexión SA IPsec, IPSec SA se establece para una conexión específica (p. ej. FTP, telnet, etc.) Opcionalmente, se realizan intercambios D-H adicionales y se especifica otro material para la comunicación.
Esta comunicación está protegida desde el principio mediante el uso de algoritmos y claves obtenidos en la primera fase.
Para cifrar la comunicación de tipo convencional, una Clave de Sesión derivada de la Clave Maestra D-H obtenida del Modo Principal SA y del resto establecido en el Modo Rápido SA.
PFS (Perfect Forward Secrecy) se refiere a un estado en el que las claves actuales no se utilizan para generar claves adicionales. Si una clave en particular es descifrada accidentalmente, es decir, revelada, no permitirá que el atacante rompa fácilmente las otras claves. Si se utiliza PFS, se generarán nuevos Secretos Compartidos utilizando D-H en Modo Rápido. El uso de PFS es más seguro, pero un poco más exigente en términos de rendimiento y tiempo a la hora de establecer una conexión. La clave de relación se obtiene a partir de la nueva D-H Secret Key y Nonce, obtenida a partir del Modo Rápido SA. Mediante la aplicación de PFS, se garantiza que la clave de sesión nunca se genere a partir del mismo material.
Comparación con SSL/TLS - La sesión SSL se puede comparar con la primera etapa del protocolo IKE; la conexión SSL corresponde a la segunda fase del protocolo IKE.