IPsec
IPsec (abreviatura de Internet Protocol security) es un conjunto de protocolos cuya función es asegurar las comunicaciones sobre el Protocolo de Internet (IP) autenticando y/o cifrando cada paquete IP en un flujo de datos. IPsec también incluye protocolos para el establecimiento de claves de cifrado.[1] ResumenLos protocolos de IPsec actúan en la capa de red, la capa 3 del modelo OSI. Otros protocolos de seguridad para Internet de uso extendido, como SSL, TLS y SSH operan de la capa de aplicación (capa 7 del modelo OSI). Esto hace que IPsec sea más flexible, ya que puede ser utilizado para proteger protocolos de la capa 4, incluyendo TCP y UDP. Arquitectura de seguridadIPsec está implementado por un conjunto de protocolos criptográficos para:
La arquitectura de seguridad IP utiliza el concepto de asociación de seguridad (SA) como base para construir funciones de seguridad en IP. Una asociación de seguridad es simplemente el paquete de algoritmos y parámetros (tales como las claves) que se está usando para cifrar y autenticar un flujo particular en una dirección. Por lo tanto, en el tráfico normal bidireccional, los flujos son asegurados por un par de asociaciones de seguridad. La decisión final de los algoritmos de cifrado y autenticación (de una lista definida) le corresponde al administrador de IPsec. Para decidir qué protección se va a proporcionar a un paquete saliente, IPsec utiliza el índice de parámetro de seguridad (SPI), un índice a la base de datos de asociaciones de seguridad (SADB), junto con la dirección de destino de la cabecera del paquete, que juntos identifican de forma única una asociación de seguridad para dicho paquete. Para un paquete entrante se realiza un procedimiento similar; en este caso IPsec toma las claves de verificación y descifrado de la base de datos de asociaciones de seguridad. En el caso de multicast, se proporciona una asociación de seguridad al grupo, y se duplica para todos los receptores autorizados del grupo. Puede haber más de una asociación de seguridad para un grupo, utilizando diferentes SPIs, y por ello permitiendo múltiples niveles y conjuntos de seguridad dentro de un grupo. De hecho, cada remitente puede tener múltiples asociaciones de seguridad, permitiendo autenticación, ya que un receptor solo puede saber que alguien que conoce las claves ha enviado los datos. Hay que observar que el estándar pertinente no describe cómo se elige y duplica la asociación a través del grupo; se asume que un interesado responsable habrá hecho la elección..
Estado actual del estándarIPsec fue una parte obligatoria de IPv6 con base en la definición del RFC 4294, no obstante, en el año 2011, este RFC fue obsoleto por el RFC 6434 el cual indica que IPsec es recomendado y no obligatorio para IPv6. Para IPv4, su uso es opcional. Aunque el estándar está diseñado para ser indiferente a las versiones de IP, el despliegue y experiencia hasta 2007 atañe a las implementaciones de IPv4. Los protocolos de IPsec se definieron originalmente en las RFCs 1825 y 1829, publicadas en 1995. En 1998 estos documentos fueron sustituidos por las RFCs 2401 y 2412, que no son compatibles con la 1825 y 1829, aunque son conceptualmente idénticas. En diciembre de 2005 se produjo la tercera generación de documentos, RFCs 4301 y 4309. Son en gran parte un superconjunto de la 2401 y 2412, pero proporcionan un segundo estándar de Internet Key Exchange. Esta tercera generación de documentos estandarizó la abreviatura de IPsec como "IP" en mayúsculas y "sec" en minúsculas. Es raro ver un producto que ofrezca soporte de RFC1825 y 1829. "ESP" se refiere generalmente a 2406, mientras que ESPbis se refiere a 4303. Propósito de diseñoIPsec fue proyectado para proporcionar seguridad en modo transporte (extremo a extremo) del tráfico de paquetes, en el que los ordenadores de los extremos finales realizan el procesado de seguridad, o en modo túnel (puerta a puerta) en el que la seguridad del tráfico de paquetes es proporcionada a varias máquinas (incluso a toda la red de área local) por un único nodo. IPsec puede utilizarse para crear VPNs en los dos modos, y este es su uso principal. Hay que tener en cuenta, sin embargo, que las implicaciones de seguridad son bastante diferentes entre los dos modos de operación. La seguridad de comunicaciones extremo a extremo a escala Internet se ha desarrollado más lentamente de lo esperado. Parte de la razón a esto es que no ha surgido infraestructura de clave pública universal o universalmente de confianza (DNSSEC fue originalmente previsto para esto); otra parte es que muchos usuarios no comprenden lo suficientemente bien ni sus necesidades ni las opciones disponibles como para promover su inclusión en los productos de los vendedores. Como el Protocolo de Internet no provee intrínsecamente de ninguna capacidad de seguridad, IPsec se introdujo para proporcionar servicios de seguridad tales como:
ModosAsí pues y dependiendo del nivel sobre el que se actúe, podemos establecer dos modos básicos de operación de IPsec: modo transporte y modo túnel. Modo transporteEn modo transporte, solo la carga útil (los datos que se transfieren) del paquete IP es cifrada o autenticada. El enrutamiento permanece intacto, ya que no se modifica ni se cifra la cabecera IP; sin embargo, cuando se utiliza la cabecera de autenticación (AH), las direcciones IP no pueden ser traducidas, ya que eso invalidaría el hash. Las capas de transporte y aplicación están siempre aseguradas por un hash, de forma que no pueden ser modificadas de ninguna manera (por ejemplo traduciendo los números de puerto TCP y UDP). El modo transporte se utiliza para comunicaciones ordenador a ordenador. Una forma de encapsular mensajes IPsec para atravesar NAT ha sido definido por RFCs que describen el mecanismo de NAT transversal. Modo túnelEn el modo túnel, todo el paquete IP (datos más cabeceras del mensaje) es cifrado o autenticado. Debe ser entonces encapsulado en un nuevo paquete IP para que funcione el enrutamiento. El modo túnel se utiliza para comunicaciones red a red (túneles seguros entre routers, p.e. para VPNs) o comunicaciones ordenador a red u ordenador a ordenador sobre Internet. ProtocolosIPsec consta de tres protocolos que han sido desarrollados para proporcionar seguridad a nivel de paquete, tanto para IPv4 como para IPv6:
Los algoritmos criptográficos definidos para usar con IPsec incluyen HMAC- SHA-1 para protección de integridad, y Triple DES-CBC y AES-CBC para confidencialidad. Más detalles en la RFC 4305. Authentication Header (AH)AH está dirigido a garantizar integridad, sin conexión y autenticación de los datos de origen de los datagramas IP. Para ello, calcula un Hash Message Authentication Code (HMAC) a través de algún algoritmo hash operando sobre una clave secreta, el contenido del paquete IP y las partes inmutables del datagrama. Este proceso restringe la posibilidad de emplear NAT, que puede ser implementada con NAT transversal. Por otro lado, AH puede proteger opcionalmente contra ataques de repetición utilizando la técnica de ventana deslizante y descartando paquetes viejos. AH protege la carga útil IP y todos los campos de la cabecera de un datagrama IP excepto los campos mutantes, es decir, aquellos que pueden ser alterados en el tránsito. En IPv4, los campos de la cabecera IP mutantes (y por lo tanto no autenticados) incluyen TOS, Flags, Offset de fragmentos, TTL y suma de verificación de la cabecera. AH opera directamente por encima de IP, utilizando el protocolo IP número 51. Una cabecera AH mide 32 bits, he aquí un diagrama de cómo se organizan:
Significado de los campos:
Encapsulating Security Payload (ESP)El protocolo ESP proporciona autenticidad de origen, integridad y protección de confidencialidad de un paquete. ESP también soporta configuraciones de solo cifrado y solo autenticación, pero utilizar cifrado sin autenticación está altamente desaconsejado porque es inseguro[2][3] .[4] Al contrario que con AH, la cabecera del paquete IP no está protegida por ESP (aunque en ESP en modo túnel, la protección es proporcionada a todo el paquete IP interno, incluyendo la cabecera interna; la cabecera externa permanece sin proteger). ESP opera directamente sobre IP, utilizando el protocolo IP número 50. Un diagrama de paquete ESP:
Significado de los campos
ImplementacionesEl soporte de IPsec está normalmente implementado en el núcleo con la gestión de claves y negociación de ISAKMP/IKE realizada en espacio de usuario. Las implementaciones de IPsec existentes suelen incluir ambas funcionalidades. Sin embargo, como hay una interfaz estándar para la gestión de claves, es posible controlar una pila IPsec de núcleo utilizando las herramientas de gestión de claves de una implementación distinta. Por esta razón, hay confusión en los orígenes de la implementación de IPsec que se encuentra en el núcleo Linux. El proyecto FreeS/WAN realizó la primera implementación completa y de código abierto de IPsec para Linux. Consiste en una pila IPsec de núcleo KLIPS, junto con un demonio (pluto) y muchos scripts de shell. El proyecto FreeS/WAN fue desmantelado en marzo de 2004. Openswan y strongSwan son continuaciones de FreeS/WAN. El proyecto KAME también implementó soporte IPsec completo para NetBSD y FreeBSD. Su demonio de gestión de claves se llama racoon. OpenBSD hizo su propio demonio ISAKMP/IKE, llamado simplemente isakmpd (y ha sido portado a otros sistemas, incluyendo Linux). Sin embargo, ninguna de estas pilas IPsec de núcleo estaba integrada en Linux. Alexey Kuznetsov y David S. Miller escribieron desde cero una implementación de IPsec de núcleo para Linux alrededor de finales de 2002. Esta pila fue posteriormente lanzada como parte de Linux 2.6, y es llamada por varios "nativa"o "NETKEY". Por lo tanto, contrariamente a la creencia popular, la pila IPsec de Linux no se originó en el proyecto KAME. Como soporta el protocolo estándar PF KEY (RFC 2367) y el intefaz nativo XFRM para gestión de claves, la pila IPsec de Linux puede utilizarse junto con pluto de Openswan/strongSwan, isakmpd del proyecto OpenBSD, racoon del proyecto KAME o sin ningún demonio ISAKMP/IKE (utilizando claves manuales). Las nuevas arquitecturas de procesadores de red, incluyendo procesadores multinúcleo con motores de cifrado integrados, han cambiado la forma en que las pilas IPsec son diseñadas. Un Fast Path dedicado es utilizado para descargar el procesado de las tareas de IPsec (SA, búsquedas SP, cifrado, etc). Estas pilas Fast Path deben estar cointegradas en núcleos dedicados con Linux o RTOS corriendo en otros núcleos. Estos SO son el plano de control que ejecuta ISAKMP/IKE de la pila IPsec Fast Path. Hay bastantes implementaciones de los protocolos IPsec e ISAKMP/IKE. Entre otras:
Lista de RFCs relacionados con IPsec
Referencias
|