0Pricing
Cryptology Academy · Lección

OpenVPN: arquitectura de VPN basada en TLS

Estudie cómo OpenVPN utiliza TLS para el canal de control y cifrados configurables para el canal de datos.

OpenVPN: arquitectura de VPN basada en TLS es una lección gratuita de Cryptology Academy en CoddyKit. Esta es la lección 3 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Cryptology Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Cryptology Academy incluye 4 lecciones en total.

Arquitectura de dos canales de OpenVPN

OpenVPN utiliza dos canales independientes: el canal de control y el canal de datos. El canal de control gestiona la autenticación, el establecimiento de la sesión y el intercambio de la configuración mediante TLS. El canal de datos transporta el tráfico real de la VPN, cifrado con un cifrado simétrico negociado a través del canal de control. Esta separación permite a OpenVPN aprovechar todo el ecosistema TLS para gestionar las claves.

Canal de control: TLS para la negociación de claves

El canal de control de OpenVPN ejecuta una sesión TLS completa. Ambos lados se autentican mediante certificados X.509 firmados por una CA compartida. TLS proporciona el intercambio de claves, la validación de certificados y la negociación de los parámetros del cifrado del canal de datos. Como TLS admite ECDHE, el canal de control proporciona secreto perfecto hacia adelante: las claves del canal de datos no se pueden recuperar a partir de una sesión capturada, ni siquiera con la clave de la CA.

Cifrado del canal de datos

El cifrado del canal de datos se negocia a través del canal de control TLS. OpenVPN 2.4 y las versiones posteriores utilizan AES-256-GCM de forma predeterminada, un cifrado AEAD que proporciona confidencialidad e integridad en una sola operación. Las versiones anteriores utilizaban AES-256-CBC con HMAC-SHA256 por separado. Se prefieren los modos AEAD porque eliminan la necesidad de verificar un MAC por separado y resisten los ataques de oráculo de relleno.

tls-crypt: encapsulación con una clave precompartida

La opción tls-crypt encapsula toda la sesión TLS, incluido el client hello, dentro de una envoltura simétrica autenticada mediante HMAC que utiliza una clave precompartida. Esto significa que los clientes no autenticados ni siquiera pueden iniciar un handshake TLS; sus paquetes iniciales se descartan silenciosamente. Así se protege el servidor OpenVPN frente a ataques DDoS de amplificación basados en TLS y se oculta que hay un servidor VPN en ejecución.

tls-auth frente a tls-crypt

La opción anterior tls-auth añade una etiqueta HMAC a los paquetes del canal de control TLS, pero no los cifra. Esto impide la inyección de paquetes, aunque el handshake TLS sigue siendo visible para los observadores. tls-crypt cifra y autentica la envoltura del canal de control, lo que proporciona protección frente a ataques DoS y resistencia al análisis del tráfico. tls-crypt es la opción moderna recomendada; tls-auth está obsoleta en favor de tls-crypt-v2.

Autenticación de clientes basada en certificados

OpenVPN autentica a los clientes mediante certificados X.509 firmados por la Autoridad certificadora de la VPN. Cada cliente recibe un certificado y una clave privada únicos. El servidor verifica la cadena de certificados y, opcionalmente, comprueba una Lista de revocación de certificados (CRL) para rechazar los certificados revocados. Revocar un certificado elimina inmediatamente el acceso del cliente, a diferencia de los sistemas basados en PSK, en los que cambiar una clave afecta a todos los clientes.

Transporte UDP frente a TCP

OpenVPN puede ejecutarse sobre UDP (opción predeterminada y recomendada) o TCP. UDP evita el problema de TCP sobre TCP, en el que la pérdida de paquetes provoca retransmisiones duplicadas tanto en la capa TCP como en la capa de la aplicación VPN, lo que degrada considerablemente el rendimiento. Sin embargo, algunas redes bloquean UDP. Ejecutar OpenVPN en el puerto TCP 443 puede atravesar firewalls que solo permiten tráfico HTTPS, aunque el rendimiento empeora cuando se pierden paquetes.

