Las tres capas del cifrado VPN
Una conexión VPN que funciona implica tres operaciones criptográficas distintas, cada una manejada por algoritmos distintos:
- Cifrado simétrico — cifra los paquetes de datos reales. Rápido. Usa una clave de sesión compartida entre cliente y servidor.
- Intercambio de claves — establece de forma segura esa clave de sesión compartida. Usa cripto asimétrica (pares de clave pública/privada).
- Autenticación — verifica que los paquetes no fueron manipulados en tránsito, y que la otra parte es quien dice ser.
Cada capa usa algoritmos distintos con trade-offs distintos. El "AES-256" del marketing normalmente se refiere solo a la primera capa.
Cifrado simétrico
AES-256-GCM
El default para OpenVPN e IPsec. AES (Advanced Encryption Standard) fue seleccionado por el gobierno de EE. UU. en 2001 como reemplazo del más viejo DES. AES-256 significa claves de 256 bits, lo que da un espacio de claves de 2^256 — para contexto, el universo contiene alrededor de 2^265 átomos. Hacer fuerza bruta a una clave de 256 bits no va a pasar, jamás, por ningún ordenador concebible.
La parte "GCM" significa Galois/Counter Mode — una forma de usar AES que también provee autenticación (así que no necesitas una capa de autenticación separada para la integridad del paquete).
Rendimiento: muy rápido en hardware con instrucciones AES-NI (la mayoría de CPUs x86 modernas y muchas CPUs ARM). Más lento en dispositivos más viejos o pequeños sin aceleración.
ChaCha20-Poly1305
El default para WireGuard, y una alternativa en OpenVPN moderno. ChaCha20 es un cifrado de flujo diseñado por Daniel Bernstein en 2008. Poly1305 es un algoritmo de autenticación a juego.
ChaCha20-Poly1305 se considera criptográficamente equivalente a AES-256-GCM pero rinde distinto:
- En dispositivos sin aceleración hardware de AES (móviles más viejos, dispositivos embebidos de baja potencia), ChaCha20 es bastante más rápido.
- En dispositivos con AES-NI, AES es más rápido.
- La implementación es más simple — superficie de ataque más pequeña para bugs.
Ambos cifrados son de vanguardia. La elección entre ellos es mayormente sobre cuál rinde mejor en tu hardware específico.
Intercambio de claves
Antes de que pueda pasar el cifrado simétrico, ambos lados necesitan acordar una clave de sesión — sin que nadie más pueda aprenderla. La solución es el intercambio de claves Diffie-Hellman (DH), que deja que dos partes deriven un secreto compartido sobre un canal inseguro.
Opciones modernas de intercambio de claves
- X25519 — DH de curva elíptica usando Curve25519. Usado por WireGuard, común en TLS 1.3. Rápido y considerado muy seguro.
- ECDH P-256 / P-384 — curvas elípticas estándar de NIST. Usadas por IPsec y OpenVPN. Algunos criptógrafos prefieren X25519 porque las curvas NIST tienen constantes sin explicar en su definición (un leve escepticismo persistente); ambas se consideran seguras para uso práctico.
- DH clásico (grupos de primos grandes) — más viejo, más lento. Usado por IPsec cuando se configura para compatibilidad legacy. Debería usar grupos de 2048 bits o más; los grupos de 1024 bits (aún vistos en setups viejos) se consideran débiles.
Perfect forward secrecy
Forward secrecy significa que las claves de sesión se generan frescas para cada conexión y se descartan después. Si un atacante captura tráfico cifrado y luego compromete las claves de identidad de largo plazo, aún no puede descifrar las sesiones capturadas — porque las claves de sesión vinieron del intercambio DH, no de las claves de identidad.
Todos los protocolos VPN modernos (WireGuard, OpenVPN con TLS 1.3 bien configurado, IKEv2 moderno) proveen forward secrecy por defecto. Las configuraciones más viejas que usaban claves estáticas no — y cualquier tráfico capturado de esa era es potencialmente descifrable si la clave estática alguna vez se filtra.
Autenticación
¿Cómo sabes que el servidor VPN al que te conectaste es realmente el servidor del proveedor VPN, y no un atacante suplantándolo? Autenticación.
- Basada en certificados: el servidor VPN presenta un certificado firmado por una Autoridad de Certificación. El cliente verifica la firma. Estándar para OpenVPN e IKEv2.
- Basada en clave pública: WireGuard usa un modelo más simple — cada peer tiene una clave pública, y el handshake incluye firma mutua. Sin CAs.
- Clave precompartida (PSK): ambos lados conocen un secreto compartido. Simple pero la distribución del secreto es su propio problema. A veces usada como capa extra junto a otra autenticación.
- Usuario/contraseña: además de la autenticación criptográfica. Usada por algunos proveedores para la gestión de usuarios; no afecta a la seguridad criptográfica del protocolo.
Qué significa de verdad "grado militar"
AES-256 fue aprobado por la NSA en 2003 para proteger información clasificada del gobierno de EE. UU. hasta TOP SECRET. Esa es la base de la afirmación de "grado militar".
El problema con el marketing: cada VPN con reputación usa AES-256 o equivalente. Es la línea base, no un diferenciador competitivo. Cuando un VPN anuncia "cifrado de grado militar", está diciendo "usamos lo que usa todo el mundo". Tómalo como un baño de cordura, no como una feature.
Los diferenciadores están en otra parte — elección de protocolo, fuerza del intercambio de claves, forward secrecy, calidad de implementación, política no-log. La fuerza del cifrado es lo mínimo de entrada.
Cómo se derrota el cifrado en la práctica
Los atacantes reales no rompen AES-256. Ellos:
- Comprometen endpoints (malware en tu dispositivo, en el servidor VPN).
- Roban o citan judicialmente las claves.
- Explotan bugs de implementación (buffer overflows, ataques de oráculo de padding).
- Ataques de canal lateral (timing, consumo de energía).
- Ingeniería social.
La fuerza del cifrado no importa si el sistema que lo rodea está roto. Por esto la arquitectura no-log, las implementaciones auditadas, y la seguridad operativa importan más que qué cifrado exacto se usa.
Lectura relacionada
- /es/features/encryption/ — página de producto
- WireGuard (usa ChaCha20)
- OpenVPN (usa AES-256-GCM)