miércoles, 9 de enero de 2013

Protocolos de Seguridad IP (IPSec)

Protocolos de Seguridad IP (IPSec)

Bueno, ya pasó un año desde la última publicación en este sitio. Las cosas se complicaron y el tiempo no sobraba, así que el blog había quedado en estado catatónico. Este año nos está ofreciendo algo de tiempo, así que creo que podemos volver al camino. Llegaron algunos correos en estos meses que pasaron, algunos agradecimientos que valen oro. A quienes sirve nuestro trabajo sigue dedicado nuestro tiempo, a ustedes, gracias.
La guía sigue siendo por mucho el grueso del interés de nuevos y no tan nuevos. Hay muchas cosas interesantes que quisiéramos abarcar pero de momento van a seguir esperando. La idea es entonces concluir la parte del protocolo IP, para pasar a trabajar en la parte de TCP (por obvias razones). Lo que seguía en el orden era la parte de IPSec que inicialmente pensamos publicar en dos partes pero que ha terminado por salir en una pieza. Luego vendrá IP móvil y a lo que sigue. Pues eso, saludos a todos nuevamente, creo que todavía es tiempo para desearles un feliz año nuevo. Estamos regresando, así pues .. provecho!    

Protocolos de Seguridad IP (IPSec) 
Una de las debilidades del Protocolo de Internet original (IPv4) es que carece de cualquier tipo de mecanismo de propósito general para asegurar la autenticidad y la privacidad de los datos a medida que atraviesan la red interna. Dado que los datagramas IP por lo general debe ser enviados entre dos dispositivos a través de redes desconocidas, toda la información en ellos está sujeta a ser interceptada e incluso cambiada. Con el uso creciente de Internet para aplicaciones críticas, eran necesarias mejoras de seguridad para el protocolo IP. Con este fin, se ha desarrollado un conjunto de protocolos denominados Protocolos de seguridad IP o IPSec.

En esta sección ofrecemos una breve descripción de los conceptos y protocolos IPSec. Empiezo con una visión general de IPSec, incluyendo una discusión de la historia de la tecnología y los estándares que la definen. Describo los principales componentes y protocolos de la suite IPSec, y sus diferentes arquitecturas y métodos de aplicación. Luego paso a discutir cómo funciona en realidad IPSec, comenzando con una descripción de los dos modos de IPSec (transporte y túnel) y en qué difieren. Describo las asociaciones de seguridad y construcciones relacionadas tales como el Índice de Parámetros de Seguridad (Security Parameter Index SPI). Los últimos tres temas cubren los tres principales protocolos IPSec: Cabecera de autenticación IPSec (AH), Carga de seguridad encapsuladora IPSec (Encapsulating Security Payload ESP) y el IPSec Internet Key Exchange (IKE).

Nota: IPSec fue inicialmente desarrollado con IPv6 en mente, pero ha sido diseñado para garantizar la seguridad  en redes IPv4 e IPv6, y la operación en ambas versiones es similar. Hay algunas diferencias en los formatos utilizados para datagramas AH y ESP en función de si se utiliza IPSec en IPv4 e IPv6, ya que las dos versiones tienen diferentes formatos de datagrama y dirección. Destaco estas diferencias en su caso.

Nota: Hay muchos temas en esta guía que están tan involucrados que se han escrito muchos grandes libros sobre ellos. Seguridad en redes IP e IPSec cae, sin dudas en esta categoría. Debido al tamaño de esta guía y la complejidad de IPSec, sólo puedo ofrecer aquí una descripción muy limitada de cómo funciona. Para una información más completa tendrá que complementarlo con una referencia específica a esta tecnología.


Regresar al contenido.
5.1- Información general sobre IPSec, historia y normas.

El problema más conocido con el protocolo original de Internet (IPv4) es el agotamiento inminente de su espacio de direcciones. Esta situación surgió debido a la rápida expansión de Internet más allá de las expectativas de cualquiera en el momento en que se desarrolló IPv4. Este desajuste entre lo que era Internet cuando fue desarrollado IPv4 y lo que es en la actualidad nos lleva a otro problema importante con el protocolo IP: la falta de un medio definitivo de garantizar la seguridad en la interconexión de redes IP.

El problema de seguridad surgió porque hace 25 años, la Internet era muy pequeña y relativamente "privada". Hoy en día es enorme y verdaderamente "pública". A medida que Internet ha crecido, la necesidad de seguridad ha crecido con ella. Considere que el protocolo TCP / IP y los precursores de Internet a principios fueron desarrollados como redes muy pequeñas utilizadas por algunos investigadores y por la Agencia para el Desarrollo de Proyectos Avanzados de Defensa de los Estados Unidos (Defense Advanced Research Projects Agency DARPA o ARPA). Todo el hardware era controlado por personas que eran bien conocidas y que, en general habría tenido autorización de seguridad. En una red de esta clase, no es necesario incluir la seguridad en los protocolos - sino que se contruyen en el edificio! Es más fácil de usar candados y guardias para garantizar la seguridad que emplear cifrados raros, cuando usted puede prescindir de ellos. Después de todo, la forma más fácil de evitar que alguien espíe o manipule los datos en la red es simplemente negar el acceso a los hosts que se conectan a la red.

Esto funcionó bien al principio, cuando sólo había unas pocas docenas de máquinas en la Internet. Y aun cuando el Internet comenzó a crecer, fue utilizado más o menos sólo para conectar a investigadores y otros profesionales. Al principio los nuevos sitios se fueron agregando a la red poco a poco, y por lo menos alguien conocía la identidad de cada nuevo sitio en la creciente interconexión de redes. Sin embargo, a medida que Internet continuo creciendo en tamaño y, finalmente, se abrió al público, el mantenimiento de la seguridad de la red como un todo se hizo imposible. Hoy en día, la "plebe" se encuentran en la Internet. Muchos routers propiedad de "quién sabe" y administrados por "quién sabe", se interponen entre usted y la mayoría de los dispositivos a los que se desee conectar. No se puede suponer que los datos que envíe o reciba están seguros.

Una serie de métodos han evolucionado a lo largo de los años para hacer frente a la necesidad de seguridad. La mayoría de estos se concentran en las capas superiores de la pila de protocolos OSI, para compensar la falta de seguridad del protocolo IP. Estas soluciones son útiles para ciertas situaciones, pero no se pueden generalizar fácilmente, ya que son específicas de las distintas aplicaciones. Por ejemplo, podemos usar Secure Sockets Layer (SSL) para ciertas aplicaciones como el acceso a la World Wide Web o FTP, pero hay decenas de aplicaciones para las que que este tipo de seguridad no es viable.

