Criptografía
Redes Privadas Virtuales
IPSec | OpenVPN
Juan Felipe Muñoz Fernández
jmunoz@[Link]
Medellín, Colombia, Suramérica
2015
Antecedentes
• Comunicar oficinas esparcidas:
– Países
– Ciudades
• Alquiler de líneas (telefónicas) entre todas las ubicaciones o
solo entre algunas.
• Esta unión de oficinas (y sus computadoras) a través de
líneas alquiladas se conoce como red privada.
– Funcionan bien.
– Son seguras.
• Tráfico corporativo no sale de estas líneas.
• Requiere intervención física para “oír” el medio.
– Son costosas: ISDN (PRI, BRI) T1, T3, ATM, FRAME-RELAY.
Antecedentes
Antecedentes
Antecedentes
Antecedentes
• Aparece Internet
– Necesidad de mover los datos (y la voz) a la red
pública.
– No se quiere renunciar a la seguridad de la red
privada.
• Aparecen las Redes Privadas Virtuales (VPN).
• Redes superpuestas sobre la red pública.
• Son virtuales porque no existen físicamente
– Como si se puede evidenciar en las líneas alquiladas.
• Se pueden crear encima de ATM, Frame Relay , MPLS o
sobre Internet.
Encapsulamiento
• Analicemos con un ejemplo como funciona el
encapsulamiento en IP.
• Ejemplo con Wireshark.
• Análisis de captura de tráfico con un
formulario Web.
• Análisis de capas del modelo TCP/IP.
• Análisis de canal inseguro.
VPN sobre Internet
• “Una VPN es un conjunto de herramientas que permiten a diferentes
redes localizadas en diferentes ubicaciones, conectarse de manera
segura, a través de una red pública usada como capa de transporte”.
James Yonan.
• Topologías típicas:
– LAN-to-LAN.
– PC-to-LAN (Roadwarrior).
– PC-to-PC.
• Normalmente involucran Firewalls en los extremos de estos diseños.
• Se crean túneles entre los dispositivos extremos: Auth|Cifrado.
• Usar la red pública crea el problema del canal seguro.
• Se necesita cifrar/descifrar los mensajes entre los extremos de la
comunicación.
VPN sobre Internet
• LAN-to-LAN
VPN sobre Internet
• PC-to-LAN
VPN sobre Internet
• PC-to-PC
IPSec
• Surge como solución a los problemas de seguridad de IP.
• Inicialmente cifrado e integridad a la capa 7.
– Problema: requiere cambiar todas las aplicaciones.
– Complejidad para los usuarios y desarrolladores de software.
• Se añade seguridad en la capa 3 como IPSec: RFC 2401, 2402 y
2406, entre otros.
– Confidencialidad
– Integridad
– Protección contra ataques de repetición.
– Se basa en criptografía simétrica.
– Es independiente del algoritmo de protección.
• Si un algoritmo es vulnerable se puede cambiar por otro.
– Orientado a la conexión.
IPSec
• SA
– Asociación de Seguridad.
– Conexión SIMPLEX.
• En un solo sentido.
• Es una conexión lógica para intercambio seguro de Ix.
– Tiene un identificador asociado.
• Se transporta de manera segura.
• Algoritmo de cifrado.
• Llave de cifrado.
• Otros parámetros.
– Se requiere SA por punto que desee transmitir de manera segura.
– ISAKMP: protocolo que define como se establece una SA.
– Es un grupo lógico de parámetros de seguridad.
IPSec
• Modo de Transporte
– Encabezado IPSec se inserta después de
encabezado IP
– El campo Protocol cambia para indicar que después
del encabezado IP sigue un encabezado IPSec.
– El encabezado IPSec lleva información relativa a la
seguridad
• Identificador de la SA.
• Número de secuencia.
• Suma verificación del Payload.
IPSec
• Modo Túnel
– Todo el paquete IP original se encapsula en un nuevo paquete
IP.
– Útil cuando un túnel termina en una ubicación que no es el
destino final del paquete original.
• P. ej.: Túnel terminando en un Firewall.
– Típico modo en topología LAN-to-LAN.
• Las máquinas de la LAN no tiene que preocuparse por
cifrar/descifrar.
• Los dispositivos de borde llevan a cabo el cifrado y el descifrado.
– Incrementa el tamaño del paquete.
• Nuevo encabezado.
IPSec
• Modo de Transporte | Modo Túnel
IPSec
• Encabezado AH
– Se agrega encabezado AH (Authentication Header).
– Solo se usa en modo de transporte.
– Garantiza la integridad y protección anti repetición.
– No cifra.
• Útil para garantizar integridad, pero no confidencialidad.
– Cada paquete tiene un número único de secuencia
en la SA.
• Incluye las retransmisiones.
• Puede que el número de secuencia TCP sea el mismo.
IPSec
• Encabezado AH
– Datos de autenticación (HMAC)
• Firma digital del Payload: SHA1, MD5, etc.
• Cuando se negocia la SA se establece cual algoritmo de
firmas se va a utilizar.
• Normalmente se negocian algoritmos simétricos.
• Integridad de campos del paquete IP original. P. ej.: IP fuente.
• En modo de transporte se incluye IP Header + Data en función
HMAC.
– Campos que cambian: TTL y Hop Count se establecen a cero antes de
calcular HMAC.
• En modo túnel TODO el paquete IP original es autenticado.
IPSec
• Encabezado AH
IPSec
• Encabezado AH en modo túnel y modo de
transporte
IPSec
• Encabezado AH en modo de transporte
IPSec
• Encabezado ESP
– Carga Útil de Encapsulamiento de Seguridad
– Soporta modo túnel y modo de transporte.
– Incluye verificaciones HMAC.
• En AH el paquete se almacena en búfer y se calcula HMAC
antes de enviarse.
– Incluye cifrado.
• Usa una llave simétrica compartida entre las partes.
– Para integridad se puede usar ESP sólo o ESP+AH.
• Agrega más overhead. No se sugiere.
– La integridad en ESP es opcional. No es obligatoria.
IPSec
• Encabezado ESP
– Componentes
• ESP Header: Está antes de lo que va cifrado. Su posición
depende de si está en modo de transporte o en modo
túnel.
• ESP Trailer: Se añade al final de lo que va cifrado.
• ESP Authentication Data: Contiene el valor calculado
para soportar integridad del mensaje.
IPSec
• Encabezado ESP
– En modo de transporte
• ESP Header después del encabezado IP original.
• ESP Trailer y ESP Auth al final del paquete.
• Solo se cifra y se autentica el Payload del paquete IP original.
• Encabezado IP original no se asegura.
– En modo túnel
• Todo el paquete IP original es encapsulado en un nuevo paquete IP.
• Se asegura encabezado IP original y Payload.
– Algoritmos de autenticación y cifrado
• Autenticación: SHA-1, MD5, etc.
• Cifrado: DES, 3DES, AES, Blowfish, Twofish, Camelia, etc.
IPSec
• Encabezado ESP en modo de transporte y en
modo túnel
IPSec
• Encabezado ESP en modo de transporte
IPSec
• Encabezado ESP en modo túnel
IPSec
• Resumen modos por encabezado
IPSec
• IKE (Internet Key Exchange Protocol)
– Protocolo usado para establecer la SA.
– Es el más usado en escenarios reales.
– Operación:
• Se definen políticas de que tráfico debe ser autenticado | cifrado.
• El gestor de políticas notifica al servicio IKE.
• IKE contacta al host remoto (peer).
• El servicio IKE remoto responde a la solicitud y comienzan a negociar
parámetros.
• La SA se establece en dos fases por los peers.
– Usa UDP 500.
– De 4 a 6 paquetes | 2 ó 3 idas-y-vueltas para establecer la SA en
ambos lados.
IPSec
• IKE Fase 1: Autenticar los peers, establecer SA para IKE y
establecer SA para fase 2.
– Acuerdo entre algoritmos en los siguientes mensajes IKE y autenticación.
– Método de autenticación: PSK, firma digital RSA (certificados digitales),
otros.
– Grupo Diffie-Hellman.
• Debe establecerse el mismo Grupo DH en ambos lados.
– Algoritmo de cifrado.
– Modo de intercambio de mensajes.
– NAT Traversal.
– Dead Peer Detection
– Tiempo de vida de la SA para IKE.
– Dos modos: main y agressive.
IPSec
• IKE Fase 1 (modo main), tres intercambios:
– Primero: Algoritmo + funciones hash para
proteger comunicación IKE.
– Segundo: Se usa intercambio DH. Se envían
números aleatorios firmados y se retornan para
probar identidad.
– Tercero: Se verifica identidad del peer. La
identidad es la dirección IP del peer pero cifrada
con la K establecida por el intercambio DH.
IPSec
• IKE Fase 1 (modo agressive), un solo
intercambio.
– Intercambio de llaves DH.
– Firma de la llave pública como prueba de
identidad.
– Prueba de identidad usando K del intercambio DH.
– Todo se intercambia sin el establecimiento de la
SA.
– Es más rápido que el modo main.
IPSec
• IKE Fase 1
IPSec
• IKE Fase 2: Negociar SA para IPSec
– Se negocia todo dentro de la SA de la Fase 1.
– Se establecen SA para IPSec
– Se renegocia periódicamente la SA para IPSec.
• Parámetros de protocolo IPSec
• Modo (Túnel o Transporte)
• Método de autenticación
• Perfect Forward Secrecy (sólo si se usa Grupo DH en fase 2).
• Tiempo de vida de la SA de IPSec: Hard | Soft
– Soft: Renegocia.
– Hard: Se descarta.
• Un solo modo: quick mode.
IPSec
• IKE Fase 2 (quick mode)
– Ocurre cuando se establece SA en Fase 1.
– Se negocian las políticas IPSec (P. ej.: dominios de
cifrado).
– Se derivan las llaves para cifrar | autenticar paquetes.
– Se establecen las SA para IPSec.
– Se renegocia SA cuando expira el tiempo de vida de la
SA.
– Base quick mode: PFS con base en grupo DH de Fase 1.
IPSec
• Intercambio de llaves Diffie-Hellman
– Método para intercambiar llaves de cifrado sobre un canal inseguro.
• Antes se requería un conocimiento previo de las llaves que se iban a usar
en el cifrado.
– Funciona en un esquema de llave pública.
– Las partes no necesitan conocerse para establecer una llave de
cifrado.
– Se establece una llave de cifrado usando PKI
– La llave establecida se usa en mensajes siguientes usando
criptografía simétrica.
• Con esta llave se cifran los paquetes IP (en el caso de IPSec)
• Se usa AES por ejemplo junto con la llave establecida.
– No es un protocolo autenticado.
IPSec
• Intercambio de llaves Diffie-Hellman
– Alice y Bob se ponen de acuerdo en un color inicial.
– Alice elige un color secreto y Bob elige otro color secreto. El
color secreto no se comparte.
– Alice y Bob mezclan el color inicial con el color secreto de
cada uno.
– Alice intercambia el resultado (color mezclado) con Bob y
viceversa.
– El color mezclado que recibe Alice lo mezcla con su color
secreto elegido en el paso 2. Lo mismo hace Bob.
– Cada uno resulta con un color idéntico a ambos lados.
IPSec
• Intercambio de llaves Diffie-Hellman
IPSec
• Intercambio de llaves Diffie-Hellman
– Grupos
• Definen la fortaleza de la llave usada en intercambio de
llaves.
• Grupos altos = Mayor costo computacional.
– 1: 768 Bits
– 2: 1024 Bits.
– 5: 1536 Bits.
– 14: 2048 Bits.
– 15: 3072 Bits
– 19: 256 Bits con curva elíptica
– 20 384 Bits con curva elíptica.
IPSec
• Intercambio de llaves Diffie-Hellman
– Perfect Forward Secrecy
• Nuevas llaves no son derivadas de llaves anteriores.
• Si se establece PFS en fase 2 se tienen que renegociar
llaves cada vez que la SA se negocia de nuevo.
• El parámetro de Grupo DH en fase 2 es independiente
del parámetro del grupo DH en fase 1.
• Evita que mensajes de sesiones anteriores sean
descifrados con llaves que pueden comprometerse en
el futuro.
• Es costoso computacionalmente.
IPSec
• Resumen
1. Definir tráfico “interesante”: política.
2. Se negocia IKE Fase 1.
• Modo main | agressive
3. Se negocia IKE Fase 2.
• Modo quick
4. Se establece túnel IPSec para intercambio de paquetes.
5. Se termina túnel IPSec.
• Borrado de la SA.
• Time out de tiempo de no ver tráfico interesante.
• Número máximo de bytes que pasaron por el túnel
• Renegociar Fase 2 y/o Fase 1 Nuevas llaves.
IPSec
• Definiendo el túnel IPSec (paso 4)
• Terminando el túnel IPSec (paso 5)
OpenVPN
• Alternativa OpenSource para VPN.
• Soporta LAN-to-LAN y PC-to-LAN.
• Usa SSL/TLS para el intercambio de llaves.
• Funciona sobre UDP ó TCP.
• Pasa a través de NAT.
• Soporta autenticación de Peers basada en:
– PSK
– Certificados: autenticación bidireccional.
– Nombre de usuario y contraseña.
• Soporta cifrado basado en cifrado SSL.
• Soporta modo Router y Bridge (tun/tap).
– Tun: Tráfico enrutado Túnel de nivel 3.
– Tap: Tráfico bridged Ethernet.
• Soporta pasar a través de Proxy HTTP.
Práctica
• Definir una topología LAN-to-LAN usando IPSec.
– Dos extremos conectados a través de:
• A través de un Router | Firewall con dos interfaces: una LAN y otra WAN.
• Si es con Router debe ser capaz de VPNs IPSec.
• Si es con Firewall se recomienda Linux Endian Firewall Community Edition
– Una estación de trabajo detrás del Router | Firewall.
– Las estaciones de los extremos deben poder “verse” entre sí.
– Debe usarse PSK en la autenticación.
• Definir una topología PC-to-LAN usando OpenVPN.
– Se recomienda usar Linux Endian Firewall Community Edition.
– Usar PSK o certificados.
• Evaluación: Sustentación escrita u oral de la práctica.
Práctica
• Topología que debe usarse en escenario IPSec
[Link]/16
[Link]/16 Túnel IPSec
GW: [Link]
GW: [Link]
INTERNET
LAN:[Link]/16 LAN:[Link]/16
WAN: [Link]/30 WAN: [Link]/30
GW: [Link] GW: [Link]
Práctica
• Topología que debe usarse para escenario
OpenVPN
[Link]/16
[Link]/16
GW: [Link]
GW: [Link]
Túnel OpenVPN
INTERNET
LAN:[Link]/16 LAN:[Link]/16
WAN: [Link]/30 WAN: [Link]/30
GW: [Link] GW: [Link]
Enlaces interesantes IPSec
• [Link]
p?p=25474&seqNum=7
• [Link]
• [Link]
xtm_11/en-US/[Link]#cshid=en-US/bovp
n/manual/diffie_hellman_c.html