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

Anton Belov

14 min de leituraTecnologia

Gerações de protocolos VPN

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.

ProtocoloSurgimentoPara que foi criado
PPTPAnos 1990Levar uma conexão discada até a rede do escritório pela internet
L2TP/IPsecPor volta de 2000Substituir o PPTP proprietário por um padrão aberto e deixar a criptografia a cargo do IPsec
OpenVPNAnos 2000Dar a qualquer sistema um túnel TLS em uma única porta
IKEv2/IPsecAnos 2000Combinar as chaves mais rápido e manter a sessão quando a rede muda
SSTPAnos 2000Passar por redes que só permitem HTTPS
ShadowsocksAnos 2010Deixar o tráfego sem nenhuma impressão digital
WireGuardAnos 2010Manter o túnel simples e o código pequeno o suficiente para ser auditado
VLESS + REALITYAnos 2020Parecer uma conexão HTTPS com um site real e conhecido
Hysteria2Anos 2020Continuar rápido em links com perdas e parecer HTTP/3
XHTTPAnos 2020Transportar 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.

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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.

Tela principal do Ben's VPN no iPhone, conectada à Alemanha, com o botão “Desconectar” sob o B amarelo e os botões “Localização”, “Túnel” e “Suporte” abaixo dele
Você escolhe a localização, e o app define o protocolo

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.

Escrito por

Anton Belov

Escreve sobre redes e protocolos de VPN.

Comece por 3 dias e decida depois

O período de teste custa $0.50 e abre os 187 países e todos os apps. Depois dele, o plano é renovado a $5 por mês. A renovação pode ser cancelada na página da conta a qualquer momento.

Mac App Store App Store Google Play