Lo que realmente se necesitaba era una solución de seguridad a nivel IP para que todos los protocolos de capas superiores en TCP / IP pudieran beneficiarse de ella. Cuando se tomó la decisión de desarrollar una nueva versión de IP (IPv6), era una oportunidad de oro para resolver no sólo los problemas de direccionamiento en IPv4, sino también la falta de seguridad. La nueva tecnología de seguridad se ha desarrollado con IPv6 en mente, pero dado que IPv6 ha tardado años en desarrollarse e implantarse, y a que la necesidad de seguridad es ahora, la solución fue diseñada para ser utilizado tanto en IPv4 como en IPv6.

La tecnología que incorpora comunicaciones seguras al Protocolo de Internet se llama de Seguridad IP (IP Security), comúnmente abreviado como IPSec (La capitalización de esta abreviatura es variable, por lo que pueden ver IPSec o IPSEC. Aunque no IpSeC o IPseC, por suerte. 

Descripción de los Servicios y funciones de IPSec.
IPSec no es un protocolo único, sino más bien un conjunto de servicios y protocolos que proporcionan una completa solución de seguridad para redes IP. Estos servicios y protocolos se combinan para proporcionar varios tipos de protección. Dado que IPSec funciona en la capa IP, puede proporcionar esta protección para cualquier aplicación o protocolo de capa superior TCP / IP sin la necesidad de métodos adicionales de seguridad, lo cual es una fortaleza importante. Algunos de los tipos de servicios de protección que ofrece IPSec incluyen:
  • Cifrado de datos del usuario para privacidad. 
  • Autentificación de la integridad de un mensaje para asegurarse de que no es alterado en el camino. 
  • Protección contra ciertos tipos de ataques de seguridad, como los ataques de repetición (replay attacks). 
  • La capacidad de los dispositivos para negociar los algoritmos de seguridad y las claves necesarias para satisfacer sus necesidades de seguridad. 
  • Dos modos de seguridad, túnel y transporte, para satisfacer diferentes necesidades de la red.
Concepto clave: IPSec es una contracción de seguridad IP (IP Security), y se compone de un conjunto de servicios y protocolos que garantizan la seguridad de las redes IP. Se define por una secuencia de varios estándares de Internet.

Normas IPSec 
Visto que IPSec es en realidad un conjunto de técnicas y protocolos, no está definido en una norma única de Internet. En vez de eso, una colección de RFCs definen la arquitectura, servicios y protocolos específicos utilizados en IPSec. Algunos de los más importantes se muestran en la Tabla 78, todos los cuales fueron publicados en noviembre de 1998:


El futuro de IPSec
La implementación de IPSec comenzó a despegar realmente en los últimos años, un uso mayor de la tecnología está en la implementación de redes privadas virtuales (VPN). Parece que el futuro de IPSec es brillante, a medida que más y más personas y empresas deciden que necesitan aprovechar el poder de la Internet, y al mismo tiempo proteger la seguridad de los datos que que la atraviesan.

Regresar al contenido.
5.2- Funcionamiento general de IPSec, componentes y protocolos.

Tengo que hacer una confesión: en algún momento consideré no escribir acerca de IPSec en esta Guía. Cuando usted se encuentra escribiendo un tomo tan grande como éste, a veces pierde la resistencia, además de que existe la necesidad de evitar escribir sobre temas confusos. IPSec no es el único tema difícil en esta guía, pero es definitivamente un tema que desconcierta a muchos, porque abarcarlo en algún modo. La mayoría de las discusiones relativas saltan directamente a la descripción de los mecanismos y protocolos sin proporcionar una descripción general de lo que hace y cómo encajan las piezas. Bueno, me di cuenta de que IPSec es importante y no me asustan los desafíos. Por lo tanto, aquí está mi intento de proporcionar un marco para la comprensión de varios de los componentes de IPSec
Así que, ¿qué hace exactamente IPSec y como lo hace? En términos generales, lo que hace es proporcionar servicios de seguridad en la capa IP para su uso por otros protocolos y aplicaciones TCP / IP. Lo que esto significa es que IPSec proporciona las herramientas que necesitan los dispositivos en una red TCP / IP para comunicarse de forma segura. Cuando dos dispositivos (ya sean hosts del usuario final o dispositivos intermedios, como routers o cortafuegos) quieren participar en comunicaciones seguras, crean una ruta segura entre sí que puede atravesar muchos sistemas inseguros intermedios. Para lograr esto, se debe realizar (al menos) las siguientes tareas:
  1. Deben acordar el uso de un conjunto de protocolos de seguridad, por lo que cada uno envía los datos en un formato que el otro pueda entender. 
  2. Deben decidir un algoritmo de cifrado específico para su uso en la codificación de datos. 
  3. Deben intercambiar las claves que se utilizan para "desbloquear" los datos que han sido codificados criptográficamente. 
  4. Una vez que este trabajo de base se ha completado, cada dispositivo debe utilizar los protocolos, métodos y claves previamente acordados para codificar los datos y enviarlo a través de la red.
Protocolos principales de IPSec
Para apoyar las actividades mencionadas, conforman el total del paquete conocido como "IPSec" una serie de diferentes componentes, como se muestra en la figura 116. Las dos piezas principales son un par de las tecnologías a veces llamadas protocolos IPSec básicos. Estos son los que realmente hacen el trabajo de codificación de la información para garantizar la seguridad. Ellos son:
  • Encabezado de autenticación IPSec (Authentication Header (AH)): Este protocolo proporciona los servicios de autenticación de IPSec. Lo que esto significa es que permite que el destinatario de un mensaje verifique que el remitente del mismo sea en realidad el que supuestamente lo ha enviado. También permite al destinatario comprobar que ninguno de los datos en el datagrama han sido cambiados por ningún dispositivo intermedio en el camino. También ofrece protección contra los llamados "ataques de reinyección", donde se captura un mensaje por un usuario no autorizado y luego es re-enviado. 
  • Carga de seguridad encapsuladora (ESP): El encabezado de autenticación garantiza la integridad de los datos en datagramas, pero no su privacidad. Cuando la información en un datagrama es "sólo para sus ojos", puede estar aún más protegidos a través del protocolo ESP, que cifra la carga del datagrama IP. 
Componentes de Soporte IPSec. 
AH y ESP son comúnmente llamados "protocolos", aunque esto es otro caso en que la validez de este término es discutible. No son protocolos muy diferentes, pero se implementan como encabezados que se insertan en datagramas IP, como veremos más adelante. De este modo, hacen el "trabajo sucio" de IPSec, y se pueden utilizar en conjunto para proporcionar autenticación y privacidad. Sin embargo, no pueden operar por su cuenta. Para que funcionen correctamente se necesita el apoyo de varios otros protocolos y servicios. Los más importante de ellos son:
  • Algoritmos de Cifrado / hash: AH y ESP son de carácter genérico y no especifican el mecanismo exacto utilizado para el cifrado. Esto les da la flexibilidad para trabajar con una variedad de este tipo de algoritmos, y para negociar cual de ellos usar según la necesidad. Los dos más comunes utilizados con IPSec son Message Digest 5 (MD5) y Secure Hash Algorithm 1 (SHA-1). Éstos también son llamados algoritmos hash, ya que trabajan mediante el cálculo de una fórmula llamada hash (resumen) basada en los datos de entrada y una clave. 
  • Políticas de seguridad, Asociaciones y métodos de gestión: Dado que IPSec proporciona flexibilidad al permitir que los diferentes dispositivos decidan cómo quieren implementar la seguridad, se requieren algunos medios para realizar un seguimiento de las relaciones de seguridad entre estos dispositivos. Esto se hace en IPSec mediante construcciones llamadas políticas de seguridad y asociaciones de seguridad, y al proporcionar vías para intercambiar información de relaciones o asociaciones de seguridad (véase más abajo). 
  • Marco de Intercambio de Claves y Mecanismo: Para que dos dispositivos intercambien información cifrada necesitan ser capaces de compartir claves para desbloquear el cifrado. También necesitan una manera de intercambiar información de asociaciones de seguridad. En IPSec, un protocolo que se llama Internet Key Exchange (IKE) ofrece estas capacidades.
Concepto clave: IPSec consiste en un número de diferentes componentes que trabajan juntos para proporcionar servicios de seguridad. Los dos principales son los protocolos llamados Cabecera de autenticación (AH) y Carga de seguridad encapsuladora (ESP), los cuales proporcionan autenticidad y privacidad de datos IP en forma de cabeceras especiales añadidas a los datagramas IP.

Bueno, eso es por lo menos un comienzo que proporciona un marco para entender los fundamentos de IPSec y cómo encajan las piezas. Vamos a examinar estos componentes y protocolos con más detalle a medida que avancemos en esta sección.

Regresar al contenido.
5.3- Arquitectura IPSec y métodos de implementación.

La razón principal por la que IPSec es tan poderosa es que proporciona seguridad a nivel del protocolo IP, la base para el resto de los protocolos TCP/IP. Protegiendo el protocolo IP, estamos protegiendo a casi todo lo demás en TCP/IP. Una cuestión importante es, entonces, ¿cómo exactamente implementamos IPSec en IP? Existen varios métodos de implementación para el despliegue de IPSec, que representan diferentes maneras en que IPSec puede modificar la arquitectura general de la capa TCP/IP.

Métodos de implementación de IPSec.
En el RFC 2401 se definen tres arquitecturas de implementación diferente para IPSec. Cual de ellas usemos dependerá de varios factores, incluyendo la versión del protocolo IP que se utiliza (v4 versus v6), los requisitos de la aplicación y otros factores. Estas a su vez descansan sobre una decisión de implementación primaria: si IPSec debe ser programado en todos los hosts de una red, o sólo en ciertos routers u otros "dispositivos intermedios".
Esta decisión de implementación es la que debe basarse en los requisitos de la red. Hay dos opciones: implementar IPSec en los hosts finales, o en los routers.

Implementación en los hosts finales.
Poner IPSec en todos los hosts ofrece la máxima flexibilidad y seguridad. Proporciona seguridad "end-to-end" entre dos dispositivos en la red. Sin embargo, hay muchas máquinas en una red típica, por lo que esto significa trabajar mucho más que si solo implementáramos IPSec en los routers.

Implementación en los routers.
Esta opción es mucho menos trabajosa porque significa que sólo se harán cambios en unos pocos routers en lugar de cientos o miles de hosts. Sólo ofrece protección entre pares de routers que implementan IPSec, pero esto puede ser suficiente para ciertas aplicaciones tales como redes privadas virtuales (VPN). Los routers se pueden utilizar para proporcionar protección sólo para la parte de la ruta que toman los datagramas fuera de la organización, dejando las conexiones entre los routers y hosts locales sin garantías (o, posiblemente, aseguradas por otros medios).

Arquitecturas IPSec. 
Se definen tres diferentes arquitecturas  que describen los métodos de cómo integrar IPSec en la pila de protocolos TCP / IP.

Arquitectura Integrada.
Bajo circunstancias ideales, integraríamos los protocolos  y capacidades IPSec directamente en el protocolo IP mismo. Esta es la solución más elegante, ya que permite proporcionar todos los modos y capacidades de seguridad IPSec  con la misma facilidad que el protocolo IP regular. De este modo no son necesarias capas extra de hardware o arquitectura.
IPv6 fue diseñado para soportar IPSec, haciendo de esta una opción viable para hosts o routers. Con IPv4, la integración requeriría de cambios en la implementación del protocolo IP en cada dispositivo, lo que a menudo es poco práctico (por decir lo menos!)

Arquitectura Bump In The Stack (BITS o BIS). 
En esta técnica, IPSec forma una capa separada entre la arquitectura de IP y la capa de enlace de datos, el nombre lindo refiere al hecho de que IPSec es un elemento adicional en la pila de protocolos de red, como se puede ver en la figura 117. IPSec intercepta los datagramas IP a medida que atraviesan la pila de protocolos, los procesa para garantizar la seguridad, y luego los pasa a través de la capa de enlace de datos.

La ventaja de esta técnica es que IPSec puede ser "adaptada" a cualquier dispositivo IP, ya que la funcionalidad IPSec es independiente de IP. La desventaja es que hay cierta duplicación de esfuerzos en comparación con la arquitectura integrada. BITS se utiliza generalmente para hosts IPv4.


En este tipo de implementación de IPSec, IPSec se convierte en una capa separada de la pila TCP / IP. Está implementada como software que se sitúa por debajo de IP y añade protección de seguridad a los datagramas creados por la capa IP.

Arquitectura "Bump In The Wire" (BITW) 
En este método se añade un dispositivo de hardware que proporciona servicios de IPSec. Por ejemplo, supongamos que tenemos una empresa con dos sitios. Cada uno tiene una red que se conecta a Internet mediante un router que no proporciona capacidades IPSec. Podemos interponer un dispositivo "IPSec" entre el router y el Internet en ambos sitios, como se muestra en la figura 118. Estos dispositivos interceptarán los datagramas de salida y les añadirán protección IPSec, ejecutando el proceso inverso para los datagramas de entrada.

En esta arquitectura, IPSec se implementa en dispositivos independientes que se colocan entre los dispositivos que desee comunicar de forma segura. Estos dispositivos reempaquetan los datagramas IP inseguros para su transporte a través de Internet pública.

Así como BITS nos permite añadir IPSec a hosts heredados, BITW puede "reconvertir"   routers sin capacidades IPSec para proveer prestaciones de seguridad. Las desventajas son la complejidad y el costo.

Similitudes entre BITS y BITW.
Por cierto, a pesar de que BITS y BITW parecen muy diferentes, son en realidad formas diferentes de hacer lo mismo. En el caso de BITS añadimos una capa de software extra que añade seguridad a los datagramas IP existentes, en BITW el mismo trabajo se hace por dispositivos de hardware adicionales. En ambos casos el resultado es el mismo, y las implicaciones de la elección del modo IPSec son también las mismas.

Como veremos en el siguiente tema, la elección de la arquitectura tiene un impacto importante sobre cuál de los dos modos IPSec se pueden utilizar.

Concepto clave: Se han definido tres diferentes arquitecturas o modelos de implementación para IPSec. El  mejor es la arquitectura integrada, donde IPSec se basa en la capa IP de los dispositivos directamente. Los otros dos son "Bump In The Stack" (BITS) y "Bump In The Wire" (BITW), que ambos son maneras de incluir IPSec por debajo del protocolo IP normal, empleando soluciones de software y hardware, respectivamente.

Regresar al contenido.
5.4- Modos de IPSec, transporte y tunel.

Tres diferentes arquitecturas de implementación básicas se pueden utilizar para proporcionar servicios de IPSec en redes TCP / IP. La elección de que implementación usemos, así como si la implementamos en los hosts finales o en los routers, afecta la forma específica en que funciona IPSec. Se definen dos modos particulares de operación para IPSec relacionados con estas arquitecturas, llamados modo de transporte y modo túnel.

Estos modos de IPSec están estrechamente relacionados con la función de los dos protocolos básicos, la cabecera de autenticación (AH) y la Carga de seguridad encapsuladora (ESP). Ambos protocolos proporcionan protección mediante la adición de un encabezado (y posiblemente otros campos) al datagrama  que contiene información de seguridad. La elección del uno u otro modo no afecta el método por el cual cada uno genera su cabecera, sino más bien, cambia que partes específicas de los datagramas IP están protegidas y cómo se disponen las cabeceras para lograr esto. En esencia, el modo en realidad describe, no prescribe, la forma en que AH o ESP hacen lo suyo. Se utiliza como base para la definición de otras construcciones, como las asociaciones de seguridad (SAs).

Echemos un vistazo a cómo trabajan los dos modos.

Modo de transporte.
Como su nombre indica, en el modo de transporte, el protocolo protege el mensaje transmitido a la capa IP desde la capa de transporte. El mensaje es procesado por AH / ESP y se añaden los encabezado(s) correspondiente(s) delante de los encabezados de transporte (UDP o TCP). El encabezado IP entonces es añadido adelante de todo esto.

Otra forma de verlo es la siguiente. Normalmente, la capa de transporte empaqueta datos para su transmisión y los envía a la capa IP. Desde la perspectiva de la capa IP, este mensaje de la capa de transporte es la carga útil del datagrama IP. Cuando se utiliza IPSec en el modo de transporte, la cabecera IPSec se aplica sólo sobre esta carga IP, no en el encabezado IP. El AH y / o cabeceras ESP aparecen entre la cabecera IP original, y la carga IP. Esto se ilustra en la figura 119 

Cuando IPSec funciona en modo de transporte, queda integrado con IP y utilizado para el transporte de los mensajes de la capa superior (TCP / UDP) directamente. Después de procesado, el datagrama sólo tiene un encabezado IP que contiene los encabezados IPSec AH y / o ESP. A diferencia de la figura 120.

Modo túnel.
En este modo, IPSec se utiliza para proteger totalmente el datagrama IP encapsulado después de se ha adicionado el encabezado IP. Los encabezados IPSec aparecen delante del encabezado IP original, y luego se añade un nuevo encabezado IP delante del encabezado IPSec. Es decir, todo el datagrama IP original está asegurado y luego encapsulado dentro de otro datagrama IP. Esto se muestra en la figura 120.

El modo túnel IPSec se llama así porque representa el encapsulamiento de un datagrama IP completo, formando un túnel virtual entre dispositivos compatibles con IPSec. El datagrama IP se pasa a IPSec, donde se crea un nuevo encabezado IP con los encabezados IPSec AH y / o  ESP agregados. A diferencia de la figura 119.

Comparación de los modos de transporte y túnel.
La línea de fondo en la comprensión de la diferencia entre estos dos es la siguiente: el modo túnel protege el datagrama IP original como un todo, encabezado incluido, mientras que el modo de transporte no lo hace así. Por lo tanto, en términos generales, el orden de los encabezados es la siguiente:
  • Modo de transporte: encabezado IP, encabezados IPSec (AH y / o ESP), carga útil IP (incluyendo el encabezado de transporte). 
  • Modo túnel: nuevo encabezado IP, encabezados IPSec (AH y / o ESP), el encabezado IP original, y la carga útil IP.
Una vez más, esta es una visión simplificada de cómo se construyen los datagramas IPSec, la realidad es mucho más compleja. La manera exacta en que se disponen los encabezados en un datagrama IPSec en ambos modos de transporte y túnel depende de la versión del protocolo IP que esté siendo utilizada, IPv6 utiliza encabezados extendidos que deben ser colocados de una manera especial cuando se utiliza IPSec. La colocación del encabezado también depende de que protocolo IPSec se esté utilizando: AH o ESP. Tenga en cuenta que también es posible aplicar ambos protocolos en el mismo datagrama, si es así, el encabezado AH siempre precede el encabezado ESP.

Así pues, hay tres variables y ocho combinaciones básicas de modo (túnel o transporte), versión IP (IPv4 o IPv6) y  protocolo IPSec (AH o ESP). Los dos temas de AH y ESP describen el formato de cuatro combinaciones de modos de transporte / túnel e IPv4/IPv6 aplicables a cada protocolo. Tenga en cuenta que ESP también incluye una terminación que va después de los datos protegidos.

Leyendo estas descripciones ud probablemente podría decir como se relacionan los dos modos con la elección de IPSec en el tópico anterior.  El modo de transporte requiere que IPSec se integre en IP, ya que AH/ESP se deben aplicar de la misma manera en que se ejecuta el empaquetado original IP en el mensaje de la capa de transporte. Esta es a menudo la mejor opción para las implementaciones que requieren seguridad de extremo a extremo en hosts que ejecutan IPSec directamente.

El modo de túnel representa la encapsulación de IP dentro de la combinación IP + IPSec. Por lo tanto, se corresponde con las implementaciones BITW y BITS, donde IPSec se aplica luego de que IP ha procesado los mensajes de las capas superiores y ha agregado su encabezado. El modo de túnel es una opción común para implementaciones VPN, que se basan en un túnel de datagramas IP a través de una red no segura, como la Internet.

Concepto clave: IPSec tiene dos modos básicos de funcionamiento. En el modo de transporte, los encabezados IPSec AH y / o ESP se añaden a medida que el datagrama IP original es creado, de este modo se asocia con las arquitecturas integradas IPSec. En modo túnel, el datagrama IP original se crea normalmente, entonces todo el datagrama se encapsula en un nuevo datagrama IP que contiene los encabezados IPSec AH / ESP. Este modo se usa más comúnmente con implementaciones "Bump in The Stack" y "Bump In The Wire".


Regresar al contenido.
5.5- Asociaciones de seguridad IPSec y Base de datos de Asociaciones de seguridad (Security Association Database SAD), Políticas de Seguridad y la Base de Datos de Políticas de Seguridad (SPD), Selectores, el Índice de Parámetros de Seguridad (SPI).

Wow!, seguramente hay un montón de cosas de "seguridad" cosas en el título del tema. Esos elementos están estrechamente relacionados, y es importante entenderlos antes de proceder con el análisis de los protocolos núcleo de IPSec. Estas construcciones se utilizan para guiar el funcionamiento de IPSec en una forma general y también en particular el intercambio entre los dispositivos. Ellos controlan el funcionamiento de IPSec y aseguran que cada datagrama que entra o sale de un dispositivo compatible con IPSec se trate adecuadamente.

Por dónde empezar ... por dónde empezar. Empecemos por considerar el problema de cómo aplicar la seguridad en un dispositivo que puede estar manejando muchos intercambios diferentes de datagramas con otros dispositivos. Hay una sobrecarga implícita en la adición de seguridad, por lo que no queremos hacerlo con cada mensaje que entra o sale. Algunos tipos de mensajes pueden necesitar más seguridad, otros menos. Además, el intercambio con ciertos dispositivos pueden requerir un tratamiento diferente a los demás.

Políticas de Seguridad, Asociaciones de seguridad y bases de datos asociadas.
Para gestionar toda esta complejidad, IPSec está equipado con una forma flexible y potente de especificar cómo los diferentes tipos de datagramas deben ser manejados. Para entender cómo funciona esto, primero tenemos que definir dos conceptos lógicos importantes:

  • Políticas de seguridad: Una política de seguridad es una regla que está programada en la implementación de IPSec que le dice cómo procesar los diferentes datagramas recibidos por el dispositivo. Por ejemplo, las políticas de seguridad se utilizan para decidir si un paquete en particular necesita ser procesada por IPSec o no, aquellos que no pasan por alto completamente AH y ESP. Si se requiere seguridad, la política de seguridad ofrece pautas generales sobre cómo debe ser provista, y si es necesario, vínculos a detalles mas específicos.
Las políticas de seguridad para un dispositivo se almacenan en la base de datos de políticas de Seguridad del dispositivo (Security Policy Database SPD). 

  • Asociaciones de seguridad: Una asociación de seguridad (SA) es un conjunto de informaciones de seguridad que describen un tipo particular de conexión segura entre un dispositivo y otro. Se puede considerar un "contrato", si se quiere, que especifica los mecanismos de seguridad particulares que se utilizan para las comunicaciones seguras entre ambos dispositivos.

Las asociaciones de seguridad de un dispositivo se encuentran en su base de datos de asociaciones de Seguridad (SAD).

A menudo es difícil distinguir entre el SPD y la SAD, ya que son similares en concepto. La principal diferencia entre ellos es que las políticas de seguridad son de carácter general, mientras que las asociaciones de seguridad son más específicas. Para determinar qué hacer con un determinado datagrama, el dispositivo comprueba el SPD. Las políticas de seguridad en el SPD pueden hacer referencia a una asociación de seguridad particular en el SAD. Si es así, el dispositivo buscará la asociación de seguridad y la utilizará para procesar el datagrama.

Selectores.
Un tema que no hemos cubierto todavía es cómo un dispositivo determina cuáles son las políticas o las SA a utilizar para un determinado datagrama. Una vez más aquí, IPSec define un sistema muy flexible que permite a cada asociación de seguridad definir un conjunto de reglas para la elección de datagramas a los que aplicar una determinada SA. Cada uno de estos conjuntos de reglas se llama un selector. Por ejemplo, un selector podría definir que una gama particular de valores en la dirección de origen de un datagrama, combinado con otro valor en la dirección de destino, significa que se debe utilizar una SA específica para el datagrama.

Ahora vamos a volver a las asociaciones de seguridad, que son un concepto muy importante en IPSec. Cada comunicación segura de que un dispositivo establece con otro, requiere que se establezca una determinada SA. Las SA son unidireccionales, por lo que cada una controla sólo el tráfico entrante o saliente de un dispositivo en particular. Esto permite implementar diferentes niveles de seguridad en el flujo desde el dispositivo A, al dispositivo B, y para el tráfico que viene del dispositivo B hacia dispositivo A. En una comunicación bidireccional de este tipo, tanto A como B tendrían dos SA, A tendría SA que podríamos llamar "SAdeviceBin" y "SAdeviceBout". El dispositivo B tendría las SA "SAdeviceAin" y "SAdeviceAout".

Tripletas de asociaciones de seguridad y el Índice de Parámetros de Seguridad (Security Parameter Index SPI)
A pesar de esto, las asociaciones de seguridad en realidad no tienen nombres. En cambio se definen por un conjunto de tres parámetros, llamado tripleta:

  • Índice de Parámetros de Seguridad (Security Parameter Index SPI): Un número de 32 bits que se elije para identificar un determinado SA para cualquier dispositivo conectado. El SPI se coloca en datagramas AH o ESP de modo que vincula a cada datagrama seguro a la asociación de seguridad. Es utilizado por el destinatario de la transmisión para que sepa que SA rige el datagrama. 
  • Dirección IP de destino: la dirección del dispositivo para el que se establece la SA. 
  • Identificador de Protocolo de seguridad: Especifica si esta asociación es de AH o ESP. Si ambos están en uso con este dispositivo que tienen por separado SA.

Como puede ver, los dos protocolos de seguridad AH y ESP son dependientes de las asociaciones de seguridad, las políticas y las diversas bases de datos que controlan su funcionamiento. La gestión de estas bases de datos es importante, pero otro tema complejo. En general, las SA o bien se puede configurar de forma manual (que obviamente es trabajo extra) o se puede implementar un sistema automatizado utilizando un protocolo como IKE.

¿Confundido? No le culpo, a pesar de mis mejores esfuerzos, y recuerda que todo esto está muy simplificado. Bienvenido al maravilloso mundo de la seguridad de las redes. Si alguna vez es acosado por el insomnio, le recomiendo la RFC 2401

Regresar al contenido.
5.6- Encabezado de autenticación (AH Authentication Header) IPSec.
Uno de los dos principales protocolos de seguridad en IPSec es la cabecera de autenticación (AH). Este es otro protocolo cuyo nombre ha sido bien elegido: AH es un protocolo que proporciona la autenticación de la totalidad o parte del contenido de un datagrama a través de la adición de una cabecera que se calcula basándose en los valores en el datagrama. Qué partes del datagrama se utilizan para el cálculo, y donde se coloca la cabecera, depende del modo (túnel o transporte) y la versión del protocolo IP (IPv4 o IPv6).

El funcionamiento del protocolo AH es sorprendentemente simple, especialmente para cualquier protocolo que tenga algo que ver con la seguridad de la red. Se puede considerar como análogo a los algoritmos utilizados para calcular las sumas de comprobación o para realizar comprobaciones de CRC para detección de errores. En esos casos, el remitente emplea un algoritmo estándar para calcular una suma de comprobación o código CRC basado en el contenido de un mensaje. El resultado calculado se transmite junto con los datos originales al destino, que repite el cálculo y descarta el mensaje si encuentra cualquier discrepancia entre su cálculo y el realizado por la fuente.
Esta es la misma idea detrás de AH, excepto que en lugar de utilizar un algoritmo simple conocido por todos, utiliza un algoritmo de hash especial y una clave específica que sólo conocen el origen y el destino. Se establece una asociación de seguridad entre los dos dispositivos que especifica estos detalles de modo que el origen y el destino saben cómo realizar el cálculo, pero nadie más puede. En el dispositivo de origen, AH realiza el cálculo y coloca el resultado (llamado valor de comprobación de integridad o ICV Integrity Check Value) en una cabecera especial con otros campos para su transmisión. El dispositivo de destino ejecuta el mismo cálculo usando una clave conocida por ambos dispositivos, lo que le permite ver de inmediato si alguno de los campos en el datagrama original fueron modificados (sea por error o por malicia).

Es importante señalar expresamente que, así como una suma de comprobación no cambia los datos originales, tampoco lo hace el cálculo del ICV. La presencia de la cabecera AH nos permite verificar la integridad del mensaje, pero no lo cifra. Por lo tanto, AH proporciona autenticación, pero no privacidad (para eso está ESP).  No, no me refiero a un psíquico, me refiero al otro protocolo central de IPSec!)

