IPSec es un framework o colección de protocolos que actúan en la capa de Red del modelo OSI y que juntos forman una de las tecnologías más seguras y soportadas, utilizada habitualmente para establecer túneles a través de redes IP, las llamadas Redes Privadas Virtuales (VPN).
Al actuar en la capa 3 puede proteger los protocolos de red, transporte y aplicación. Lo que lo hacen mucho más seguro y flexible que, por ejemplo https, que solamente protege a la capa de aplicación.
Qué ofrece IPSec
Los servicios que proporciona IPSec son los siguientes:Autenticación mútua: Cada extremo de la comunicación verifica su identidad. Ya sea a través de contraseñas, smart cards, certificados, datos biométricos, etc. Además los paquetes enviados en la comunicación se verifican para confirmar que han sido enviados desde el emisor real. Para ello se usa cifrado asimétrico.
Confidencialidad: Todos los paquetes se encriptan para protegerlos de intercepciones de terceros no deseadas. Generalmente se usa cifrado simétrico (misma clave) para cifrar y descifrar los paquetes (por ejemplo, AES).
Integridad: En el destino se verifica que todos los paquetes fueron recibidos íntegramente y que por lo tanto no se han modificado por el camino y no están corrompidos.
Protección de Repetición: Los paquetes enviados cuentan con una identificación única y que luego será descartada. Hecho que asegura que alguien que captura los paquetes no pueda volver a enviarlos al receptor modificados con su dirección IP para conseguir información privilegiada.
Control de acceso: Los extremos de la comunicación pueden filtrar mediante ACLs que solo los usuarios (clientes) autorizados se pueden conectar a la VPN.
Protección contra monitorización: Todos los anteriores puntos dan como resultado una conexión muy segura que inhabilita a un man-in-the-middle saber quienes se están comunicando y con qué frecuencia.
Protocolos de IPSec
IPSec usa 3 protocolos que funcionan tanto para IPv4 como para IPv6 y que juntos logran ofrecer el listado de servicios anteriormente mencionado.Authentication Header (AH)
Este protocolo proporciona integridad, autenticación y no repudio. Una de las acciones que hace es realizar un hash de las partes no mutantes de la cabecera IP (las partes que cambian: offset de fragmentación, TTL, checksum, etc no se hashean por razones obvias) y de los datos. Dicho hash se ubica en la cabecera IPSec (AH). Una vez el paquete llega al router este se vuelve a hashear (esta vez con la cabecera IPSec) antes de transmitirlo para evitar que modificando el primer hash se consiga cambiar el contenido de los datos. De esta forma proporciona la integridad: Si ambos hashes no son iguales en el destino querrá decir que el paquete ha sido modificado y se procederá al reenvío de este.El problema del doble hasheado recae en la imposibilidad de hacer NAT. Si se modificase IP destino o los puertos destino, los hashes se invalidarían (y además afectaría gravemente el intercambio de claves inicial mediante IKE, el tercer protocolo que explicaremos). Por eso se usa NAT Transversal.
NAT Transversal hace que los paquetes pasen mejor a través de Firewalls. Todos los fabricantes más importantes (Cisco, Juniper, etc) soportan NAT-T.
Opcionalmente AH también puede proteger de los ataques de repetición usando la técnica de ventana deslizante: un dispositivo de control de flujo en el que el receptor indica al emisor cuál es su estado de disponibilidad para recibir datos.
La cabecera AH tiene la siguiente estructura:
Donde los campos importantes son:
SPI: Identificador asociado a la conexión establecida.
Sequence number: Número de secuencia del paquete, usado para evitar ataques de repetición.
HMAC: Contiene el hash con el que se autentica el paquete.
Se puede usar tanto en Transport como en Tunnel mode; pero en ninguno de los dos casos cifra los paquetes. Si se usa AH no se garantiza la confidencialidad.
AH se considera el protocolo IP número 51.
Encapsulating Security Protocol (ESP)
Proporciona confidencialidad y la opción de autenticación e Integridad. ESP se suele usar en modo túnel porque sinó ESP no protege la cabecera IP. Entonces, los problemas con NAT no se presentan con este protocolo.En modo túnel, como veremos a continuación, sí protege la cabecera IP interna pero no la nueva cabecera IP que encapsula todo el datagrama.
La gran diferencia frente a AH es que sí proporciona confidencialidad, es decir, encripta el paquete. Los algoritmos usados son AES con clave de 128 bits o 3DES. No entraremos en detalles pero ambos se consideran seguros, aunque AES es más rápido y no requiere de tantos recursos.
La cabecera ESP tiene la siguiente estructura:
Donde los campos importantes son:
SPI: Identificador asociado a la conexión establecida.
Sequence number: Número de secuencia del paquete, usado para evitar ataques de repetición.
Payload Data: Datos a transferir.
Authentication Data: Datos para la autenticación (opcional).
ESP se considera el protocolo IP número 50.
IKE (SA)
Para poder empezar la transmisión IPSec primero hay que crear una Asociación de Seguridad (SA). Antes de establecer la comunicación ambos extremos se intercambian una clave privada y el algoritmo a usar por un método seguro (e.g. IKE o IKEv2). Dicha asociación se hace constar en la cabecera de los paquetes con el SPI (Security Parameter Index).En este intercambio de datos se acuerdan:
El algoritmo de encriptación: AES, 3DES, etc
Qué función de hash se usa: MD5 o SHA
Si se usa Transport o Tunnel Mode y si se usa ESP o AH
Qué algoritmo de autentificación usar: pre-shared key, cifrado asimétrico, clave pública emitida por un CA, etc
La vida útil de la asociación
IKE proporciona un framework para esta negociación e intercambio de claves que emplea Diffie-Helmann para establecer el secreto compartido (la clave que solamente conocerán ambos extremos de la comunicación).
IKE se implementa a través de un daemon que corre en modo usuario junto con una pila IPSec en el Kernel, por lo que tiene fácil acceso a los certificados, claves e información de configuración, que garantizan un buen rendimiento. Usa paquetes UDP a través del puerto 500 y en total se envían de 4 a 6 paquetes antes de establecer una SA.
La negociación IKE consta de 2 fases:
Fase 1 IKE: Consiste en establecer un canal de comunicaciones seguro a través de Diffie-Helmann en el que se genera una sola SA. Se puede realizar tanto en modo principal (protegiendo la identidad de los extremos) como en modo agresivo (sin protegerla).
Fase 2 IKE: Una vez establecido el canal seguro IKE se establece otra negociación, esta vez para un SA IPSec.
Modos de funcionamiento
IPSec puede funcionar en dos modos diferentes: Transport Mode y Tunnel Mode.Transport Mode
En modo transporte solamente los datos del paquete son encriptados y/o autenticados(en función de si se usa AH o ESP). La información de enrutamiento, es decir la cabecera IP del paquete, permanece intacta sin ser encapsulada por una cabecera IP adicional.Por eso, la cabecera IPSec, cuyos campos cambiarán en función de si se usa ESP o AH, se coloca después de la cabecera IP.
Las capas de aplicación y de transporte están hasheadas, por lo que se garantiza la integridad de dichos datos gracias a la cabecera IPSec. Si se usa ESP, además se le añade cifrado.
Dicha seguridad es extremo a extremo, por lo que se emplea generalmente en las topologías host-to-host.
Si se usa AH se tiene que usar NAT transversal para que el cambio de IPs no haga que el hash quede invalidado.
Tunnel Mode
Este modo de uso incluye una cabecera IP adicional que encapsula a la original junto con la cabecera IPSec, situada en medio de las dos cabeceras IP. La cabecera IPSec variará en función del protocolo usado (AH o ESP).En este modo todo el paquete ip (cabecera IP original incluida) es cifrado y/o autenticado. Para que el enrutamiento siga funcionando se tiene que añadir una cabecera IP adicional, que tendrá una IP diferente que la de la cabecera original.
Se usa generalmente para VPN Gateway-to-Gateway, o conexiones host-to-gateway.
The post appeared first on aprendederedes.com.