Protocolos de VPN por geração e 6 verificações na hora de escolher

Um protocolo de VPN (rede privada virtual) é o conjunto de regras que o app e o servidor seguem. Essas regras abrangem a troca de chaves, o empacotamento do tráfego e a entrega dele por outras redes. O protocolo determina a rapidez com que a conexão se estabelece. Ele também afeta a estabilidade da conexão na troca do Wi-Fi pelos dados móveis. Um terceiro fator é o quanto a VPN fica visível para a rede no meio do caminho. Cada protocolo foi criado para resolver um problema da sua época. Nos anos 1990, esse problema era o acesso discado à rede do escritório. Hoje, é o acesso por redes que detectam conexões VPN pelos primeiros bytes. A seguir, os protocolos estão agrupados por geração. No final, 6 verificações ajudam a escolher um deles.
Os protocolos diferem no handshake, no transporte e na impressão digital
O adaptador, o túnel e o servidor estão descritos no nosso guia de introdução à VPN. Cada protocolo monta o túnel à sua maneira, e as diferenças se concentram em 3 partes.
O handshake define as chaves de sessão
O app e o servidor verificam a identidade um do outro e combinam as chaves de sessão antes que qualquer dado passe. O WireGuard precisa de uma mensagem em cada sentido, e o IKEv2, de 4 no total. O OpenVPN faz um handshake TLS completo dentro do próprio canal de controle. Com menos idas e voltas, a conexão se estabelece mais rápido em links nos quais cada resposta demora. A internet via satélite e as redes móveis congestionadas são exemplos típicos desses links.
Pacotes perdidos deixam o túnel sobre TCP mais lento
O UDP envia cada pacote uma vez e não verifica se ele chegou. O TCP espera a confirmação de recebimento dos dados que envia. Sem uma confirmação a tempo, o TCP reenvia os dados e reduz o ritmo. Um túnel sobre TCP empilha 2 camadas desse tipo, uma dentro da outra. A camada do túnel reenvia o pacote que não chegou, e isso leva tempo. Enquanto isso, a conexão do navegador dentro do túnel dá o pacote como perdido. Ela envia a própria cópia e também reduz o ritmo. Com isso, as páginas carregam de forma irregular, com pausas repetidas. Por esse motivo, o WireGuard funciona só sobre UDP. Os desenvolvedores do WireGuard afirmam que ele não terá um modo TCP, porque TCP sobre TCP tem desempenho ruim. A desvantagem é que o WireGuard não consegue se conectar em uma rede que bloqueia UDP.
A rede vê a impressão digital, não o conteúdo
O provedor de internet não consegue ler o conteúdo do túnel. Ele vê a porta, o tamanho das primeiras mensagens e os campos do cabeçalho que não são criptografados. Juntos, esses detalhes formam a impressão digital de um protocolo. Alguns sistemas de filtragem também sondam um servidor suspeito e verificam como ele responde. Os protocolos mais antigos foram projetados sem levar em conta esse tipo de verificação. Nos protocolos mais novos, a impressão digital é parte central do projeto.
10 protocolos de VPN, dos anos 1990 aos anos 2020
Os protocolos novos não substituíram os antigos. O PPTP ainda está presente no firmware de roteadores. O Windows e o macOS trazem L2TP e IKEv2 integrados. A tabela lista cada protocolo com a década em que surgiu e o objetivo original.
| Protocolo | Surgimento | Para que foi criado |
|---|---|---|
| PPTP | Anos 1990 | Levar uma conexão discada até a rede do escritório pela internet |
| L2TP/IPsec | Por volta de 2000 | Substituir o PPTP proprietário por um padrão aberto e deixar a criptografia a cargo do IPsec |
| OpenVPN | Anos 2000 | Dar a qualquer sistema um túnel TLS em uma única porta |
| IKEv2/IPsec | Anos 2000 | Combinar as chaves mais rápido e manter a sessão quando a rede muda |
| SSTP | Anos 2000 | Passar por redes que só permitem HTTPS |
| Shadowsocks | Anos 2010 | Deixar o tráfego sem nenhuma impressão digital |
| WireGuard | Anos 2010 | Manter o túnel simples e o código pequeno o suficiente para ser auditado |
| VLESS + REALITY | Anos 2020 | Parecer uma conexão HTTPS com um site real e conhecido |
| Hysteria2 | Anos 2020 | Continuar rápido em links com perdas e parecer HTTP/3 |
| XHTTP | Anos 2020 | Transportar dados como requisições HTTP comuns, inclusive por CDNs |
PPTP e L2TP/IPsec vêm da época da internet discada
PPTP
O PPTP foi criado para conectar um funcionário com modem à rede do escritório pela internet. Ele encapsula o PPP, o protocolo usado nas conexões discadas com o provedor de internet. A especificação do PPTP, a RFC 2637, foi publicada em 1999. O canal de controle usa a porta TCP 1723, e os dados trafegam dentro do GRE. O GRE não tem portas, por isso os roteadores domésticos ainda têm a opção “PPTP Passthrough”.
Bruce Schneier e Peiter Zatko (Mudge) descreveram as fraquezas do PPTP em 1998 e 1999. Em 2012, uma palestra na DEF CON mostrou que uma autenticação MS-CHAPv2 capturada depende de uma única chave DES. Uma chave desse tamanho pode ser descoberta por força bruta em tempo viável. A chave de criptografia MPPE é derivada dos mesmos dados de autenticação, por isso os 128 bits dela não acrescentam proteção. Em seguida, a Microsoft publicou um comunicado de segurança que alertava contra o uso do MS-CHAPv2 sem proteção adicional. Desde então, o PPTP não é considerado seguro.
L2TP/IPsec
O L2TP (RFC 2661, 1999) combina ideias do PPTP e do protocolo L2F, da Cisco. O L2TP não tem criptografia própria, por isso quase sempre roda dentro do IPsec (RFC 3193, 2001). Cada pacote recebe 2 camadas, primeiro a do L2TP e depois a do IPsec. Ambas acrescentam bytes e exigem configuração. A troca de chaves usa a porta UDP 500. Os dados passam pela porta UDP 4500 ou por um protocolo à parte, o ESP. Essas portas fixas deixam a dupla visível, e poucas regras de firewall a bloqueiam.
Em 2008, a Microsoft lançou o SSTP, que leva o mesmo PPP dentro do HTTPS na porta TCP 443. Vista de fora, a conexão parece navegação comum na web. Ela passa por firewalls que só permitem tráfego web. Entre os sistemas para computador e celular, só o Windows traz um cliente SSTP.
IKEv2, OpenVPN e WireGuard criptografam bem e têm impressões digitais nítidas
Os 3 protocolos protegem bem os dados e funcionam sem problemas em uma rede comum. O ponto fraco comum a eles é uma impressão digital que a rede consegue reconhecer. Em redes que filtram conexões VPN, essa fraqueza pesa mais do que a força da criptografia.
IKEv2/IPsec
O IKEv2 combina as chaves em 4 mensagens, enquanto o IKEv1 tinha 8 variantes da primeira troca. Em celulares e notebooks, o IKEv2 é valorizado pela extensão MOBIKE (RFC 4555). Com o MOBIKE, um notebook pode passar do Wi-Fi do escritório para o hotspot do celular. O túnel muda para o novo endereço sem repetir a autenticação. O iOS, o macOS, o Windows e o Android 11 ou posterior têm cliente IKEv2 integrado. Nesses sistemas, o IKEv2 não exige nenhuma instalação. As redes detectam o IKEv2 pelas mesmas portas UDP, 500 e 4500.
OpenVPN
O OpenVPN é um projeto de código aberto com protocolo próprio e sem RFC. O handshake usa TLS, e normalmente os dados são protegidos por AES-GCM. O OpenVPN roda sobre UDP ou TCP em qualquer porta, e a porta 1194 está registrada para ele na IANA. Muitos roteadores trazem o OpenVPN integrado, e as configurações costumam vir em um único arquivo .ovpn. O ponto fraco é o cabeçalho que o OpenVPN acrescenta a cada pacote. O tipo de mensagem nesse cabeçalho não é criptografado, e toda sessão começa do mesmo jeito. Em 2022, pesquisadores testaram isso na rede de um provedor de internet real. Eles detectaram o OpenVPN nesse tráfego sem descriptografar um único byte.
WireGuard
Jason Donenfeld apresentou o WireGuard na conferência NDSS em 2017. Em 2020, o WireGuard passou a fazer parte do kernel do Linux, na versão 5.6. Ele usa um único conjunto fixo de cifras (Curve25519, ChaCha20-Poly1305 e BLAKE2s em um handshake Noise). Assim, não há como escolher uma opção fraca por engano. O servidor não responde a pacotes sem uma chave válida. De fora, nada indica que existe um servidor ali.
O tráfego do cliente, porém, tem uma impressão digital nítida. A primeira mensagem do handshake tem sempre 148 bytes, e a resposta, sempre 92 bytes. O tipo de mensagem vai sem criptografia. O site do WireGuard afirma que o protocolo não se concentra em ofuscação. A ofuscação fica a cargo de uma camada separada, acima do WireGuard. O WireGuard funciona bem em redes abertas e é detectado rapidamente nas redes filtradas.
VLESS + REALITY, XHTTP, Hysteria2 e Shadowsocks escondem a impressão digital da VPN
Esses protocolos foram criados para redes que detectam e bloqueiam conexões VPN. A criptografia deles é tão forte quanto a dos protocolos acima. O objetivo principal, porém, é uma impressão digital próxima à do tráfego comum. Pela forma como foram projetados, eles funcionam como proxies. O app de VPN envia por eles todo o tráfego do dispositivo. A nossa análise de VPN versus proxy explica em que os dois diferem.
VLESS + REALITY
O VLESS é um protocolo compacto, hoje desenvolvido pelo projeto Xray. Ele envia ao servidor o ID do cliente e o endereço de destino. A criptografia dos dados normalmente fica a cargo do TLS. O REALITY faz a conexão parecer uma visita a um site real de terceiros. No primeiro pacote, quem observa a conexão vê o nome desse site. Em seguida vem um handshake TLS 1.3 comum, e o certificado nele já vai criptografado. O servidor não precisa de domínio nem de certificado próprios. Um sistema de filtragem que sonda o servidor sem a chave recebe a resposta do site real. O REALITY encaminha essas conexões diretamente para esse site.
XHTTP
O XHTTP é um transporte do Xray, e as primeiras versões dele se chamavam SplitHTTP. Ele divide os dados em pedaços e os transporta dentro de requisições HTTP. Em um dos modos, o upload segue como uma série de requisições POST. No mesmo modo, o download volta como uma única resposta longa a uma requisição GET. Um proxy HTTP ou uma rede de distribuição de conteúdo (CDN) enxerga isso como tráfego web comum. Por isso, o servidor pode ficar atrás de infraestrutura de terceiros, como muitos sites.
Hysteria2
O Hysteria2 roda sobre o QUIC (RFC 9000), o transporte baseado em UDP que fica por baixo do HTTP/3. Ao se conectar, o cliente informa a largura de banda do próprio link. O Hysteria2 envia os dados nesse ritmo e reenvia os pacotes perdidos sem reduzi-lo. Isso ajuda em links com perda frequente de pacotes, como os dados móveis em um trem. Quem acessa sem a senha vê um site HTTP/3 comum. Dependendo da configuração, o servidor devolve uma página 404, arquivos ou outro site. O Hysteria2 não funciona em uma rede sem UDP.
Shadowsocks
O Shadowsocks surgiu em 2012 e é o mais antigo e o mais simples dos 4 protocolos. É um proxy criptografado desde o primeiro byte, sem cabeçalhos nem handshake reconhecível. O Outline, projeto da Jigsaw em que o app Ben's VPN se baseia, funciona sobre o Shadowsocks. Os outros 3 protocolos deste grupo imitam a impressão digital do tráfego web comum. Já o tráfego do Shadowsocks não se parece com nenhum protocolo conhecido. Essa ausência de padrão também é uma impressão digital. Em 2023, pesquisadores descreveram um sistema de filtragem que bloqueava essas conexões após algumas verificações simples. As verificações examinavam só o primeiro pacote. Por isso, em redes com filtragem intensa, o Shadowsocks sozinho não é suficiente.
6 verificações para escolher um protocolo
Nenhum protocolo de VPN serve para todos os casos. O protocolo certo depende da rede e da tarefa. Faça as verificações na ordem, de cima para baixo. Em geral, a primeira que se aplica ao seu caso decide o protocolo.
O dono do servidor decide primeiro
Na rede do trabalho ou da escola, use o perfil fornecido pelo administrador. Para um servidor próprio, o WireGuard é o protocolo mais simples de configurar. Ele só precisa de um par de chaves e de um arquivo de configuração curto. Um serviço de VPN normalmente deixa o app escolher o protocolo.
Redes filtradas descartam IKEv2, OpenVPN e WireGuard
Uma rede que procura impressões digitais de VPN detecta IKEv2, OpenVPN e WireGuard. Nessa rede, use protocolos que se parecem com o tráfego comum, como VLESS + REALITY, XHTTP e Hysteria2. Em uma rede aberta, IKEv2, OpenVPN e WireGuard funcionam sem problemas.
Uma rede sem UDP exige um protocolo sobre TCP
Alguns firewalls de empresas e universidades liberam sites e nada mais. O sinal típico é que as páginas abrem, mas o WireGuard ou o IKEv2 nunca se conecta. Nessas redes funcionam, por exemplo, VLESS + REALITY, XHTTP e OpenVPN sobre TCP na porta 443.
Trocas frequentes de rede favorecem IKEv2 e WireGuard
Um celular alterna entre Wi-Fi e dados móveis muitas vezes por dia. O IKEv2 com MOBIKE mantém o túnel nessas trocas. O WireGuard também lida com elas e registra o novo endereço do cliente automaticamente. Os apps de serviços de VPN costumam se reconectar após cada troca.
Chamadas e jogos funcionam melhor sobre UDP
Em uma chamada, quase não se nota a perda de um pequeno trecho de som. Já um atraso se nota na hora. O WireGuard e o Hysteria2 são exemplos de protocolos UDP adequados para chamadas e jogos. O TCP retém todos os dados seguintes até o pacote perdido ser reenviado, e o som fica atrasado.
Um roteador roda só o que o firmware aceita
Se o firmware oferecer OpenVPN, prefira-o ao PPTP. Use o PPTP só quando o firmware não aceitar nenhum outro protocolo. Mesmo assim, recorra a ele apenas quando um dispositivo, como uma TV, precisar de outro país.
O app Ben's VPN escolhe o protocolo automaticamente
VLESS + REALITY, XHTTP, Hysteria2 e Shadowsocks são os 4 protocolos do app. Junto com o protocolo, o app escolhe a rota. Não há seletor de protocolo na tela. Você escolhe só a localização. O provedor de internet vê uma conexão com um servidor, mas não o tráfego dentro dela. As versões para outros sistemas estão na página de apps de VPN.