Colocación y vinculación de la cabecera de autenticación en el datagrama.
El cálculo de la cabecera de autenticación es similar tanto para IPv4 como para IPv6. Una diferencia está en el mecanismo exacto utilizado para colocar la cabecera en el datagrama y enlazar las cabeceras. Primero voy a describir IPv6, visto que es más simple, dado que AH fue realmente diseñado para "encajar" en el mecanismo de IPv6 para esto.

Colocación y vinculación de el encabezado de autenticación en IPv6.
El AH se inserta en el datagrama IP como una cabecera extendida, siguiendo las reglas normales para el enlazado de cabeceras extendidas en IPv6. Está enlazado por la cabecera anterior (extensión o principal) poniendo en su campo  de encabezado siguiente (Next Header) el valor asignado para la cabecera AH (51). La cabecera AH se vincula entonces al siguiente encabezado extendido o al encabezado de la capa de transporte que utilice su campo de siguiente encabezado.

En el modo de transporte, el AH se coloca en en encabezado IP principal y aparece antes que cualquier encabezado de Opciones de destino que contiene las opciones destinadas al destinatario, y antes de la cabecera ESP si está presente, pero después de cualquiera de las cabeceras extendidas. En modo túnel, aparece como una cabecera extendida del nuevo datagrama IP que encapsula el datagrama original al que se aplica el tunel. Esto se muestra gráficamente en la figura 121.


