Home » Blog » Comparación de protocolos existentes para la creación de una red privada virtual

Comparación de protocolos existentes para la creación de una red privada virtual


Existen varios servicios de red privada virtual en internet. Una pregunta común es cómo comparar los protocoles existentes para la creación de una red privada virtual. En este artículo realizamos dicha comparación basándonos en la bibliografía existente sobre este tema.

red privada virtual (VPN)

Los servicios de VPN o red privada virtual permiten la navegación segura a través de la red de redes y realizar tareas como conectarse remotamente de la casa al lugar de trabajo o conectar dos redes que se encuentran en lugares distantes sin que se pueda husmear su comunicación.

Una red privada virtual cifra el tráfico entre los equipos que están conectados a la misma y dan la sensación que todos se encuentra en una red local cuando en realidad pueden estar a kilómetros de distancia. Estas se despliegan sobre una red existente como internet lo cual implica un ahorro en cuanto a la compra de infraestructura tecnológica. 

Cuando se desea implementar una VPN propia o conectare a una existente uno de los principales aspectos a tener en cuenta son los protocolos criptográficos que utiliza para proteger la información. A continuación se describen brevemente algunos protocolos.

Descripción de protocolos criptográficos utilizados para la implementación de VPN

PPTP

Point-To-Point Tunneling Protocol (PPTP) “Protocolo de túnel Punto a Punto” es un protocolo de comunicaciones cifradas desarrollado por Microsoft. Opera en la capa de enlace del Modelo OSI (Fig.1) y es una extensión del protocolo Point-To-Point o (PPP) o conexión punto a punto. Source.

No ha sido ratificado como estándar por el IETF (IETF, s.f.). La especificación para PPTP fue publicada por el RFC 2637 (IETF, s.f.).

La seguridad del protocolo ha sido rota. El fallo de PPTP es causado por errores de diseño en la criptografía en los protocolos handshake LEAP (Anon., s.f.) de Cisco y MSCHAP-v2 de Microsoft y por las limitaciones de la longitud de la clave en MPPE(source).

L2F

El protocolo L2F (Layer 2 Forwarding) fue desarrollado por Cisco. Este protocolo no depende del protocolo IP y es capaz de trabajar con otros medios como Frame Relay y ATM[1]  y permite establecer túneles que contengan más de una conexión diferencia del protocolo PPP.

Se desarrolló con el objetivo de que los usuarios pudieran conectarse de forma segura desde su casa a la red de su lugar de trabajo. (source)

L2TP

L2TP (Layer 2 Tunneling Protocol) se crea por un grupo de trabajo de IETF para corregir las deficiencias de los protocolos PPTP y L2F y combina características de ambos (source).

Al igual que PPTP utiliza PPP para brindar servicio a través de acceso telefónico  y establecer un túnel a través de internet. Basado en L2F define su propio protocolo de establecimiento de túneles y puede trabajar con una gran variedad de datos como Frame Relay y ATM. (source

Se establece como un estándar aprobado por IETF (RFC 2661 (IETF, n.d.)).

A pesar de que L2TP ofrece un acceso económico, con soporte multiprotocolo y acceso a redes de área local remotas, no presenta unas características criptográficas especialmente robustas.

Por ejemplo:

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 en principio el tráfico de datos de usuario, lo cual puede dar problemas cuando sea importante mantener la confidencialidad de los datos. (source)

IpSec

IPsec es un estándar que proporciona cifrado y autenticación a los paquetes IP, trabajando en la capa de red. En lugar de tratarse de un único protocolo, IPsec es en realidad un conjunto de protocolos, definidos en diversos RFCs principalmente en el 2401 (IETF, n.d.)), encaminados a proporcionar autenticación, confidencialidad e integridad a las comunicaciones IP. Su carácter obligatorio dentro del estándar IPv6, eso hará con seguridad que la popularidad de IPsec crezca al mismo ritmo que la implantación de la nueva versión del protocolo IP (López, 2010: Criptografía y Seguridad en Computadores).

Los protocolos de IPsec actúan en la capa de red, la capa 3 del modelo OSI. La característica de que IP se opere sobre el nivel 3 del modelo OSI hace que para que una aplicación pueda usar IPsec no hay que hacer ningún cambio, mientras que para usar otros protocolos de niveles superiores, las aplicaciones tienen que modificar su código.

IPsec puede ser utilizado para proteger una o más rutas entre un par de ordenadores, un par de pasarelas de seguridad —ordenadores que hacen de intermediarios entre otros, y que implementan los protocolos IPsec— o una pasarela y un ordenador (López, 2010: Criptografía y Seguridad en Computadores).

En función del tipo de ruta que se proteja, se distinguen dos modos de operación:

Modo túnel: Se realiza entre dos pasarelas de seguridad, de forma que éstas se encargan de crear una ruta segura entre dos ordenadores conectados a ellas, a través de la cual viajan los paquetes.

