Mejora la seguridad de tu VPN con el protocolo IPsec

Mejora la seguridad de tu VPN con el protocolo IPsec

Sergio De Luz

Mantener una comunicación segura a través de una red insegura como Internet, es una de las principales preocupaciones de cualquier usuario en Internet, y también de las diferentes empresas. Los principales motivos para usar una VPN, es que nos permite establecer comunicaciones seguras, con autenticación y cifrado de datos para proteger toda la información intercambiada. IPsec es uno de los protocolos de seguridad más importantes, el cual proporciona una capa de seguridad a todas las comunicaciones IP entre dos o más participantes. Hoy en RedesZone vamos a ver en detalle qué es IPsec, cómo funciona y también cómo podríamos configurarlo y dónde.

Una VPN son las siglas de «Virtual Private Network», o también conocida como red privada virtual, y es una tecnología de red que nos permite extender las comunicaciones de la LAN sobre la red de Internet, y todo ello de manera totalmente segura gracias al uso de la criptografía. Una VPN nos permitirá que un ordenador envíe y reciba datos sobre redes compartidas o públicas, pero estando lógicamente en la red privada con todas sus funcionalidades, permisos, seguridad, políticas de gestión etc.

Algunos usos muy típicos de las VPN son los siguientes:

  • Posibilidad de conectar dos o más sedes de una empresa entre sí, usando para ello la conectividad a Internet.
  • Permitir a los miembros del equipo de soporte técnico la conexión desde sus casas a la empresa.
  • Que un usuario pueda acceder a su equipo doméstico desde un sitio remoto, como, por ejemplo, en un hotel.

Todos estos usos, siempre será a través de una infraestructura que todos conocemos bien: Internet.

Dentro de las VPN, tenemos principalmente dos arquitecturas de VPN, las VPN de acceso remoto (VPN Roadwarrior o Mobile Clients) y las VPN de Sitio-a-Sitio (VPN Site-to-site). Dependiendo de nuestras necesidades, deberemos configurar una arquitectura u otra.

  • VPN de acceso remoto (Roadwarrior o Mobile Client): esta arquitectura de VPN está diseñadas para que uno o varios usuarios se conecten a un servidor VPN, y pueda acceder a todos los recursos compartido de su hogar o empresa, además, permite que se realice una redirección del tráfico, de esta forma, saldremos a Internet a través del servidor VPN (y con la IP pública del servidor VPN). Este tipo de VPN son las más típicas que podemos configurar en los servidores NAS, en los routers, y en otros dispositivos cuyo objetivo es proporcionarnos una navegación segura a través de Internet. Estas VPN a nivel empresarial también servirían para aislar zonas y servicios de red interna que requiera una autenticación adicional, además, también podría ser una buena idea siempre que usemos la conectividad WiFi, tanto a nivel doméstico como empresarial, para añadir una capa más de cifrado.
  • VPN Sitio a sitio (VPN Site-to-Site): esta arquitectura de VPN está diseñada para interconectar diferentes sedes, si, por ejemplo, tenemos una empresa con diferentes sedes, podremos interconectarlas entre ellas vía VPN y acceder a todos los recursos. El establecimiento de la conexión no se realiza en el cliente final, como ocurre con las VPN de acceso remoto, sino que lo realizan los routers o los firewalls, de esta forma, toda la red se verá como «una» sola, aunque el tráfico viaje por varios túneles VPN.

En la siguiente imagen podemos ver una arquitectura de VPN con ambos modelos, tanto VPN sitio a sitio (izquierda) como VPN de acceso remoto (derecha):

¿Qué debe garantizar una VPN para que sea segura?

Para conseguir que una conexión sea segura a través de una red privada virtual (VPN), se deben garantizar ciertas funciones, de lo contrario, podríamos estar ante una VPN no confiable. Ya os anticipamos que el protocolo IPsec cumple todas ellas, ya que es un protocolo de VPN seguro, que es ampliamente utilizado en las empresas.

Autenticación

La autenticación es uno de los procesos más importantes de una VPN, esta característica permite demostrar a un usuario que es realmente quien dice ser. La forma de demostrarlo es introduciendo una contraseña de paso, hacer uso de un certificado digital, o una combinación de ambas formas de autenticación. Cuando el host recibe un datagrama IPsec de un origen, el host está seguro de que la dirección IP de origen del datagrama es el origen real del mismo, porque se ha autenticado correctamente de forma previa.