En la parte superior hay un datagrama IPv6 de ejemplo con dos cabeceras extendidas vinculadas empleando el mecanismo estándar IPv6 (ver Figura 106). Cuando AH se aplica en el modo de transporte, simplemente se agrega como una cabecera extendida nueva (que se muestra en color rosa) que va entre la cabecera extendida de enrutamiento y la cabecera de Opciones de destino. En modo túnel, todo el datagrama original se encapsula en un nuevo datagrama IPv6 que contiene la cabecera de autenticación. En ambos casos, los campos de cabecera siguiente se utilizan para vincular cada encabezado con el siguiente. Tenga en cuenta el uso del valor 41 en el campo de Encabezado Siguiente en el modo de túnel, que es el valor del datagrama IPv6 encapsulado.

Colocación y enlazado del encabezado de autenticación en IPv4.
Se emplea un método que es similar a la técnica de enlazado de las cabeceras en IPv6. En un datagrama IPv4, el campo de Protocolo indica la identidad del protocolo de capa superior (normalmente TCP o UDP) transportado en el datagrama. Como tal, este campo "apunta" a la siguiente cabecera, que está en la parte frontal de la carga IP. AH toma este valor y lo pone en su campo Cabecera Siguiente, y luego coloca el valor de protocolo para AH (51 decimal) en el campo de protocolo IP. Esto hace que la cabecera IP "apunte" a la cabecera AH, que a su vez "apunta" a donde sea que apuntaba el datagrama IP antes.

