RESUMEN: Las VPN usan algoritmos criptográficos y protocolos de comunicación para convertir tu tráfico web en un código ininteligible y así protegerlo de la vigilancia externa. Para considerar a una VPN como segura, es fundamental que emplee el sistema AES-256 o un nivel de cifrado superior para proteger tus datos.
Un túnel VPN es, en esencia, un canal seguro que se establece entre tu dispositivo y el servidor VPN, proporcionando una ruta privada en el Internet público.
A este tipo de conexión se le denomina túnel porque tu tráfico original se cifra y se envuelve en una capa de tráfico no cifrado.
Sería algo así como colocar un sobre cerrado dentro de otro sobre con una dirección diferente, ocultando tu mensaje original y haciéndolo ilegible para cualquier persona que pueda interceptarlo.
Este proceso, conocido como encapsulación, se lleva a cabo por protocolos de tunelización especializados.
Algoritmos de cifrado VPN
El cifrado transforma la información original, conocida como texto plano, en un código secreto que es ininteligible para cualquier persona que no disponga de la clave necesaria para descifrarlo.
Las VPN usan el cifrado para ocultar tu actividad de navegación entre tu dispositivo y servidor VPN, lo que te brinda protección contra diversas formas de vigilancia y rastreo.
Las VPN usan algoritmos de cifrado o cifras para convertir tu actividad online en un código ilegible. Una cifra es un algoritmo matemático (es decir, un conjunto de reglas) que encripta y desencripta datos, a menudo asociado con una longitud de clave específica.
La clave es una secuencia de caracteres que se utiliza para alterar los datos que se están cifrando, y solo quien disponga de la misma clave podrá descifrarlos.
Por lo general, cuanto más larga es la longitud de la clave, más seguro es el cifrado. Por ejemplo, AES-256 se considera más seguro que AES-128.
Algunos protocolos VPN utilizan claves estáticas, diseñadas para usarse a largo plazo, mientras que otros utilizan claves temporales que expiran después de una única sesión o transacción.
Los algoritmos de cifrado funcionan de la siguiente manera:
- La cifra usa una clave para cifrar los datos antes de enviarlos.
- El receptor utiliza la misma clave o una clave asociada para descifrar los datos.
- Solo aquellos que tienen la clave correcta pueden descifrar y leer la información.
El tipo de cifrado que usa una VPN suele depender de cuánta prioridad le han dado sus desarrolladores a la seguridad frente al rendimiento, ya que los cifrados más robustos necesitan más capacidad de procesamiento.
Con el paso del tiempo, han ido surgiendo nuevos algoritmos de cifrado que han sido adoptados por los servicios de alta calidad.
Los algoritmos más usados en las VPN son:
- Advanced Encryption Standard (AES)
- Estándar por excelencia en la industria del cifrado online
- Disponible en longitudes de clave de 128 y 256 bits
- Se recomienda AES-256 para garantizar la máxima protección
- Resistente a ataques cuánticos
- Blowfish
- Diseñado en 1993; ampliamente desplazado por AES-256
- Longitud de clave de 128 bits (aunque puede oscilar entre los 32 y los 448 bits)
- Tiene algunas vulnerabilidades conocidas
- Usado como alternativa a AES-256
- ChaCha20
- Cifrado moderno que está ganando popularidad
- Longitud de clave de 256 bits
- Comparable a la seguridad de AES-256
- Mejor rendimiento, especialmente en dispositivos móviles
- Camellia
- Desarrollado en 2000
- Seguridad y velocidad comparables a AES
- No ha sido validado por el NIST
- Disponible en un número limitado de VPN
Los modos de cifrado determinan la forma en que los algoritmos como AES cifran los datos. Son fundamentales para la seguridad de las VPN, ya que afectan tanto a la privacidad como a su rendimiento. A continuación, te presentamos los modos más utilizados en las VPN:
- CBC (Cipher Block Chaining)
- Modo tradiconal
- Crea una cadena de bloques dependientes
- Puede ser más lento que otros modos más modernos
- Necesita medidas de seguridad adicionales
- GCM (Galois/Counter Mode)
- Ofrece cifrado y autenticación
- Más rápido que el modo CBC
- Considerado muy seguro
- Ampliamente utiliado en VPN modernas
- CTR (Counter)
- Convierte el cifrado de bloque en cifrado de flujo
- Rápido y permite el procesamiento paralelo
- No proporciona autenticación por sí solo
- Usado por ChaCha20
- OCB (Offset Codebook Mode)
- Ofrece cifrado y autenticación en un solo paso
- Muy eficiente
- Su adopción es limitada por cuestiones de patentes
Es recomendable evitar usar otros modos en el software de las VPN. El ECB (Electronic Codebook), en particular, es demasiado simple para ser seguro, mientras que los modos CFB (Cipher Feedback) y OFB son propensos a errores de configuración debido a su complejidad y se consideran obsoletos. También se deben evitar los modos sin controles de integridad, a menos que se utilicen junto con un mecanismo de autenticación adicional.
Casi todas las VPN de primer nivel ahora utilizan el modo GCM con AES o la combinación ChaCha20-Poly1305, ya que proporcionan un buen equilibrio entre seguridad y eficiencia. Al analizar VPN, buscamos estos modos de de cifrado modernos y autenticados.
Protocolos VPN
Los protocolos VPN son el conjunto de reglas y procesos que usa tu dispositivo para establecer una conexión segura con el servidor VPN.
Dicho de otra forma, el protocolo de VPN determina cómo se forma el túnel de la VPN, mientras que el algoritmo de cifrado se encarga de cifrar los datos que fluyen a través de ese túnel.
Cada protocolo ofrece unos parámetros diferentes de velocidad, seguridad y compatibilidad. La mayoría de las VPN utilizan un protocolo específico por defecto, pero te permiten cambiarlo en la configuración de la aplicación.
Los protocolos VPN más populares:
- OpenVPN: de código abierto, altamente seguro, compatible con muchas plataformas y muy configurable.
- WireGuard: muy rápido y eficiente. Relativamente nuevo, pero ganando terreno rápidamente.
- IKEv2/IPsec: bueno para móviles gracias a su rápida capacidad de reconexión, pero de código cerrado y con algunas vulnerabilidades.
- SoftEther: rápido, seguro, bueno para sortear la censura, pero compatible con pocas VPN.
- L2TP/IPsec: más lento y podría estar comprometido.
- SSTP: Bueno con los cortafuegos, pero es de código cerrado y potencialmente vulnerable a los ataques de intermediario.
- PPTP: obsoleto y poco seguro; a evitar.
Para acceder a una comparativa completa de los protocolos VPN, consulta nuestra guía dedicada a los protocolos VPN.
Establecimiento de la conexión VPN (Handshake)
Los handshakes son esenciales para establecer conexiones VPN seguras. Este proceso incluye:
- Autenticación: verificar la identidad del cliente y el servidor VPN.
- Intercambio de claves: intercambiar las claves de cifrado de la sesión de forma segura.
- Negociación de parámetros: acordar las reglas de comunicación y los métodos de cifrado.
Durante el handshake de una VPN, tu dispositivo y el servidor VPN intercambian información para establecer un canal seguro. El producto de este intercambio es una clave secreta compartida que se usará para cifrar y descifrar los datos en ambos extremos del túnel VPN durante toda la sesión.
Los handshakes de las VPN suelen utilizar el algoritmo RSA (Rivest-Shamir-Adleman), que ha sido un pilar de la seguridad en Internet durante las dos últimas décadas. Sin embargo, la longitud de clave es crítica.
Para una seguridad óptima, usa VPN que utilicen el algoritmo RSA-2048 o RSA-4096. RSA-1024 ha dejado de ser seguro debido a los avances tecnológicos en el ámbito de la potencial computacional.
Aunque es un proceso mayormente seguro, el handshake genera una ‘clave maestra’ que, en caso de verse comprometida, podría descifrar todas las sesiones de ese servidor.
En tal escenario, un atacante podría hackear el servidor VPN y acceder a todos los datos que fluyen a través del túnel VPN.
Para evitar que eso ocurra, te recomendamos que utilices VPN co Perfect Forward Secrecy (secreto perfecto directo o PFS).
Secreto perfecto directo
Diagrama que explica el funcionamiento del sistema de seguridad secreto perfecto directo.
El secreto perfecto directo o PFS es una función de seguridad fundamental incluida en los protocolos VPN modernos. Utiliza el algoritmo Diffie-Hellman (DH) o Diffie-Hellman basado en curvas elípticas (ECDH) para generar claves temporales para cada sesión.
PFS garantiza que la clave de cifrado no sea compartida en ningún momento a través de la conexión.
El sistema PFS ofrece múltiples ventajas, entre las que destacan:
- Generación de claves independiente: Tanto el servidor VPN como el cliente generan de manera independiente la misma clave de cifrado sin intercambiarla.
- Aislamiento de sesión: Cada conexión usa una clave única, lo que reduce al mínimo los daños en caso de que una sesión sea vea comprometida.
- Seguridad temporal: Las claves son temporales y se eliminan tras su uso, evitando que los datos capturados puedan ser descifrados en el futuro.
Aunque el RSA es fundamental para la autenticación, no puede proporcionar PFS por sí solo. Para implementarlo, es necesario incluir DH o ECDH en la suite de cifrado.
El algoritmo ECDH puede utilizarse por sí solo (en lugar de RSA) para generar un apretón de manos de VPN seguro con PFS. ECDH proporciona una seguridad robusta para los handshakes, mientras que DH solo debería utilizarse junto a otras medidas de seguridad debido a sus posibles vulnerabilidades.
Los dos principales protocolos de VPN que recomendamos (OpenVPN y WireGuard) son compatibles con PFS.
Autenticación basada en hash
Los algoritmos de hash seguros (SHA, por sus siglas en inglés) juegan un papel fundamental en la seguridad de una VPN al:
- Verificar la integridad de los datos durante la transmisión
- Autenticar las conexiones cliente-servidor
- Prevenir la manipulación no autoridada de datos
se utilizan para autenticar la integridad de los datos transmitidos y las conexiones entre cliente y servidor. Garantizan que la información no ha sido alterada en el tránsito entre el origen y el destino.
Los SHA usan una función hash para convertir los datos de origen en una cadena de caracteres de longitud fija, conocida como “valor hash”. Se trata de un proceso unidireccional e irreversible; modificar un solo carácter en los datos de entrada altera drásticamente el valor hash resultante.
Así es cómo funciona en las comunicaciones VPN:
- El remitente aplica una función hash acordada a los datos.
- El receptor genera un hash a partir de los datos recibidos utilizando la misma función.
- Si el hash generado coincide con el hash transmitido, se confirma la integridad de los datos.
- Si los hashes no coinciden, significa que hay una posible manipulación y los datos se desechan.
La autenticación mediante hash SHA previene los ataques de intermediario al detectar cualquier manipulación en los certificados, evitando que los hackers se hagan pasar por servidores VPN legítimos.
Para garantizar la máxima seguridad, recomendamos utilizar VPN que utilicen SHA-2 o superior. Está demostrado que SHA-1 tiene debilidades que pueden comprometer la seguridad.