El protocolo IPsec dispone de diferentes tipos de autenticación para que los usuarios puedan conectarse al servidor de VPN, concretamente, los diferentes tipos de autenticación son los siguientes para los clientes móviles (VPN de acceso remoto):

  • Hybrid Certificate + Xauth
  • Mutual Certificate + Xauth
  • Mutual PSK + Xauth
  • EAP-TLS
  • EAP-RADIUS
  • EAP-MSCHAPv2
  • Mutual certificate
  • Mutual certificate (PKCS#11)
  • Mutual PSK

En el caso de que vayas a montar una VPN Site-to-Site, entonces debes conocer que los métodos de autenticación de IPsec son los siguientes:

  • Mutual certificate
  • Mutual certificate (PKCS#11)
  • Mutual PSK

Lo de «Certificate» son certificados basados en RSA o en EC, por tanto, tendremos que crear una autoridad de certificación (CA), crear un certificado digital para el servidor, y crear diferentes certificados digitales para los clientes (un certificado digital de cliente por cada cliente diferente que vayamos a conectar al servidor VPN).

Confidencialidad

La confidencialidad es otra de las características fundamentales de las VPN, la confidencialidad significa que se requiere que la información sea accesible únicamente a las entidades autorizadas, es decir, todas las comunicaciones están cifradas punto a punto, y solamente quien se haya autenticado previamente en el sistema, podrá descifrar toda la información intercambiada. Si alguien es capaz de situarse en el medio de la comunicación y la captura, no será capaz de descifrarla porque estará usando criptografía, ya sea criptografía de clave simétrica o asimétrica.

Actualmente IPsec soporta todos los cifrados simétricos actuales, tanto en la fase 1 de IPsec como en la fase 2 de IPsec, por ejemplo, es compatible con AES (128, 192 y 256 bits), AES-GCM (128, 192 y 256 bits) y Blowfish, otros cifrados como 3DES también se soporta pero no es recomendable usarlo por seguridad. No obstante, la negociación correcta de IPsec depende de si el sistema operativo soporta este tipo de algoritmos de cifrado simétrico. Por último, también se ha uso de Diffie Hellmann (DH) en diferentes grupos, por supuesto, es compatible con ECDH (DH basado en curvas elípticas) e incluso podremos activar la funcionalidad de PFS (Perfect Forward Secrecy).

Integridad

Tan importante es la autenticación y la confidencialidad, como la integridad. La integridad significa que se puede asegurar que la información no ha sido modificada entre el origen de la comunicación hasta el destino. Todas las comunicaciones en una VPN, incluye códigos detectores de errores y que la información no se vea modificada. En caso de ser modificada, automáticamente se descarta el paquete, e incluso se podría ocasionar una caída del túnel VPN por seguridad. El protocolo IPsec, permite al host receptor verificar que los campos de cabecera del datagrama y la carga útil cifrada no han sido modificados mientras el datagrama estaba en ruta hacia el destino.

Imaginemos que tenemos autenticación y confidencialidad en una VPN, pero no tenemos integridad. Si un usuario en el medio de la comunicación modifica unos valores, en lugar de enviar una transferencia de dinero de 10€, podría convertirlo en 1.000€. Gracias a la característica de la integridad, en cuanto se modifica un bit se descarta el paquete y esperará a que vuelva a ser enviado.

Los algoritmos de hash soportados por IPsec van desde MD5 hasta el SHA-512, por supuesto, los más seguros serían el SHA-256, SHA-384 y SHA-512 pertenecientes a SHA2, por último, también soporta AES-XCBC. No obstante, la negociación correcta de IPsec depende de si el sistema operativo soporta este tipo de algoritmos de hash.

No repudio

Esta característica de la criptografía significa que tú no puedes decir que no has enviado alguna información, porque está firmado por tu certificado digital, o por tu pareja de usuario/clave. De esta forma, podremos saber a ciencia cierta que ese usuario ha enviado una información en concreto. Solamente se puede «burlar» el no repudio, en caso de que alguien sea capaz de robar la pareja de usuario/clave o los certificados digitales.

Control de acceso (autorización)

Se trata de asegurar que los participantes autenticados tienen acceso únicamente a los datos a los que están autorizados. Se debe verificar la identidad de los usuarios y restringir su acceso a aquellos que estén autorizados. En un entorno empresarial esto es muy importante, un usuario debería tener el mismo nivel de acceso y mismos permisos que si estuviera físicamente, o menos permisos, pero nunca más permisos que los que tuviera de manera física.

Registro de actividad

Se trata de asegurar el correcto funcionamiento y la capacidad de recuperación. En el protocolo VPN se deberían registrar todas las conexiones establecidas, con dirección IP de origen, quién se ha autenticado, e incluso qué está haciendo en el sistema en función de la dirección IP virtual que se le haya proporcionado.

Calidad de servicio

Se trata de asegurar un buen rendimiento, que no haya una degradación poco aceptable en la velocidad de transmisión. Debemos tener en cuenta que cuando establecemos una conexión VPN, siempre tendremos menos velocidad real porque todo el tráfico va cifrado punto a punto, y dependiendo de la potencia del servidor VPN y de los clientes, podremos conseguir una mayor o menor velocidad. Antes de empezar a desplegar una VPN, deberíamos mirar el hardware del equipo y el ancho de banda máximo que podremos tener.

Introducción a IPsec

El protocolo IPsec es uno de los protocolos de seguridad más importantes, y es ampliamente utilizado en empresas, y también en usuarios domésticos. En los últimos tiempos, fabricantes como ASUS, AVM e incluso D-Link, están integrando VPN en sus routers domésticos basados en el protocolo IPsec. Este protocolo proporciona servicios de seguridad a la capa IP y a todos los protocolos superiores, como TCP y UDP (capa de transporte en internet). Gracias a IPsec, podemos comunicar diferentes puntos de Internet de forma segura, como dos o más empresas entre ellas, o un usuario con su hogar, IPsec se adapta perfectamente a las necesidades de VPN de ambos «mundos».

Una característica muy importante de IPsec es que trabaja en la capa 3 de OSI (capa de red), otros protocolos de VPN como OpenVPN o WireGuard trabajan en la capa 4 (capa de transporte), ya que estos dos últimos basan su seguridad en TLS y DTLS respectivamente. IPsec en redes IPv4 está justo por encima de la cabecera IP, sin embargo, en redes IPv6 está integrado (ESP) en la propia cabecera en la sección de «Extensiones».

IPsec proporciona todos servicios necesarios para que la comunicación sea segura, tal y como os hemos explicado anteriormente, estos servicios son los de autenticación, confidencialidad, integridad y no repudio. Gracias a estos servicios, la seguridad de las comunicaciones está garantizadas. Por supuesto, también tenemos control de acceso, calidad de servicio y registro de actividad.

Otra característica muy importante de IPsec, es que permite las dos arquitecturas de VPN, tanto VPN de acceso remoto como también VPN site-to-site. En cuanto a la negociación de la criptografía, IPsec integra un sistema de negociación para que los equipos finales negocien el mejor cifrado posible que soporten, acordar las claves de intercambio, y elegir los algoritmos de cifrado que tengan en común. Dependiendo de la cabecera de IPsec usada (AH o ESP), podremos comprobar solamente la autenticidad del paquete, o cifrar la carga útil de todo el paquete IP y comprobar también su autenticidad.

Cuando dos hosts han establecido una sesión IPsec, los segmentos TCP y datagramas UDP son enviados entre ellos cifrados y autenticados, además, se comprueba la integridad también para evitar que alguien lo pueda haber modificado. Por tanto, IPsec garantiza la seguridad de las comunicaciones.

Algunas ventajas de IPsec es que está apoyado por todos los estándares de la IETF, y proporciona un «estándar» de VPN por lo que todos los dispositivos deberían ser compatibles. IPSec está recibiendo un apoyo muy importante de todos los equipos de comunicaciones, ya que es el «estándar» de VPN, mucho más utilizado que OpenVPN o WireGuard. Todas las versiones de sistemas operativos para PC como Windows o Linux, MacOS para equipos Apple, y también Android y iOS soportan el protocolo IPsec. Además, otra característica muy importante, es que, al ser un estándar, hay interoperabilidad entre fabricantes, lo cual constituye una garantía para los usuarios. Otra característica destacable de IPSec es su carácter de estándar abierto, y se complementa perfectamente con la tecnología PKI (Infraestructura de Clave Pública).

IPsec combina tecnologías de clave pública (RSA o Curvas Elípticas), algoritmos de cifrado simétricos (AES principalmente, aunque también soporta otros como Blowfish o 3DES), y algoritmos de hash (SHA256, SHA512 etc), así como certificados digitales basados en X509v3.

Cabeceras de IPsec

El protocolo IPsec tiene una arquitectura con varias cabeceras, dependiendo de lo que nos interese «asegurar», podremos elegir una cabecera u otra, no podemos elegir ambas cabeceras simultáneamente en un mismo túnel de IPsec. Las cabeceras que tenemos en este protocolo son las siguientes:

  • Cabecera de Autenticación (AH)
  • Carga de Seguridad Encapsulada (ESP)

A continuación, os vamos a explicar en detalle el funcionamiento de ambas cabeceras.

Cabecera de autenticación (AH)

Esta cabecera proporciona autenticación e integridad a los paquetes IP transmitidos, para proporcionar esta característica IPsec, hace uso de las huellas digitales HMAC. El propio protocolo se encargará de calcular una función hash al contenido del paquete IP, algunas de las funciones hash utilizadas por este protocolo son MD5 o SHA-1 que no son seguras, pero también soporta SHA256 o SHA512 que sí son seguras.

Esta cabecera proporciona al receptor de los paquetes IP un método para autenticar el origen de los datos, y verificar que dichos datos no han sido alterados en la comunicación. Un detalle muy importante, es que esta cabecera no proporciona confidencialidad porque no cifra los datos del paquete IP, por tanto, la información intercambiada puede ser vista por terceros a no ser que usen protocolos como HTTPS o FTPES con seguridad TLS.

AH es una cabecera de autenticación que se inserta entre la cabecera IP estándar (tanto en redes IPv4 como IPv6) y los datos transportados. Estos datos transportados pueden ser un mensaje TCP, UDP o ICMP, e incluso un datagrama IP completo. Dentro de la cabecera AH es donde se indica los datos de la capa superior, además, AH asegura la integridad y autenticidad de la propia cabecera IP, excepto los cambios variables como TOS, TTL, flags, offset y checksum.

http://www.frlp.utn.edu.ar/materias/internetworking/apuntes/IPSec/ipsec.pdf

El funcionamiento del protocolo AH es el siguiente:

  1. El emisor calcula la función hash a partir del mensaje a transmitir. Se copiará a la cabecera AH en el campo «Datos de autenticación».
  2. Se transmiten los datos vía Internet.
  3. Cuando el paquete llega al receptor, aplicará la función hash y la comparará con la que ya tenía (ambos tienen la misma clave secreta compartida).

Si las huellas digitales coinciden, significa que el datagrama no ha sido modificado, de lo contrario, podremos afirmar que han manipulado la información.

Carga de seguridad encapsulada (ESP)

La Carga de Seguridad Encapsulada, o también conocida como ESP, ofrece autenticación, integridad y confidencialidad de los datos transmitidos a través de IPsec. Es decir, en este caso sí estaremos cifrando todo el campo de datos para que todas las comunicaciones sean confidenciales, a diferencia de AH que no cifra el mensaje transmitido. Para conseguir estas características de seguridad, se hace un intercambio de llaves públicas haciendo uso de Diffie-Hellmann para asegurar la comunicación entre ambos hosts.

La función principal del protocolo ESP integrado en IPsec, es proporcionar confidencialidad a los datos, para poder hacerlo, ESP define el cifrado y la forma en la que se ubicarán los datos en un nuevo datagrama IP. Para proporcionar autenticación e integridad, ESP usa mecanismos parecidos a AH. Debido a que ESP proporciona más funciones que AH, el formato de la cabecera es más complejo: este formato consta de una cabecera y una cola (que se coloca al final del paquete), por tanto, ESP «rodea» a los datos transportados. Respecto a los datos, ESP permite utilizar cualquier protocolo IP, por ejemplo, TCP, UDP, ICMP e incluso un paquete IP completo.

La estructura de un paquete ESP es la siguiente:

http://www.frlp.utn.edu.ar/materias/internetworking/apuntes/IPSec/ipsec.pdf

ESP pertenece al nivel de red dentro de TCP/IP. El área de datos queda totalmente cifrada, también se podría autenticar el propio datagrama para proporcionar mayor seguridad. El cifrado de los datos se realiza mediante algoritmos de clave simétrica, habitualmente se usan cifrados en bloque (como AES), el cifrado de los datos se hacen mediante múltiplos del tamaño del bloque, por este motivo tenemos el «Padding», un campo de relleno.

Para cifrar los datos, primero el emisor cifra el mensaje original usando una clave y lo introduce en un nuevo datagrama IP (que es protegido por la cabecera ESP). En el hipotético caso de que alguien intercepte el mensaje (Man In The Middle), sólo obtendrá datos sin sentido ya que no tiene la clave secreta para descifrar el mensaje. Cuando el mensaje llegue al destino, éste aplicará la clave secreta sobre los datos y descifrará el paquete.

El algoritmo más utilizado es AES en todas sus versiones (128 y 256bits) y en sus distintos modos de cifrado como AES-CBC, AES-CFB y AES-OFB. No obstante, es recomendable hacer uso de AES-GCM que nos proporcionará AEAD y es mucho más seguro que los demás. Por tanto, es fundamental usar un buen algoritmo de cifrado para proteger todos los datos, la distribución de las claves de forma segura será muy importante. Un tema delicado es que a ambos lados de la comunicación se pongan de acuerdo con los algoritmos y la autenticación, de esto se encargará el protocolo IKE.

IKE: qué es y para qué sirve

Este protocolo IKE (Internet Key Exchange) se utiliza para generar y administrar las claves necesarias para establecer las conexiones AH (Cabecera de autenticación) y ESP (Carga de Seguridad Encapsulada). Los dos o más participantes de la conexión IPsec deberán acordar de alguna manera, los tipos de cifrados y los algoritmos de autenticación para poder establecer la conexión de una forma segura. Esta configuración se podrá hacer de forma manual a ambos extremos del canal, o a través de un protocolo (el protocolo IKE) para que se encargue de la negociación automática de los participantes (SA = Asociación de Seguridad).

El protocolo IKE no sólo se encarga de la gestión y administración de las claves, sino también del establecimiento de la conexión entre los participantes correspondientes. IKE no sólo está en IPsec, sino que puede ser usado en los distintos algoritmos de enrutamiento como OSPF o RIP.

Fases de la negociación IKE

El establecimiento del canal seguro se hará usando un algoritmo de intercambio de claves como Diffie-Hellman para cifrar la comunicación IKE. Esta negociación se realiza mediante un único SA bidireccional. La autenticación puede ser mediante PSK (clave compartida) o con otros métodos como certificados RSA. Usando el canal seguro que se ha creado, se negociará la asociación de seguridad de IPsec (u otros servicios).

Algunas características de IKE

IKE es compatible con NAT transversal, aunque uno o los dos participantes estén detrás de una NAT, la conexión se podrá realizar sin muchos problemas, aunque tendremos que abrir puertos en el servidor VPN si está detrás de la NAT. Se usan números de secuencia y ACK’s para proporcionar confiabilidad, también incluye sistema de procesamiento de errores. IKE es resistente a ataques de denegación de servicio, además, IKE no realiza ninguna acción hasta que determina si el extremo que realiza la petición realmente existe, de esta forma, se protege contra ataques desde direcciones IP falsas.

Actualmente IKEv2 está ampliamente implantado en todos los firewalls y routers profesionales, no obstante, aún no está del todo extendido en el mundo Android o iOS, solamente los usuarios de smartphones Samsung soportan IPsec con IKEv2. Los sistemas operativos Windows, Linux y macOS sí son compatibles con este protocolo.

IKEv2: qué ha cambiado

IKEv2 es la segunda versión de este popular protocolo de Internet Key Exchange, incorpora mejoras para el NAT transversal, loq ue permite facilitar la comunicación y traspasar los cortafuegos en general. También soporta un nuevo estándar de mobilidad, lo que permite la reconexión de la comunicación de forma muy rápida, además, también permite multihoming (multiorigen), ideal para los usuarios de smartphones, tablets u ordenadores portátiles. IKEv2 permite hacer uso de SCTP que se usa en VoIP, también tiene un intercambio de mensajes más sencillo, tiene menos mecanismos criptográficos permitiendo solamente los más seguros. ¿Qué sentido tiene usar una VPN con cifrados inseguros? IKEv2 solamente permite utilizar los más seguros

Modos de funcionamiento: transporte o túnel

IPsec nos proporciona dos modos de funcionamiento muy distintos, tanto para la cabecera de autenticación (AH) como para la carga de seguridad encapsulada (ESP). Estos modos de funcionamiento se diferencian en el modo de direccionamiento de los paquetes. A continuación, os explicamos más a fondo las diferencias entre ambos.

Modo Transporte

La cabecera AH o el ESP es insertado entre el área de datos y la cabecera IP, de tal forma que, se mantienen las direcciones IP originales. El contenido encapsulado en un datagrama AH o ESP proviene directamente de la capa de transporte. Por tanto, la cabecera IPsec se insertará a continuación de la cabecera IP y justo antes de los datos aportados por la capa de transporte. De esta forma, sólo la carga útil es cifrada y autenticada. El esquema del datagrama sería el siguiente:

El modo transporte asegura la comunicación extremo a extremo, pero los extremos deben saber de la existencia del protocolo IPsec para poder entenderse.

Modo Túnel

En el modo túnel, el paquete IP entero (cabecera + datos) es cifrado y autenticado si se usa ESP. Este paquete será encapsulado en un nuevo paquete IP, por tanto, la dirección IP cambiará por la del último paquete IP. Por tanto, al paquete original se le añade una cabecera AH o ESP, y a continuación, se le añade la cabecera IP que servirá para encaminar el paquete a través de la red.

El modo túnel normalmente es usado para comunicar redes con redes, pero también se puede usar (y de hecho se usa), para comunicar ordenadores con redes y ordenadores con ordenadores. Este modo de funcionamiento facilita que los nodos puedan ocultar su identidad de otros nodos que se estén comunicando, al utilizar el modo túnel, podremos tener una subred específicamente dedicada para los clientes VPN. El modo túnel es empleado principalmente por los gateways IPSec, con objeto de identificar la red que protegen bajo una misma dirección IP, y centralizar, de este modo, el procesado del tráfico IPSec en un equipo.

En la siguiente imagen podéis ver una comparativa entre ambos esquemas de funcionamiento, usando siempre ESP:

Una vez que hemos visto los dos modos de funcionamiento, vamos a ver qué métodos de autenticación tenemos en IPsec.

Métodos de autenticación

En el protocolo IPsec tenemos un total de cuatro métodos de autenticación: clave compartida, firmas digitales RSA, certificados digitales X.509 y autenticación mediante un grupo de usuarios XAuth. Dependiendo del escenario donde deseemos implementar IPsec, se utilizará un método de autenticación u otro, cada uno de estos métodos poseen unas ventajas y unos inconvenientes que serán citados. A continuación, os explicamos en detalle estos cuatro métodos.

Clave compartida

La clave compartida es una clave formada por una cadena de caracteres (la de toda la vida) que sólo conocerán los dos extremos de la comunicación para establecer la conexión IPsec. Mediante el empleo de algoritmos de autenticación (HASH), se comprobarán que las claves son correctas sin necesidad de que dichas claves se revelen. Para que este método sea seguro, debe haber una clave por cada pareja de participantes en la comunicación. Este tipo de autenticación es inviable para muchos participantes, ya que habrá un número muy grande de claves.

Aunque se empleen hashes para el intercambio de claves en la conexión, antes de esta conexión, las claves deben estar en ambos extremos de la comunicación, por este motivo, no podemos saber a ciencia cierta si esa clave ha sido capturada cuando se envió. Sólo podremos asegurar que está a salvo si la entregamos en mano. Esta técnica es útil para redes pequeñas, pero para redes medianas y grandes en totalmente inviable.

Firmas Digitales RSA

IPsec trabaja con el protocolo IKE para la gestión de las claves y la seguridad de forma automática, utiliza las firmas digitales RSA para el intercambio seguro de claves mediante la pareja de claves públicas y privadas. Estas claves tienen el mismo problema que la clave compartida, de alguna manera tenemos que enviar las claves hacia «el otro lado», pero sí podemos modificar las claves de forma segura mediante el protocolo IKE.

Por tanto, para asegurar la red, es conveniente cambiar estas claves con cierta frecuencia. Estas firmas RSA proporcionan a la red autenticación y confidencialidad.

Certificados X.509

Una de las formas de autenticación más seguras en IPsec, es trabajar con certificados digitales, creando una infraestructura de clave pública (PKI) con su correspondiente CA (Autoridad de Certificación), el certificado digital del servidor y los certificados digitales de los clientes. Gracias a estos certificados digitales, podremos establecer una autenticación muy robusta, además, podremos también trabajar con certificados digitales, estos certificados contiene la clave pública del propietario y su identificación. El propietario posee también una pareja de claves públicas y privada para operar con ellas a la hora de la validación.

La utilización de estos certificados hace aparecer en escena el protocolo PKI para autenticar a los nodos implicados en la comunicación IPsec. La utilización de esta PKI, ayuda a la tarea de crear nuevos certificados y dar de baja otros. La validez del certificado digital es otorgada por la PKI, esta PKI integra la CA que contiene la clave pública y la identidad del propietario. Los extremos implicados en la conexión IPsec reconocerán la CA como válida, ya que poseen una copia de dicha CA (la clave pública de la CA).

La validación de los certificados se realiza mediante la lista de revocación de certificados (CRL) que está almacenada en la PKI. Todos los participantes tendrán una copia de esta CRL que se actualiza de forma constante.

Autenticación mediante grupo de usuarios XAuth

Este método añade un usuario y una contraseña a los certificados digitales vistos anteriormente (X.509), de tal forma que, aparte de validar el certificado, también validará el usuario y contraseña. Para validar estos usuarios y contraseñas, podremos hacer uso de un servidor Radius, o directamente una pequeña base de datos con el listado de usuarios y contraseñas.

Establecimiento de la conexión

La negociación de un túnel IPsec se realiza mediante el protocolo IKE que nos proporcionará una conexión cifrada y autenticada entre los dos extremos de la comunicación. En el procedimiento de conexión se acordarán las claves y la seguridad utilizada para establecer la conexión IPsec. El procedimiento de conexión se realiza en dos partes bien diferenciadas. A continuación, explicamos estas dos partes.

1. Proporcionar autenticación y seguridad a la conexión

Para asegurar la conexión, se utilizará un algoritmo de cifrado simétrico y una firma HMAC. Las claves se intercambian mediante un algoritmo de intercambio de claves, como Diffie-Hellman. Este método no garantiza que los participantes son quienes dicen ser, por tanto, utilizaremos una clave precompartida o unos certificados digitales.

La primera parte de la comunicación termina cuando se han acordado los parámetros de seguridad, y se ha asegurado el canal de comunicación.

2. Proporcionar confidencialidad de los datos.

El canal seguro IKE que hemos establecido, es empleado para negociar parámetros de seguridad específicos de IPsec (cabecera AH o ESP, algoritmos de autenticación etc.) Estos parámetros específicos pueden incluir nuevas claves Diffie-Hellman, para proporcionar mayor seguridad, siempre y cuando tengamos configurado el PFS (Confidencialidad Directa Perfecta), lo cual es muy recomendable para hacer aún más robusta la VPN.

Servicios de seguridad que ofrece IPsec

Confidencialidad

El servicio de confidencialidad se obtiene mediante la función de cifrado incluida en el protocolo ESP. En este caso es recomendable activar la opción de autenticación, ya que, si no se garantiza la integridad de los datos el cifrado es inútil. Esto es debido a que aunque los datos no pudiesen ser interpretados por nadie en tránsito, éstos podrían ser alterados haciendo llegar al receptor del mensaje tráfico sin sentido que sería aceptado como tráfico válido.

Además de ofrecer el cifrado del tráfico, el protocolo ESP también tiene herramientas para ocultar el tipo de comunicación que se está realizando; para ello permite introducir caracteres de relleno en el contenido de los datos del paquete, de modo que se oculta la verdadera longitud del mismo. Ésta es una protección útil contra las técnicas de análisis de tráfico, que permiten a un atacante deducir información útil a partir del estudio de las características del tráfico cifrado

Integridad y autenticación del origen de los datos

El protocolo AH es el más adecuado si no se requiere cifrado. La opción de autenticación del protocolo ESP ofrece una funcionalidad similar, aunque esta protección, a diferencia de AH, no incluye la cabecera IP. Como se comentó anteriormente, esta opción es de gran importancia para aquellas aplicaciones en las cuales es importante garantizar la invariabilidad del contenido de los paquetes IP.

Detección de repeticiones

La autenticación protege contra la suplantación de la identidad IP, sin embargo, un atacante todavía podría capturar paquetes válidos y reenviarlos al destino. Para evitar este ataque, tanto ESP como AH incorporan un procedimiento para detectar paquetes repetidos. Dicho procedimiento está basado en un número de secuencia incluido en la cabecera ESP o AH, el emisor incrementa dicho número por cada datagrama que envía y el receptor lo comprueba, de forma que los paquetes repetidos serán ignorados.

Esta secuencia no podrá ser modificada por el atacante, debido a que se encuentra protegida por medio de la opción de integridad para cualquiera de los dos protocolos (AH y ESP) y cualquier modificación en este número provocaría un error en la comprobación de la integridad del paquete.

Control de acceso: Autenticación y autorización

Dado que el uso de ESP y AH requiere el conocimiento de claves, y dichas claves son distribuidas de modo seguro mediante una sesión IKE en la que ambos nodos se autentican mutuamente, existe la garantía de que sólo los equipos deseados participan en la comunicación.

Es conveniente aclarar que una autenticación válida no implica un acceso total a los recursos, ya que IPSec proporciona también funciones de autorización. Durante la negociación IKE se especifica el flujo de tráfico IP que circulará a través de la conexión IPSec. Esta especificación es similar a un filtro de paquetes, considerándose el protocolo, las direcciones IP de los puertos origen y destino, el byte «TOS» y otros campos. Por ejemplo, puede utilizarse IPSec para permitir el acceso desde una sucursal, a la red local del centro.

No repudio

El servicio de no repudio es posible si se usa IKE con autenticación mediante certificados digitales. En este caso, el procedimiento de autenticación se basa en la firma digital de un mensaje que contiene la identidad del participante. Dicha firma, gracias al vínculo entre la clave pública y la identidad que garantiza el certificado digital, es una prueba inequívoca de que se ha establecido una conexión IPSec con un equipo determinado, de modo que éste no podrá negarlo. En la práctica, sin embargo, esta prueba es más compleja, ya que requeriría almacenar los mensajes de negociación IKE.

L2TP/IPsec: ¿qué es esto?

L2TP (Layer 2 Tunneling Protocol) es un protocolo utilizado para VPN que fue diseñado por un grupo de trabajo de IETF, como el heredero de PPTP, y fue creado para corregir las deficiencias de este protocolo y establecerse como un estándar. L2TP utiliza PPP para proporcionar acceso telefónico, que puede ser dirigido a través de un túnel por Internet hasta un punto determinado. L2TP incluye los mecanismos de autenticación de PPP, PAP y CHAP, además, de forma similar a PPTP, soporta la utilización de estos protocolos de autenticación, como RADIUS.

A pesar de que L2TP ofrece un acceso con soporte multiprotocolo y acceso a redes de área local remotas, no presenta unas características criptográficas especialmente robustas. Sólo se realiza la operación de autenticación entre los puntos finales del túnel, pero no para cada uno de los paquetes que viajan por él. Esto puede dar lugar a suplantaciones de identidad en algún punto interior al túnel. Sin comprobación de la integridad de cada paquete, sería posible realizar un ataque de denegación del servicio por medio de mensajes falsos de control que den por acabado el túnel L2TP o la conexión PPP subyacente.

L2TP no cifra de manera robusta el tráfico de datos de los usuarios, por tanto, da problemas cuando sea importante mantener la confidencialidad de los datos. A pesar de que la información contenida en los paquetes puede ser cifrada, este protocolo no dispone de mecanismos para generación automática de claves, o refresco automático de claves. Esto puede hacer que alguien que escuche en la red y descubra una única clave tenga acceso a todos los datos transmitidos.

Teniendo en cuenta todas estas debilidades de L2TP, la IETF tomó la decisión de utilizar los propios protocolos del protocolo IPsec, para proteger los datos que viajan por el túnel L2TP. Por este motivo, siempre se escriben de forma «L2TP/IPsec», por se hace uso de ambos protocolos simultáneamente, además, este protocolo conjunto es ampliamente utilizado. Se podría decir que L2TP es el protocolo a nivel de capa de “enlace”, y que no tiene seguridad, sin embargo, IPSec le proporciona la seguridad a nivel de capa de red para que la utilización de este protocolo sí sea segura.

Por este motivo, siempre vamos a encontrar la nomenclatura L2TP/IPSec de manera conjunta, porque se utilizan ambos protocolos para tener una conexión VPN segura.

Conclusiones

IPSec es un estándar de seguridad extraordinariamente potente y flexible. Su importancia reside en que aborda una carencia tradicional en el protocolo IP: la seguridad. Gracias a IPSec ya es posible el uso de redes IP para aplicaciones críticas, como las transacciones comerciales entre empresas. Al mismo tiempo, es la solución ideal para aquellos escenarios en que se requiera seguridad, independientemente de la aplicación, de modo que es una pieza esencial en la seguridad de las redes IP. El protocolo IPSec es ya uno de los componentes básicos de la seguridad en las redes IP hoy en día.

3 Comentarios