Computacional Captulo 15 - IPSec Departamento de Ciencia de la Computacin Ponticia Universidad Catlica de Chile 3 / 32 Conceptos Bsicos IPSec es una especicacin de mecanismos que permiten ofrecer seguridad en comunicaciones a travs de una red IP. Control de acceso, integridad, autenticacin, condencialidad, proteccin contra replay. Es independiente de los algoritmos criptogrcos que se usen. IPSec fue diseado como parte del protocolo IPv6 Despus fue agregado a IPv4. 4 / 32 Componentes bsicos de IPSec Authentication Header (RFC 2402) Provee autenticacin de origen e integridad de datos. Soporta anti replay en forma parcial. Es apropiado cuando se requiere autenticacin pero no condencialidad. ESP (Encapsulating Security Payload) (RFC 2406) Provee condencialidad de trco IP y/o autenticacin como AH. 5 / 32 Componentes bsicos de IPSec ISAKMP (Internet Security Association and Key Management Protocol) (RFC 2408) Dene cmo dos entidades pueden establecer un canal seguro, autenticado de comunicacin, intercambiar informacin de llaves y negociar servicios de seguridad. Especica el qu, no el cmo (algoritmos especcos). IKE (Internet Key Exchange protocol) (RFC 2409) Protocolo para negociar dinmicamente SAs en IPSec. Basado en la especicacin ISAKMP. Implementa parcialmente los protocolos OAKLEY (RFC 2412) y SKEME (Secure Key Exchange Mechanism) y agrega otras dos formas de intercambio propias. 6 / 32 Security Association (SA) Es un concepto bsico de IPSec. Dene las medidas de seguridad que se deben aplicar a paquetes basado en: Quin los manda, adnde van, y el tipo de datos que llevan. Pueden ser denidas estticamente por el administrador Pero lo normal es que se negocien dinmicamente. Una SA se dene en forma nica por: Direccin IP de destino, SPI (Security Parameter Index) y el nmero de protocolo (AH = 51, ESP = 50). Es unidireccional, por eso la direccin IP de origen no forma parte de la denicin de la SA. 7 / 32 Modos de operacin de SAs Modo Transporte Diseado para proteger los protocolos sobre IP (TCP, UDP, etc.). Slo puede ser usado por un host con IPSec. Modo Tnel Permite encapsular un paquete IP (el paquete completo se convierte en el campo data de un nuevo paquete). Esto permite cifrar y/o aplicar otras medidas de seguridad al paquete. Puede ser usado por hosts y gateways con IPSec. 8 / 32 Modo Transporte Header IP Ori- ginal Datos Header IP Ori- ginal Header de Se- guridad Datos 9 / 32 Modo Tnel Header IP Ori- ginal Datos Nuevo Header IP Header de Se- guridad Header de Seguridad Header IP Ori- ginal Datos 10 / 32 Bases de Datos de SAs Cada nodo IPSec debe mantener dos bases de datos: La base de datos de Polticas de Seguridad (SPD), y La base de datos de SAs (SAD) SPD contiene las polticas denidas por el administrador segn las necesidades de seguridad del trco IP que entra y sale del nodo. SAD contiene los parmetros de todas las SAs activas. 11 / 32 SAD Cada SA est registrada en la SAD con los siguientes parmetros: Su SPI (Security Parameter Index) El protocolo de la SA (ESP o AH) El modo de la SA (Transporte o Tnel) Un contador secuencial Ventana anti replay La MTU del enlace Las direcciones IP fuente y destino de la SA El algoritmo de autenticacin a usar y su llave El algoritmo de cifrado a usar y su(s) llave(s) El tiempo de vida de la SA 12 / 32 Procesamiento de Paquetes Paquetes entrantes Para encontrar la SA en la SAD, se hace un match de 3 valores: Direccin IP de destino, protocolo IPSec, y SPI. La direccin IP de destino y el protocolo IPSec se obtienen del paquete IP. El SPI se obtiene del header AH o ESP. Si se encuentra una SA, se aplican al paquete entrante los servicios de seguridad especicados en la SA. El paquete pasa a ser procesado por las reglas de la SPD. 13 / 32 Procesamiento de Paquetes Paquetes salientes Se procesan segn las reglas de la SPD primero. Si el paquete hace un match con una regla que especica IPSec, se busca la SAD para ver si ya existe una SA establecida. Si hay una SA, se aplica al paquete saliente. Si no hay una SA, se negocia una y se almacena en la SAD despus de negociada. 14 / 32 SPD La SPD es una lista ordenada de polticas de seguridad que se deben aplicar a paquetes IP. Cules algoritmos de cifrado usar, etc. Se almacena en el dispositivo IPSec y es mantenida por el administrador de polticas, que puede ser: Un usuario, el administrador o una aplicacin externa. Una poltica en la SPD tiene dos componentes: Selectores: conjunto de parmetros y valores o rangos de valores para esos parmetros (campos en el header IP o credenciales de autenticacin obtenidas de certicados digitales). Accin: qu hacer con este tipo de paquete (aplicar IPSec, botar el paquete o dejarlo pasar en claro). 15 / 32 SPD . . . Como la SPD es una lista ordenada de polticas, la primera poltica en la lista con la que hace un match es la que se aplica al paquete. Hay una poltica por defecto que se aplica si no se encontr ninguna en la SPD. Generalmente, se bota el paquete. Como la SPD debe ser consultada por cada paquete IP entrante y saliente, se convierte en el cuello de botella de un nodo IPSec. No es fcil indexar la SPD. 16 / 32 Ejemplo de polticas en la SPD Paquetes entrantes Direccin IP fuente = 172.16.1.2 IPSec (ESP, 3DES, SHA-1) distinguished_name = Jens Hardings IPSec (ESP, 3DES, MD5) Direccin IP destino = 192.168.10.15 Cleartext Cuando una poltica contiene selectores que no son campos del paquete IP (como e-mail, DN, etc.), deben ser traducidas a direcciones IP durante la negociacin IKE. 17 / 32 AH (Authentication Header) NH (8 bits) Largo (8 bits) Reservado (16 bits) Security Parameter Index (SPI) (32 bits) Nmero de Secuencia (32 bits) Datos de autenticacin (variable) NH (Next Header) = campo Protocolo en header IP origi- nal Largo del header AH en palabras de 4 bytes menos 2 Nmero asignado por el nodo IPSec destino Parte en 0 y se le suma 1 con cada paquete. ICV (Integrity Che- ck Value) depende del algoritmo de hash debe ser ml- tiple de 4 bytes 18 / 32 AH AH provee autenticacin de los datos en el paquete IP y lo que se pueda autenticar del header IP. Los campos que son mutables (porque pueden cambiar durante el viaje) son: Tipo de Servicio (TOS) Offset de fragmento Flags de fragmentacin Tiempo de vida (TTL) Checksum del Header Cuando se reciben fragmentos IP, no se puede aplicar AH hasta que todos los fragmentos lleguen y se rearme el paquete original. 19 / 32 ESP (Encapsulating Security Payload) Header IP Header ESP Datos Trailer ESP Autenticacin ESP Security Parameter Index (SPI) (32 bits) Nmero de Secuencia (32 bits) Relleno (0 255 bytes) Largo del relleno (8 bits) Next Header (8 bits) Datos de autenti- cacin (variable) 20 / 32 ESP . . . Campos iguales que en AH en header ESP, trailer ESP, Autent. ESP: SPI, Nmero de Secuencia, Next Header, Datos de Autenticacin. Si el tamao del paquete resultante es mayor que la MTU, se debe fragmentar ESP se aplica al paquete completo, despus se fragmenta. El receptor debe rearmar el paquete antes de procesarlo. 21 / 32 IKE (Internet Key Exchange) ESP y AH especican cmo los servicios de seguridad se deben aplicar a los paquetes IP de acuerdo a las SAs negociadas. IKE (RFC 2409) permite negociar dinmicamente SAs para IPSec. Porqu negociar SAs? No tiene sentido preestablecer todas las posibles SAs si no existe trco que las use. Las SAs no pueden durar demasiado tiempo porque se corre el peligro que se ataquen las llaves de la SA. Esto implica cambiar llaves y renegociar la SA peridicamente. 22 / 32 IKE e ISAKMP IKE est basado en el marco denido en ISAKMP (RFC 2408) Un mensaje ISAKMP es un paquete UDP (puerto 500): Header UDP Header ISAKMP Data 1 ISAKMP Data 2 ISAKMP Data n ISAKMP Cookie del iniciador (8 bytes) Cookie del respondedor (8 bytes) Cookie del respondedor (8 bytes) Header ISAKMP Versin Mayor Versin Menor Tipo Interc. Flags Largo del mensaje 23 / 32 Fases in ISAKMP ISAKMP dene dos fases para negociar una SA: Fase 1 se negocia a nivel ISAKMP y se establece una SA ISAKMP (no confundir con SA IPSec) bidireccional. Fase 2 se negocia una SA para otro protocolo (IPSec en este caso) usando la SA ISAKMP creada en la fase 1. Mltiples SAs IPSec pueden ser negociadas con una sola SA ISAKMP establecida entre dos nodos IPSec. ISAKMP dene dos modos de negociacin para la fase 1: modo normal y modo agresivo. 24 / 32 ISAKMP Fase 1: modo normal Iniciador Respondedor Ofrecimiento de posibles SAs Round 1 SA Aceptada Material para intercam- bio de llaves e informa- cin adicional (nonce) Round 2 Material para intercam- bio de llaves e informa- cin adicional (nonce) Material de au- tenticacin Round 3 Material de au- tenticacin 25 / 32 ISAKMP Fase 1: modo normal Round 3 ofrece tres formas de autenticacin: Secreto compartido Se genera una llave secreta derivada del secreto compartido para crear el hash con llave, que se usa para autenticarse. Firma digital Se intercambian identidades, llaves pblicas y propuesta de SAs rmadas digitalmente. PKI Se intercambian identidades, nonce, y hash con llave, todos cifrados con la llave pblica del otro nodo que se obtiene de un certicado digital. 26 / 32 ISAKMP Fase 1: modo agresivo Iniciador Respondedor Ofrecimiento de posibles SAs, material de llave, Nonce, ID SA Aceptada, material de llave, Nonce, ID, autenticador Autenticador El intercambio de autenticadores no est cifrado. 27 / 32 IKE, Fase 2 Al completarse la Fase 1, en modo normal o agresivo, se establece una SA ISAKMP bidireccional que se usar para proteger la negociacin de SAs en la Fase 2. En la Fase 2, se negocian SAs que requieran servicios como IPSec o cualquier otro que quiera negociar parmetros y material de llaves. Como la negociacin es sobre un canal seguro (la SA ISAKMP establecida en la Fase 1), se denomina modo rpido. 28 / 32 IKE, Fase 2: modo rpido Iniciador Respondedor Ofrecimiento de posibles SAs, material de llave, Nonce, ID SA Aceptada, material de llave, Nonce, ID, autenticador Hash La identidad de los nodos ya se veric en la Fase 1. Los intercambios est protegidos por la SA ISAKMP. Los ID que se intercambian en la Fase 2 son los selectores que se usan en la SPD de IPSec. Cuando se establece la SA IPSec, existe independiente de la SA ISAKMP, y sta ltima puede desaparecer. 29 / 32 Llaves Maestras La llave secreta generada por el intercambio Dife-Hellman en la fase 1 se llama llave maestra ISAKMP. La llave secreta generada por el intercambio Dife-Hellman en la fase 2 se llama llave maestra del usuario. IKE usa los modos de intercambio y grupos denidos en el estndar Oakley. 30 / 32 Oakley (RFC 2412) Protocolo para generar llaves que usa DH para intercambiar llaves secretas con seguridad. Dene 3 modos de intercambio de llaves: Modo agresivo requiere 3 mensajes para la negociacin y la identidad de los nodos no est protegida. Modo conservador requiere 6 mensajes para la negociacin y la identidad de los nodos est protegida. Modo rpido se usa cuando ya existe una llave antigua (de algn intercambio previo), requiere slo 3 mensajes, y la identidad est protegida. Dene 5 grupos para intercambios DH. Cada grupo dene el par p y g 31 / 32 Procesamiento de paquetes en IPSec Paquetes entrantes Se extrae el protocolo (ESP o AH), el SPI y la direccin IP de destino (puede estar en el header IP o en el header ESP o AH). Se busca la SA correspondiente en la SAD. Si no existe, se genera un error. Se procesa el paquete segn lo que diga la SA y se devuelve el paquete desencapsulado. El paquete desencapsulado se compara con las reglas en la SPD. Si no se permite su paso, se bota. El paquete se pasa a la capa superior (aplicacin). 32 / 32 Procesamiento de paquetes en IPSec Paquetes salientes Se busca en la SPD un regla que calce con el paquete. Si no hay match, se bota y se genera un error. Se determina si existe una SA ya establecida para este paquete. Si no existe, se negocia y establece una nueva SA. El paquete puede ser botado mientras se negocia la SA. Si ya exista una SA o si se estableci una SA nueva, IPSec debe procesar el paquete segn los parmetros de la SA. El paquete resultante se retorna para ser transmitido por la red.