- Coleta de impressão digital do navegador (browser fingerprinting) é uma técnica de rastreamento séria que é difícil de bloquear até mesmo com cookies ou VPN, pois combina informações do ambiente do usuário para gerar um identificador único
- Diversos elementos como sistema operacional, versão do navegador, idioma, fuso horário, fontes, extensões e resultado da renderização em canvas são combinados, aumentando a possibilidade de identificação individual
- Medidas simples de defesa como desativar o JavaScript, disfarçar o navegador e manipular o canvas podem, ao contrário, deixar pistas de identificação ou causar efeitos colaterais que quebram funcionalidades de sites
- Alguns navegadores como Brave, Mullvad e Librewolf incorporam recursos de resistência a fingerprinting, mas a defesa completa é impossível e traz inconvenientes como perda de usabilidade e aumento de CAPTCHAs
- Leis existentes como o GDPR não deixam clara a base regulatória, levantando a necessidade de novas respostas legislativas
Contexto do surgimento da coleta de impressão digital do navegador
- No passado, os cookies de terceiros eram a principal ameaça à privacidade
- Os cookies originalmente eram um meio para manter uma conversa persistente entre navegador e servidor, mas redes de publicidade passaram a usá-los para conectar informações do usuário entre vários sites
- Na Europa, foi introduzida uma obrigação legal de aviso sobre isso
- À medida que os navegadores melhoraram a separação de cookies, o risco de rastreamento por cookies diminuiu, mas o fingerprinting surgiu como uma nova ameaça
Como funciona a coleta de impressão digital do navegador
- Funciona mesmo sem cookies e, mesmo com VPN, mantém em certa medida a capacidade de identificação
- Combina informações básicas fornecidas pelo navegador ao servidor, como versão do navegador, OS, idioma e fuso horário, para gerar um identificador numérico único
- Com JavaScript, é possível coletar adicionalmente fontes, extensões e informações de hardware
- A impressão digital de canvas (canvas fingerprint) identifica pequenas diferenças entre sistemas usando variações de pixels quando o navegador desenha texto
- A singularidade é tão alta que, entre cerca de 1.000 navegadores, apenas um pode ter a mesma impressão digital de canvas
- Configurações triviais como tamanho da janela, tema e resolução também podem ser usadas como pistas adicionais de identificação
Limites das tentativas de defesa
- Desativar o JavaScript bloqueia a impressão digital de canvas, mas o fato de o JavaScript estar desativado se torna uma característica rara que vira um novo elemento da impressão digital
- Mesmo que o navegador se disfarce (spoofing) como outra plataforma, o servidor ainda pode estimar o ambiente real por meio de outros sinais
- Técnicas sofisticadas de disfarce, como manipulação de canvas, podem causar mau funcionamento de sites ou deixar rastros adicionais
- Como resultado, a coleta de impressão digital é uma técnica muito difícil de bloquear, e as empresas de rastreamento continuam a refiná-la
Respostas parciais e limites práticos
- Sites de teste como amiunique.org operam em ambientes mais simples do que os do rastreamento real, então têm baixa aderência à realidade
- Mesmo que a impressão digital seja “única (unique)”, ela pode mudar com o tempo, então não é um indicador perfeito de rastreamento
- Alguns navegadores como Brave, Mullvad e Librewolf oferecem recursos integrados de resistência a fingerprinting
- O Librewolf ativa por padrão os recursos de resistência do Firefox
- Brave e Mullvad respondem de maneiras diferentes
- No entanto, como os coletores de fingerprinting também estão sofisticando a tecnologia, uma defesa completa é impossível
Medidas que o usuário pode adotar
- Excluir cookies de longa duração e usar VPN são premissas básicas
- A VPN evita a exposição do IP, mas o próprio fato de usá-la pode funcionar como um elemento da impressão digital
- Manter o navegador no estado padrão e minimizar mudanças em extensões, fontes e temas
- Quanto mais se usar um ambiente popular (Windows 11 + Chrome, por exemplo), menor a probabilidade de identificação
- Usar recursos de proteção integrados como Mullvad, Librewolf e Firefox (com resistência a fingerprinting ativada)
- Mesmo com todas as medidas, a probabilidade de rastreamento cai apenas de cerca de 99% para 50%
Efeitos colaterais da resistência a fingerprinting
- Ao ativar a resistência a fingerprinting no Firefox ou no Librewolf, surgem tamanho fixo de janela, impossibilidade de mudar o tema e restrições de UI
- Como o servidor pode não reconhecer o navegador, há aumento na frequência de CAPTCHAs
- Em alguns sites, ocorrem falhas visuais como erros de cor e problemas de posicionamento de texto
Incerteza jurídica e necessidade de regulação
- O GDPR tem disposições sobre cookies, mas não traz regras claras sobre fingerprinting
- O ICO (Information Commissioner’s Office) do Reino Unido avalia o fingerprinting de forma negativa
- A legalidade é incerta, e ainda existe margem para alegar uso razoável com finalidade de segurança
- No momento, a conclusão é que novas leis são necessárias
- O fingerprinting não pode ser percebido pelo usuário, e os dados coletados têm caráter de curto prazo e estatístico, mas é apontado como um dos principais meios que sustentam os excessos de rastreamento da indústria da publicidade
Conclusão
- A coleta de impressão digital do navegador é uma ameaça à privacidade tecnicamente difícil de detectar e juridicamente em zona cinzenta
- No nível técnico atual, uma defesa completa é impossível, sendo necessário fortalecer a regulação legislativa e as respostas no nível do navegador
- Enquanto as práticas de rastreamento da indústria da publicidade continuarem, o ambiente da internet seguirá com risco constante de violação de privacidade
1 comentários
Comentários no Hacker News
Há um tempo, percebi que, sempre que eu clicava em “não traduzir este idioma” no Chrome, aquele idioma era adicionado automaticamente ao cabeçalho Accept-Language
Mesmo sem eu configurar manualmente, o Chrome continuava incluindo essa escolha em todas as requisições
Como essa combinação formava uma ordem de idiomas única para mim, parecia que isso poderia ser um sinal muito útil para fingerprinting
Houve até uma proposta relacionada, mas ela não foi adotada → proposta reduce-accept-language
Texto relacionado: discussão no HN
Acho que a combinação Firefox + Arkenfox user.js é a mais forte do ponto de vista de privacidade
Ela oferece proteção em nível de Tor Browser, com exclusão automática de cookies, falsificação de fingerprint de canvas, fuso horário fixado em UTC etc.
Também bloqueia domínios de anúncios e rastreamento no nível de DNS e bloqueia por padrão conteúdo de terceiros com uBlock Origin ou uMatrix
Como no Tor, isso só faz sentido se muita gente usar a mesma configuração
Se só você usa esse tipo de mascaramento, acaba chamando ainda mais atenção
Além disso, muitos scripts de fingerprint são carregados a partir de domínios primários, então é difícil bloquear tudo por completo
Referência: guia de privacidade do Orion
privacy.resistFingerprintingdo Firefox. As funcionalidades descritas parecem já ser ativadas por essa flagO rastreamento por fingerprint muitas vezes confunde características de identificação com rastreamento
Trocar o fuso horário para UTC não torna o rastreamento impossível
Existem sinais bem mais fortes, como IP e GeoIP
Se uma família usa o mesmo IP mas cada pessoa tem configurações de navegador diferentes, isso pode até facilitar o rastreamento
Para realmente evitar rastreamento, seria preciso combinar rotação de VPN com aleatorização dos cabeçalhos das requisições
Se o objetivo for apenas anonimato, usar o Tor Browser é o mais eficaz
Se quiser entender melhor como funciona a coleta de fingerprint no navegador, dá para consultar um texto que escrevi
Browser Fingerprinting Explained
O texto não mencionou, mas uma ferramenta clássica para diagnosticar fingerprint é o Cover Your Tracks (EFF)
Concordo com o ponto principal do texto. O rastreamento por fingerprint é uma grande ameaça à liberdade individual
Ao mesmo tempo, acho que criadores de conteúdo precisam receber uma compensação justa
O modelo baseado em anúncios é eficiente, mas cobra privacidade como preço
A maioria dos blogueiros não ganha muito, e quem lucra são as empresas de publicidade
Acho que a internet de antes, centrada em conteúdo gratuito, era mais saudável
Ser rastreado não significa que os anúncios vão ficar mais eficientes
Pelo contrário, só faz repetir propaganda de produtos de que eu não preciso
É uma experiência assustadora parecida com a de lojas físicas fazendo anúncios personalizados por reconhecimento facial
Se o custo da publicidade não estivesse embutido no preço dos produtos, talvez tudo ficasse mais barato no geral
Imagino uma estrutura em que se paga 1 centavo por pageview, e o preço sobe de acordo com a carga do servidor
Isso me lembrou de um jogo que fiz em uma aula de classificação de dados
“Quantas perguntas de sim/não seriam necessárias para identificar todas as pessoas nesta sala?”
É assim que fingerprints de navegador também vão afunilando quem você é com base em alguns sinais
Por exemplo, só a combinação “Linux + Firefox + monitor à esquerda” já reduz o universo para algumas dezenas de milhares de pessoas
Por exemplo, “cabelo comprido?” e “mulher?” carregam informação parecida, então quase não acrescentam bits
Já uma pergunta como “é headbanger?” pode trazer muita informação quando a resposta é “sim”, por ser algo raro
O cerne do problema é que tornamos padrão uma estrutura em que JavaScript chama outro JavaScript para ser executado
Stallman estava certo
Se quiser ver que tipo de informação o navegador expõe, o site Am I Unique? é útil
Para um fingerprint ser útil, ele precisa não só de unicidade, mas também de persistência
Se as fontes instaladas fossem aleatorizadas, instaladas e removidas a cada vez, não ficaria impossível ligar quem eu sou hoje a quem serei amanhã?
Referências: PDF do estudo da EFF, explicação da Mullvad
A API
queryLocalFontsdo Chrome exige um pop-up de permissãoQuadrinho relacionado: xkcd 1105
Hoje em dia, durante o carregamento da página, em menos de 5 ms já se decide a qual persona o usuário pertence
Ainda assim, a maioria das plataformas de dados apaga automaticamente os dados após 90 dias para manter conformidade com o GDPR