Una vez más, en el modo de transporte, el encabezado de autenticación se añade después del encabezado IP principal del datagrama original, en el modo de túnel se añade después de la nueva cabecera IP que encapsula el datagrama original al que se aplica el tunel. Esto se muestra en la Figura 122


En la parte superior hay un ejemplo de un datagrama IPv4, que puede o no contener opciones IPv4 (que no son entidades distintas como lo son en IPv6). En el modo de transporte, el encabezado de autenticación se agrega entre la cabecera y los datos IP, el campo de Protocolo del encabezado IP apunta a el mismo, mientras que su campo de Encabezado siguiente contiene el valor de la cabecera IP el protocolo anterior (en este caso 6, para TCP. ) En modo túnel el datagrama IPv4 se encapsula en un nuevo datagrama IPv4 que incluye la cabecera AH. Nótese en el modo de túnel, el uso del valor 4 en la cabecera de AH (que significa IPv4) en su Encabezado siguiente.

Concepto clave: En el protocolo IPSec el encabezado de autenticación (AH) permite que el destinatario de un datagrama verifique su autenticidad. Se implementa como una cabecera añadida a un datagrama IP que contiene un valor de comprobación de integridad calculado en base a los valores de los campos en el datagrama. Este valor puede ser utilizado por el destinatario para asegurarse de que los datos no se ha cambiado en el tránsito. La cabecera de autenticación no cifra los datos y por lo tanto no garantiza la privacidad de las transmisiones.


