13 pontos por GN⁺ 2025-11-23 | 1 comentários | Compartilhar no WhatsApp
  • 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

 
GN⁺ 2025-11-23
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

    • Fiquei pensando se, ao escolher “não traduzir”, o Chrome assume que o usuário consegue ler esse idioma e por isso o adiciona ao cabeçalho. É um ponto interessante
    • Dá vontade de soltar um aviso de utilidade pública (PSA) para as pessoas não usarem o Chrome
    • Pelo conteúdo da proposta, a ideia era o navegador negociar o idioma no lugar do site, mas isso me parece inviável na prática. Se o site for multilíngue, basta mostrar ao usuário uma interface para escolha do idioma
    • Já tive problema com o idioma das legendas do YouTube aparecendo de forma errada, e isso acontecia principalmente quando eu usava o Chrome, embora eu acessasse por vários dispositivos
    • Desde que o Google bloqueou o uBlock Origin, acho que ficou claro que Chrome e privacidade são incompatíveis
      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

    • Mas, se poucas pessoas usam esse tipo de configuração, isso por si só vira um fingerprint
      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
    • Fico curioso se dá para esconder também o nome da GPU ou o IP interno exposto via WebRTC
      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
    • O Orion Browser (Kagi) bloqueia scripts de coleta de fingerprint por padrão
      Referência: guia de privacidade do Orion
    • Técnicas anti-fingerprinting baseadas em JavaScript podem acabar aumentando ainda mais a unicidade
    • Fico na dúvida se a configuração do Arkenfox é mais forte que a flag privacy.resistFingerprinting do Firefox. As funcionalidades descritas parecem já ser ativadas por essa flag
  • O 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

    • Como o fingerprint permanece consistente entre sites, isso gera o mesmo problema de privacidade dos cookies de terceiros
  • O texto não mencionou, mas uma ferramenta clássica para diagnosticar fingerprint é o Cover Your Tracks (EFF)

    • Mas também há quem diga para não confiar totalmente na 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

    • Na verdade, parece que as empresas de publicidade nos enganaram com esse discurso de “recompensar os criadores”
      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
    • A solução é simples: basta voltar para anúncios contextuais (contextual ads)
    • O problema não é a publicidade em si, e sim o rastreamento
      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
    • Em vez de “assinatura de 5 dólares por mês”, fico pensando se um modelo de pagamento por visualização (pay-per-view) não faria mais sentido
      Se o custo da publicidade não estivesse embutido no preço dos produtos, talvez tudo ficasse mais barato no geral
    • Se fosse possível fazer micropagamentos anônimos, isso poderia resolver não só o problema da vigilância, mas até a defesa contra DDoS
      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

    • Mas, se as perguntas tiverem alta correlação entre si, a quantidade de informação diminui
      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
    • Também surgiu a dúvida mais simples: “não deveríamos usar apenas perguntas de sim/não?”
  • O cerne do problema é que tornamos padrão uma estrutura em que JavaScript chama outro JavaScript para ser executado
    Stallman estava certo

    • Mas, mais do que o JS em si, acho que o maior problema é que tecnologias como WebRTC e WebGL executam sem permissão e acabam sendo exploradas para coleta de fingerprint
    • Quanto mais envelheço, mais percebo o quanto RMS era um guerreiro da liberdade
    • Ainda assim, como muitos scripts de fingerprint rodam em domínios primários como Cloudflare ou Akamai, bloquear JS por si só não resolve
    • O navegador funciona como um soldado tolo puxando um cavalo de Troia para dentro
    • Bloquear JS completamente não é uma alternativa realista, porque metade da web quebra. E o fingerprinting ainda é possível mesmo sem JS
  • 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ã?

    • Mas, segundo pesquisas, mesmo quando o fingerprint muda ao longo do tempo, ainda dá para inferir que é o mesmo usuário com 99,1% de precisão
      Referências: PDF do estudo da EFF, explicação da Mullvad
    • Na prática, só dá para verificar se certas fontes específicas estão instaladas; não é possível obter a lista completa
      A API queryLocalFonts do Chrome exige um pop-up de permissão
    • Se você enviar um fingerprint irrealista demais, isso pode acabar virando outro fingerprint por causa da detecção de falsificação
      Quadrinho relacionado: xkcd 1105
    • No fim, a ligação acaba sendo refeita por cookies, pelo fingerprint de curva elíptica do handshake SSL e por classificação de personas anônimas baseada em GDPR/CCPA
      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