IPSEC Objetivo: proporcionar a IP (IPv4, IPv6) mecanismos de seguridad Servicios de Seguridad Integridad sin conexión Control de Acceso Autenticación Mecanismos anti-replay Confidencialidad de datos Confidencialidad de flujo de tráfico limitada dit UPM © 2000, DIT-UPM IPSEC 1 IPSEC Modos de utilización de IPSEC Modo Transporte Directamente entre sistemas remotos Los sistemas remotos deben implantar IPSEC Modo Túnel Entre sistemas intermedios Se establece un túnel seguro para encapsular los datagramas IP inseguros dit UPM © 2000, DIT-UPM IPSEC 2 Ámbito de IPSEC IPSEC ofrece tres funcionalidades principales: Sólo autenticación Conocida como Authentication Header (AH) Cifrado + Autenticación Conocida como Encapsulating Security Payload (ESP) Una función de gestión de claves IKE (ISAKMP / Oakley) IPSEC no define los algoritmos de seguridad que se usan. Marco para poder utilizar múltiples algoritmos a elección de los sistemas participantes. dit UPM © 2000, DIT-UPM IPSEC 3 Ámbito de IPSEC ¿Cómo se transmite IPSEC? Una nueva cabecera en el datagrama IP entre la cabecera original y los datos Para ESP, los datos se cifran y se añade una terminación de datagrama Datagrama IP Cabecera IP original (IPv4 o IPv6) Datos: TCP/UDP/ IP tunelado, etc. IP Protocol: 17 (UDP), 6 (TCP), 47 (GRE), etc, Datagrama IPSEC Cabecera IP original (IPv4 o IPv6) Cabecera IPSEC IP Protocol: IPSEC (50-ESP, 51-AH) dit UPM © 2000, DIT-UPM Datos (quizás cifrados): Terminación TCP/UDP/IP tunelado, etc. IPSEC Next Header: 17 (UDP), 6 (TCP), 47 (GRE), etc IPSEC 4 IPSEC Security Association (SA) Contexto de interoperabilidad usada en AH y ESP Relación uno a uno entre transmisor y receptor que define el conjunto de parámetros de seguridad utilizados Es necesario establecer una SA previamente a la comunicación: IKE Contenido de una SA: Security Parameter Index (SPI) IP Destination Address Security Protocol Identifier dit UPM © 2000, DIT-UPM IPSEC 5 Security Association (SA) Security Parameter Index (SPI) Bitstring asignado a la SA con significado local sólo. Puntero a base de datos de SA (SPD: Security Policy Database). Se transmite en las cabeceras de AH y ESP para seleccionar la SA que procesará dicho mensaje IP Destination Address Solo se permiten direcciones unicast Security Protocol Identifier (SPI) Identifica que tipo de seguridad se usa AH (solo autenticación) ESP (cifrado y posiblemente autenticación) dit UPM © 2000, DIT-UPM IPSEC 6 ¿ Qué define una SA (I) ? Sequence Number Counter Sequence Counter Overflow Valor de 32 bits para generar el numero de secuencia transmitido en las cabeceras AH y ESP Indicador de acción ante un llenado del nº de secuencia Anti-Replay Window Ventana para limitar la aceptación de datagramas válidos AH Information Algoritmos de autenticación, claves, tiempos de vida, etc. usados en AH dit UPM © 2000, DIT-UPM IPSEC 7 ¿ Qué define una SA (II) ? ESP Information Algoritmos de cifrado y autenticación, claves, valores de inicio, tiempos de vida, etc. usados en ESP IPSEC Protocol Mode Modo transporte, túnel o wildcard SA Lifetime Intervalo de tiempo o bytes después del cual hay que sustituirla por una nueva SA Path MTU Máximo tamaño de paquetes transmitidos sin fragmentación dit UPM © 2000, DIT-UPM IPSEC 8 Modo de Autenticación: AH AH: Authentication Header Proporciona soporte para la autenticación e integridad de datagramas IP Los cambios en el contenido son detectados Los destinatarios pueden autenticar al origen Previene los ataques de IP-spoofing Protege el ataque de retransmisión dit UPM © 2000, DIT-UPM IPSEC 9 IPSEC Authentication Header (AH) Bit: 0 8 16 Next Header Payload Length 32 RESERVED Security Parameter Index (SPI) Sequence Number Authentication Data (variable) dit UPM © 2000, DIT-UPM IPSEC 10 IPSEC Authentication Header Next Header: tipo de protocolo de datos que se transmite dentro de IP (p.e. TCP, UDP, GRE, etc.) Payload Length: Longitud de la cabecera AH Security Parameter Index (SPI): identificación de la SA de este datagrama. Sequence Number: contador que se incrementa monotónicamente con cada paquete Authentication dit Value (ICV) UPM © 2000, DIT-UPM Data: contiene el Integrity Check IPSEC 11 Authentication Header (AH) autenticación se basa en el uso de un Integrity Check Value con un algoritmo especificado en la SA. Entrada: porción del mensaje y clave secreta Salida: ICV que se transmite en el campo Authentication Data de AH Se hace el calculo sobre: La Todo el contenido del datagrama Los campos de la cabecera IP que no cambian en tránsito o son predecibles La cabecera AH expecto el campo Authentication Data Algoritmos: SHA-1 dit UPM © 2000, DIT-UPM para interoperabilidad, al menos MD5 y IPSEC 12 Calculo de Authentication Data Datagrama IP Cabecera IP original (IPv4 o IPv6) Datos: TCP/UDP/ IP tunelado, etc. Solo parámetros fijos o predecibles Algoritmo Datagrama IPSEC Cabecera IP original Campos (IPv4 o IPv6) fijos AH ICV Auth. Data Campos mutables de cabecera IPv4 TTL TOS Header Checksum Flags Fragment Offset dit UPM © 2000, DIT-UPM IPSEC Datos: TCP/UDP/ IP tunelado, etc. Campos predecibles de cabecera IPv4 Destination Address 13 Anti-Replay Ataque: retransmitir paquete válido Defensa: número de secuencia en cabecera AH Al establecer una SA, se inicializa a 0 Con cada paquete, se incrementa en 1 y se envía. Si se llega a 232-1, se termina la SA y se negocia otra Pero IP no asegura la entrega ni el orden El receptor tiene ventana deslizante de tamaño 64 Especifica los números de secuencia intermedios que el receptor es capaz de aceptar dit UPM © 2000, DIT-UPM IPSEC 14 Modo de cifrado: ESP ESP: Encapsulating Security Payload Proporciona: Confidencialidad de contenidos Confidencialidad limitada de flujo de tráfico Opcionalmente, servicio de autenticación como AH dit UPM © 2000, DIT-UPM IPSEC 15 Campos de ESP Security Parameter Index (SPI): identificación de la SA de este datagrama. Sequence Number: contador que se incrementa monotónicamente con cada paquete Payload Data: Datos cifrados del protocolo IP Padding: bytes extra necesarios si el algoritmo de cifrado requiere bloques completos de texto Pad Length: Numero de bytes de pad en padding Next Header: tipo de protocolo de datos en el payload data. Authentication Data: ICV calculado sobre todo el datagrama (menos el campo Authentication Data) dit UPM © 2000, DIT-UPM IPSEC 16 Formato del datagrama ESP Bit: 0 16 24 32 Security Parameter Index (SPI) Sequence Number Payload Data (variable) Autenticado Cifrado Padding (0 – 256 bytes) Pad Length Next Header Authentication Data (Variable) dit UPM © 2000, DIT-UPM IPSEC 17 Funcionamiento de ESP Datagrama IP Cabecera IP original (IPv4 o IPv6) Datagrama IPSEC Algoritmo cifrado Cabecera IP original SPI Seq. (IPv4 o IPv6) Num. dit UPM © 2000, DIT-UPM Payload Data IPSEC Datos: TCP/UDP/ IP tunelado, etc. Padding Pad Length Next Header Authentication Data 18 Algoritmos criptográficos Se especifica en la SA Para cifrado, se deben usar algoritmos de cifrado simétrico Para interoperabilidad, al menos se deben soportar: DES en modo CBC para cifrado MD5 y SHA-1 para autenticación Se pueden usar muchos otros (con identificador): Por ejemplo, triple DES, RC5, IDEA, CAST, Blowfish, etc. dit UPM © 2000, DIT-UPM IPSEC 19 Modo transporte y túnel Datagrama IP Cabecera IP original (IPv4 o IPv6) Datos: TCP/UDP Datagrama IPSEC (modo transporte) Cabecera IP original Cabecera (IPv4 o IPv6) ESP Datos cifrados (TCP/UDP) Terminación Authentication ESP Data Datagrama IPSEC (modo túnel) Nueva cabecera IP Cabecera Cab. IP (IPv4 o IPv6) ESP original dit UPM © 2000, DIT-UPM Datos cifrados (TCP/UDP) IPSEC Terminación Authentication ESP Data 20 Modos de utilización Modo Transporte: IPSEC Internet IPSEC IPSEC Modo Túnel (VPN): A IP R1 Internet R2 IP B IPSEC IP Fuente: A IP Destino: B dit UPM © 2000, DIT-UPM IP Fuente: A IP Destino: B IP Fuente: R1 IP Destino: R2 IPSEC 21 Gestión de claves Distribución manual Distribución automática Se configura cada sistema con sus propias claves y con las claves del resto de sistemas Solo utilizable en entornos pequeños y estáticos Creación bajo demanda de claves para los SA Es más flexible .... Pero necesita más esfuerzo para configurar y más software dit UPM © 2000, DIT-UPM IPSEC 22 Gestión de claves Protocolo por defecto de gestión de claves para IPSEC: IKE (Internet Key Exchange) Método estándar para: Autenticar dinámicamente extremos IPSEC Negociar servicios de seguridad Generar claves compartidas Tiene dos componentes: ISAKMP: procedimientos y formatos de paquete para establecer, negociar, modificar y eliminar SA. OAKLEY: protocolo de intercambio de claves. dit UPM © 2000, DIT-UPM IPSEC 23 OAKLEY Protocolo de determinación de claves. Objetivo principal: generar una clave de sesión compartida entre ambos extremos Método: algoritmo de Diffie-Hellman (modificado) Acuerdo previo en dos factores Un número primo muy grande: q Una raiz primitiva de q: a (a mod q, a2 mod q, .. aq-1 mod q son distintos) A selecciona XA (secreto) y transmite a B: YA=a XA B selecciona XB (secreto) y transmite a A: YB=a XB Ambos calculan K=(YB)XA mod q=(YA)XB mod q Se amplía para autenticar las partes y evitar el ataque de “man-in-the-middle”. dit UPM © 2000, DIT-UPM IPSEC 24 ISAKMP Procedimientos y formatos para establecer, negociar, modificar y borrar SA. Tipos de intercambios ISAKMP: Base: se transmite a la vez el intercambio de claves y la autenticación Protección de Identidad: primero intercambio de claves y luego autenticación Solo Autenticación: sin intercambio de claves Agresivo: intercambio de claves y autenticación minimizando el número de transacciones Informativo: para transmitir status o errores. dit UPM © 2000, DIT-UPM IPSEC 25