Formato de la cabecera de autenticación.
El formato de la cabecera de autenticación en si es descrito en la Tabla 79 y se muestra en la figura 123.


El tamaño del campo de datos de autenticación es variable para soportar las diferentes longitudes de datagramas y algoritmos hash. Su longitud total debe ser un múltiplo de 32 bits. Además, toda la cabecera debe ser o un múltiplo de 32 bits (para IPv4) o de 64 bits (para IPv6), de manera que puede ser agregado algún relleno (padding) al campo de autenticación si fuera necesario.

También puede notarse que no aparecen direcciones IP en la cabecera, que es un requisito previo para que sea igual tanto para IPv4 como para IPv6.

Regresar al contenido.
5.7- Carga de Seguridad Encapsulada (ESP) IPSec.
 

El encabezado de autenticación IPSec (AH) proporciona servicios de  autenticación de integridad para dispositivos compatibles con IPSec, para que puedan comprobar que los mensajes sean recibidos intactos desde otros dispositivos. Para muchas aplicaciones, sin embargo, esto es sólo una pieza del rompecabezas. Queremos no sólo evitar que algún dispositivo intermedio cambie nuestros datagramas, sino además evitar que examinen el contenido de los mismos. Para este nivel de comunicación privada, AH no es suficiente, tenemos que utilizar Encapsulating Security Payload (ESP).