Modos de interfaz tun frente a tap

OpenVPN funciona en modo tun (enrutamiento) o tap (puente). El modo tun crea una interfaz de red IP punto a punto que enruta paquetes IP entre el cliente y la red VPN. El modo tap crea una interfaz de puente Ethernet que transporta tramas Ethernet, incluidos los broadcasts y los protocolos que no son IP. El modo tun es más eficiente y adecuado para la mayoría de los casos de uso de VPN; el modo tap es necesario para conectar segmentos de red o transportar protocolos que no son IP.

Directivas push para la configuración de clientes

Los servidores OpenVPN pueden enviar automáticamente directivas de configuración a los clientes que se conectan. Entre las directivas push habituales se incluyen push "route 10.0.0.0 255.0.0.0" (añade una ruta en el cliente), push "dhcp-option DNS 10.0.0.1" (establece el servidor DNS) y push "redirect-gateway def1" (envía todo el tráfico del cliente a través de la VPN). Esto centraliza la gestión de la configuración de los clientes sin modificar los archivos de configuración individuales.

Secreto perfecto hacia adelante en OpenVPN

OpenVPN logra el secreto perfecto hacia adelante mediante TLS ECDHE (Elliptic Curve Diffie-Hellman Ephemeral) en el canal de control. Se utiliza un nuevo par de claves efímeras para cada sesión TLS, por lo que la clave de sesión no se puede derivar de la clave privada del certificado a largo plazo del servidor. Aunque se capture tráfico cifrado hoy y posteriormente se obtenga el certificado del servidor, no será posible descifrar las sesiones anteriores.

Obsolescencia de los cifrados débiles en OpenVPN 2.5 y versiones posteriores

OpenVPN 2.5 declaró obsoleto el cifrado Blowfish (BF-CBC), que históricamente era el predeterminado. BF-CBC utiliza un tamaño de bloque de 64 bits, vulnerable a ataques de cumpleaños SWEET32 en sesiones largas. Las versiones modernas de OpenVPN utilizan AES-256-GCM de forma predeterminada. OpenVPN 2.5 también declaró obsoletos los cifrados no AEAD del canal de datos y endureció los requisitos de versión mínima de TLS, eliminando la compatibilidad con TLS 1.0 y 1.1.

Canal de control frente a canal de datos de OpenVPN

¿Cuál es la función principal del canal de control de OpenVPN?

Resumen de la arquitectura de OpenVPN

Resumen de OpenVPN: el canal de control utiliza TLS para la autenticación y la negociación del cifrado; el canal de datos utiliza el cifrado AEAD negociado (AES-256-GCM de forma predeterminada); tls-crypt encapsula TLS para impedir los handshakes no autenticados; ECDHE proporciona secreto hacia adelante; la autenticación de clientes basada en certificados permite la revocación mediante CRL; se prefiere UDP frente a TCP por motivos de rendimiento; y se prefiere el modo tun para los casos de uso de enrutamiento IP.

Preguntas frecuentes

¿La lección «OpenVPN: arquitectura de VPN basada en TLS» es gratis?

Sí — el texto completo de «OpenVPN: arquitectura de VPN basada en TLS» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Cryptology Academy, actualiza a CoddyKit PRO. El curso de Cryptology Academy incluye 4 lecciones en total.

¿Qué aprenderé en «OpenVPN: arquitectura de VPN basada en TLS»?

Estudie cómo OpenVPN utiliza TLS para el canal de control y cifrados configurables para el canal de datos. Practicas Cryptology Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Cryptology Academy?

No se requiere experiencia previa. Cryptology Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 3 de 4.

¿Cuánto tiempo toma la lección «OpenVPN: arquitectura de VPN basada en TLS»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Cryptology Academy?

Sí. Cada lección de Cryptology Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. IPsec: protocolos IKEv2, ESP y AH
  2. WireGuard: VPN con ChaCha20 y Curve25519
  3. OpenVPN: arquitectura de VPN basada en TLS
  4. Comparación de protocolos VPN: seguridad y rendimiento
← Volver a Cryptology Academy