De este modo se puede disponer dentro de una red local de un ordenador que desempeñe las labores de pasarela, al que las computadoras de la propia red envíen los paquetes, para que éste les aplique los protocolos IPsec antes de remitirlos al destinatario —o a su pasarela de seguridad asociada—.

Este modo permite interconectar de forma segura ordenadores que no incorporen IPsec, con la única condición de que existan pasarelas de seguridad en las redes locales de cada uno de ellos (López, 2010: Criptografía y Seguridad en Computadores).

Modo transporte: En este caso los cálculos criptográficos relativos a los protocolos IPsec se realizan en cada extremo de la comunicación. (López, 2010).

SSL

El protocolo SSL (Secure Sockets Layer), desarrollado originalmente por la empresa Netscape, permite establecer conexiones seguras a través de Internet, de forma sencilla y transparente.

Se sitúa en la capa de aplicación directamente sobre el protocolo TCP, y aunque puede proporcionar seguridad a cualquier aplicación que corra sobre TCP, se usa principalmente para proporcionar seguridad a los protocolos HTTP (web), SMTP (email) y NNTP (news), dando lugar en el primero de los casos a los servidores web seguros, cuya URL comienza por el prefijo “https://”.

Su fundamento consiste en interponer una fase de codificación de los mensajes antes de enviarlos a través de la red. Una vez que se ha establecido la comunicación, cuando una aplicación quiere enviar información a otra computadora, la capa SSL la recoge y la codifica, para luego enviarla a su destino a través de la red.

Análogamente, el módulo SSL del otro ordenador se encarga de decodificar los mensajes y se los pasa como texto claro a la aplicación destinataria (López, 2010: Criptografía y Seguridad en Computadores).

SSL también incorpora un mecanismo de autentificación que permite garantizar

la identidad de los interlocutores. Típicamente, ya que este protocolo se diseñó originalmente para establecer comunicaciones web, el único que suele autentificarse es el servidor, aunque también puede realizarse una autentificación mutua.

Una comunicación a través de SSL implica tres fases fundamentalmente:

  • Establecimiento de la conexión y negociación de los algoritmos criptográficos que van a usarse en la comunicación, a partir del conjunto de algoritmos soportados por cada uno de los interlocutores.
  • Intercambio de claves, empleando algún mecanismo de clave pública, y autentificación de los interlocutores a partir de sus certificados digitales.
  • Cifrado simétrico del tráfico. (López, 2010)

TLS

TLS (descrito en el documento RFC 2246 (IETF, n.d.)) es un protocolo basado en la versión 3.0 de SSL, si bien con una serie de mejoras que lo hacen incompatible con este último.

Una de las ventajas que proporciona sobre SSL es que puede ser iniciado a partir de una conexión TCP ya existente, lo cual permite seguir trabajando con los mismos puertos que los protocolos no cifrados. Mientras que SSL es un protocolo incompatible con TCP.

Lo anterior significa que no podemos establecer una conexión de un cliente TCP a un servidor SSL ni al revés, y por tanto es necesario diferenciarlos utilizando distintos números de puerto (80 para un servidor web normal y 443 para un servidor web sobre SSL), con TLS puede establecerse la conexión normalmente a través de TCP y el puerto 80, y luego activar sobre el mismo el protocolo TLS (López, 2010: Criptografía y Seguridad en Computadores).

TLS fue actualizado, en el RFC 5246 (IETF, n.d.) (agosto de 2008) y en RFC 6176 (IETF, n.d.) (marzo 2011). Se basa en las especificaciones previas de SSL (1994, 1995, 1996).

Comparación de Protocolos

Para la implementación de las VPN se pueden combinar varios de los protocolos estudiados. A continuación se muestra una tabla de comparación entre las soluciones VPN que implementan los protocolos descritos.

CriterioPPTPL2TP/IPsecSSL/TLS
Nivel de seguridadEncriptación básica.Encriptación fuerte, en modo transporte encapsula los datos dos veces. Comprueba la integridad de los datos.La encriptación varía en dependencia de los algoritmos que se utilicen. Realiza la autenticación mediante certificados digitales.
VelocidadPosee una alta velocidad debido a su bajo nivel de encriptación.Como encapsula los datos dos veces requiere más procesamiento y es menos rápida.Tiene un buen rendimiento.
EstabilidadFunciona en la mayoría de los puntos de acceso a Wi-Fi, muy estable.Compatible con dispositivos NAT.Muy fiable, funciona tras ruters y en puntos de acceso Wi-Fi.
VulnerabilidadesLa seguridad ha sido rota y es muy vulnerable.Se documentan algunas vulnerabilidades.Se detectan y corrigen vulnerabilidades constantemente.
CompatibilidadNativo en la mayoría de los sistemas operativos.Nativo en la mayoría de los sistemas operativos.Compatible con la mayoría de los sistemas operativos.
Facilidad de implementaciónMuy fácil de implementar.La curva de aprendizaje es alta debido a la cantidad de protocolos que utiliza.Fácil de implementar y configurar.
EstandarizaciónNo es un estándar para la implementación de VPN.Es un estándar para la implementación de VPN.No es un estándar para la implementación de VPN.