El principal trabajo de ESP es el de proveer la privacidad que buscamos para datagramas IP mediante el cifrado de los mismos. Un algoritmo de cifrado combina los datos en el datagrama con una clave para transformarlo a un formato cifrado. Este es entonces reempaquetado utilizando un formato especial que veremos en breve, y se transmite al destino, que lo descifra usando el mismo algoritmo. ESP también soporta su propio esquema de autenticación como el utilizado en AH, o puede ser utilizado en conjunción con AH.

Campos de ESP.
ESP tiene varios campos que son los mismos que los utilizados en AH, pero los empaqueta  de una manera muy diferente. En lugar de tener sólo un encabezado, ESP divide a sus campos en tres componentes:
  • Encabezado ESP: contiene dos campos, el SPI y número de secuencia, y viene antes de que los datos cifrados. Su ubicación depende de si se usa ESP en modo transporte o modo túnel, como se explica en el tema sobre los modos de IPSec. 
  • Terminación ESP: Esta sección se coloca después de los datos cifrados. Contiene el relleno que se utiliza para alinear los datos cifrados, por medio del relleno y del campo Longitud del Relleno. Curiosamente, también contiene el campo Encabezado siguiente de ESP. 
  • Datos de autenticación ESP: Este campo contiene un valor de comprobación de integridad (Integrity Check Value ICV), que se calcula de manera similar a cómo funciona el protocolo AH, para cuando se utiliza la función de autenticación opcional de ESP.
Hay dos razones por las que estos campos se subdividan de esta manera. La primera es que algunos algoritmos de cifrado requieren que los datos a cifrar tengan un determinado tamaño de bloques, y por ello el relleno debe aparecer después de los datos y no antes. Es por eso que el relleno aparece en la terminación ESP. La segunda es que los datos de autenticación ESP aparecen por separado, ya que se utiliza para autenticar el resto del datagrama encriptado después del cifrado. Esto significa que no pueden aparecer en la cabecera o en la terminación de ESP.

Operaciones y uso del campo ESP.
Vamos a tratar de explicar esto con un procedimiento, considerando los tres pasos básicos realizados por ESP.

1-. Cálculo y colocación del encabezado
Lo primero que debemos considerar es la forma en que se coloca la cabecera ESP, que es similar a cómo funciona AH:

  • IPv6: El encabezado ESP se inserta en el datagrama IP como una cabecera extendida, siguiendo las reglas normales para el enlace de las cabeceras extendidas en IPv6. En el modo de transporte, aparece antes del encabezado de Opciones de destino que contiene las opciones destinadas al destino final, pero después de cualquier cabecera extendida si existe. En modo túnel, aparece como una cabecera extendida del nuevo datagrama IP que encapsula el datagrama original al que se le aplica el tunel. Esto puede verse en la figura 124. 


En la parte superior esta el mismo datagrama IPv6 de ejemplo que se muestra en la figura 121 con dos cabeceras extendidas. Cuando ESP se aplica en el modo de transporte, el encabezado ESP se añade al datagrama ya existente como en AH, y la terminación y los datos de autenticacion ESP se colocan al final. En modo túnel, la cabecera y la terminación ESP engloban todo el datagrama IPv6 encapsulado. Nótese la cobertura del cifrado y la autenticación en cada caso, y también cómo el campo de Encabezado Siguiente "señala hacia atrás" en el datagrama, ya que aparece en la terminación ESP.

  • IPv4: Al igual que con AH, el encabezado ESP se coloca después del encabezado normal IPv4. En el modo de transporte, aparece después del encabezado IP original, en modo túnel, después de la cabecera IP del datagrama que encapsula el nuevo original. Esto se muestra en la figura 125. 



Arriba aparece el mismo datagrama IPv4 que se muestra en la figura 122. Cuando este datagrama es procesado por ESP en modo transporte, el encabezado ESP se coloca entre la cabecera IPv4 y los datos, con la terminación y los datos ESP a continuación. En modo túnel, todo el datagrama original IPv4 está rodeado de estos componentes ESP, en lugar de sólo los datos IPv4. Una vez más, como en la figura 124, tenga en cuenta la cobertura del el cifrado y la autenticación, y cómo el campo Encabezado Siguiente "señala hacia atrás" para especificar la identidad de los datos cifrados o datagramas.


2. Calculo y colocación de la terminación.
La terminación ESP es añadida a los datos a cifrar. ESP a continuación, realiza el cifrado. La carga útil (mensaje TCP / UDP o datagrama IP encapsulado) y la terminación ESP son cifrados, pero no el encabezado ESP. Tenga en cuenta una vez más que cualquier otro encabezado IP que aparezca entre la cabecera ESP y la carga útil también son cifrados. En IPv6 esto puede incluir una cabecera extendida de Opciones de destino.

Normalmente, el campo de cabecera siguiente aparecería en la cabecera ESP y se utilizaría para enlazar el encabezado ESP al encabezado que viene después de el. Sin embargo, el campo Encabezado siguiente en ESP aparece en la terminación y no en el encabezado, lo que hace que enlazado en ESP parezca un poco extraño. El método es el mismo que el utilizado en AH y en IPv6 en general, con los campos de Encabezado siguiente y/o los campos de protocolo empleados para enlazar todo. Sin embargo, en ESP el campo de Encabezado siguiente aparece después de los datos cifrados, por lo que "apunta hacia atrás" a uno de los siguientes elementos: un encabezado extendido de Opciones de destino (si existe), un encabezado TCP / UDP (en el modo de transporte) o un encabezado IPv4/IPv6 (en modo tunel). Esto también se muestra en la Figura 124 y Figura 125.

3. Calculo y colocación del campo de autenticación ESP.
Si se emplea la característica opcional de autenticación de ESP, el campo de autenticación se calcula sobre la totalidad del datagrama ESP (excepto el campo de autenticación de datos en sí mismo, por supuesto). Esto incluye el encabezado ESP, la carga útil y la terminación.

Concepto clave: El protocolo de Carga de seguridad encapsuladora IPSec permite cifrar el contenido de un datagrama, para garantizar que sólo el destinatario sea capaz de ver los datos. Se implementa a través de tres componentes: un encabezado ESP añadido al inicio del datagrama protegido, una terminación ESP que sigue a los datos protegidos, y un campo opcional de autenticación ESP que proporciona servicios de autenticación similares a los proporcionados por el encabezado de autenticación (AH).

