Fugas de VPN e verificações de disfarce
Uma fuga é qualquer leitura sobre si que escapa do túnel que uma VPN constrói: um valor que continua a viajar pela sua rota antiga, ou que uma página pode pedir diretamente ao seu navegador, contornando o túnel por completo. Uma verificação de disfarce é o teste complementar: um site recolhe todas as leituras que consegue —endereço, relógio, idioma, hardware, resolvedor— e compara-as entre si, procurando não segredos, mas contradições. Um disfarce raramente falha porque um valor parece errado; falha porque dois valores que deveriam concordar não concordam. Execute ambas as metades você mesmo no teste de impressão digital do navegador e leia o que os sites sabem sobre si para o inventário completo de leituras que uma página pode fazer antes de alterar uma única definição.
Uma VPN muda exatamente uma coisa
Uma VPN faz um trabalho mecânico, e fá-lo bem: envolve o seu tráfego num túnel encriptado até um servidor de saída, e os sites que visita veem esse servidor em vez de si. O seu endereço IP público muda. A cidade e o país associados a esse endereço mudam com ele. A rede proprietária do endereço —normalmente uma empresa de alojamento ou um fornecedor de VPN, não uma linha doméstica— também muda. Se a sua única pergunta era «de que endereço este site pensa que venho?», uma VPN funcional responde-a por completo, e nada neste artigo o contradiz.
Tudo o resto fica exatamente onde estava. O seu dispositivo não se move: o tamanho do ecrã, o chip gráfico, as fontes instaladas, o comportamento da bateria, a pilha de áudio e as dezenas de pequenas leituras de hardware e software que se combinam numa impressão digital do navegador são idênticas antes e depois de o túnel abrir. O seu relógio não se move, por isso o fuso horário do sistema continua a indicar o lugar onde realmente está. Os idiomas do navegador e do sistema não se movem. Os seus cookies, contas com sessão iniciada e histórico não se movem. O túnel redireciona pacotes; não redecorá a máquina no fim deles.
Essa divisão é a razão pela qual a maioria da «deteção de VPN» está mal nomeada. No caso comum, ninguém detetou um protocolo VPN, um túnel ou uma ligação encriptada. Detetaram uma incompatibilidade: o IP afirma um país enquanto o relógio afirma outro, o endereço pertence a um centro de dados enquanto a impressão digital descreve um portátil doméstico, a lista de idiomas descreve um viajante que nunca viaja. Os sites pontuam a distância entre a camada que se moveu e as que não se moveram. Perceber as fugas, então, não é realmente sobre o túnel: é auditar tudo o que o túnel deixou para trás.
WebRTC: o endereço que contorna o túnel
WebRTC é a tecnologia do navegador por trás da voz, do vídeo e dos dados ponto a ponto dentro da página. Para ligar dois navegadores diretamente, deve primeiro descobrir como cada um pode ser alcançado, e esse processo de descoberta chama-se ICE. Em termos simples, o seu navegador reúne candidatos —possíveis endereços de si mesmo— e oferece-os ao outro lado. Alguns aprende perguntando a si mesmo, outros perguntando a um servidor STUN uma questão simples: «de onde estás, de que endereço te estou a chamar?». As respostas voltam como tipos de candidato diferentes, e a diferença entre eles é toda a história da fuga.
Um candidato host é um endereço que a sua máquina detém diretamente: historicamente, o seu endereço de rede local, como o 192.168 que o seu router lhe deu. Um candidato refletido pelo servidor é o endereço público que o servidor STUN observou —o endereço que o mundo exterior vê. Quando o WebRTC era novo, as páginas podiam recolher ambos livremente, o que produziu duas fugas clássicas: o endereço LAN escapava mesmo sendo inútil para o site e, pior, quando um navegador perguntava ao servidor STUN fora ou ao lado do túnel VPN, o candidato refletido revelava o endereço público real por trás do disfarce. A VPN funcionava perfeitamente para o tráfego web enquanto um canal lateral publicava em silêncio aquilo que escondia.
Os navegadores modernos estreitaram muito isto. Chrome e Firefox agora substituem comummente os endereços host por nomes mDNS aleatórios —um nome .local rotativo em vez do seu IP LAN real—, de modo que uma página vê um candidato que não consegue mapear de volta para o seu router. As implementações diferem por navegador e versão, algumas encaminham o WebRTC corretamente pelo túnel, e configurações empresariais ou alteradas por extensões diferem de novo, razão pela qual dois testes honestos podem discordar. Trate correções bruscas com cuidado: desativar totalmente o WebRTC para a fuga, mas também quebra chamadas legítimas, enquanto extensões que prometem «falsificar» candidatos muitas vezes substituem um endereço plausível por um implausível —e um candidato implausível é ele próprio uma contradição que uma verificação de disfarce pode pontuar—.
DNS: o resolvedor que ficou em casa
Cada nome que visita tem de ser traduzido para um endereço antes de qualquer ligação, e essa tradução é feita por um resolvedor. Se o seu navegador ou sistema continuar a usar o resolvedor atribuído pelo seu fornecedor de internet —alcançado diretamente, fora do túnel—, cada consulta vaza de duas maneiras ao mesmo tempo. As consultas em si vão para o seu ISP no padrão em claro do tráfego DNS comum, revelando que nomes resolve, mesmo que as páginas seguintes viajem pelo VPN. E qualquer site que consiga observar que resolvedor perguntou em seu nome aprende onde está aproximadamente, porque as pessoas usam esmagadoramente um resolvedor perto da sua localização real.
Essa segunda fuga é mais subtil do que parece, e o teste padrão para ela é elegante. Uma página de teste faz o seu navegador procurar um nome que nunca existiu —um subdomínio aleatório longo sob um domínio controlado por quem testa. Como o nome é único, nenhuma cache o tem, por isso o seu resolvedor é forçado a perguntar diretamente ao servidor autoritativo de quem testa. Esse servidor vê agora o endereço do resolvedor e pode reportar a sua rede e o seu país de volta à página. Variantes que usam informação EDNS de sub-rede do cliente podem estreitar ainda mais as coisas, porque alguns resolvedores encaminham prestavelmente parte do seu próprio intervalo de endereços junto com a consulta. Nada disto requer quebrar o túnel; só requer que as suas pesquisas tomem uma estrada diferente das suas páginas.
As armadilhas são sobretudo de configuração, não de malícia. Configurações de túnel dividido enviam deliberadamente parte do tráfego —muitas vezes incluindo DNS— para fora da VPN por velocidade ou acesso local. Routers que distribuem o resolvedor do ISP a cada dispositivo continuam a fazê-lo enquanto a VPN corre num deles. Navegadores com as suas próprias definições de DNS encriptado podem contornar tanto o sistema como o resolvedor do fornecedor de VPN, corrigindo uma fuga e criando silenciosamente um problema de coerência se o novo resolvedor estiver num país diferente da saída. A regra prática espelha o resto deste artigo: o resolvedor deve viver onde a saída afirma viver, e deve ser alcançado através do túnel, e a única maneira de saber que ambas são verdadeiras é testá-lo de fora.
Contradições: o disfarce que discute consigo mesmo
Considere quatro leituras que uma página pode fazer num segundo. O seu IP coloca-o em Amesterdão. O seu fuso horário do sistema indica UTC−5 e uma cidade nas Américas. A sua lista de idiomas do navegador é encabeçada por um idioma raramente falado nos Países Baixos, sem neerlandês em lado nenhum. E o seu agente de utilizador afirma um ambiente de trabalho Windows enquanto o renderizador gráfico nomeia um chip móvel. Nenhum desses valores por si só prova nada —viajantes, expatriados, máquinas virtuais e configurações estranhas produzem cada um deles inocentemente todos os dias. Juntos, discutem. Uma verificação de disfarce é simplesmente uma máquina para ouvir essa discussão e atribuir-lhe um peso.
Algumas contradições repetem-se com tanta frequência que se tornaram a bateria padrão. Fuso horário versus país do IP é a mais ruidosa, porque o relógio é trivial de ler para uma página e a maioria dos utilizadores de VPN nunca pensa em mudá-lo. Idioma versus país do IP é mais suave —as pessoas navegam legitimamente num segundo idioma—, mas a ausência completa do idioma do país de saída continua a contar. Agente de utilizador versus plataforma apanha falsificações grosseiras: uma cadeia que afirma um sistema operativo enquanto o suporte tátil, a forma do ecrã ou o renderizador GPU descreve outro. ASN de alojamento versus uma história residencial é a mais silenciosa e muitas vezes a mais decisiva: o endereço de saída pertence a uma rede de centro de dados, enquanto tudo o resto da sessão descreve um utilizador doméstico comum que, na realidade, chegaria de um fornecedor de banda larga.
É por isso que a coerência, não qualquer valor isolado, é o que os sites realmente pontuam. Um sistema antifraude, um filtro de abuso ou um catálogo de streaming raramente precisa de provar que existe uma VPN; precisa de um número de risco, e as contradições são evidência barata e robusta para o alimentar. Uma sessão cujo endereço, relógio, idioma, resolvedor e hardware contam a mesma história pode continuar a ser uma sessão VPN —mas não apresenta nenhuma discussão interna para pontuar contra si, por isso é processada como a história que conta—. Inversamente, um utilizador sem VPN nenhuma pode pontuar mal por pura desorganização: um portátil de trabalho com imagem de outro país, um navegador deixado num idioma estrangeiro, um resolvedor empresarial noutro continente. A verificação mede a coerência. Nunca esteve realmente a medir o túnel.
Uma lista para parecer coerente
Trabalhe na ordem em que um verificador o lê. Escolha primeiro o país de saída, deliberadamente, e deixe tudo o resto segui-lo —a coerência com um lugar que escolheu supera uma saída aleatória vestida depois—. Defina o fuso horário do sistema para corresponder a esse país, não apenas o relógio do navegador, porque as páginas leem o fuso do sistema. Alinhe o idioma do navegador: coloque o idioma do país de saída primeiro ou pelo menos presente na lista, e navegue nele quando puder. Cada passo remove uma discussão entre camadas, e juntos cobrem as contradições que os sites verificam mais.
Depois feche os canais laterais. Mantenha o WebRTC dentro do túnel ou, se nunca usa chamadas no navegador, totalmente desligado —e volte a verificar que comportamento o seu navegador realmente tem, em vez de o presumir—. Certifique-se de que o DNS se resolve através do túnel para um resolvedor que encaixa na história de saída, e prefira uma saída residencial quando a história que apresenta é residencial, porque nenhuma definição de relógio corrige um ASN de centro de dados. Após cada alteração, execute novamente o teste de impressão digital do navegador e leia-o como um site o faria: não à procura de uma bandeira vermelha, mas a perguntar se a página inteira conta uma só história. Para saber por que um teste assim pode ser executado sem recolher as leituras que lhe mostra, veja como um teste de privacidade não conserva dados.
Termine com o aviso honesto, porque uma lista que promete invisibilidade está a mentir-lhe. A coerência remove contradições; não remove a identidade. A sua impressão digital do navegador —a combinação de hardware, fontes, gráficos e definições que ficou parada na primeira secção— pode continuar a distinguir o seu dispositivo entre visitas e entre endereços, e o seu comportamento, contas e hábitos identificam-no de forma mais fiável do que qualquer leitura de rede alguma vez fez. Um disfarce coerente eleva o custo da deteção casual e para o tipo fácil e automatizado. Perante um observador determinado que pode observar o comportamento ao longo do tempo, nunca foi uma garantia, e qualquer ferramenta ou fornecedor que lhe venda uma deve merecer menos confiança, não mais.