rVPN es un nuevo protocolo de código abierto que tiene como objetivo proporcionar conectividad de 'sigilo' asegurando que el tráfico VPN sea indistinguible del tráfico web HTTPS ordinario en el puerto 443. Desarrollado por PDG Global Limited, el protocolo está diseñado para funcionar en entornos donde los protocolos VPN tradicionales son bloqueados o limitados activamente por los censores de red.

Un dispositivo móvil que muestra la interfaz de la aplicación rVPN en un sistema operativo iOS.
La interfaz de la aplicación móvil rVPN proporciona una forma fácil de gestionar las conexiones de sigilo.rvpn.org

Esta imagen ilustra la aplicación del lado del cliente para el protocolo rVPN en dispositivos móviles.

Sigilo mediante la imitación de HTTPS

El mecanismo principal para el sigilo de rVPN es su capa de transporte, que utiliza WebSocket sobre TLS. Para un censor que observa la línea, el tráfico aparece como datos estándar de la capa de aplicación en el puerto 443. A diferencia de muchas VPN que tienen apretones de manos únicos, rVPN está diseñado para carecer de una huella digital bloqueable.

Para evadir aún más la detección, los nodos de rVPN están configurados para ser resistentes a las sondas activas. Si un censor sondea el punto de conexión del servidor, el nodo responde como un sitio web ordinario con un estado 200 OK y una página de inicio de sesión señuelo realista, en lugar de revelar su identidad como una puerta de enlace VPN.

“rVPN es un protocolo de código abierto que transporta tu tráfico de forma segura a través de Internet, siendo indistinguible del HTTPS ordinario, por lo que funciona incluso donde las VPN están bloqueadas.”

— rVPN · Encrypted stealth VPN over WebSocket/TLS

Arquitectura de Multiplexación en Grupo

Una forma común de identificar el uso de VPN es observando la 'forma' del tráfico. Las conexiones estándar a menudo establecen un nuevo apretón de manos TCP y TLS para cada flujo individual, creando una firma de cientos de sesiones paralelas bajo una carga pesada. rVPN aborda esto a través de la multiplexación en grupo.

En esta arquitectura, muchos flujos comparten un pequeño grupo de conexiones de larga duración. Esto mantiene la firma en la línea pequeña y ordinaria independientemente de qué tan ocupado esté el cliente. El sistema utiliza un control de flujo basado en créditos para asegurar que las transferencias de datos masivos no dejen sin recursos a las sesiones interactivas, y admite la reanudación de tickets TLS 1.3 para reconexiones rápidas.

Seguridad e Implementación

El núcleo de rVPN está escrito en Rust para aprovechar sus garantías de seguridad de memoria, las cuales los desarrolladores afirman ayudan a eliminar clases enteras de vulnerabilidades comunes. El protocolo incorpora el algoritmo Double Ratchet —originalmente utilizado en el protocolo Signal— para redefinir la clave de cada mensaje, asegurando que una clave robada no pueda desbloquear comunicaciones pasadas o futuras.

Para los apretones de manos iniciales, rVPN utiliza X3DH (Extended Triple Diffie-Hellman) para establecer claves seguras sin requerir contraseñas o cuentas. El proyecto se lanza bajo la licencia AGPLv3, y los desarrolladores proporcionan compilaciones reproducibles para permitir que los usuarios verifiquen que los binarios enviados coinciden con el código de código abierto.

Un gráfico que representa la licencia de código abierto AGPL-3.0.
El proyecto rVPN se lanza bajo la licencia AGPLv3 para garantizar la transparencia de código abierto.github.com

Esta imagen confirma el modelo de licencia mencionado en la sección de seguridad e implementación.

Qué dicen los lectores de Hacker News

  • Alternativa: Un comentarista sugirió que, en lugar de crear un nuevo protocolo, los desarrolladores podrían simplemente añadir una capa de transporte oculto sobre un protocolo existente como WireGuard para lograr el sigilo. comentario ↗
  • Escéptico: Varios comentaristas expresaron escepticismo respecto a las afirmaciones del proyecto sobre seguridad de memoria y privacidad, y un usuario señaló la ironía de que se le pidiera ejecutar un script de shell con privilegios de root. comentario ↗
  • Alternativa: Otro usuario señaló hacia las familias VLESS de Xray-core como una alternativa potencial para evadir la censura. comentario ↗

Resumen de opiniones del hilo de Hacker News; no son hechos verificados. Leer el debate completo ↗