Formato de Carga de Seguridad Encapsulada.
El formato de los campos y secciones ESP se describe en la Tabla 80 y se muestra en la figura 126. He mostrado de forma explícita en cada uno la cobertura de los campos de cifrado y autenticación, lo que es pero que hará que todas las cosas que acabo de escribir tengan al menos algo de mas sentido.



Tenga en cuenta que la mayoría de los campos y secciones en este formato son de longitud variable. Las excepciones son los campos SPI (Índice de Parámetros de Seguridad) y el campo de número de secuencia, que tienen 4 bytes de longitud, y los campos de longitud del relleno y Encabezado siguiente, 1 byte cada uno.

El campo de relleno se utiliza cuando lo requieran los algoritmos de cifrado. El relleno también se utiliza para asegurarse de que la terminación ESP termina en un límite de 32-bit. Es decir, el tamaño del encabezado ESP mas la carga útil más el remolque ESP debe ser un múltiplo de 32 bits. Los datos de autenticación ESP también deben ser un múltiplo de 32 bits.

Regresar al contenido.
5.8- Intercambio de claves IPSec (IPSec Key Exchange IKE).

IPSec, al igual que muchos protocolos de seguridad en redes, se basa en el concepto de un "secreto compartido". Dos dispositivos que desean enviar información de forma segura cifran y descifran utilizando una pieza de información que sólo ellos conocen. Cualquier persona que no esté "en" el secreto es capaz de interceptar la información, pero no podrá leerlo (en caso de se emplee ESP para cifrar la carga útil) o alterarlo sin ser detectado (en caso de que se utilice AH). Sin embargo, antes de poder utilizar AH o ESP, es necesario que los dos dispositivos intercambien el "secreto" que utilizarán los protocolos de seguridad. El protocolo de soporte principal que se utiliza para este propósito en IPSec se conoce como Internet Key Exchange (IKE).

IKE se define en el RFC 2409, y es uno de los protocolos más complicados de comprender de IPSec. De hecho, es simplemente imposible comprender verdaderamente, más que una simplificación real de su operación, sin un significativo background en criptografía. No tengo experiencia en criptografía y debo suponer que usted, querido lector, tampoco. Así que en lugar de completar este tema con siglas incomprensibles y conceptos no explicados, me limitaré a proporcionar un breve resumen de IKE y cómo se utiliza.

Descripción general de IKE y relación con otros métodos de Intercambio de Claves
El propósito de IKE es permitir el intercambio entre los dispositivos de la información necesaria para una comunicación segura. Como sugiere el título, esto incluye las claves criptográficas utilizadas para cifrar la información de autenticación y la carga útil. IKE IPSec funciona permitiendo que dispositivos con capacidad IPSec intercambien asociaciones de seguridad (SAS), para llenar sus bases de datos correspondientes (de asociaciones de seguridad (SADS) se entiende). Estas se utilizan para el intercambio real de datagramas garantizados con los protocolos AH y ESP.

IKE está considerado como un protocolo "híbrido", ya que combina (y suplementa) las funciones de los otros tres protocolos. El primero de ellos es el Internet Security Association and Key Management Protocol (ISAKMP). Este protocolo proporciona un marco para el intercambio de claves de cifrado e información de asociaciones de seguridad. Funciona permitiendo que las asociaciones de seguridad se negocien a través de una serie de fases.

ISAKMP es un protocolo genérico que admite muchos métodos diferentes de intercambio de claves. En IKE, el marco ISAKMP se utiliza como la base para un método de intercambio específico de llaves que combina las características de dos protocolos de intercambio de claves:
  • OAKLEY: Describe un mecanismo específico para el intercambio de claves a través de la definición de varios "modos" de intercambio de claves. La mayor parte del proceso de intercambio de claves IKE se basa en OAKLEY. 
  • SKEME: Describe un mecanismo diferente al de OAKLEY para el intercambio de claves. IKE utiliza algunas de las características de SKEME, incluido el método de cifrado de clave pública y su función rápida de reintroducción.

Funcionamiento de IKE.
Por lo tanto, IKE no implementa rigurosamente ni Oakley ni SKEME sino que toma un poco de cada uno para formar su propio método de uso de ISAKMP. Claro como el lodo, lo sé. Dado que IKE funciona en el marco de ISAKMP, su operación se basa en el proceso de negociación por fases de ISAKMP. Hay dos fases:
  • ISAKMP Fase 1: La primera es una fase de "ajuste" en la que dos equipos se ponen de acuerdo sobre la forma de intercambiar información de forma segura. Esta negociación entre dos unidades crea una asociación de seguridad ISAKMP en si misma, una SA (Security Asociation) ISAKMP. Esta asociación de seguridad se utiliza para el intercambio seguro de información más detallada en la Fase 2. 
  • ISAKMP Fase 2: En esta fase, la SA ISAKMP establecida en la Fase 1 se utiliza para crear asociaciones de seguridad para los otros protocolos de seguridad. Normalmente, aquí es donde se negocian los parámetros "reales" para las asociaciones de seguridad de los protocolos AH y ESP.
Una pregunta obvia es por qué IKE molesta con este enfoque en dos fases, ¿por qué no negociar la asociación de seguridad de AH o ESP en el primer lugar? Pues bien, a pesar de que la fase adicional agrega una carga, se pueden llevar a cabo múltiples negociaciones en la fase 2 (luego de la fase 1) lo que amortiza la carga "extra" de la estrategia en dos fases. También es posible utilizar un método de intercambio más simple para la Fase 2 una vez que la asociación de seguridad ISAKMP se ha establecido en la Fase 1.
La asociación de seguridad ISAKMP negociada durante la Fase 1 incluye la negociación de los siguientes atributos utilizados para las negociaciones posteriores:
  • Un algoritmo de cifrado que se utilizará, como el cifrado de datos estándar (DES). 
  • Un algoritmo de hash (MD5 o SHA, como el usado por AH o ESP). 
  • Un método de autenticación, como la autenticación mediante claves previamente compartidas. 
  • Un grupo de Diffie-Hellman. Diffie y Hellman fueron dos pioneros en la industria que inventaron criptografía de clave pública. En este método, en lugar de cifrar y descifrar con la misma clave, los datos se cifran mediante una clave pública que cualquiera conoce, y se descifran usando una clave privada que se mantiene en secreto. Un grupo de Diffie-Hellman definen los atributos de la forma en que se realiza este tipo de criptografía. Cuatro grupos predefinidos derivados de OAKLEY se especifican en IKE y es permitida la definición de nuevos grupos.
Tenga en cuenta que a pesar de que las asociaciones de seguridad, en general, son unidireccionales, el ISAKMP SA se establece bidireccionalmente. Una vez que la Fase 1 está completa, a continuación, cualquiera de los dispositivos puede establecer una SA para AH o ESP utilizándola.

Regresar al contenido.