Observaciones

El protocolo PPTP es muy rápido y nativo en la mayoría de los sistemas operativos pero poco seguro. Se ha sustituido por L2TP/IPsec. No es un estándar para la implementación de VPN.

SSL/TLS son protocolos muy utilizados para la seguridad de los sitios web combinándolos con el protocolo HTTP dando surgimiento al HTTPS. Es compatible con la mayoría de los navegadores web y funciona muy bien en los puntos de acceso a redes inalámbricas.

Durante su evolución se han detectado y corregido gran cantidad de vulnerabilidades. No es considerado un estándar para la implementación de VPN. Es compatible con la mayoría de los sistemas operativos.

IPsec es un protocolo muy seguro y es considerado un estándar para el desarrollo de VPN. Encapsula los datos dos veces en su modo transporte. Trabaja sobre la capa de red del modelo OSI mientras que la mayoría de los protocolos funcionan sobre la capa de transporte.

Lo anterior permite que no sea necesario realizarle cambio a las aplicaciones para su utilización. Su rendimiento puede ser más lento por el doble encapsulamiento. Es nativo en la mayoría de los sistemas operativos.

Servidores VPN que implementan estos protocolos

A continuación se muestran dos servidores para la creación de VPNs que implementan los protocolos SSL/TLS e IPsec.

OpenVPN es una solución de conectividad basada en software libre: SSL VPN. Ofrece conectividad punto-a-punto con validación jerárquica de usuarios y host conectados remotamente, resulta una muy buena opción en tecnologías Wi-Fi (redes inalámbricas IEEE 802.11) y soporta una amplia configuración, entre ellas balanceo de cargas. Está publicado bajo la licencia GPL, de software libre.

Es un producto de software creado por James Yonan en el año 2001 y que ha estado mejorando desde entonces.

Es una solución multi-plataforma que ha simplificado la configuración de VPN’s frente a otras soluciones más antiguas y difíciles de configurar como IPsec y haciéndola más accesible para gente inexperta en este tipo de tecnología (source).

StrongSwan es una implementación completa IPsec para Linux 2.6 y kernels 3.x. El objetivo del proyecto es proporcionar fuertes mecanismos de autenticación mediante certificados de clave pública X.509.

El proyecto se mantiene activo por Andreas Steffen que es profesor de Seguridad en las Comunicaciones de la Universidad de Ciencias Aplicadas en Rapperswil, Suiza.

Es descendiente del FreeS / WAN project, strongSwan o bajo licencia GPL. Es compatible con las listas de revocación de certificados y el Online Certificate Status Protocol (OCSP). Una característica única es el uso de los certificados de atributos X.509 para implementar esquemas de control de acceso basadas en la pertenencia a grupos.

StrongSwan interactúa con otras implementaciones de IPsec, incluyendo varios clientes Mac OS X y Windows. El modular strongSwan 5.0 implementa completamente el protocolo Internet Key Exchange (IKEv2) definido por RFC 5996 (IETF, n.d.). (source)

CONCLUSIONES

Después de estudiar y comparar los protocolos analizados para la construcción de una VPN de puede concluir que las mejores opciones son utilizar SSL/TLS o IPsec.

Si se desea montar una VPN que permita acceso a la mayor cantidad de dispositivos incluyendo dispositivos móviles y a través de conexiones inalámbricas se debe utilizar SSL/TLS.

Estos protocolos garantizan una gran compatibilidad con los servicios web y son implementados en la mayoría de los navegadores independientemente del sistema operativo que se esté utilizando.

Sobre él mismo solo se puede ejecutar aplicaciones que lo tengan implantado por lo cual se puede controlar y restringir el acceso a las aplicaciones que se conectan a la red. Todo el tráfico viaja por un solo puerto por lo cual es fácil su configuración.

Por otra parte si lo que se desea montar es una red VPN donde la prioridad es la seguridad y se desea que corran todos los servicios que están instalados en los ordenadores entonces se debe utilizar IPsec.

Este protocolo opera sobre el nivel de red del modelo OSI por lo cual cifra todo el tráfico que viaja a través de la red sin importar las aplicaciones que la utilicen. Realiza un encapsulamiento doble del paquete lo cual aumenta el nivel de seguridad aunque requiere mayor nivel de procesamiento para su uso. 

La implementación y configuración es más compleja que la del SSL por la cantidad de puertos que utiliza para establecer la comunicación. Es considerado un estándar por lo cual es compatible con la mayoría de los sistemas operativos.

A parte del software que se describe en el artículo hay gran variedad de variedad aplicaciones gratuitas que se utiliza para este fin. Un ejemplo es el firewall Pfsense que permiten implementar tuéneles VPN a través de los protocolos TLS e IPsec.


[1]ATM:  Modo de Transferencia Asíncrona o Asynchronous Transfer Mode.