El protocolo para Intercambio de Claves en Internet es el encargado en la infraestructura IPSec de proporcionar un entorno previo seguro para la compartición de una clave secreta y autenticación de los extremos. IKE utiliza el puerto 500 de UDP para establecer el intercambio de mensajes pertinente. Por lo general se implementa como una aplicación en espacio de usuario, al no formar parte del núcleo de muchos sistemas operativos.
Se compone de dos fases diferenciadas. La primera de ellas efectúa el intercambio de mensajes preeliminares necesarios, estableciendo una asociación de seguridad ISAKMP (ISAKMP SA). Este intercambio inicial puede estar basado en claves precompartidas o PSK 1.23, claves RSA para criptografía asimétrica, o una infraestructura PKI de certificados digitales1.24.
Esta primera fase puede realizarse de dos formas diferentes, el modo normal y el modo agresivo. Ambos realizan las mismas tareas, aunque el modo agresivo emplea la mitad de mensajes que el modo principal para obtener los mismos resultados. La contrapartida es que este modo no proporciona autenticación de la identidad cuando se emplea junto con claves precompartidas (PSK), por lo que es vulnerable a ataques del tipo hombre en el medio1.25. Es por ello que generalmente se recomienda el uso de infraestructuras de clave pública si se va a utilizar el modo agresivo en una sesión IPSec.
En la segunda fase se utiliza la asociación de seguridad ISAKMP para establecer la asociación de seguridad IPSec definitiva, que determinará las claves a utilizar durante la sesión y otros parámetros de la misma. Por lo general se aprovechará esta fase para negociar dos asociaciones de seguridad, ya que, recordemos, en IPSec cada asociación es unidireccional.
Resulta extremadamente recomendable la lectura de la RFC 2409 [11] para la comprensión en detalle de las reglas ISAKMP, el algoritmo Oakley y en general el protocolo IKE, cuya implementación no es trivial.