ANALISIS DEL PROTOCOLO IPSec EN AMBIENTE IPv6

Anuncio
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
Descargar