Se a conexão estiver fraca, o app exibe o aviso “Conexão ruim” com o botão “Resolver o problema”. Toque nele para ver 2 opções: outra localização ou a busca por um servidor funcional. A busca testa o servidor de novo e obtém novos endereços IP. Se isso não resolver, o app ativa o multihop por um servidor intermediário em um terceiro país. A busca inteira leva até 2 minutos. O mesmo botão “Encontrar servidor funcional” também está em “Meu perfil” → “Configurações”.
Roteadores Keenetic, OpenWrt e MikroTik podem rodar o próprio app Ben's VPN. Os demais roteadores ficam limitados aos protocolos do firmware. Para eles, a página da conta tem configurações de PPTP e OpenVPN em “Router” → “Other routers”. O mesmo nome de usuário e a mesma senha valem para ambos os protocolos. Esses dados de acesso funcionam em apenas um roteador por vez. A página de configuração de roteadores descreve cada passo.
Perguntas e respostas
O que é ofuscação de VPN e em que ela difere da criptografia?
A criptografia esconde o conteúdo, e sem a chave ninguém consegue ler os pacotes. A ofuscação esconde o fato de que a conexão é uma VPN. Ela deixa o tamanho, a ordem e a forma dos pacotes parecidos com os do tráfego comum. O WireGuard criptografa bem, mas não ofusca o tráfego. O REALITY e o Hysteria2 acrescentam ofuscação à criptografia.
Devo usar WireGuard ou OpenVPN no meu próprio servidor?
Em uma rede que permite UDP e conexões VPN, o WireGuard é mais simples de configurar e conecta mais rápido. O OpenVPN é mais flexível e roda sobre UDP ou TCP em qualquer porta. Essa flexibilidade ajuda em redes que só permitem TCP. Em uma rede filtrada, ambos os protocolos são detectados pela impressão digital.
O multihop é um protocolo à parte?
Não. O multihop é uma rota, não um protocolo. O tráfego vai primeiro para um servidor intermediário em um terceiro país. De lá, segue para o servidor da localização que você escolheu. O multihop muda o caminho do tráfego, não a criptografia. No Ben's VPN, o modo “Automático” ativa o multihop quando a estabilidade da conexão depende dele.
Se o site já usa HTTPS, o que o protocolo de VPN acrescenta?
O HTTPS criptografa a página, mas a rede ainda vê qual site você abre. Ela vê o endereço IP do site e o nome dele no início da conexão. O protocolo de VPN também esconde essas informações. O provedor de internet passa a ver só uma conexão com um servidor. Depois do servidor, a requisição segue até o site fora do túnel. Nesse trecho do caminho, o HTTPS continua protegendo a requisição.








