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. Por lo tanto, a la hora de querer usar una red privada virtual, lo más recomendable es que cumplan con los siguientes factores:
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. Entre los usos que se pueden sacar partidos están: el cifrado de datos, proporcionar una mayor seguridad al enviar datos a través de la red de Internet pública, autenticar la información que se obtenga de un remitente, entre otros.
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.
Además de que este tipo de protocolo en particular admite varios tipos de cifrado, como AES, Blowfish, Triple DES, ChaCha o DES-CBC. Por lo que es otra de las características que se deben tener en cuenta de este protocolo. Sin olvidar mencionar que usa el cifrado asimétrico y simétrico con el objetivo de dar velocidad y seguridad durante la transferencia de los datos.
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.
Ventajas de IPSec
Sobre este protocolo podemos destacar unas cuantas ventajas, podemos empezar por la seguridad de la capa de red, ya que IPSec opera en dicha capa, la capa 3 del modelo OSI y como resultado de esto, no tiene impacto sobre la capa superior, lo que quiere decir esto es que será transparente para las aplicaciones y el usuario final no tendrá que preocuparse por ningún tipo de configuración con respecto al IPSec, permitiendo de igual forma que podamos monitorizar todo el tráfico que transita por nuestra red y esta es una de las razones de que se recomienden a menudo utilizar VPN basadas en IPSec.
Podríamos destacar también la confidencialidad, ya que cuando se produce cualquier intercambio de datos IPSec utiliza claves públicas para ayudar a transferir datos confidenciales de una forma más segura y además dichas claves ayudan a verificar que los datos provienen del host correcto.
Otro punto a favor, es que, al estar implementada en la capa de red, no dependerá nunca de las aplicaciones que se utilicen, sólo requerirá cuando sea necesario, modificar el sistema operativo, a diferencia de las VPN basadas en SSL donde sí se requiere una modificación activa por parte del usuario en las aplicaciones de manera individual.
Desventajas de IPSec
Uno de los peores inconvenientes que presenta IPSec es que tiene un amplio rango de acceso, esto quiere decir que al dar acceso a un dispositivo puede permitir también que otros dispositivos obtengan este privilegio, por lo que, si no tomamos medidas adicionales, cualquier vulnerabilidad que exista en la capa IP podrá colarse en la red a través del túnel IPSec.
IPSec también es conocido porque tiene un consumo alto de CPU, ya que requiere bastante potencia de procesamiento para realizar el cifrado y descifrado de los datos que pasan por el servidor y en ocasiones cuando el tamaño de los paquetes es pequeño, el rendimiento de la red aún así se ve disminuido debido a que causa una gran sobrecarga.
Qué protocolos se usan
Hay que tener en cuenta que IPSec no es un protocolo como tal, sino un conjunto de estos. Por lo tanto, al utilizar IPSec se hace uso de distintos protocolos. Y son los siguientes:
- Encabezado de autenticación, o AH.
- Protocolo de seguridad de encapsulación, o ESP.
- Asociación de seguridad, o SA.
Cada uno de estos protocolos juega un papel importante, por lo que también se deben conocer ya que el conjunto de estos componen IPSec. Además de que, aunque no forme parte de este, también hay que tener en cuenta el protocolo IP. Y todo porque se ejecuta directamente sobre este.
Modos IPSec
IPsec funciona con dos modos que tienen sus respectivas diferencias en los grados de protección. Y es que, entre ambos modos se pueden encontrar diferencias que se deben conocer a la hora de querer usar IPsec.
- Túnel
Es el más adecuado para realizar transferencias de datos en redes públicas. Esto mejora la protección contra partes que no están autorizadas. Los datos se encriptan, junto con la carga útil y el encabezado, añadiendo un nuevo encabezado después. Además de que hay que tener en cuenta que es el modo que está por defecto. En estos casos, en el momento en el que está activado, IPSec crea un túnel VPN para que el intercambio de datos sea seguro en todo momento con el servidor. Está encriptado por IPSec y también la dirección IP se enmascara con el objetivo de proteger la información que se envíe o se reciba.
- Transporte
Solo se encarga de cifrar la carga útil de los paquetes de datos, dejando el encabezado IP original. Esto hace que los enrutadores puedan identificar la dirección de destino de todos y cada uno de los paquetes. Por lo cual es el más recomendado cuando se trata de redes cercanas y con confianza entre ellas. Con este mejoraremos la conexión directa entre dos equipos diferentes. Por ejemplo, una empresa con dos redes diferentes en un mismo lugar. En este caso, este modo en particular se usa para comunicaciones de extremoa a extremo, como puede ser entre un cliente y un servidor determinados. Además, este tipo de encriptación hace de este que se pueda usar para llevar a cabo la función de escritorio remoto de manera más segura. Aunque, se suele utilizar cuando se tiene otro protocolo de utilización para encapsular el paquete de datos IP, mientras que está protegido por IPSec.
Los usos de IPSec
Este conjunto de reglas o protocolos de comunicación para configurar conexiones más seguras a través de una red lo cierto es que pueden tener varios usos. Para que puedas hacer una idea, aquí puedes encontrar las más habituales:
- Dar seguridad al enrutador en el momento en el que se envíen datos a través de una red de Internet que sea pública.
- Poder cifrar los datos de las aplicaciones.
- Conseguir autenticar de una manera más veloz cada uno de los datos en caso de que vengan de un remitente conocido.
- Lograr proteger los datos de la red al establecer una serie de circuitos cifrados, que se conocen como túneles IPSec, con los que se cifran los datos enviados entre dos puntos de conexión.
Es por esto mismo por lo que muchas compañías usan este protocolo en particular con el fin de protegerse, por ejemplo, de los ataques de repetición. De ahí que sea importante conoce cada una de sus ventajas e inconvenientes.
Además, hay que tener en cuenta que muchas redes privadas virtuales usan el conjunto de protocolos IPsec con el objetivo de fijar y ejecutar diferentes conexiones encriptadas. Aunque, hay que tener en cuenta que lamentablemente no todas las VPN usan este protocolo.
¿Por qué es importante este protocolo?
De primeras, uno de los puntos clave que se deben tener claros es que los protocolos de seguridad, como es el caso de IPsec, juegan un papel importante. Son elementos necesarios ya que los métodos de redes no cuentan con una encriptación de manera predeterminada. Por lo que es fundamental el uso de este tipo de protocolos.
Los protocolos de red como es el caso de TCP/IP solamente se encargan de que se realice de manera correcta la conexión y la entrega de la información, sin embargo, los mensajes enviados quedan expuestos. Por lo que cualquier persona podría tener acceso a esta información. Y aquí es cuando entra en juego los protocolos de seguridad. Básicamente, la finalidad de estos es proteger estos contenidos, es decir, se encriptan los datos para que nadie pueda tener acceso a estos mientras van por las redes. Por lo que se consigue mantener seguros.
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.
El funcionamiento del protocolo AH es el siguiente:
- 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».
- Se transmiten los datos vía Internet.
- 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:
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, lo que permite facilitar la comunicación y traspasar los cortafuegos en general. También soporta un nuevo estándar de movilidad, 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
En este caso, estamos ante un modo que, por lo general, es el más adecuado a la hora de querer transferir diferentes datos a través de redes públicas. Y todo porque son capaces de mejorar la protección de la información frente a terceros que no están autorizados. Además de que se consiguen encriptar los datos.
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. Es decir, este modo en particular es más común a la hora de usar una red que sea de confianza y cercana, ya que no se corren los mismos riesgos que al usar una red que sea pública.
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 contienen 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.
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.
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
El protocolo IPsec nos proporciona una lista de servicios de seguridad realmente importantes, es crítico que este protocolo disponga de todos ellos para proporcionarnos la máxima seguridad posible.
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.
Otras funciones
Como has podido ver, IPSec nos ofrece muchas características que nos dan más seguridad cuando utilizamos los servicios donde se encuentra implementado. Pero esto se puede utilizar en otras cosas, como pueden ser en las conexiones con servicios en la nube. Y nos da algunas ventajas para que todo se realice de forma segura y eficiente.
Por ejemplo, si disponemos de un servicio Site-ti-site VPN, podemos crear una conexión segura entre un centro de datos y un destino como puede ser una sucursal. Esto se hace mediante túneles IPSec. Cuando este servicio se conecta al servicio en la nube como al gateway de tránsito, utiliza estos túneles para crear una redundancia mayor. Algunos de los beneficios son:
- Mayor visibilidad de la salud de la red a nivel local y remoto, utilizando la monitorización de rendimiento.
- Nos ayuda a realizar migraciones más seguras y sencillas de servicios o aplicaciones locales a una nube.
- Mejora el rendimiento de los servicios y aplicaciones cuando se realiza la integración en la nube a la que estamos migrando.
VPN Zero-Trust
Antes de comenzar a pensar en optar por las VPNs Zero-Trust, hay que tener presente que no existen estándares o alianzas que delimiten lo que debe hacerse. Por supuesto, esto puede cambiar con los años, facilitando su adopción en masa. Por el momento, deberás pensar en tu propia estrategia, aquella que te permita tener máximo control y visibilidad de quienes se conectan a tu red, y cómo. No existe una fase final de puesta en marcha de estas VPNs. Es un camino de mejora continua que no tiene final.
Durante los próximos años, las VPNs Zero-Trust serán de uso común. ¿Qué las distingue de las tradicionales? No sólo provee autenticación al usuario si no también al dispositivo desde el cual se conectará. De ahí es donde viene el concepto de «confianza cero» (Zero-Trust), a todos por igual se les realizará el control de autenticación y autorización. Tanto a sus dispositivos como a sus credenciales, sin importar el status que tú tengas.
No se considera como un producto en sí o una tecnología, es una manera diferente de pensar en la seguridad. Existen numerosos inconvenientes en relación a las VPNs tradicionales. Especialmente cuando cedemos el acceso a personas que no están muy próximas a nosotros. Si algún atacante se apropia de las credenciales de acceso VPN de alguna persona, sin mucha dificultad, puede conseguir acceder. Desde donde sea y desde cualquier dispositivo, aunque fuese un móvil.
Por otro lado, la dificultad a la hora de configurar una VPN y administrarla, ha ido aumentando con el tiempo. Es como si se hubiese reservado la tarea solamente para aquellos usuarios que son bastante más avanzados.
El futuro del Zero-Trust
Poco a poco, a pesar de que la seguridad en todo tipo de servicios se ve incrementada, y notablemente mejorada, las amenazas también crecen. Cada día surgen nuevos ataques pueden poner en riesgo cualquier sistema, por lo cual las empresas y grandes corporaciones optan cada vez más por sistemas mucho más restrictivos pero que garantizan estándares de seguridad mucho más elevados.
Poco a poco, se ve que la única forma de estar muy protegidos, es mediante sistemas de confianza cero. Sobre todo, con el aumento del teletrabajo y las conexiones remotas. Por lo cual, se utilizan estos métodos, los cuales no confían en nada, y todo debe ser correctamente verificado. Esto evita la confianza inherente que se brinda a muchas aplicaciones a las que los usuarios tienen acceso. Por lo cual, con estos túneles entre los usuarios y las aplicaciones, se reduce en gran medida la superficie de ataque global, y como consecuencia, se reduce el riesgo de brechas de seguridad.
Algunos estudios indican que, en el año 2023, más de la mitad de las corporaciones eliminarán sus conexiones VPN de acceso remoto comunes, a favor de la instalación de sistemas de cero confianza. Lo cual conlleva los siguientes beneficios.
- Reducción de los riesgos: El sistema conecta directamente al usuario correcto con la aplicación específica. Este no llega a estar en ningún momento en la red, la cual puede dar cierto poder de descubrimiento.
- Experiencia del usuario: Estos sistemas proporcionan accesos rápidos, y que generan pocos problemas. Funcionan de forma independiente a las aplicaciones, los dispositivos y por supuesto a la ubicación del usuario que realiza la conexión. No tienen la necesidad de generar un retorno del tráfico al centro de datos, por lo cual son sistemas rápidos. La productividad también se ve afectada, pues no es necesario realizar desconexiones de la VPN.
- Agilidad y velocidad empresarial: Como estamos hablando de servicios en la nube, son fácilmente escalables. Al no tener necesidad de mantenimiento de hardware, las preocupaciones de la escalabilidad se reducen. Normalmente esto sí conlleva un gasto económico, pero es mucho más sencillo a nivel logístico y administrativo. Por la contra, si es necesario disponer de equipo especializado para poder realizar todas las tareas con garantías.
¿Cómo empiezo a montar una VPN de confianza cero?
Lo primero que debemos conocer antes de proceder con la implementación, es conocer el enfoque que le queremos dar. Existen dos diferentes. El basado en los puntos de acceso o en los servicios. Estos tienen cualidades diferentes, por lo cual se debe usar el que mejor se adapte a nuestras necesidades.
- Puntos de acceso: El usuario es quién inicia los puntos de acceso de la red desde un dispositivo. Para ello se utilizan agentes instalados en los equipos, los cuales se comunican con el controlador ZTNA.
- Por servicio: La conexión es iniciada por un intermediario que se encuentra entre la aplicación y el usuario. Esto requiere el uso de un cliente que actúe como tal entre el ZTNA y los entornos de las aplicaciones.
La recomendación esencial es no abarcar demasiado si es la primera vez. Si la VPN que deseas montar eventualmente involucrará a muchas personas, puedes empezar con un pequeño grupo. Incluso, contigo mismo, probando desde otros dispositivos con credenciales experimentales. Ahora bien, si ya apuntas a un entorno corporativo, pon más foco en proveedores o terceras personas que colaboran contigo en alguna tarea.
Un punto que ha caracterizado a las VPN desde siempre es que puedes configurar las instancias o módulos a los cuales deberían acceder los usuarios. Sin embargo, las VPN Zero-Trust pueden proveer de lo necesario para garantizar que efectivamente, las personas y dispositivos autorizados, tengan acceso a nuestra red. Tuvo que pasar cerca de 10 años como para que esta alternativa sea plausible para muchos.
Un estudio publicado por la compañía suiza Zug, especializada en proveer oficinas, indica que el 70% de las personas que trabajan de manera remota, lo hacen desde localidades particularmente inseguras. Considera a los aeropuertos, estaciones de trenes, cafeterías o cualquier lugar que sea concurrido y atractivo para los atacantes.
Siendo así, debemos asegurarnos de conectarnos a nuestro entorno de manera segura, confiable y con el menor riesgo posible. Si llegas a contar con la oportunidad de conectarte vía una VPN Zero-Trust, o piensas en montar una, darás un paso importante y colaborarás a favor de una adopción en masa que se hace cada vez más necesario.
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.