Documente Academic
Documente Profesional
Documente Cultură
Seguridad en IP Ipsec
Es un servicio interesante para ser brindado por la red en forma transparente a las aplicaciones.
Observaciones A nivel de red: cubre todos los paquetes IP Ser obligatorio (Mandatory) en ip v6, opcional en ip v4 Solo autenticacin o con confidencialidad Definido en los RFCs
RFC 2401/2402/2406/2408 Y otros
IPSec: Caracteristicas Al implementarse en los Firewalls/Routers permite brindar seguridad a los paquetes que salen del permetro Puede ser transparente a las aplicaciones Puede ser transparente al usuario final Se aplica a usuarios individuales
Servicios de IPSec Control de Acceso Autenticacin de Origen y destino Rechazo de paquetes reenviados Confidencialidad (encripcin)
Conceptos y Arquitectura Implementacin en el Servidor, pc o router. Modo Tnel y modo Transporte Security association (SA)
Security parameter index (SPI) Security policy database (SPD) SA database (SAD)
Confidencialidad:
Protocolo ESP: (Encapsulating security payload)
Autenticacin:
Protocolo AH (Authentication header)
Bump-in-the-stack
Layer between data link and IP
Bump-in-the-wire
IPSec outside host, in a router/firewall Least intrusive
Modo Tunel
Gateway
do a t p i cr n e s De
Gateway
Dese ncrip tad
Encriptado
New IP Header
AH or ESP Header
Orig IP Header
TCP Data
10
Modo Transporte IP IP IPSec header options header IP Destino ESP Higher layer protocol
Modo tnel Outer IP IPSec Inner IP Higher header header header layer protocol Destination IPSec entity ESP IP Destino del Paquete encapsulado
Security Associations
Cada SA es unidireccional y permite conocer los algoritmos y los parmetros a utilizar en la comunicacin de un nodo al otro. Si se necesita proteger ambos sentidos son necesarios dos SA. Procesamiento IPSEC a la salida Como decodificar a la entrada Las SA pueden ser definidas en forma manual o dinmica
13
14
De 32 bits El SPI le permite obtener el SA bajo el cual fue generado el paquete (Acuerdo de algoritmos y claves)
Es enviado con el paquete
Una entrada del SA esta compuesto por: SPI + Dest IP address + IPSec Protocol (AH or ESP)
15
Procesamiento de Salida
A enva a B
A
Paquete IP Es para ipsec? Que poltica se aplica? SPD (Policy) SA Database
Se determina la SA y el SPI
16
Enviado a B
Procesamiento de entrada A B
Paquete entra en B De A
SPI & Packet SA Database
Original IP Packet
17
18
SA Bundle A cada paquete se puede aplicar mas de un SA Ejemplo: ESP para asegurar el contenido y AH con el header
EL primer SA es para el ESP EL segundo para el AH
19
Security Policy Database - SPD Un SPD contiene entradas que definen subconjuntos del trafico IP y apuntan a uno o mas SA para ese trafico. Que trafico debe ser protegido? EL trafico de entrada fue correctamente asegurado? La poltica define que SA o conjunto de SA se aplica Cada servidor o gateway tiene su propio SPD Al SPD se ingresa por campos del IP (selector fields)
Dest IP, Source IP, Transport Protocol, IPSec Protocol, Source & Dest Ports, etc.
20
Bypass
Outbound: No aplicar IPSec Inbound: No esperar que venga por IPSec
21
22
Procesamiento de Salida
A enva a B
A
Paquete IP Es para ipsec? Que poltica se aplica? SPD (Policy) SA Database
Se determina la SA y el SPI
23
Enviado a B
Seguridad en IP Ipsec
IPSec seguridad en IP
Protocolo AH, ESP IKE Tipos de Tuneles Practica de IPSec
24
25
Campos del AH
CAMPO BITS DESCRIPCION Next Header 8 Identifica el tipo de header del paquete Payload Length 8 Largo del AH en multiplos de 32 bits Reserved 16 Para uso futuro SPI 32 Identifica el SA en la tabla SAD Sequence Number 32 Numero de secuencia que crece con cada paquete Authentication Data Var Contiene el MAC del paquete (Integrity Check Value)
26
AH: Servicio Anti-Replay Un ataque por repeticin es aquel en el que el atacante retransmite una copia de un paquete ya enviado. Este paquete duplicado puede disturbar un servicio o tener algn efecto colateral no deseado. El campo sequence number permite evitar este problema.
27
28
provides message content confidentiality & limited traffic flow confidentiality Opcionalmente tiene el servicio de autenticacion similar al AH Soporta varios cifradores, modos, padding
DES (no usar), Triple-DES, RC5, IDEA, CAST etc El modo mas comun es el CBC
29
BITS 32 32
DESCRIPCIO Identifica el SA en la tabla SAD Numero de secuencia que crece con cada paquete. Para el servicio de anti-replay Es el paquete TCP (transporte) o IP (tnel) encriptado 0-255 bytes se lo alinea a multiplo de 32 bits. Longitud del relleno Identifica el tipo de los datos contenidos en el campo payload Contiene el MAC (opcional)
30
ESP Packet
Modo Tunel
31
Combinaciones de SA
Los SAs pueden implementar AH o ESP Para implementar ambos se deben combinar los SA
32
Combinaciones de SA
33
Los protocolos AH y ESP requiere claves de autenticacin y de cifrado Mediante este proceso las partes negocian y establecen las SA que necesita IPSec. Generacin y distribucin de claves. Tpicamente se necesitan cuatro claves
una para cifrar y otra para autenticar en cada sentido.
34
35
Automtica
EL sistema crea automticamente y a demanda las claves para los SA. has Oakley & ISAKMP elements
36
37
IKE exchanges Intercambio/exchange: Todas las comunicaciones IKE constan de dos mensajes un requerimiento y una respuesta.
IKE_SA IKE_SA_INIT IKE_AUTH CREATE_CHILD_SA INFORMATIONAL
38
Lo comn es realizar un intercambio IKE_SA_INIT y un IKE_AUTH para establecer el IKE_SA y el primer CHILD_SA. Si es necesario abra nuevos intercambios para definir nuevos CHILD_SA.
39
40
Mensajes posteriores CREATE_CHILD_SA: crea un nuevo SA INFORMATIONAL: permite borrar un SA, reportar errores, etc. Dado que todo requerimiento necesita una respuesta se suele responder con un mensaje de informacin nulo.
41
SAr1 Algoritmos criptogrficos seleccionados por destino KEr Completa el intercambio Dieffie Hellman, Nr nonce del destino [CERTREQ] Opcionalmente solicita el certificado al iniciador
42
En este punto de la negociacin cada parte genera la clave SKEYSEED, desde la cual se derivan el resto de las claves para el IKE_SA. Todos los mensajes siguientes se protegen con el SA generado. Claves generadas (para cada sentido)
SK_e: Encripcion SK_a: Autenticacin
43
HDR, SK {IDr, [CERT,] AUTH, SAr2, TSi, TSr} SAr1 Algoritmos criptogrficos seleccionados por destino KEr Completa el intercambio Dieffie Hellman, Nr nonce del destino [CERTREQ] Opcionalmente solicita el certificado al iniciador
44
CREATE_CHILD_SA Exchange Este intercambio consiste de un unico par requerimiento/respuesta, en el IKEv1 se lo denominaba FASE 2 Puede ser iniciado por cualquiera de las partes luego que se completo el IKE_SA.
45
46
Oakley a key exchange protocol based on Diffie-Hellman key exchange adds features to address weaknesses
cookies, groups (global params), nonces, DH key exchange with authentication
47
ISAKMP Internet Security Association and Key Management Protocol provides framework for key management defines procedures and packet formats to establish, negotiate, modify, & delete SAs independent of key exchange protocol, encryption alg, & authentication method
48
ISAKMP
49
Seguridad en IP Ipsec
IPSec seguridad en IP
Protocolo AH, ESP IKE Tipos de Tuneles Practica de IPSec
50
Se implementa usando IPSec en modo transporte dado que las puntas son tambien partes del IPSec. Pero tambin se puede usar modo tunel. Un posible problema es que otras aplicaciones como traffic Shappers, firewalls, Herramientas de Monitoreo no podran analizar los paquetes. Otro sistema que fallara ser los NATS (Network Address Translation), si autentico el IP y este cambia el paquete ser invalido. EN este tema se esta evolucionando.
51
Las VPN se construyen implementando IPSec en los routers. Lado rojo: boca del router que esta siendo controlada, desde la cuel el trafico es estrictamente analizado. Lado Negro: Es inseguro y no se puede controlar, ejemplo INTERNET. Se establece un VPN, Cuando se configura un tnel por una red insegura (no se tiene control), que une dos redes bajo control de la empresa. Dado que se protege trafico entre locales de una empresa, es muy importante no mostrar el patrn de trafico a la red, la posibilidad de usar numeracion no ruteable, es muy comn usar modo tnel para este fin. 52
Tpicamente hay usuarios que no estn en un lugar fijo o estn de viaje y necesitan acceso a la red protegida. Ejemplo: Desde un hotel o aeropuerto. En este caso la computadora debe soportar IPSec y establecer un tnel al punto de acceso de la oficina. Una observacin importante es que el IP de este tipo de usuario es cambiante y no se puede conocer con anticipacin.
53
Tneles anidados
Hay situaciones donde se necesitan mltiples niveles de seguridad. Un ejemplo tpico es un lugar como la facultad, donde puede existir un primer nivel de acceso a la facultad y un segundo nivel a un laboratorio determinado. En este esquema, cuando el usuario necesita acceder a la subred protegida debe establecer un nuevo tunel a un punto de acceso interno a su compaa.
54
Tneles Centralizados
La performance de este esquema no es buena, pero por su facilidad de configuracin es muy usado. Puede ser muy til por ejemplo para una red de supermercados o para la red de un banco que esta totalmente centralizada. Si una comunicacin es entre remotas, pasara por el centro. Tener en cuenta que si se quiere establecer una comunicacin todos con todos la incorporacin de un nodo obliga a configurar todos los nodos.
55
SADB entrada
Fuente 2.2.2.2 2.2.2.2 Dest 1.1.1.1 1.1.1.1 Proto ESP ESP SPI 10 11 Poltica K1 Clave 64 bit K2 Clave 168 bits 3DES
SPI 11
56
57
Resumen
Framework de Seguridad IPSec AH ESP Administracin de Claves ISAKMP
58
IPSEC
IPSec es un protocolo que provee encriptacin y autentificacin a nivel de IP. Por esta caracterstica es usado para establecer conexiones seguras en un medio inseguro. IPsec trabaja con los siguientes protocolos:+
AH (Authentication Header) ESP (Encapsulating Security Payload) IKE (Internet Key Exchange).
2 modos de IPSec:
Modo Tnel modo Transporte
60
OpenSwan y FreeSwan
61
El objetivo del TP consiste en configurar un tnel IPsec entre dos PCs funcionando como routers y analizar, utilizando un analizador de protocolos, el trfico generado por ambos equipos.
62
Para simular esta situacin, se utiliza 2 PCs como routers, utilizando una placa virtual sobre la real para configurar el tnel, y 2 PCs mas como hosts, una en cada red de cada servidor.
63
Edicin de /etc/hosts
Este archivo se utiliza para la resolucin de nombres a direcciones IP, lo que facilita la referenciacin de equipos
64
IPSEC.CONF
# basic configuration config setup interfaces="ipsec0=eth0" forwardcontrol=yes klipsdebug=all plutodebug=all # Use auto= parameters in conn descriptions to control startup actions. plutoload=%search plutostart=%search
65
conn r1-r2 auto=add left=192.168.1.204 leftsubnet=10.1.0.0/24 leftid=@r1 leftrsasigkey= right=192.168.1.203 rightsubnet=10.2.0.0/24 rightid=@r2 rightrsasigkey= auth=esp esp=3des-md5-96
66
La primera seccin config setup pose informacin general, como la interfaz donde se montara ipsec, y si se depurara Luego sigue la seccin default donde aparecen algunos parmetros a utilizar en modo predeterminado para las conexiones Finalmente se encuentra la seccin conn r1-r2 que es el nombre especifico de la conexin que se utiliza en este ejemplo.
67
Left: la direccin de una de las interfaces publicas entre las cuales se establecer el tunel Leftsubnet: la direccin y mascara de una de las subredes entre las cuales se establecer el tnel Leftrsasigkey: la clave publica RSA con la cual se autenticara a uno de los routers. El formato que se utiliza ac es base 64. Ac, en lugar de estar explcitamente la clave, podra figurar un mtodo de cmo obtener la clave, como por ejemplo, por DNS. Si se convierte este formato a hexadecimal, se puede comparar con la clave proporcionada en ipsec.secrets (ver a continuacin), donde estn los valores del exponente publico y el modulo a utilizar. Right: dem left, pero para el otro router Rightsubnet: dem leftsubnet, pero para la otra subred Rightrsasigkey: dem leftrsasigkey, pero para el otro router Authby: Metodo de autenticacin que se utilizara en el establecimiento de la conexin. El valor rsasig representa utilizacin de algoritmo asimetrico de encriptacin RSA para firmar. Este es el metodo mas recomendado, ya que ofrece mejores caracteristicas de seguridad frente a los otros (secreto pre-compartido, y sin autenticar) Auto: Que operacin se realizara automticamente al iniciar el servicio de IPsec Auth: Determina si la autenticacin se realizara como parte de la encriptacin de ESP, o por separado utilizando el protocolo AH
68
69
Iniciando el servicio
Para iniciar el demonio de IPSec, se debe ejecutar el siguiente comando: /etc/init.d/ipsec start En el caso de no figurar auto=start en el archive de configuracin se debe agregar la conexin y levantar.
root@ipcop2:~ # ipsec auto --add ipcop root@ipcop2:~ # ipsec auto --up ipcop 104 "ipcop" #1: STATE_MAIN_I1: initiate 003 "ipcop" #1: received Vendor ID payload [Dead Peer Detection] 106 "ipcop" #1: STATE_MAIN_I2: sent MI2, expecting MR2 108 "ipcop" #1: STATE_MAIN_I3: sent MI3, expecting MR3 004 "ipcop" #1: STATE_MAIN_I4: ISAKMP SA established 122 "ipcop" #2: STATE_QUICK_I1: initiate 004 "ipcop" #2: STATE_QUICK_I2: sent QI2, IPsec SA established
70
Verificando el tnel
71
Verificando el tnel
root@ipcop2:~ # ipsec eroute 13 10.2.1.0/24:0 -> 10.1.1.0/24:0 => tun0x1002@192.168.2.40:0 Para completar la verificacin veremos si efectivamente la informacin del tnel viaja encriptada. Para ello realizaremos una captura del trfico por la misma.
root@ipcop2:~ # tcpdump -i eth1 proto ESP tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on eth1, link-type EN10MB (Ethernet), capture size 68 bytes 06:16:00.491248 IP 192.168.2.40 > 192.168.2.41: ESP(spi=0xf1eb76d1,seq=0xe) 06:16:00.491731 IP 192.168.2.40 > 192.168.2.41: ESP(spi=0xf1eb76d1,seq=0xf) 06:16:00.491851 IP 192.168.2.41 > 192.168.2.40: ESP(spi=0x595cfd9f,seq=0xe) 06:16:00.498545 IP 192.168.2.41 > 192.168.2.40: ESP(spi=0x595cfd9f,seq=0xf) 06:16:01.541416 IP 192.168.2.40 > 192.168.2.41: ESP(spi=0xf1eb76d1,seq=0x10) 06:16:01.541499 IP 192.168.2.41 > 192.168.2.40: ESP(spi=0x595cfd9f,seq=0x10) 6 packets captured 8 packets received by filter 0 packets dropped by kernel
72
Observaciones: El host 1 realiza el ping y recibe la respuesta en forma transparente; no se entera que sus paquetes estn siendo encriptados en el medio.
73
Observaciones: El origen y el destino realies estan encriptados, solo se puede observar la direccion de los routers, y la asociacin de seguridad SPI (una para los paquetes entrantes, y otra para los paquetes salientes)
74
Observaciones: El analizador de protocolos es incapaz de determinar ni el origen ni el destinatario final, ni tampoco de que protocolo esta encapsulado.
75
El intercambio de mensajes se encuentra dividido en main mode y quick mode main mode utilizado para establecer un canal seguro entre ambas partes y autenticar. Los pasos son: Acuerdo de los algoritmos a utilizar. El primer mensaje es una lista de propuestas, y el segundo es una respuesta seleccionando alguna de las proposiciones. 1. Luego se intercambia (en ambos sentidos) una clave generada localmente para establecer la clave de sesin mediante el mtodo de Diffie-Hellman, y adems se intercambia un nonce para evitar ataques del tipo replay. 2. Finalmente, una vez ya establecida la clave de sesin, se intercambian 2 mensajes para autenticar a los 2 usuarios. Una vez que establecieron una ISAKMP SA, se utiliza el quick mode. Los mensajes intercambiados son los siguientes (siempre encriptados) 1. Propuesta de una nueva SA, y el SPI establecido para los mensajes entrantes 2. Respuesta del SPI que debe usar para los mensajes salientes 3. Confirmacin
76
Observaciones: En la ultima parte figuran los algoritmos que fueron aceptados: 3DES-CBC para encriptar, RSA-SIG como metodo de autenticacion, MD5 como algoritmo de hash
77
Efectivamente se puede ver que el trfico por el tnel va encriptado. A continuacin veremos el mismo trfico pero sobre la interface de ipsec, en la cual el trfico se ve desencriptado.
root@ipcop2:~ # tcpdump -i ipsec0 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on ipsec0, link-type EN10MB (Ethernet), capture size 68 bytes 06:17:39.571651 IP 10.1.0.6 > ipcop2.localdomain: icmp 40: echo request seq 36866 06:17:39.571721 IP ipcop2.localdomain > 10.1.0.6: icmp 40: echo reply seq 36866 06:17:40.632280 IP 10.1.0.6 > ipcop2.localdomain: icmp 40: echo request seq 37122 06:17:40.632343 IP ipcop2.localdomain > 10.1.0.6: icmp 40: echo reply seq 37122 06:17:41.621598 IP 10.1.0.6 > ipcop2.localdomain: icmp 40: echo request seq 37378 06:17:41.621666 IP ipcop2.localdomain > 10.1.0.6: icmp 40: echo reply seq 37378 06:17:42.628977 IP 10.1.0.6 > ipcop2.localdomain: icmp 40: echo request seq 37634 06:17:42.629034 IP ipcop2.localdomain > 10.1.0.6: icmp 40: echo reply seq 37634 8 packets captured 8 packets received by filter 0 packets dropped by kernel
78