IPSec Internet Protocol Security Internetworking UTN Regional La Plata Ing. Luis E. Barrera Año 2007 Antecedentes y Definiciones IPSec es un conjunto de estándares del IETF que proporciona servicios de seguridad a la capa IP y a todos los protocolos superiores basados en IP (TCP, UDP, ICMP, entre otros). Este estándar surge para abordar las carencias graves de seguridad existentes en el Protocolo IP. Anterior al surgimiento de IPSec los problemas de seguridad se abordaban con soluciones propietarias que dificultaban la comunicación entre los distintos entornos empresariales. La falta de interoperabilidad fue el principal freno para el establecimiento de comunicaciones seguras. IPSec hoy día esta incorporado en todos los equipos de comunicaciones, como así también en las últimas versiones de los sistemas operativos mas utilizados. IPSec tienen como finalidad integrar en IP funciones de seguridad basadas en criptografía proporcionando Confidencialidad, Integridad y Autenticidad de paquetes IP a través del uso de un conjunto de algoritmos de encriptación como por ejemplo: tecnologías de clave Pública (RSA), algoritmos de cifrado simétrico (DES, 3DES, etc..), algoritmos de hash (MD5, SHA-1) y certificados digitales. Al ser diseñando en forma modular permite seleccionar de entre un conjunto de algoritmos deseados sin afectar a otras partes, y lo que es aun mas importante, permite utilizar o incorporar nuevos algoritmos que se desarrollen en el futuro dando la característica de versatilidad del estándar IPSec. Componentes y modos de uso. Componentes principales: AH (Authentication Header) ESP (Encapsulating Security Payload) IKE ( Internet Key Exchange) IPSec provee: Chequeo de Integridad. Autenticación. Encriptación (Confidencialidad). Puede ser usado: De extremo a extremo o end-to-end. Para establecer Túneles seguros entre Gateways Asociación de seguridad Es una conexión lógica unidireccional (simplex) entre dos sistemas IPSec. Se lo identifica por la terna: (Security Parameter Index, IP destination, Security Protocol). SPI: valor de 32 bits que identifica los diferentes SAs que tienen misma dirección destino y protocolo de seguridad. El SPI se transporta en el header del protocolo de seguridad que se utilice (AH o ESP). Tiene significado local únicamente, definido por el creador del SA. Los valores entre 1 y 255 están reservados por el IANA (Internet Assigned Numbers Authority). IP: Dirección IP destino. Security Protocol: Pueden ser AH o ESP. Un SA puede ser establecido tanto en modo túnel como en modo transporte. Como dijimos un SA es de característica Simplex, con lo cual para una comunicación bidireccional entre dos sistemas IPSec debemos definir 2 SAs, uno en cada dirección. Un SA proporciona servicios de seguridad al tráfico que transporta a través de AH o ESP, pero NO ambos. Para una conexión que necesita ser protegida por ambos dos SAs deben ser definidas. Tunneling Consiste en encapsular un protocolo en otro. Es una técnica muy usada en redes de conmutación de paquetes. En IPSec tunelizar es encapsular IP en IP. En general la tunelización es usada para transportar tráfico de un protocolo sobre una red que no soporta ese protocolo directamente. En el caso de IPSec la tunelización tiene un propósito muy distinto y es el de proporcionar protección total al paquete IP que es encapsulado. Autentication Header (AH) Garantiza integridad y autenticación de los paquetes IP. No proporciona confidencialidad, los datos transmitidos pueden ser vistos por terceros. AH inserta una cabecera de autenticación entre el header IP estándar (IPv4 o IPv6) y los datos transportados (TCP, UDP, ICMP) o un paquete IP completo. Al ser un nuevo protocolo IP, el IANA le asignó el numero decimal 51. AH asegura integridad y autenticidad de los datos transportados y de la cabecera IP, excepto los campos variables: TOS, TTL, flags, offset y checksum. Funcionamiento de AH Next header: campo de 8 bits que identifica el tipo de datos que contiene el payload, por ejemplo 6 si se transporta TCP, 17 si se transporta UDP, etc.. Esto en modo transporte, recordando que en modo túnel el payload es otro paquete IP completo. En el header IP se coloca en el campo Protocolo el nro. 51 que identifica a AH. Payload length: campo de 8 bits que contiene la longitud de el header AH expresado en palabras de 32 bits, menos 2. Reserved: campo de 16 bits reservado para uso futuro. Toma el valor 0. Security parameter index (SPI): Parámetro de 32 bits. Ya definido en Asociación de Seguridad. Sequence number: campo de 32 bits. Contador monótono creciente. Authentication data: campo de longitud variable que contiene el (ICV: Integrity check value). El ICV para cada paquete se calcula con el algoritmo seleccionado en la inicialización de la SA. Cualquier algoritmo MAC (Message Authentication Code) puede ser utilizado para calcular el ICV. La especificación requiere que HMACMD5 y HMAC-SHA-1 deben ser soportados. Los campos que se modifican en la cabecera IP (TTL, TOS, etc.) se consideran con valor 0 para el cálculo del ICV. Las ventajas de usar AH en modo transporte es el bajo coste de procesamiento, pero tiene la desventaja de que los campos del header IP que se modifican en transito no son autenticados. Si se necesita autenticar estos campos entonces se debe usar el modo túnel. Encapsulating Security Payload ESP provee chequeo de integridad, autenticación y encriptación de paquetes IP. El servicio de chequeo de integridad y autenticación se usan en conjunto. La encriptación puede ser usada independientemente de los otros servicios. Es MUY RECOMENDABLE que si se a seleccionado el uso de la encriptación también se utilice la autenticación y el chequeo de integridad. Si se usa solamente la encriptación, un intruso puede falsear paquete con la intención de montar un ataque de criptoanálisis. ESP tiene asignado el número de protocolo 50 asignado por IANA. Como funciona ESP Formato del paquete ESP Como vemos el formato es mas complejo que el de AH. En ESP tenemos un Header ESP, un Trailer ESP y un ESP Authentication Data. Security Parameter Index (SPI): Campo de 32 bits. Ya definido e AH y SA. Sequence number: Campo de 32 bits monótono creciente. Payload data: Carga útil del protocolo indicado en Next header a ser encriptada. Padding: Debido a que varios algoritmos criptográficos necesitan como entrada de datos bloques de tamaño definido, para completar y alcanzar el tamaño de dichos bloques se utiliza este campo de relleno. Pad length: Campo de 8 bits que indica en bytes el tamaño del campo padding. Siempre esta presente y si es 0 entonces indica que no hay relleno. Next header: Campo de 8 bits que indica el tipo de datos que es transportado en el campo payload. Authentication data: Este campo de longitud variable contiene el ICV (Integrity check value) calculado para el ESP desde el SPI hasta el next header inclusive. Es un campo opcional, solamente se incluye en el caso de que el chequeo de integridad y la autenticación hayan sido seleccionados en el establecimiento del SA. Las especificaciones de ESP requiere que al menos dos algoritmos de autenticación sean soportados, HMAC con MD5 y HMAC con SHA-1. Es importante aclarar que debido a que tanto el campo Next Header como el Payload están cifrados, cualquier atacante que intercepte un paquete no podrá saber si el contenido es TCP o UDP u otro protocolo. Esto es normal debido a que es el objetivo que se persigue y que es el de ocultar la información a terceros no autorizados. Asi como AH, ESP puede ser usado en dos maneras. Modo Túnel y Modo Transporte. ESP en Modo Transporte En modo transporte ESP no proporciona ni encriptación ni autenticación de la cabecera IP. •Esta es una desventaja ya que paquetes falsos pueden ser entregados a ESP para su procesamiento. •La ventaja radica en que en modo transporte se tiene un bajo costo de procesamiento. ESP en Modo Túnel Modo transporte y modo túnel de ESP Protocolo IKE Hemos visto que ambos extremos en una Asociación de Seguridad deben tener conocimiento tanto de las claves como del resto de la información necesaria para enviar y recibir paquetes AH o ESP. Además ambos nodos deben estar de acuerdo en los algoritmos criptográficos a emplear como también de los parámetro de control. Estas operaciones se pueden realizar mediante una configuración manual o mediante algún protocolo de control que se encargue de la negociación automática de los parámetros necesarios. Este protocolo es IKE (Internet Key Exchange). El IETF definió el protocolo IKE tanto para la gestión automática de claves como el establecimiento de SAs. Su uso no se limita a IPSec sino que es un estándar que puede ser usado por otros protocolos como OSPF y RIPv2. IKE es un protocolo hibrido que surge de la integración de dos protocolos complementarios: ISAKMP y Oakley. ISAKMP: Define en forma genérica el protocolo de comunicación y la sintaxis de los mensajes que se utilizan en IKE. Oakey: Especifica la lógica de cómo se realiza de forma segura el intercambio de clave entre dos partes que no se conocen previamente. El objetivo principal de IKE consiste en establecer una conexión cifrada y autenticada entre dos entidades, sobre la cual se negocian los parámetros necesarios para establecer una Asociación de Seguridad en IPSec. Fases de la negociación IKE Primera Fase: ambos nodos establecen un canal seguro y autenticado. El canal seguro se logra mediante un algoritmo de cifrado simétrico y un algoritmo HMAC. Las claves derivan de una clave maestra que se obtienen mediante el algoritmo de intercambio de claves Diffie-Hellman. Existen varios métodos de autenticación. Los dos mas usados son: Método del secreto compartido: cadena de caracteres que únicamente conocen los extremos y que a través de alguna función hash cada extremo demuestra al otro que conoce el secreto sin revelar su valor. Certificados Digitales: Se utilizan dos claves, una privada y otra pública. Segunda Fase: el canal seguro IKE es usado para negociar los parámetros de seguridad específicos asociados a un protocolo determinado, en nuestro caso IPSec. Fases de la negociación IKE Servicios de Seguridad ofrecidos por IPSec. Integridad y autenticación del origen de datos. Confidencialidad. Detección de repeticiones. Control de acceso: autenticación y autorización. No repudio. Aplicaciones Prácticas de IPSec Interconexión segura de redes locales. Acceso seguro de usuarios remotos Extranet Referencias: 1. 2. 3. 4. 5. 6. Santiago Pérez Iglesias. Análisis del protocolo IPSec: el estándar de seguridad en IP. Telefónica Investigación y Desarrollo. RedBook. TCP/IP Tutorial and Technical Overview. IBM. RFC 2402. AH. RFC 2406. ESP. RFC 2409. IKE. RFC 4301. Security Architecture for the Internet Protocol