Cómo funciona ForestVPN
Una VPN traslada tu confianza de tu red a un servidor que opera otra persona, así que deberías poder ver cómo funciona. Esta página sigue un toque en Conectar, desde el ticket hasta el túnel, y dice con claridad qué guardamos.
Narrado en inglés, con subtítulos en español
Abrir el archivo de vídeo (MP4, 32 MB). Úsalo si YouTube está bloqueado o va lento en tu conexión.
En esta página (10)
La versión corta
- Tu tráfico se sella en tu dispositivo y sale por un servidor que operamos, el exit. De todas las partes de ForestVPN, el exit es la única que ve adónde va tu tráfico.
- Antes de conectar, tu dispositivo recibe un ticket firmado. El ticket indica qué plan tienes, y el servicio que lo comprueba funciona aparte del que guarda tu cuenta.
- La app vigila si los datos fluyen de verdad y cambia de camino por sí sola cuando dejan de hacerlo. Tú solo ves el resultado.
- Una fila vincula tu dispositivo, y cualquier cuenta vinculada, con cada sesión que paga, para medir datos. Se borra una hora después de liquidarse la sesión, o hasta 17 días después si el ticket nunca se usó. Esta página la muestra junto a todo lo demás.
Qué cambia una VPN y qué no
Una VPN es una transferencia de confianza. Sin ella, confías en tu red y en tu proveedor de internet para que vean adónde va tu tráfico. Con ella, confías en la VPN. Por eso las preguntas útiles son las mismas para cualquier VPN: ¿dónde termina tu tráfico, qué saben los servicios que van delante y qué hace la app en tu dispositivo? Esta página las responde en ese orden, con los detalles de cada respuesta.
Sin VPN, tu red Wi-Fi y tu proveedor de internet pueden ver con qué servidores habla tu dispositivo, y cada sitio al que entras ve la dirección que te dio tu red. Con ForestVPN ven, en cambio, tráfico cifrado hacia nuestros servidores. Ese servidor, el exit, es donde tu tráfico sale a internet.
| Sin ForestVPN | Con ForestVPN | |
|---|---|---|
| Tu red Wi-Fi | Los servidores con los que hablas | Tráfico cifrado hacia nuestros servidores |
| Tu proveedor de internet | Los servidores con los que hablas | Tráfico cifrado hacia nuestros servidores |
| Los sitios que visitas | La dirección que te dio tu red | La dirección del exit |
| El exit de ForestVPN | No interviene | Los sitios que visitas y la dirección desde la que te conectaste |
Eso traslada la confianza; no la elimina. El exit ve los sitios que visitas y la dirección desde la que te conectaste, y los sitios que visitas ven la dirección del exit en lugar de la tuya. Una VPN no te vuelve anónimo: cambia quién puede ver tu tráfico.
Lo que una VPN no toca es todo lo que ocurre después del exit. Los sitios en los que inicias sesión siguen conociendo la cuenta con la que entras, y un sitio que te sigue con cookies sigue haciéndolo. El túnel protege el camino, no el destino.
Qué pasa cuando tocas Conectar
Tocas Conectar. Tu dispositivo pide permiso para usar un servidor, presenta un ticket que lleva dos datos (con la clave de qué plan se firmó y a qué periodo de dos semanas pertenece esa clave), recibe indicaciones de a qué servidor ir y construye un túnel cifrado hasta él. Después comprueba que los datos fluyen de verdad en ambos sentidos antes de decir que estás protegido.
Acceso
Tu equipo
Lista
Sesiones
Salida
- Tu equipo > Acceso: 1. Pedir tickets. Horas antes, firmado con la clave del dispositivo
- Acceso > Tu equipo: 2. Tickets firmados a ciegas. Quien firma nunca ve el ticket
- Lista > Tu equipo: 3. Lista de servidores firmada. Comprobada en tu dispositivo
- Tu equipo > Sesiones: 4. Ticket, su clave de sesión, lugar
- Sesiones > Salida: 5. Instalar este peer de una sola sesión
- Sesiones > Tu equipo: 6. Dirección del exit y caminos
- Tu equipo > Salida: 7. Handshake y luego ronda de prueba
El ticket es la parte interesante. Horas antes, en una solicitud aparte, tu dispositivo pide tickets a nuestro servicio de inicio de sesión. El servicio firma cada uno a ciegas: la firma se hace sobre un valor que nunca ve, así que la firma del ticket que presentas más tarde no remite a la solicitud que lo creó. La única excepción es la fila de medición que se describe más abajo, que vincula tu dispositivo con cada sesión que paga.
Fíjate en lo que ocurre antes de que se mueva un solo byte tuyo. Primero, el permiso: el ticket, comprobado en una fracción de segundo. Segundo, la ubicación: una lista de servidores firmada, que tu propio dispositivo verifica, y un servicio de sesiones que elige el exit. Al final, la prueba: la app no dice que estás protegido cuando termina el handshake, sino cuando unos paquetes de prueba han atravesado el túnel y han vuelto.
Vale la pena conocer dos detalles. Los tickets se recargan por la red subyacente, nunca por un exit, de modo que el servicio de inicio de sesión nunca se alcanza a través del túnel que ayuda a construir. Y la app puede llegar a nuestros servicios por varias rutas y usa la primera que responde, así que un mal camino hacia uno de ellos no tiene por qué impedirte conectar.
Paso a paso, para ingenieros
- Una clave de máquina desde el primer inicio. Tu dispositivo crea una clave de máquina Ed25519 la primera vez que se ejecuta la app, antes de cualquier cuenta, y la guarda en el llavero o almacén de claves del sistema. La cuenta es opcional: un número aleatorio de 128 bits, que se muestra como 32 caracteres.
- Tickets, horas antes. El dispositivo pide tickets al emisor en una solicitud firmada con la clave de máquina. El emisor comprueba la suspensión, el número diario de tickets, el límite de dispositivos y el derecho de uso, y firma a ciegas un valor que nunca ve (RFC 9474: RSA-2048, RSASSA-PSS, SHA-384). Cada ticket se compromete con el hash de una clave pública de sesión nueva y un nonce de 16 bytes. Hay una clave de firma por plan y por época de 14 días.
- Fuera del túnel. Las recargas de tickets salen por la red subyacente, nunca por un exit, y no hay ningún camino alternativo hacia el túnel.
- Una lista de servidores firmada. El dispositivo descarga la lista de servidores, firmada con Ed25519 y comprobada con una clave fijada antes de usarla. La app puede llegar a la lista y a nuestros otros servicios por varias rutas y usa la primera que responde.
- La clave de sesión del ticket. El dispositivo envía al servicio de sesiones el ticket, la clave pública de sesión X25519 con la que se comprometió al emitirse el ticket y el lugar que quieres. El servicio de sesiones comprueba el ticket con la clave pública de la época, una comprobación que tarda mucho menos de un milisegundo, elige el exit y sus caminos, ordena al exit que instale un peer y responde.
- Un peer, una sesión. El exit instala un peer para esa clave de una sola sesión, con una dirección prestada de 100.64.0.0/10 que se reutiliza entre sesiones, y un bit de plan. No recibe cuenta, clave de máquina ni nombre duradero.
- El handshake. El dispositivo marca al exit con el handshake Noise_IKpsk2 sin modificar sobre UDP. Si la primera marcación no obtiene respuesta en una fracción de segundo, prueba también otros caminos dentro de la misma sesión. Cambiar de camino no necesita un segundo ticket.
- Una ronda de prueba. Un handshake no es una prueba. Después, el dispositivo envía sondas por el túnel y cuenta las respuestas, y solo una ronda superada pone el estado en Funciona. En algunas redes el handshake pasa mientras los datos se descartan. Por eso un handshake por sí solo no es prueba.
- Un único conjunto de decisiones. Las decisiones anteriores se escriben una sola vez, en código Rust compartido, y llegan a cada app a través de su capa nativa. Cada app conserva solo lo que es suyo: la integración con el sistema operativo, las pantallas y la tienda.
- Mismo ticket, misma sesión. Si vuelven el mismo ticket y la misma clave de sesión, el servicio de sesiones devuelve la misma sesión durante la vida del ticket, de modo que suspender y reanudar, pasar de Wi-Fi a datos móviles y repetir una conexión cuestan un solo ticket.
Dentro del túnel
Todo lo que envías se sella en tu dispositivo con claves que solo conocen tu dispositivo y el exit. Si tu red cambia, el mismo túnel sigue funcionando.
- Datagrama UDP. Los primeros bytes están enmascarados y varían en cada conexión. Tu red ve este anillo.
- Trama sellada. Cifrada con claves del handshake. Solo la pueden abrir tu dispositivo y el exit.
- Trama interior. Lleva un paquete, con una cabecera corta propia.
- Tu paquete. Lo que envió tu app. El exit lo lee.
Lee la figura de fuera hacia dentro. Tu red solo ve el datagrama exterior: un paquete de bytes cifrados que va a uno de nuestros servidores, con los primeros bytes enmascarados y un tamaño que varía. Dentro, la trama sellada solo se abre con las claves creadas en el handshake, que solo tienen tu dispositivo y el exit. Dentro de la trama está tu propio paquete, exactamente como lo envió tu app.
El protocolo del túnel se llama Quantum. Su handshake es Noise_IKpsk2, sin modificar, con X25519, ChaCha20-Poly1305 y BLAKE2s. Lo dejamos intacto a propósito: el análisis publicado de ese handshake sigue siendo aplicable. Lo que añadimos va a su alrededor. El tamaño de los paquetes y los bytes de cabecera varían en cada conexión, y el túnel soporta el roaming y que el camino cambie por debajo.
El túnel pertenece a la sesión, no a la red en la que estés. Cuando pasas de Wi-Fi a datos móviles, la clave de sesión sigue siendo la misma y los paquetes empiezan a llegar desde una dirección nueva, de modo que el mismo túnel continúa. No prometemos que nada se pierda: un cambio puede tardar un momento, y la pantalla de estado muestra en qué situación estás.
Tu tráfico termina en servidores que operamos nosotros, no en una función en la nube. Un servicio en la nube no puede llevar un túnel, así que los servicios que reparten tickets y listas de servidores nunca transportan un paquete tuyo.
Más sobre el túnel, para ingenieros
- Tu dirección dentro del túnel se presta para la sesión, desde un conjunto que el exit reutiliza.
- El túnel está ligado a la clave de sesión, no a un camino de red, así que pasar de Wi-Fi a datos móviles no cambia la sesión. La app también puede mover una conexión a un puerto nuevo sin cortarla.
- Está construido sobre un núcleo en Rust de licencia abierta, y el mismo núcleo funciona en todas las plataformas.
Las cifras que medimos, con sus fechas y sus montajes de prueba, están en la página del protocolo.
Un túnel, muchos caminos
Si un camino hasta el servidor va lento o deja de transportar datos, ForestVPN prueba otro por su cuenta y se queda con el que de verdad transporta datos. No tienes que elegir.
¿Por qué más de un camino? Las redes son distintas. Unas llevan bien el UDP y otras lo manejan mal, y una red que va bien durante horas puede cambiar. Una elección fija es errónea en algún sitio, así que la app mide. Para cada red desde la que se ha conectado, guarda en tu dispositivo una pequeña nota, archivada bajo un nombre con hash, que dice si allí hizo falta la ruta de respaldo. Solo recurre a la ruta de respaldo en una red donde la conexión directa ha fallado, ahora o en el último día. En Free, la ruta de respaldo viene con una cuota mensual, y Premium incluye más.
Llamamos camino a una forma de llevar los mismos paquetes cifrados al mismo exit. La app siempre marca primero el camino directo, por UDP, y en una red sana no se contacta con nada más. Si el camino directo deja de transportar datos, la app prueba también los demás caminos que tiene, dentro de la misma sesión: TCP, a veces un servidor adicional nuestro elegido automáticamente, y la ruta de respaldo, que lleva los mismos paquetes como tráfico web corriente a través de una red de distribución de contenidos. La ruta de respaldo es un recurso de reserva, no un camino más rápido, y es de uso medido porque cuesta más.
Una sesión
- Directo, por UDPSe prueba primero
- TCPSolo cuando hace falta
- Un servidor adicional nuestroSolo cuando hace falta
- Ruta de respaldoSolo cuando hace falta
Cambiar de camino no cambia la sesión: el ticket, las claves y el exit siguen siendo los mismos.
La app decide por los datos, no por los handshakes. Un camino cuenta como sano solo mientras entrega datos, y la pantalla de estado muestra Funciona solo cuando los datos fluyen en ambos sentidos.
En una red sana
- Marcar directo
- Respuesta
- Ronda de prueba
- Los datos fluyen en ambos sentidos
- Funciona
Cuando el camino directo deja de transportar datos
- Sin respuesta, o sin datos
- Tras una fracción de segundo, o una ronda de prueba fallida
- Probar los demás caminos
- El primero en superar la ronda de prueba
- Funciona
Más sobre el estado de la conexión y la ruta de respaldo.
Rutas Smart
Smart elige una ruta que se ajusta a tu red, sigue midiéndola mientras la usas y pasa por sí solo a una mejor cuando aparece. Una ubicación que eliges tú se queda donde la pusiste.
Ruta directaDejó de transportar datos
Un servidor adicional nuestroTransporta datos
El servidor adicional transporta los datos, así que la sesión pasa a él.
La sesión pasa aquí
Ruta de respaldoEn reserva
Un camino es una forma de llevar tus paquetes hasta el exit: directo, TCP, a través de un servidor adicional nuestro o la ruta de respaldo. Smart compara los caminos disponibles para el lugar que pediste y se mueve entre ellos dentro de la sesión que ya tienes, sin ticket nuevo ni handshake nuevo.
Del más barato de mantener para nosotros al más caro
- Directo, UDP
- Cuesta un poco más
- Directo, TCP
- Cuesta más
- Servidor adicional
- Cuesta lo máximo
- Ruta de respaldo
Tres cosas que Smart no hace. No mueve una ubicación que elegiste tú. No promete una conexión más rápida: promete que sigue comprobando y que solo cambia cuando otra ruta es mejor para tu red. Y no te necesita: no hay nada que activar ni que elegir, aunque el ajuste Enrutamiento según la red desactiva estas decisiones si lo prefieres.
Las rutas Smart están hoy en Windows, Linux, la app de Mac de nuestro sitio web, la línea de comandos y los routers OpenWrt. iPhone, iPad, Apple TV, Android y la versión de Mac de la App Store las reciben con una actualización de la app.
Para ingenieros: cómo está construido el motor de rutas
Nuestros propios servidores miden entre sí los enlaces todo el tiempo, a un ritmo fijo y pequeño que no crece con el número de usuarios. El dispositivo y los servidores comparten una misma función de puntuación. Hoy el servicio de sesiones solo compara esa puntuación con su elección actual; los caminos que ofrece todavía no se construyen a partir de ella.
Nuestros servidores
Servicio de sesiones
Tu dispositivo
Servicio de informes
- Nuestros servidores > Servicio de sesiones: Miden los enlaces entre ellos
- Servicio de sesiones > Tu dispositivo: Una lista firmada de rutas
- Tu dispositivo: Las prueba dentro de la sesión
- Tu dispositivo > Servicio de informes: Resultado, sin identidad. Se guarda solo como recuentos diarios
El dispositivo hace competir esa lista corta dentro de la sesión abierta y se queda con la ruta que transporta datos. Ganan los caminos más baratos, pero solo dentro de un umbral de calidad: la red de distribución de contenidos es un umbral, no un peso, y un lugar se clasifica por su propia latencia, nunca por el camino que lo llevó.
Dos programas, un ticket firmado
¿Por qué dividir el trabajo? Porque las dos tareas necesitan conocimientos distintos. Comprobar que tienes un plan exige conocer tu dispositivo. Elegir y abrir una sesión exige conocer un lugar y una dirección. Si un solo programa hiciera las dos cosas, reuniría los dos tipos de conocimiento. Por eso son dos programas, desplegados por separado. El ticket pasa de uno a otro al conectar, y los datos que usó una sesión vuelven cuando se liquida, para poder cobrarlos: esa es la fila de medición que se describe a continuación.
La parte que conoce tu dispositivo y tu plan y la parte que conoce tu servidor son programas distintos. El servicio de sesiones se despliega sin ningún vínculo con nuestra base de datos de cuentas, y el ticket entre ambos se firma a ciegas. Una fila vincula tu dispositivo, y cualquier cuenta vinculada, con cada sesión que paga, para medir datos y cortar un dispositivo revocado. Se borra una hora después de liquidarse la sesión, o hasta 17 días después si el ticket nunca se usó.
El ticket
- Servicio de inicio de sesión Conoce tu dispositivo y tu plan
- Firma sin ver
- Ticket Firmado a ciegas
- Se presenta al conectar
- Servicio de sesiones y exits Conocen un ticket, un lugar, una clave de una sola sesión y la dirección desde la que te conectas
La fila de medición
- Servicio de inicio de sesión Guarda una fila por sesión
- Se escribe al emitirse el ticket
- Dispositivo y sesión Vincula tu dispositivo, y cualquier cuenta vinculada, con la sesión
- Se elimina automáticamente
- Borrada Una hora después de la liquidación, o hasta 17 días si el ticket no se usó
El servicio de inicio de sesión guarda tu cuenta, tus dispositivos y tu plan, y ve la dirección desde la que llega cada solicitud de ticket. Nunca sabe qué exit te tocó ni adónde fuiste. El servicio de sesiones ve la dirección desde la que te conectas, la ubicación que elegiste y una clave de sesión de un solo uso. Su registro de sesión se borra solo cuando la sesión caduca, y tu dirección de origen nunca se escribe en él.
| Tu dispositivo | Tu plan | El servidor que usas | Tu dirección | Sitios que visitas | |
|---|---|---|---|---|---|
| Host de la lista de servidores | No lo recibe | No lo recibe | No lo recibe | Lo recibe | No lo recibe |
| Servicio de inicio de sesión | Lo recibe | Lo recibe | No lo recibe | Lo recibe | No lo recibe |
| Servicio de sesiones | No lo recibe | Lo recibe | Lo recibe | Lo recibe | No lo recibe |
| Salida | No lo recibe | Recibe una parte | Lo recibe | Lo recibe | Lo recibe |
La cuadrícula enumera lo que recibe cada parte al conectar, que no es lo mismo que una promesa sobre lo que podría deducirse combinando registros. Por eso la fila de medición se explica con palabras y se dibuja en la figura, en lugar de omitirla.
Para ingenieros: firmas ciegas y tres claves
- Firmas ciegas. Los tickets usan firmas RSA ciegas según la RFC 9474. El plan se codifica en qué clave firmó el ticket, no en un campo, y como máximo hay seis claves activas a la vez.
- Garantizado en la compilación. La configuración de despliegue del servicio de sesiones no tiene ningún vínculo con la base de datos de cuentas, y una comprobación en nuestra compilación falla si se añade uno.
- Tres claves con vidas distintas. La clave de máquina (su mitad pública la conoce el servicio de inicio de sesión; la privada nunca sale del dispositivo), el número de cuenta (lo conoce el servicio de inicio de sesión, es opcional) y la clave de sesión (una por ticket; el servicio de sesiones y el exit la ven al conectar, el servicio de inicio de sesión en otro momento; desaparece cuando termina la sesión).
Qué guardamos y durante cuánto tiempo
En nuestros sistemas no hay ninguna columna para los sitios que visitas ni para los nombres que consultas. Qué exit usó una sesión se borra cuando la sesión termina. El pago lo gestiona la App Store, Google Play o el procesador que elijas, y nunca vemos un número de tarjeta.
Los registros principales y cuánto dura cada uno, en una sola imagen; la política de privacidad los enumera todos. Los informes de rutas, que nos ayudan a elegir mejores rutas para todos los de una red, son agregados sin dispositivo, cuenta, sesión ni exit, y solo se publican para los días con al menos 10 dispositivos.
- La fila de medición, tras liquidarse la sesión1 hora
- La misma fila, para un ticket que nunca se usóHasta unos 17 días
- Un informe de soporte que decidiste enviar72 horas
- Recuentos de datos y de conexiones por día31 días
- País y red de las solicitudes de ticket, bajo un seudónimo3 meses
- Totales mensuales, y registros de dispositivo, de cuenta y de facturaciónIndefinidamente
Dos cosas más pertenecen a la misma imagen. La app no contiene ningún SDK de analítica, ningún SDK de atribución ni identificador publicitario. Y si decides enviar un informe de diagnóstico, antes te muestra su contenido, se sube sin la identidad de tu dispositivo en un momento aleatorio de la hora siguiente, nunca por la conexión que describe, y se borra a las 72 horas.
Todos los registros figuran en la política de privacidad, y la versión corta está en la página de seguridad.
Tus dispositivos, routers y televisores
Un número de cuenta sirve para hasta diez dispositivos. Los dispositivos de tu cuenta pueden alcanzarse por nombre, y un ordenador que se queda en casa puede ser un exit para los demás. Un iPhone puede usar un exit, pero todavía no puede serlo. Los routers cubren los dispositivos que no pueden ejecutar una app, y los televisores y los routers inician sesión sin teclado.
Tu número de cuenta
- TeléfonoTúnel hacia nuestros servidores
- PortátilTúnel hacia nuestros servidores
- TVTúnel hacia nuestros servidores
- RouterTúnel hacia nuestros servidores
- Ordenador de casaDe dispositivo a dispositivoUsar como salida
Si el exit de casa que estás usando se desconecta, la app te pasa a otro de tus propios exits y te lo avisa. Si fallan todos tus exits, el tráfico queda bloqueado y la app te pide que toques para decidir.
Los routers son para los dispositivos que no pueden ejecutar una app, como una consola de videojuegos o un televisor inteligente. Pon ForestVPN en el router y todo lo que hay detrás, o solo los dispositivos y las apps que elijas, pasa por el túnel. El procesador del router marca el límite de velocidad, así que la página de routers indica lo que medimos y con qué hardware. Un router se vincula a tu cuenta con un código que él mismo te muestra, y los televisores inician sesión sin teclado.
Lo que este diseño no hace
Nada de esto hace el diseño hermético, y preferimos decir dónde termina antes que dejar que un diagrama sugiera lo contrario. Estos son los principales; la política de privacidad enumera todos.
Límites, dichos una vez
- Una fila vincula tu dispositivo, y cualquier cuenta vinculada, con cada sesión que paga, hasta una hora después de liquidarse la sesión.
- El servicio de inicio de sesión y el exit ven cada uno tu clave de sesión, en momentos distintos. Juntas, esas dos vistas podrían volver a unir una sesión; no guardamos ningún registro que lo haga, y ninguno de los dos puede hacerlo por sí solo.
- El exit ve los sitios que visitas y la dirección desde la que te conectaste. Ahí es donde confías en nosotros.
- Una VPN no te vuelve anónimo.
- Ningún interruptor de seguridad es absoluto. Lo que permite cada sistema es distinto, y en los dispositivos Apple algunos servicios del sistema pueden seguir enviando tráfico fuera del túnel.
- La firma ciega no oculta que una solicitud de ticket y una conexión pueden venir de la misma dirección de red. Por eso los tickets se recargan en momentos aleatorios, antes de que te conectes.
- El grupo del que podría proceder un ticket es todo el que tenga un ticket firmado por la misma clave de plan en el mismo periodo de dos semanas, no todos nuestros usuarios.
- Los informes de rutas son agregados, no un registro de ningún dispositivo concreto.
Preguntas
¿Puede ForestVPN ver los sitios que visito?
El servidor exit por el que pasa tu tráfico gestiona adónde va, como el exit de cualquier VPN. En nuestros sistemas no hay ninguna columna para los sitios que visitas ni para los nombres que consultas.
¿Necesito una cuenta para usar ForestVPN?
No. Free no necesita nada: conéctate sin cuenta. Cuando quieras una suscripción en tus otros dispositivos, tu cuenta es un número aleatorio de 32 caracteres, sin correo, sin contraseña y sin nombre.
¿Qué significa Funciona en la app?
Funciona aparece solo cuando los datos fluyen en ambos sentidos. Tras el handshake, la app envía paquetes de prueba por el túnel y espera las respuestas.
¿Qué pasa cuando la ruta directa deja de transportar datos?
La app prueba otros caminos dentro de la misma sesión: otro transporte, un servidor adicional nuestro o la ruta de respaldo. Se queda con el que transporte datos, y la sesión, el ticket y el exit siguen siendo los mismos.