UNIVERSIDAD DE PAMPLONA FACULTAD DE INGENIERIAS Y ARQUITECTURA DEPARTAMENTO DE INGENIERIA ELECTRONICA, ELECTRICA, TELECOMUNICACIONES Y SISTEMAS TRABAJO DE GRADO PRESENTADO PARA OPTAR POR EL TITULO DE INGENIERO DE SISTEMAS TITULO: ANÁLISIS DEL PROTOCOLO IPSec EN AMBIENTE IPv6 AUTOR: Sandra Milena Sandoval Carrillo PAMPLONA, COLOMBIA NOVIEMBRE, 2006 UNIVERSIDAD DE PAMPLONA FACULTAD DE INGENIERIAS Y ARQUITECTURA PROGRAMA DE INGENIERÍA DE SISTEMAS ANTEPROYECTO DE GRADO PARA OPTAR POR EL TÍTULO DE INGENIERO DE SISTEMAS TÍTULO: ANÁLISIS DEL PROTOCOLO IPSec EN AMBIENTE IPv6 AUTOR: Sandra Milena Sandoval Carrillo NOMBRES Y FIRMAS DE AUTORIZACIÓN: DIRECTOR: M.Sc. Luz Marina Santos Jaimes COMITÉ DE GRADO: M.Sc. Sandra Aranguren Zambrano PAMPLONA, COLOMBIA NOVIEMBRE, 2006 UNIVERSIDAD DE PAMPLONA FACULTAD DE INGENIERIAS Y ARQUITECTURA PROGRAMA INGENIERIA DE SISTEMAS AUTORIZACION PARA SUSTENTAR TRABAJO DE GRADO PARA OPTAR POR EL TITULO DE INGENIERO DE SISTEMAS TITULO: ANÁLISIS DEL PROTOCOLO IPSec EN AMBIENTE IPv6 AUTOR: SANDRA MILENA SANDOVAL CARRILLO ______________________________ DIRECTOR DEL TRABAJO: M.Sc. LUZ MARINA SANTOS JAIMES ___________________________________ JURADO CALIFICADOR: Oponente: M.Sc. HERNANDO CASTAÑEDA_______________________________ Presidente: Ing. MERCEDES ROZO ______________________________________ Secretario: Ing. DEWAR RICO __________________________________________ PAMPLONA, COLOMBIA NOVIEMBRE 2006 ANÁLISIS DEL PROTOCOLO IPSec EN AMBIENTE IPv6 DEDICATORIA AGRADECIMIENTOS ABSTRACT By means of this work it is tried to document the project Network IPv6 UP which is being carried out in the investigation group in Computer Science (CICOM), Department of Systems Engineering, with the purpose of implanting the IPv6 network protocol under the IPSec architecture as a test in a segment of the University of Pamplona data network, so that general characteristics of IPv6 and their IPSec extension of security will be studied. The main reason that takes to make this investigation, is the importance that for the investigation group CICOM of the University of Pamplona has involved being in investigation tasks which imply last generation technologies; one of most significant could be defined as the need to analyze, to handle, to experience and to explore the new protocols with the purpose of being to the vanguard of the investigation in these subjects at regional and national level. In order to achieve this intention, initially the theoretical bases on which IPv6 is based are studied in the present document, also the characteristics and communication mechanisms between machines that implement this protocol are analyzed, next the IPSec extension and their types of security association are described, later the three protocols used by IPSec are considered. Finally the applied tests are documented by means of the IPv6 protocol with their IPSec extension of security. RESUMEN Por medio de este trabajo se logra un objetivo del proyecto Red IPv6 UP el cual se esta llevando a cabo en el grupo de Investigación Ciencias Computacionales (CICOM), Programa de Ingeniería de Sistemas, con el fin de implantar el protocolo de red IPv6 bajo la arquitectura IPSec a modo de prueba en un segmento de la red de datos de la Universidad de Pamplona, de esta forma se estudiarán características generales de IPv6 y su extensión de seguridad IPSec. El principal motivo que lleva a realizar esta investigación, es la importancia que para el grupo de investigación CICOM de la Universidad de Pamplona reviste el estar involucrado en tareas de investigación que implican tecnologías de última generación; una de las más relevantes se podría definir como la necesidad de analizar, manejar, experimentar y explorar los nuevos protocolos con el fin de estar a la vanguardia de la investigación en estos temas a nivel regional y nacional. Para lograr este propósito, inicialmente se estudian en el presente documento las bases teóricas sobre las cuales se fundamenta IPv6, también se analizan las características y mecanismos de comunicación entre máquinas que implementan este protocolo, seguidamente se describe la extensión IPSec y sus tipos de asociación de seguridad, después se consideran los tres protocolos utilizados por IPSec. Por último se documentan las pruebas realizadas aplicando el protocolo IPv6 con su extensión de seguridad IPSec. Tabla de Figuras Figura 1. Datagrama IPv6 .................................................................................20 Figura 2. Datagrama IPv4 .................................................................................20 Figura 3. Encapsulado del Datagrama IPv6 en IPv4 ........................................24 Figura 4. Túnel Manual .....................................................................................24 Figura 5. Arquitectura de IPSec ........................................................................26 Figura 6. Modo Transporte y Túnel...................................................................29 Figura 7. Algoritmos Utilizadas por IPSec.........................................................30 Figura 8. Esquema de Criptografía Asimétrica .................................................33 Figura 9. Esquema de Criptografía Simétrica ...................................................34 Figura 10. Esquema 3DES ...............................................................................36 Figura 11. Cabecera de Autenticación (AH) .....................................................37 Figura 12. Funcionamiento del Protocolo AH ...................................................40 Figura 13. Estructura del Datagrama IPSec .....................................................40 Figura 14. Cabecera de Cifrado de Seguridad (ESP). ......................................41 Figura 15. Funcionamiento del Protocolo ESP .................................................44 Figura 16. Estructura del Datagrama IPSec .....................................................44 Figura 17. Funcionamiento del Protocolo IKE...................................................46 Figura 18. Esquema de Conexión para la prueba con IPv6..............................48 CONTENIDO INTRODUCCION ____________________________________________________ 12 1 IPv6____________________________________________________________ 14 1.1 Introducción al Protocolo TCP/IP_______________________________ 14 1.2 Protocolo IPv6_______________________________________________ 15 1.3 Modelos de Direccionamiento _________________________________ 16 1.3.1 Representación de Direcciones IPv6 _________________________ 17 1.4 Formato del Datagrama IPv6 __________________________________ 19 1.4.1 Formato de la Cabecera ____________________________________ 21 1.4.2 Formato del Campo de Datos _______________________________ 22 1.5 Mecanismos de Transición ____________________________________ 23 1.5.1 Dual Stack ________________________________________________ 23 1.5.2 Túneles __________________________________________________ 23 2 PROTOCOLO IPSec _____________________________________________ 26 2.1 Descripción del Protocolo IPSec _______________________________ 26 2.1.1 Asociación de Seguridad SA (Security Association) ____________ 28 2.1.2 Modos de Operación en IPSEC ______________________________ 29 2.2 Métodos de Seguridad en IPSEC ______________________________ 29 2.2.1 Funciones Resumen (hash) _________________________________ 31 2.2.2 Criptografía Asimétrica _____________________________________ 31 2.2.3 Criptografía Simétrica ______________________________________ 34 2.3 PROTOCOLO AH ___________________________________________ 37 2.3.1 Campos de la Cabecera de Autenticación (AH) ________________ 38 2.3.2 Funcionamiento del protocolo AH ____________________________ 39 2.4 PROTOCOLO ESP __________________________________________ 41 2.4.1 Cabecera de Cifrado de Seguridad (ESP) _____________________ 41 2.4.2 Funcionamiento del Protocolo ESP___________________________ 43 2.5 3 PROTOCOLO IKE ___________________________________________ 44 PRUEBAS REALIZADAS _________________________________________ 47 3.1 Configuración General________________________________________ 47 3.2 Configuración de IPv6 en un Equipo Red Hat Linux 9_____________ 48 3.2.1 Configuración IPv6_________________________________________ 48 3.3 Configuración y Prueba de IPSec para IPv6 _____________________ 53 3.3.1 Instalación de Frees/wan ___________________________________ 53 3.4 Creación de Túneles IPv6 en IPv4 en Red Hat Linux _____________ 59 CONCLUSIONES____________________________________________________ 61 RECOMENDACIONES _______________________________________________ 62 BIBLIOGRAFIA ______________________________________________________ 63 Análisis del Protocolo IPSec en Ambiente IPv6 INTRODUCCION El protocolo Internet Protocol IP, es uno de los más usados para la interconexión de redes tanto en ambientes académicos como corporativos, y naturalmente lo es también en la Internet pública. La fuerza de IP radica en su facilidad y su flexibilidad para el envío de grandes volúmenes de información en pequeños datagramas a través de los diversos esquemas de enrutamiento. Sin embargo, IP presenta ciertas debilidades, la forma en que el protocolo enruta los datagramas hace que las grandes redes IP sean vulnerables a ciertos riesgos de seguridad. Debido a los problemas de implementación aparecidos con la versión del protocolo estándar de Internet, IPv4 (Internet protocolo versión 4), se vio la necesidad de desarrollar mecanismos específicos para el mejor funcionamiento de la red, dando cabida a nuevas versiones del protocolo IP tales como IPv6 extensión IPSec. La tecnología de IPSec se basa en criptografía moderna, lo que garantiza, por un lado, la privacidad y, por otro, una autentificación fuerte de datos. Las características de IPSec lo hacen único debido a que implementa seguridad en la capa de red más que en la de aplicación. La realización de pruebas con IPv6 extensión IPSec, constituye un aspecto fundamental en los procesos de transición y utilización de aplicaciones futuras y actuales modificadas para hacer uso de las ventajas operativas ofrecidas por IPv6. A nivel latinoamericano, fue México el pionero en la investigación y realización de pruebas con el protocolo IPv6, seguido de países como Chile, Argentina, 12 Análisis del Protocolo IPSec en Ambiente IPv6 Uruguay, Brasil, entre otros. En Colombia apenas se está comenzando a incursionar en la temática de IPv6: UniNet, una Red Universitaria, sin ánimo de lucro cuyo fin es integrar servicios proporcionados a través de Internet, para ofrecerlos a comunidades virtuales, creadas por personas y organizaciones, lidera un proyecto de implementación de redes basadas en este protocolo, del cual ya forman parte la universidad de Magdalena y la del Cauca. 13 Análisis del Protocolo IPSec en Ambiente IPv6 1 IPv6 1.1 Introducción al Protocolo TCP/IP Las familias de protocolos TCP/IP permiten la comunicación entre diferentes tipos de ordenadores con independencia del fabricante, red a la que se encuentren conectados y sistema operativo utilizado. El Protocolo de Control de Transmisión TCP (Transmission Control Protocol) es el encargado de controlar la división de la información en segmentos. El Protocolo de Internet IP (Internet Protocol) es un protocolo no orientado a conexión usado por el origen y destino para la transmisión de datos, esto lo hace etiquetando los datagramas con las direcciones IP de los dos computadores; funciones que son realizadas en la capa de red del modelo OSI1, de esta manera, garantiza que los datos sean entregados al destinatario correcto, pero no garantiza que el datagrama alcance su destino. La versión utilizada actualmente es la IP versión 4 (IPv4), tiene un diseño flexible y poderoso, sin embargo, IPv4 ya presenta algunas limitaciones al funcionamiento de las redes actuales y futuras como: la inminente saturación del espacio de direcciones, la necesidad de contar con mecanismos de seguridad en la capa de red, la falta de soporte para aplicaciones en tiempo real y para dispositivos modernos, ineficiente enrutamiento de la información, etc. 1 OSI (Open System Interconection) Modelo de referencia de Interconexión de Sistemas Abiertos. 14 Análisis del Protocolo IPSec en Ambiente IPv6 1.2 Protocolo IPv6 La nueva versión del protocolo IP recibe el nombre de IPv6 (Protocolo de Internet versión 6); inicialmente se denomino IPng (Protocolo de Internet Próxima Generación ó Internet Protocol Next Generation), diseñada por la IETF2 (Internet Engineering Task Force) la cual indico a través de un RFC3 (Request For Comments) [1] las necesidades que debía cubrir y las especificaciones que debía cumplir. Este nuevo modelo se convertirá en sucesor de la versión 4 puesto que resuelve deficiencias y aporta funciones como: nuevo direccionamiento, encriptación de datos, autoconfiguración, calidad de servicio, enrutamiento jerárquico, seguridad basada en el protocolo IPSec; funciones que hacen que una red tenga mayor velocidad y desempeño lo cual va a acorde a la evolución actual de Internet. Una de las características de esta nueva versión, es el sistema de direcciones [2], o sea mayor espacio de direccionamiento. En IPv4 los nombres que se usan para conectarse a Internet (www.google.com) se traducen como direcciones IP (216.239.55.100) que son los que realmente usa la Red. Estas direcciones tienen 32 bits asociados en 4 grupos de 8 bits, por lo que el conjunto global va de 0.0.0.0 a 255.255.255.255, lo que significa que se podrían asignar 4.294’967.296 direcciones. En IPv6 las direcciones IP se multiplican por cuatro; por consiguiente el tamaño de la dirección es de 128 bits. Un espacio de direcciones que permite: 340.282.366.920.938.463.463.374.607.431.768.211.456 (3,4 x 1038) direcciones posibles, es decir IPv6 maneja 2^128 direcciones (3.402823669 e38, o sea 2 IETF (Internet Engineering Task Force) Organización encargada de la evolución de la arquitectura en la Red, desarrollando los protocolos estándar de Internet. 3 RFC (Petición de comentarios) Serie de documentos que describe el conjunto de protocolos de Interne t y experimentos similares. 15 Análisis del Protocolo IPSec en Ambiente IPv6 sobre 1.000 sixtillones), con esta nueva cantidad de direcciones se puede llegar a pensar que cualquier dispositivo digital tendrá una dirección IP; solamente el 15% de espacio de direccionamiento esta previsto para ser usado, el 85% restante esta reservado para uso futuro, lo cual hace viable asignar direcciones IP a cada ser humano. 1.3 Modelos de Direccionamiento En IPv6 existen direcciones de enlace, privadas, globales; que son llamadas ámbitos (scope) de direcciones. Además lo conocido como unicast, multicast y broadcast, da lugar a unicast, anycast y multicast. El Broadcast ya no existe en IPv6, pues fue reemplazado por el Multicast. Según el ámbito, las direcciones se pueden clasificar en: Link Local: Se usan para direccionar un solo enlace, para utilizarlo en autoconfiguración de direcciones, descubrimiento de vecinos o ante la ausencia de un router. Site Local: Direcciones de Sitio Local se usan en redes que no tienen una conexión a Internet. Global: Este tipo de direcciones tiene un prefijo identificador de grupo, o sea son direcciones validas que se usan para estar presente en Internet. Según el tipo de direcciones se pueden clasificar en: Unicast: Este tipo de direcciones se caracteriza por identificar un único nodo final de destino. Un datagrama enviado a una dirección unicast será entregado a un solo nodo destino. 16 Análisis del Protocolo IPSec en Ambiente IPv6 Multicast: Las direcciones multicast agrupan un conjunto de nodos finales de destino. Un datagrama enviado a una dirección multicast será entregado a un conjunto de destinos que forman parte de un mismo grupo. Anycast: Este grupo de direcciones al igual que multicast agrupa un conjunto de nodos finales de destino. La diferencia principal con multicast está en el sistema de entrega de datagramas. Este tipo de agrupación no existía en la versión 4. 1.3.1 Representación de Direcciones IPv6 1. Las direcciones cambian enormemente, en IPv4 las direcciones están representadas por 4 octetos separados por puntos, en IPv6 estas direcciones están separadas por “:“ y se divididen en 8 octetos de 4 dígitos hexadecimales que abarcan desde 0000 hasta FFFF. IPv4: 200.123.125.59 IPv6: 2000:BA98:A654:4567:FEDC:BA89:7654:3210 2. Los ceros iniciales (a la izquierda) en un grupo pueden ser omitidos. 2002:0450:0009:0010:0000:0000:0000:0071 2002:450:9:10:0000:0000:0000:71 3. Como se ve en el ejemplo anterior hay grupos continuos de cuatro dígitos que toman el valor "0000", esto puede ser comprimido usando la sintaxis “::”, esto indica uno o más grupos de 16 bits de ceros. Dicho símbolo podrá aparecer una sola vez en cada dirección. 17 Análisis del Protocolo IPSec en Ambiente IPv6 2002:0450:0009:0010:0000:0000:0000:0071 2002:450:9:10::71 4. Si la dirección es una dirección IPv4 camuflada, los últimos 32 bits pueden escribirse en base decimal; así, ::ffff:192.168.89.9 es lo mismo que ::ffff:c0a8:5909, pero no lo mismo que ::192.168.89.9 o ::c0a8:5909. El formato ::ffff:a.b.b.d se denomina dirección IPv4 mapeada, y el formato ::a.b.c.d dirección IPv4 compatible. Las direcciones IPv4 pueden ser transformadas fácilmente al formato IPv6. Por ejemplo, si la dirección decimal IPv4 es 135.75.43.52 (en hexadecimal, 0x874B2B34), puede ser convertida a 0000:0000:0000:0000:0000:0000:874B:2B34 o ::874B:2B34. 1.3.1.1 Representación de los Prefijos de las Direcciones IPv6 La representación de los prefijos de direcciones con IPv6 es expresada de la misma forma que en la notación CIDR4 (Encaminamiento Inter-Dominios sin Clases, pronunciado como "cider" or "cedar) [3] con IPv4. Un prefijo de dirección IPv6 se representa con la siguiente notación: dirección-ipv6/longitud-prefijo, donde 4 CIDR (Classless Inter-Domain Routing) estándar basado en prefijos de red para la interpretación de direcciones IP. 18 Análisis del Protocolo IPSec en Ambiente IPv6 dirección-ipv6: es una dirección IPv6 en cualquiera de las notaciones mencionadas anteriormente y longitud-prefijo: es un valor decimal que especifica cuantos de los bits más significativos, representan el prefijo de la dirección. 1.3.1.2 DNS en IPv6 El almacenamiento actual de direcciones de Internet DNS (Domain Name System) de IPv4 no se puede extender fácilmente para que soporte direcciones IPv6 de 128 bits, ya que las aplicaciones asumen que a las consultas de direcciones se retornan solamente direcciones IPv4 de 32 bits. Inicialmente, para resolver este problema, se definieron las siguientes extensiones: • Un nuevo tipo de registro [4], el registro AAAA. Se usa para almacenar direcciones IPv6, porque las extensiones están diseñadas para ser compatibles con implementaciones de DNS existentes. • Un nuevo dominio para soportar búsquedas basadas en direcciones IPv6, este dominio es IP6.INT; • Redefinición de las consultas existentes, que localizan direcciones IPv4, para que puedan también procesar direcciones IPv6. 1.4 Formato del Datagrama IPv6 El datagrama IPv6 (figura 1) es una evolución de la anterior versión. No se han introducido grandes cambios de contenido o estructura, simplemente se ha mejorado y optimizado. 19 Análisis del Protocolo IPSec en Ambiente IPv6 Con respeto al datagrama IPv4 (figura 2) se suprimieron siete campos (tamaño de cabecera, tipo de servicio, número de identificación del datagrama, banderas, numero de byte del datagrama fragmentado, checksum, opciones), y se rediseñaron los campos de longitud del datagrama, tiempo de vida y tipo de protocolo. Figura 1. Datagrama IPv6 Figura 2. Datagrama IPv4 IPv6 utiliza un tamaño de cabecera fijo de 40 bytes, que componen un total de ocho campos: 20 Análisis del Protocolo IPSec en Ambiente IPv6 1.4.1 Formato de la Cabecera • Versión: (4 bits). Número de versión del protocolo IP, que en este caso contendrá el valor 6. Se sigue manteniendo como el primer campo del datagrama. Esto es así para mantener la compatibilidad con formatos anteriores y porque permite de una forma sencilla y rápida discriminar que versión de datagrama se recibe, facilitando a los routers el proceso de discriminar entre versión 4 y versión 6. • Prioridad o Clase (class): (8 bits). Contiene el valor de la prioridad o importancia del datagrama que se está enviando con respecto a otros datagramas provenientes de la misma fuente. Este campo es una de las nuevas aportaciones para conseguir algunos tipos de aplicaciones (videoconferencia, telefonía, etc.) que puedan realizarse en tiempo real. • Etiqueta de Flujo (Flow Label): (16 bits). Campo que se utiliza para indicar que el datagrama requiere un tratamiento especial por parte de los routers que lo soporten. Esto es aplicable por ejemplo a una serie de datagramas que van del mismo origen al mismo destino y con las mismas opciones. • Tamaño de los Datos (Payload Length): (16 bits). Permite un tamaño máximo de 2^16 = 65536 bytes (64K). No obstante, a diferencia de la versión 4, este número hace referencia sólo al tamaño de los datos que transporta, sin incluir la cabecera. 21 Análisis del Protocolo IPSec en Ambiente IPv6 • Siguiente Cabecera (Next Header): (8 bits). Indica al router si tras el datagrama viene algún tipo de extensión u opción. También permite describir con más detalle las opciones del datagrama. En IPv6 se definen una serie de cabeceras de extensión (ver tabla 1) que se colocan justo después de los datos en forma de cadena (daisy Caín, conexiones múltiples) permitiendo personalizar el datagrama. De tal forma que se pueda tener varias extensiones de cabecera tan solo indicando en el campo siguiente cabecera de cada una de ellas el tipo de la cabecera que vendrá a continuación. En este trabajo solo se hablará de las cabeceras de autenticación (AH) y de encapsulación (ESP) que son las utilizadas por IPSec. • Alcance del Datagrama o Límite de Saltos (Hop Limit): (8 bits) Indica el número máximo de routers que puede atravesar un datagrama hasta llegar a su destino. Este campo es el equivalente al tiempo de vida (TTL) de la versión 4. Cuando un datagrama llega a un router y es encaminado hacia otro ordenador, este campo es decrementado en una unidad. Este campo es necesario para evitar que los datagramas circulen infinitamente por la red, eliminándose al llegar a 0 (su valor máximo es de 2^8 = 256). 1.4.2 Formato del Campo de Datos • Dirección de Origen: (128 bit) El número de dirección del host que envía el datagrama. Su longitud es cuatro veces mayor que en la versión 4. 22 Análisis del Protocolo IPSec en Ambiente IPv6 • Dirección de Destino: (128 bit) Número de dirección del destino, aunque puede no coincidir con la dirección del host final en algunos casos. 1.5 Mecanismos de Transición Los mecanismos de transición son un conjunto de mecanismos y de protocolos implementados en hosts y routers, para realizar las migraciones de un sistema a otro o de una tecnología a otra con la menor interrupción posible para el usuario, este es el mecanismo utilizado por IPv6. Existen dos mecanismos básicos: 1.5.1 Dual Stack Provee soporte completo para IPv4 e IPv6 en host y routers. La forma más directa para que los nodos IPv6 sean compatibles con nodos IPv4 es proveer una implementación completa de IPv4. Estos nodos son llamados nodos “IPv6/IPv4”, tienen la habilidad de enviar y recibir datagramas IPv6 e IPv4, pudiendo así interoperar directamente con nodos IPv4 usando datagramas IPv4, y también operar con nodos IPv6 usando datagramas IPv6. 1.5.2 Túneles Encapsula datagramas IPv6 dentro del encabezado IPv4 para ser transportados a través de infraestructura de ruteo IPv4. Los nodos o redes IPv6 que se encuentran separadas por infraestructuras IPv4 pueden construir un enlace virtual, configurando un túnel (figura 3). Los extremos del túnel son dos 23 Análisis del Protocolo IPSec en Ambiente IPv6 direcciones IPv4 y dos IPv6. Y son los responsables de realizar la operación de encapsulado del datagrama IPv6 en IPv4. Figura 3. Encapsulado del Datagrama IPv6 en IPv4 Se pueden utilizar dos tipos de túneles: Túneles Manuales: • Son explícitamente configurados en los nodos finales o routers. . • Una dirección IPv4 es el destino del túnel creado y debe ser alcanzable. • Su configuración implica: dos direcciones origen, una de ellas IPv4 y la otra IPv6 y lo mismo para las direcciones destino. En el proyecto se instalará este tipo de túnel para realización de pruebas (figura 4). Figura 4. Túnel Manual 24 Análisis del Protocolo IPSec en Ambiente IPv6 Túneles Automáticos: • Los nodos tienen asignadas direcciones IPv4 compatibles, o sea, de la forma ::a.b.c.d • Si el destino es una dirección IPv4 compatible, entonces se establece un túnel automático. 25 2 2.1 PROTOCOLO IPSec Descripción del Protocolo IPSec IPSec (Internet Protocol Security) es un estándar que proporciona servicios de seguridad a la capa IP y a todos los protocolos supriores (TCP y UDP, entre otros). Entre las ventajas de IPSec se destaca que esta apoyado en estándares de la IETF [5], proporcionando un nivel de seguridad común y homogéneo para todas las aplicaciones, además de ser independiente de la tecnología física empleada. Está basado en un modelo de seguridad extremo a extremo, lo que significa que los únicos hosts o routers que tienen que conocer la protección de IPSec son el que envía y el que recibe. Cada equipo controla la seguridad por sí mismo en su extremo, bajo la hipótesis de que el medio por el que se establece la comunicación no es seguro. En la figura 5 se muestra el modo en que funciona IPSec, está compuesto por dos protocolos de seguridad de tráfico, el Authentication Header (AH), el Encapsulating Security Payload (ESP) y un protocolo de Gestión de Claves (Internet Key Exchange, IKE). Figura 5. Arquitectura de IPSec 26 Al utilizar el protocolo AH se aplican algoritmos de autenticación de los datos (la información enviada es realmente de quien dice ser), y al emplear el protocolo ESP se aplican algoritmos de encriptación con flexibilidad para soportar combinaciones de autenticación, integridad de datos (seguridad de que cualquier alteración de la información será detectada), control de acceso (se establecen políticas de establecimiento de conexiones IPSec) y confidencialidad de datos (la información enviada no será vista por otras personas). DOI (Domain of Interpretation) define todos los parámetros que se negocian para establecer canales seguros, incluyendo identificadores únicos para algoritmos de autentificación y de encriptamiento durante el proceso de comunicación, además de las medidas necesarios para establecer una conexión AH o ESP, también especifica parámetros operacionales para el protocolo IKE tales como tiempo de vigencia de las claves (key Exchange), y ubicación de las claves criptográficas requeridas para cumplir con los servicios solicitados. La Política de Seguridad (SP, Security Policy), almacena información adicional para definir qué tráfico proteger, y cuándo hacerlo. IPsec funciona a partir de dos políticas de seguridad: • Base de datos políticas de seguridad SPD (Security Policy Database) estas políticas le dicen a IPSec cuando debe o no debe actuar sobre un datagrama IPv6. • Base de datos asociaciones de seguridad SAD (Security Association Database), estas asociaciones le dicen a IPSec cómo debe crear el canal entre las dos máquinas. 27 2.1.1 Asociación de Seguridad SA (Security Association) La función de la Asociación de Seguridad (SA) es proporcionar un método para que dos computadores puedan intercambiar datos de manera segura. Está definida para comunicaciones en un solo sentido (simplex) esto significa que cada par de sistemas que se comunican por lo menos tiene dos SAs, una de origen a destino y otra de destino a origen. Lo mismo ocurre para la asociación de seguridad que se crea para AH o ESP, si estos dos protocolos se aplican a una comunicación juntos, se crearán dos (o más) asociaciones de seguridad. Para la identificación de una asociación de seguridad se utiliza un Índice de Parámetros de Seguridad (Security Parameter Index, SPI) el cual contiene la dirección IP destino y el identificador de protocolo de seguridad (AH y ESP); con esta información el Índice de Parámetros de Seguridad puede recibir un datagrama y saber a que asociación de seguridad hace referencia, y de esta forma poder autenticarlo y/o descifrarlo. Una asociación de seguridad describe: • Que algoritmo va a ser usado en la autenticación y las claves para él. • El algoritmo de cifrado y las claves • Tiempo de vida de las claves • Tiempo de vida de la SA • Dirección IP origen de la SA 28 2.1.2 Modos de Operación en IPSEC 1. Modo Transporte El contenido transportado dentro del datagrama AH o ESP son datos de la capa de transporte. Por lo tanto la cabecera IPSec se inserta a continuación de la cabecera IPv6 y antes de los datos que se desean proteger. El modo transporte solo se cifra los datos, las cabeceras AH y ESP quedan igual. 2. Modo Túnel El contenido del datagrama AH o ESP es un datagrama completo es decir el datagrama IPv6 al cual se añade la cabecera AH o ES, posteriormente se añade una cabecera IP que es la que se utiliza para encaminar los paquetes a través de la red. Figura 6. Modo Transporte y Túnel 2.2 Métodos de Seguridad en IPSEC IPSec ha sido diseñado de forma modular (figura 7) lo cual permite seleccionar el conjunto de algoritmos deseados sin afectar a otras partes de la implementación. Han sido definidos sin embargo ciertos algoritmos estándar 29 que deberán soportar todas las implementaciones para asegurar la interoperabilidad. Dichos algoritmos de referencia son: algoritmos de cifrado (3DES, DES), algoritmos de hash (MD5 y SHA-1); además de poder utilizar otros algoritmos como: Encriptación de clave pública Diffie-Hellman, RSA, etc. Figura 7. Algoritmos Utilizadas por IPSec Estos métodos son utilizados por: AH (Solo autenticación): 1. Detecta los cambios de contenido 2. Los destinatarios pueden autenticar el origen 3. Previene los ataques de IP-Spoofing5 4. Protege el ataque de retransmisión ESP (Cifrado y si se quiere autenticación): 1. Confidencialidad de contenido 2. Confidencialidad limitada de flujo de tráfico 3. Opcionalmente, servicio de autenticación como AH 5 IP-Spoofing Suplantación de IP. Consiste básicamente en sustituir la IP origen de un datagrama, por otra IP a la cual se desea suplantar. 30 2.2.1 Funciones Resumen (hash) La función hash es una función matemática aplicada a un mensaje, éste produce una representación única de 128 bits, el resultado obtenido es una representación comprimida o codificada de un bloque más grande de datos. Un mensaje codificado ha de ser sometido a un proceso de cálculo antes de que se envíe y al ser recibido. Si los dos compendios calculados son iguales, entonces el mensaje no tuvo alteración alguna durante la transmisión. Los algoritmos más utilizados son el MD56. Dado que el tamaño del código que se genera como salida es de tamaño limitado, (típicamente 128, 256 ó 512 bits) mientras que el tamaño del mensaje de entrada es ilimitado (típicamente un archivo), es evidente tener las siguientes características: • El resultado de aplicar una función hash a un mensaje da como salida un numero grande • Todos los números hash generados con un mismo método tienen igual tamaño sea cual sea el mensaje. • Dado un mensaje, es fácil y rápido para un computador calcular su número hash. • Es imposible reconstruir el mensaje base a partir del número hash. • Es imposible que dos mensajes diferentes tengan el mismo número hash. 2.2.2 Criptografía Asimétrica 6 MD5 Algoritmo de Resumen del Mensaje 5 (Message-Digest Algorithm 5) es un algoritmo de reducción criptográfico de 128 bits ampliamente usado. 31 Están basados en utilizar claves distintas para cifrar y descifrar, una de ellas se hace pública y la otra es privada para cada usuario. De este modo todos los usuarios del sistema tienen acceso a las claves públicas pero únicamente ellos conocen su clave privada. Modo de funcionamiento Se cifra el mensaje o un resumen de éste mediante la clave privada y cualquier persona puede comprobar su procedencia utilizando la clave pública del emisor (figura 8) El mensaje es auténtico porque solo el emisor verdadero puede cifrar con su clave privada. Dependiendo de la característica de seguridad que se pretenda implementar, el modo de funcionamiento es el siguiente: Para características de confidencialidad: 1. Para cada usuario origen y destino se generan un par de claves; la clave pública se lleva aun registro o fichero público y la clave privada se mantiene en secreto por su propietario. 2. Para encriptar un mensaje se utiliza la clave pública mientras que para desencriptar se usa la clave privada. 3. Si un origen desea enviar un mensaje a un destino, se encripta el mensaje usando la clave pública del destino. 4. Cuando el destino recibe el mensaje lo desencripta usando su clave privada. Nadie puede desencriptar el mensaje ya que sólo el destino conoce la clave privada. 5. El sistema es seguro mientras que cada usuario controle su clave privada. 6. En cualquier momento se puede cambiar la clave privada generando un nuevo par de claves. 32 Para características de autenticidad: 1. El origen encripta utilizando su propia clave privada un mensaje. 2. Cuando el destino lo recibe lo desencripta utilizando la clave pública del origen. 3. La autenticidad se asegura ya que solamente el origen puede encriptar el mensaje. 4. Es imposible alterar el mensaje sin acceder a la clave privada del origen por lo tanto se asegura la autenticidad y la integridad de los datos. Figura 8. Esquema de Criptografía Asimétrica 2.2.2.1 Algoritmo RSA Algoritmo de Rivest, Shamir y Adelman (RSA), es un algoritmo cifrador de bloques. RSA es el más conocido y usado de los sistemas de clave pública, y también el más rápido de ellos. La clave es un número de gran tamaño, que una persona puede conceptualizar como un mensaje digital, como un archivo binario o como una cadena de bits o bytes. En cuanto a las longitudes de claves, permite longitudes variables, siendo aconsejable actualmente el uso de claves superiores a 1024 bits. Los mensajes enviados usando el algoritmo RSA se representan mediante números y el funcionamiento se basa en el producto de dos números primos grandes (mayores que 10100) elegidos al azar para conformar la clave de descifrado. Emplea expresiones exponenciales en aritmética modular. 33 2.2.3 Criptografía Simétrica Se incluyen en esta familia el conjunto de algoritmos diseñados para cifrar un mensaje utilizando una única clave conocida por los dos participantes de la comunicación, de manera que el mensaje cifrado sólo pueda descifrarse conociendo dicha clave secreta. Algunas de las características más destacadas de este tipo de algoritmos son las siguientes: • A partir del mensaje cifrado no se puede obtener el mensaje original ni la clave que se ha utilizando, aunque se conozcan todos los detalles del algoritmo criptográfico utilizado. • A partir de un mensaje original se obtiene un mensaje cifrado al aplicar una clave secreta; esa misma clave secreta se utiliza posteriormente para volver a obtener el mensaje original. • Origen y Destino deben haber acordado una clave común por medio de un canal de comunicación confidencial antes de poder intercambiar información confidencial por un canal de comunicación inseguro. Los algoritmos simétricos más conocidos son: DES, 3DES, RC2, RC4, RC5, IDEA, Blowfish y AES. En este trabajo se explicarán solo los utilizados por IPSec. Figura 9. Esquema de Criptografía Simétrica 34 2.2.3.1 Gestión de Claves Diffie-Hellman Este algoritmo trabaja con funciones matemáticas en lugar de sustituciones y permutaciones. El algoritmo de gestión de claves tiene las siguientes características: • Preserva las propiedades de confidencialidad y autenticidad. • Cualquiera de las dos claves generadas se pueden utilizar para el encriptado y el desencriptado equitativamente. • Se introduce más complejidad en los procesos de gestión de claves tales como generación, almacenamiento, distribución y mantenimiento. • Puesto que dicha clave sólo es conocida por el emisor y el receptor, el receptor puede, mediante el cálculo de la función hash, comprobar tanto la integridad como la procedencia del mensaje. 2.2.3.2 DES Estándar de cifrado de datos DES (Data Encryption Standard) toma un mensaje de longitud fija de bits y lo transforma mediante una serie de complicadas operaciones en otro mensaje cifrado de la misma longitud. En el caso de DES el tamaño del bloque es de 64 bits, utiliza una clave criptográfica para modificar la transformación, de modo que el descifrado sólo puede ser realizado por aquellos que conozcan la clave concreta utilizada en el cifrado. La clave mide 64 bits, aunque en realidad, sólo 56 de ellos son empleados por el algoritmo. Los ocho bits restantes se utilizan únicamente para comprobar la paridad, y después son descartados. Por tanto, la longitud de clave efectiva en DES es de 56 bits lo que significa que hay 256 claves posibles esto es 72.057.594.037.927.936 claves. 35 El sistema DES se considera en la actualidad poco práctico, debido a la corta longitud de su clave. Para solventar este problema y continuar utilizando DES se creó el sistema Triple DES. 2.2.3.3 3DES También es conocido como TDES. Esta basado en tres iteraciones sucesivas del algoritmo DES, con lo que se consigue una longitud de clave de 128 bits, y que es compatible con DES simple. DES tiene la característica matemática de no ser un grupo, lo que implica que si se encripta el mismo bloque dos veces con dos llaves diferentes se aumenta el tamaño efectivo de la llave. Para implementarlo, se toma una clave de 128 bits lo que significa que existen 2128 claves posibles, esta clave se divide en 2 diferentes de 64 bits, aplicándose el siguiente proceso al mensaje: • Al mensaje se le aplica el algoritmo de cifrado de clave simétrica con la primera clave, • Al resultado (denominado ANTIDES) se le aplica un segundo algoritmo de cifrado con la segunda clave, • Y al resultado se le vuelve a aplicar un tercer cifrado con la primera clave. • Figura 10. Esquema 3DES 36 2.3 PROTOCOLO AH El protocolo AH [6] es el procedimiento utilizado por IPSec para garantizar la integridad y autenticación de los datagramas, suministrando un medio al receptor para autenticar el origen de los datos comprobando que no se sufrió alteración durante la comunicación. Sin embargo no provee servicios de confidencialidad, los datos transmitidos pueden ser vistos por terceros. Como lo indica su nombre, AH es una Cabecera de Autenticación (Authentication Header, AH), la cual se inserta entre la cabecera IPv6 y los datos transportados, de forma que los proteja de posibles ataques. Siendo AH un protocolo nuevo el IANA7 le asigno el numero decimal 51[7]; esto significa que al campo siguiente cabecera del datagrama IPv6 se le asigna 51. Figura 11. Cabecera de Autenticación (AH) 7 IANA (Internet Assigned Numbers Authority) 37 2.3.1 Campos de la Cabecera de Autenticación (AH) • Siguiente Cabecera (Next Header) Siguiente Cabecera es un campo de 8 bits, identifica cual es el protocolo que se encuentra en el segmento de datos. • Tamaño de los Datos (Payload Length) Este campo de 8 bits especifica la longitud de los datos en palabras de 32 bits. • Reservado Este campo de 16 bits esta reservado para uso futuro. Se debe fijar a cero. • Índice de Parámetros de Seguridad (SPI) El SPI es un valor arbitrario de 32 bits que, conjuntamente con la dirección de destino IP y el protocolo de seguridad (AH), identifican la Asociación de Seguridad para este datagrama. • Número de Secuencia (Sequence Number) Identifica el número del datagrama en la comunicación, estableciendo un orden y evitando problemas de entrega de datagramas fuera de orden o ataques externos mediante la reutilización (Replay Attacks) de datagramas. 38 • Datos Autenticados (Authentication Data) Se obtienen realizando el algoritmo de hash entre algunos campos de la cabecera IP, la clave secreta y los datos enviados. 2.3.2 Funcionamiento del protocolo AH 1. La función hash o algoritmo de hashing es aplicado a la combinación del mensaje de entrada y una clave, 2. Esto da como salida la representación del mensaje en forma de una cadena de dígitos que se denomina MAC, esto es como una huella digital de los datos. 3. El MAC se copia en el campo datos autenticados del datagrama AH, de esta forma queda construido el datagrama IPSec el cual se envía a través de la red, 4. En el origen se aplica la función hash y se hace el cálculo del MAC, se compara con el recibido en el datagrama, si son iguales, el receptor tiene la seguridad de que el datagrama no ha sido modificado durante la comunicación y que procede efectivamente del origen esperado (ver figura 12). 39 Figura 12. Funcionamiento del Protocolo AH Figura 13. Estructura del Datagrama IPSec 40 2.4 PROTOCOLO ESP El objetivo principal del protocolo ESP (Encapsulating Security Payload) [8] es proporcionar confidencialidad; define el modo de cifrar los datos que se desean enviar y cómo este contenido cifrado se incluye en el datagrama IPv6, adicionalmente, puede ofrecer los servicios de integridad y autenticación del origen de los datos incorporando un mecanismo similar al de AH. La Cabecera de Cifrado de Seguridad (ESP) es propia de IPv6, es colocada después de todos los encabezados en el datagrama y se le asigno el número decimal 50. Figura 14. Cabecera de Cifrado de Seguridad (ESP). 2.4.1 Cabecera de Cifrado de Seguridad (ESP) • Índice de Parámetros de Seguridad (SPI) SPI especifica qué asociación de seguridad emplear para desencapsular el datagrama ESP. 41 • Número de Secuencia (Sequence Number) Este número de secuencia se emplea para protegerse de ataques por repetición de mensajes. • Datos Cifrados Es un campo de longitud variable que contiene el mensaje encriptado, es obligatorio y su longitud es un número 32 bits. La información que utilizada el algoritmo de encriptación para su funcionamiento es incluida dentro de este campo. Relleno Su función es agregar caracteres de relleno al campo de datos para completar el tamaño del algoritmo y ocultar su longitud real. Longitud del Relleno Indica el número de bytes que se utilizaron en el campo de datos para completar el tamaño del algoritmo. Se puede agregar de 0 a 255 bytes de relleno. Siguiente Cabecera Es un campo de 8 bits que identifica el tipo de datos que contiene el campo Datos Cifrados, por ejemplo, una cabecera de extensión IPv6. 42 2.4.2 Funcionamiento del Protocolo ESP La función de cifrado en el protocolo ESP se realiza mediante un algoritmo de cifrado de clave simétrica, este algoritmo maneja cifrado de bloque8, de modo que la longitud del mensaje tiene que ser múltiplo del tamaño del bloque (8 o 16 byte, en la mayoría de los casos). Por esta razón existe un campo de relleno en la cabecera de cifrado de seguridad ESP. En la figura 15 se representa como el protocolo ESP permite enviar los datos de forma confidencial. 1. Para enviar los mensajes el emisor toma el mensaje original, y le aplica el algoritmo de criptografía simétrica 3DES, 2. El mensaje cifrado se incluye en el datagrama IPSec (figura 16), a continuación de la cabecera ESP. Durante el tránsito hasta su destino, si el datagrama es interceptado por un tercero sólo obtendrá un conjunto de bits incoherentes. 3. En el destino, el receptor aplica de nuevo el algoritmo de cifrado recuperando los datos originales. La seguridad que se proporciona está en la robustez del algoritmo de cifrado, es decir, que un atacante no puede descifrar los datos sin conocer la clave, así como en que la clave ESP únicamente la conocen el emisor y el receptor. 8 Cifrado de Bloque: dividir el mensaje a cifrar en bloques de un determinado tamaño. 43 Figura 15. Funcionamiento del Protocolo ESP Figura 16. Estructura del Datagrama IPSec 2.5 PROTOCOLO IKE Es un protocolo de control que se encarga de poner en contacto y negociar los algoritmos, claves y demás elementos para la comunicación segura con IPSec entre dos computadores. El IETF ha definido el protocolo IKE (Internet Key Exchange) [9] para realizar tanto esta función de gestión automática de claves como el establecimiento de las asociaciones de seguridad correspondientes. 44 IKE es un protocolo híbrido que ha resultado de la integración de dos protocolos complementarios: ISAKMP y OAKLEY. ISAKMP define de forma genérica el protocolo de comunicación y la sintaxis de los mensajes que se utilizan en IKE, esto facilita los procedimientos y formatos del datagrama para establecer, negociar, modificar y eliminar asociaciones de seguridad. OAKLEY especifica la lógica de cómo se realiza de forma segura el intercambio de una clave entre dos partes que no se conocen previamente. IKE se lleva a cabo en dos fases: 1. Establecimiento de un canal seguro y autentificado: Esta fase es común a cualquier aplicación. Dicho canal seguro se consigue mediante el uso de un algoritmo de cifrado simétrico y un algoritmo hash. Las claves necesarias se derivan de una clave maestra que se obtiene mediante un algoritmo de intercambio de claves Diffie-Hellman. Este procedimiento no garantiza la identidad de los computadores, para ello es necesario un paso adicional de autenticación. Los métodos de autenticación mas comunes son: • El primer método de autenticación se basa en el conocimiento de una cadena de caracteres que únicamente conocen los dos extremos que quieren establecer una comunicación IPSec. Mediante el uso de funciones hash cada extremo demuestra al otro que conoce la cadena sin revelar su valor; así los dos se autentican mutuamente. Debe configurarse una cadena distinta para cada par de computadores, por lo que el número de cadenas crece muy rápidamente computadores. 45 cuando aumenta el número de • En los estándares IPSec esta previsto el uso de un método de autenticación que se basa en utilizar certificados digitales X509v3. El uso de certificados permite distribuir de forma segura la clave pública de cada computador, de modo que éste puede probar su identidad mediante la posesión de la clave privada y ciertas operaciones de criptografía pública. 2. Negociación de los parámetros de seguridad específicos de IPSec a través del canal seguro: Durante esta fase se negocian las características de la conexión ESP o AH y todos los parámetros necesarios. El equipo que ha iniciado la comunicación ofrecerá todas las posibles opciones que tenga configuradas en su política de seguridad y con la prioridad que se hayan configurado. El sistema receptor aceptará la primera que coincida con los parámetros de seguridad que tenga definidos. Asi mismo, ambos computadores se informaran del tráfico que van a intercambiarse a través de dicha conexión. En la figura 17 se representa el funcionamiento del Protocolo IKE y el modo en que se obtiene la clave, que es la que se utiliza para proteger las conexiones ESP o AH. Figura 17. Funcionamiento del Protocolo IKE 46 3 PRUEBAS REALIZADAS 3.1 Configuración General Para el desarrollo de las diferentes pruebas se configuro una LAN con dos equipos conectados a la red de la Universidad de Pamplona con sistema operativo Red Hat Linux 9.0. A partir de aquí se creó un acceso a INTERNET. El equipo y software utilizados fueron los siguientes: Equipos: • Un equipo Pentium 4 con procesador 1.7 GHz, 128 MB de RAM, 40 GB de disco duro y tarjeta de red, equipo 1 172.29.44.189. • Un ordenador Pentium 4 con 1.7 GHz, 128 MB de RAM, 40 GB de disco duro y tarjeta de red, equipo 2 172.29.44.188. • Las direcciones IPv6 asignadas son: Equipo 1: 3ffe:8070:1026:1::1/64 Equipo 2: 3ffe:8070:1026:1::2/64 Software: • Red Hat Linux 9 es el sistema operativo seleccionado para la realización de pruebas. Esto debido a que es un sistema operativo gratuito, tipo 47 UNIX (lo que le confiere gran robustez), los códigos fuentes están disponibles lo cual permite realizar modificaciones en cualquier parte del sistema y está muy extendido en la comunidad científica, a demás debido a que proporciona más soporte e infraestructura para IPSec extensión IPv6. • Fress/wan es una implementación de los protocolos IPSec en Linux [10] ofreciendo a IPv6 servicio de cifrado y autenticación. • 3.2 Analizador de protocolos Ethetrial para linux [11]. Configuración de IPv6 en un Equipo Red Hat Linux 9 La transformación de un computador compatible con IPv4 en un computador que utilice IPv6, requiere una serie de cambios y modificaciones estos varían según el sistema operativo elegido (FreeBSD, Windows, LINUX...) con lo cual los pasos que se explican a continuación son para sistemas operativos compatibles con LINUX. Figura 18. Esquema de Conexión para la prueba con IPv6 3.2.1 Configuración IPv6 1. Se necesita configurar el sistema: • Hacer clic en inicio, Configuración del Sistema, Configuración de Red y a continuación clic en Dispositivo de Red. 48 • Se configura la dirección IP del equipo local y la mascara de subred. Y a continuación OK y Aceptar. 2. Se necesita cargar el módulo IPv6, para esto se debe editar varios archivos: • Buscar el archivo: etc/sysconfig/network su contenido es: • Se cambia la siguiente línea: HOSTNAME= Localhost.localdomain por ipv6 49 • Y se digita la línea: NETWORKING_IPV6=yes Con esto ya se ha habilitado el soporte del protocolo. Tener en cuenta que en la línea GATEWAY se debe colocar la dirección local del equipo. Se guardan los cambios. 3. Configuración del Router: Se debe modificar el archivo de configuración de la interfaz Ethernet deseada. El equipo tiene dos interfaces, eth0 y eth1. eth0: está configurada para que soporte IPv4 e IPv6. eth1: está configurada para que soporte IPv6. • Se utiliza la interfaz eth0 para esto se busca el archivo de configuración: etc/sysconfig/network-scripts/ifcfg-eth0 50 • A este archivo se le digita la línea: IPV6INIT="yes" Para habilitar la configuración IPv6 en esta interfaz. • Ahora se asigna una dirección IPv6 a la interfaz de red. IPV6ADDR="3ffe:8070:1026:1::1/64 " En el equipo remoto se coloco la dirección "3ffe:8070:1026:1::2/64". • Una vez hecho esto se guardan los cambios, y es necesario reiniciar el demonio network para hacer efectivos todos los cambios, para esto se digita en consola el comando /etc/init.d/network restart Con esto ya se esta en condiciones de utilizar el protocolo. Esto se hace en forma automática cada vez que se inicia el equipo, por lo que esto sólo se hace cuando recién se ha modificado el archivo. A continuación ya se está en condiciones de continuar con la configuración de cualquier tipo. • Se digita el comando ifconfig y se mostrará la siguiente información: 51 Se puede apreciar la existencia de una dirección IPv6 del tipo 3ffe:8070:1026:1::1/64 4. Se debe comprobar que existe comunicación IPv6 entre ambos equipos para lo cual se usara el comando ping. Para hacer un ping IPv6 es necesario disponer del comando ping6 que se encuentra en el paquete iputils-ping (GNU/Linux). • En el equipo local sobre la consola se ejecuta el comando ping6 3ffe:8070:1026:1::2 • Y en el equipo remoto ping6 3ffe:8070:1026:1::1 Se mostrará la siguiente información: 52 3.3 Configuración y Prueba de IPSec para IPv6 Se trata de un software de libre distribución [12], además, muchas de las distribuciones de LINUX, como Red Hat Linux 9, SUSE o MANDRAKE incluyen paquetes rpm 9 para su instalación. Básicamente, está formado por: KLIPS (kernel IPsec). Se trata de la implementación de los protocolos AH y ESP y se encarga, también, de la gestión de datagramas dentro del kernel del sistema. Pluto. Es el demonio del protocolo IKE (Internet Key Exchange), se encarga de negociar las conexiones con otros sistemas. Varios scrpits que proporcionan al administrador, una interfaz con los protocolos IPSec. 3.3.1 Instalación de Frees/wan 1. Para llevar a cabo la instalación de frees/wan se necesitan por lo menos dos equipos con Linux que se puedan conectar de algún modo a Internet. Pues se va a instalar FreeS/WAN en los dos. 2. Ingresar a la dirección ftp://ftp.xs4all.nl/pub/crypto/freeswan/binaries, escoger el sistema operativo en el cual se va a instalar Frees/wan. 9 RPM Package Manager (Red Hat Package Manager) es una herramienta de administración de paquetes para Linux el cual instala, actualiza, desinstala, verifica y solicita programas. 53 3. Frees/WAN se puede instalar sobre cualquiera de los siguientes Kernels 2.0.3X, 2.2.1X o 2.4.X. Para comprobar la versión del kernel del equipo se digita en la consola el siguiente comando: uname –r • Según la versión del kernel se debe descargar el modulo compatible, para esto se debe entrar a la página: ftp://ftp.xs4all.nl/pub/crypto/freeswan/binaries/RedHat-RPMs • Escoger la versión el kernel ftp://ftp.xs4all.nl/pub/crypto/freeswan/binaries/RedHat-RPMs/2.4.20-8/ • Descargar el modulo compatible con el kernel y guardarlo en el disco duro con una ruta de fácil acceso freeswan-module-2.06_2.4.20_20.9-0.i386.rpm • descargar las utilidades de Frees/wan y guardarla en la misma ruta freeswan-userland-2.06_2.4.20_20.9-0.i386.rpm • En la misma dirección se descarga el paquete RPM para comprobación de las claves y se guarda en la misma ruta : freeswan-rpmsign.asc • Se debe importar la clave a la base de datos RPM digitando en la consola la ruta en la que se guardo: cd /instalar/Freeswan rpm --import freeswan-rpmsign.asc 54 • Para comprobar la existencia de las firmas se debe digitar el comando: rpm --checksig freeswan*.rpm Se observara algo así: • Para instalar RPM se deben ejecutar los siguientes comandos en la consola: rpm -ivh freeswan*.rpm Se observa la instalación de IPSec. 55 4. Para el correcto funcionamiento de los protocolos IPSec es necesario configurar el archivo ipsec.secrets pues en el se guardan las claves utilizadas para la autenticación de las conexiones IPSec. • Para configurar ipsec.secrets se debe ejecutar el siguiente comando en la consola: ipsec newhostkey --output /etc/ipsec.secrets cat /etc/ipsec.secrets • Para verificar que la instalación fue exitosa se digita el comando: ipsec verify Y se mostrara algo así: 56 Para comprobar que la instalación ha sido correcta se ejecuta ifconfig y se observa que aparece una interfaz virtual llamada ipsec0 de la siguiente manera: 5. Para analizar el tráfico de datagramas entre las dos máquinas IPv6 con el protocolo de seguridad IPSec se utilizó el paquete Ethereal contiene un analizador de protocolo de red, también conocido como “sniffer”. Es útil para analizar los datos capturados una conexión de red activa, puesto que examina los paquetes de red capturados de más o menos 500 protocolos. Provee una interfaz gráfica y muchas opciones de organización y filtrado de información, de este modo permite ver todo el tráfico que pasa a través de una red estableciendo la configuración en modo promiscuo. 57 • Se le hace pign6 a los dos equipos. En Ethereal se captura el tráfico. • Al darle click en Stop Ethrerial captura todos los datagramas transmitidos hasta ese momento. 58 3.4 Creación de Túneles IPv6 en IPv4 en Red Hat Linux Para poder manejar tráfico IPv6 en redes separadas por routers IPv4 se debe recurrir a los túneles. A través de ellos se envían los paquetes IPv6 encapsulados en paquetes IPv4 hacia otra red que maneje también el protocolo. Con esto se logra unir nubes IPv6, pero introducidos en redes del tipo IPv4. Antes de la creación de los túneles se necesitan varios datos: • Dirección IPv4 del Router: 172.29.44.188 • Dirección IPv4 del Router remoto: 172.29.44.189 • Dirección IPv6 para el túnel: 3ffe:8070:1026:1::1/64 para el equipo local. 3ffe:8070:1026:1::2/64 para el equipo remoto. 1. Ubicar los archivos: /etc/sysconfig/networkscripts/ Red hat permite tener interfaces con un nombre distintivo y que se inician se activa el sistema. Se escoge el archivo ifcfg-eth0 y a este se le realizan algunas modificaciones: • Crear el archivo ifcfg-<nombre> para este trabajo se le llamo tunel. Se modificando el contenido: DEVICE=tunel BOOTPROTO=none ONBOOT=yes IPV6INIT=yes IPV6TUNNELIPV4=172.29.44.188 IPV6ADDR=3ffe:8070:1026:1::1/64 IPV6_DEFAULTGW=3ffe:8070:1026:1::2/64 IPV6_DEFAULTDEV=tunnel 59 • En este archivo se especifican la direccion IPv4 remota, el extremo del tunel, Hecho esto se guardan los cambios: Guardar como, <nombre que se utilizo>. 2. Ejecutar los siguientes comandos en consola: root@ipv6 root# ln -s ifup-sit ifup-tunel root@ipv6 root# ln -s ifdown-sit ifdown-tunel Con esto se crea un enlace simbólico hacia los archivos donde están las funciones necesarias para subir y bajar el túnel. 3. se debe reiniciae el network con /etc/init.d/network restart Con esto, ya se tiene un túnel cuyo nombre será tuenel. 4. Hacer ifconfig y se verá el dispositivo del túnel: tunel Link encap:IPv6-in-IPv4 inet6 addr: 3ffe:8070:1026:1::1/64 Scope:Global inet6 addr: 3ffe:8070:1026:1::2/64 Scope:Link UP POINTOPOINT RUNNING NOARP MTU:1480 Metric:1 RX packets:692080 errors:0 dropped:0 overruns:0 frame:0 TX packets:692944 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:113649875 (108.3 Mb) TX bytes:60870452 (58.0 Mb) 5. En forma opcional se puede subir el túnel ejecutando simplemente: Para Subir: ifup <nombre> Para Bajar: ifdown <nombre> 60 CONCLUSIONES • Realizar conexiones seguras a través del protocolo IPSec en ambiente IPv6 garantiza el uso de fuertes algoritmos de encriptación y técnicas de criptografía para asegurar la autenticidad de los datos que son transmitidos. • Investigar las características del protocolo IPv6 permitirá garantizar en un futuro la utilización de direccionamiento IP de 128 bits para el uso de direcciones IP públicas en nuestras redes, permitiendo la expansión de las redes. • De los resultados obtenidos, se puede resaltar que resulta indispensable realizar pruebas con IPv6 extensión IPSec, para estar preparados para el cambio de aplicaciones y demás servicios de red durante todo el período de transición de IPv4 a IPv6. • La documentación de pruebas realizadas en el presente estudio facilitarán posteriores trabajos encaminados a la implementación de redes IPv6 con extensión IPSec en nuestra universidad, ya que cubren buena parte de camino en cuanto a la instalación y configuración en Linux de los servicios relacionados. 61 RECOMENDACIONES • Es necesaria la creación en la universidad de un laboratorio informático, completamente dotado de equipos y software de última tecnología, especializado en redes IPv6 con extensión IPSec, de modo que se pueda profundizar en la investigación en este campo para que nuestra universidad pueda ser pionera en el desarrollo e implementación de este tipo de redes a nivel nacional. Asi mismo se ve esta necesidad ya que actualmente las direcciones disponibles en el protocolo IPv4 se están agotando y por esta razón el momento actual es oportuno para comenzar a incentivar a los estudiantes y docentes de nuestra universidad para investigar cómo se podría implementar en nuestro entorno de forma fácil y segura. • Los resultados de las pruebas presentadas han sido muy satisfactorios, se espera continuar con la realización de otras pruebas para aportar más conocimientos y próximamente aplicaciones modificadas en las universidades y centros de investigación, para que funcionen con IPSec, y de esta forma enfrentar los retos del Internet del siglo XXI. 62 BIBLIOGRAFIA Beijnum, I. Running IPv6. A practical guide to configuring IPv6 for windows XP, MacOS X, FreeBSD, Red Hat Linux, Cisco routers, DNS and BIND, Zenbra, and Apache 2. Editorial Apress. Man Youn Rhee. Internet Security. Crypographic principles, algorithms and protocols. Editorial WILEY. Capitulo 7, Pagina 243. Jason Albanese Wes Sonnenreich. Network Security Illustrated, Editorial McGraw-Hill, Capitulo 20, Pagina 240. Gabriel Verdejo Alvarez. El protocolo IPv6 y sus extensiones de seguridad IPSec, Bellaterra, Febrero del 2000. Hugo Adrian Francisconi. IPsec en Ambientes IPv4 e IPv6, Agosto 2005. http://www.rau.edu.uy/ipv6/queesipv6.htm http://www.ipv6.org http://www.ipv6.unam.mx http://www.si.uji.es/bin/docs/projectes/ipv6/ipv6p.pdf http://seguridad.internet2.ulsa.mx/files/ipsecdiaI2.pdf http://www.freeswan.org/freeswan_trees/freeswan-1.95/doc/index.html 63 [1] S. Deering, R. Hinden. Internet Protocol, Version 6 (IPv6) Specification Internet-Draft, RFC 1752, Enero 1995. [2] R. Hinden, S. Deering. IPv6 Addressing Architecture RFC 2373. [3] V. Fuller, T. Li, J. Yu, and K. Varadhan. Classless interdomain routing (CIDR), RFC 1519 September 1993. [4] Extensiones al DNS para dar soporte al IP versión 6, RFC 1886, Diciembre 1995. [5]. Track. S. Kent, R. Atkinson. Security Architecture for the Internet Protocol. RFC 2401. November 1998. [6] S. Kent, and R. Atkinson. IP Authentication Header (AH). RFC 2402, Noviembre de 1198. [7] Protocol Numbers: http://www.iana.org/assignments/protocol-numbers [8] S. Kent, and R. Atkinson. Protocol Encapsulating Security Payload (ESP). RFC 2406 Noviembre de 1998. [9] D. Harkins and D. Carrel. The Interet Key Exchange. RFC 2409, Noviembre de 1998. [10] http://www.freeswan.org [11] http://www.freeswan.org [12] http://www.ethereal.com/distribution/ethereal-0.10.9.tar.bz2 64