Shopping cart

Subtotal $0.00

View cartCheckout

Building better devs

TnewsTnews
  • Home
  • Notícias
  • Fingerprints São os Novos Cookies: Como Sites Te Rastreiam Sem Permissão
Notícias

Fingerprints São os Novos Cookies: Como Sites Te Rastreiam Sem Permissão

Email : 10

Você limpou os cookies, ativou o modo anônimo, ligou a VPN. Pronto, invisível. Certo? Errado. O site que você acabou de abrir já sabe quem você é, e não precisou de nenhum cookie pra isso.

Enquanto a indústria inteira vendia a morte dos cookies de terceiros como uma vitória da privacidade, uma técnica mais silenciosa e mais eficiente tomou o lugar: o browser fingerprinting. Sua placa de vídeo, sua frequência de tela, as fontes instaladas no seu sistema, até a forma como seu processador de áudio renderiza um sinal. Tudo isso junto cria uma “impressão digital” do seu navegador que é quase tão única quanto a sua biológica.

E a parte mais irritante? Não existe um botão “limpar fingerprint”.

O que é browser fingerprinting (e por que você deveria se preocupar)

Cookies são arquivos que o site salva no seu navegador. Você pode apagar, bloquear, ignorar. O fingerprinting não salva nada no seu dispositivo. Em vez disso, ele lê informações que seu navegador já expõe naturalmente e combina tudo numa assinatura única.

Pense assim: se eu te disser que alguém mora no CEP 01310-100, nasceu em 15 de março e é do sexo masculino, parece genérico. Mas pesquisas mostram que a combinação de CEP, data de nascimento e sexo identifica de forma única mais de 60% dos americanos. Com fingerprinting funciona igual: cada dado individual é banal, mas a combinação é letal.

Um script de fingerprinting coleta dezenas de variáveis em milissegundos:

Categoria Dados coletados Bits de entropia
GPU/WebGL Modelo da placa, driver, extensões suportadas 6 a 8 bits
Canvas Hash de renderização de texto e formas ~10 bits
AudioContext Resposta do processador de áudio 4 a 5 bits
Sistema Resolução, densidade de pixels, refresh rate 3 a 5 bits
Fontes Lista de fontes instaladas 5 a 7 bits
Rede Headers HTTP, idioma, timezone 3 a 4 bits

Somando tudo, é fácil ultrapassar 18 bits de entropia numa sessão. Pra contextualizar: 18 bits significam que você é 1 em 262.144 usuários. Junta mais dois ou três sinais (número de threads da CPU, memória RAM, extensões instaladas) e você vira 1 em milhões. Na prática, 83% a 90% dos navegadores desktop já são identificáveis de forma única só com fingerprinting.

Canvas fingerprinting: seu navegador pinta um quadro que te identifica

Essa é a técnica mais clássica e continua funcionando muito bem em 2026. O script cria um elemento invisível, desenha um texto com uma fonte específica, adiciona gradientes e formas geométricas, e depois chama toDataURL() pra extrair os pixels como dados.


// Exemplo simplificado de canvas fingerprinting
const canvas = document.createElement('canvas');
const ctx = canvas.getContext('2d');
ctx.textBaseline = 'top';
ctx.font = '14px Arial';
ctx.fillStyle = '#f60';
ctx.fillRect(125, 1, 62, 20);
ctx.fillStyle = '#069';
ctx.fillText('Browser fingerprint', 2, 15);
ctx.fillStyle = 'rgba(102, 204, 170, 0.7)';
ctx.fillText('Browser fingerprint', 4, 17);

const hash = canvas.toDataURL();
// Cada combinação de GPU + driver + OS + fonte gera um hash diferente

Por que funciona? Porque a renderização de texto e gráficos varia de acordo com o driver da GPU, o sistema operacional, a versão do navegador e o mecanismo de anti-aliasing. Dois computadores com o mesmo modelo de placa de vídeo mas drivers diferentes vão gerar hashes distintos. O canvas hash sozinho já carrega por volta de 10 bits de entropia.

Firefox e Brave já adicionam ruído aleatório ao canvas pra dificultar a identificação. Mas “dificultar” não é “impedir”. Os trackers adaptaram os algoritmos pra filtrar o ruído e ainda conseguir uma assinatura estável.

WebGL: a placa de vídeo que te entrega

Se o canvas fingerprinting é a técnica clássica, o WebGL é o upgrade pesado. A API WebGL expõe um volume absurdo de informações sobre a pilha gráfica do seu computador:

  • Modelo exato da GPU (via WEBGL_debug_renderer_info)
  • Versões de driver e extensões suportadas
  • Precisão de shader (vertex e fragment)
  • Limites de textura, viewport, buffer
  • Quirks de renderização específicas do hardware

Um script mais sofisticado vai além e renderiza cenas 3D específicas, medindo pequenas diferenças no output. Duas GPUs do mesmo modelo mas de lotes de fabricação diferentes podem produzir resultados levemente distintos.


const gl = document.createElement('canvas').getContext('webgl');
const debugInfo = gl.getExtension('WEBGL_debug_renderer_info');

console.log(gl.getParameter(debugInfo.UNMASKED_VENDOR_WEBGL));
// "Google Inc. (NVIDIA)"
console.log(gl.getParameter(debugInfo.UNMASKED_RENDERER_WEBGL));
// "ANGLE (NVIDIA GeForce RTX 4070 Direct3D11 vs_5_0)"

Só o renderer string já é bem específico. Combine com as extensões suportadas e os limites de shader, e são 6 a 8 bits de entropia facilmente.

AudioContext: o fingerprint que você nunca ouviu

Essa é a mais elegante e a menos conhecida. A Web Audio API processa sinais de áudio usando o hardware do seu dispositivo. O truque: a aritmética de ponto flutuante envolvida produz resultados que variam de máquina pra máquina.

O script cria um OfflineAudioContext, gera um sinal com um oscilador, aplica um compressor, e lê a waveform resultante. A saída depende da arquitetura do processador, da implementação do sistema operacional e da versão do navegador. Nenhum som é emitido (é offline), mas a assinatura fica.


const audioCtx = new OfflineAudioContext(1, 44100, 44100);
const oscillator = audioCtx.createOscillator();
const compressor = audioCtx.createDynamicsCompressor();

oscillator.type = 'triangle';
oscillator.frequency.setValueAtTime(10000, audioCtx.currentTime);
oscillator.connect(compressor);
compressor.connect(audioCtx.destination);
oscillator.start(0);

audioCtx.startRendering().then(buffer => {
    const data = buffer.getChannelData(0);
    // Hash dos primeiros samples = fingerprint de audio
    const hash = data.slice(4500, 5000).reduce((acc, val) => acc + Math.abs(val), 0);
    console.log(hash); // Valor unico por dispositivo
});

São “apenas” 4 a 5 bits de entropia, mas combinados com canvas e WebGL, ultrapassam 18 bits. O suficiente pra identificar 1 em cada 262 mil usuários.

Técnicas que sobrevivem ao modo anônimo

Até aqui falei das três grandes. Mas o arsenal de rastreamento em 2026 vai muito além:

Favicon cache tracking

Essa é diabólica. O navegador armazena favicons num cache separado do cache normal (que é limpo no modo anônimo). Um tracker pode redirecionar você por uma sequência de subdomínios, cada um com um favicon diferente. Na próxima visita, o navegador revela quais favicons já estão em cache, reconstruindo seu identificador. Funciona em modo anônimo. Sobrevive a limpeza de cache. Persiste mesmo com VPN.

CNAME cloaking

Ao criar um subdomínio DNS (tipo analytics.seusite.com) que aponta via CNAME para o servidor de um tracker externo, a requisição parece first-party do ponto de vista do navegador. Extensões como uBlock Origin e Privacy Badger não bloqueiam porque “é o mesmo domínio”. Estudos mostram que mais de 10% dos 10 mil maiores sites já usam alguma forma de CNAME cloaking.

Bounce tracking

Você clica num link. Em milissegundos, é redirecionado por um domínio intermediário de tracking. O redirect é tão rápido que você nem percebe, mas o domínio intermediário teve tempo de setar um cookie first-party (porque você “visitou” o domínio). Depois, outro redirect te leva ao destino real. Alguns navegadores como Brave já mitigam isso, mas a técnica ainda funciona no Chrome e no Edge.

Google: o lobo vestido de pastor

Eu sei, parece teoria da conspiração. Mas os fatos são difíceis de ignorar.

O Google liderou a campanha de “fim dos cookies de terceiros” por anos. O Privacy Sandbox, anunciado em 2019, prometia uma web mais privada. Em abril de 2025, o projeto foi oficialmente abandonado. Seis anos de promessas que não deram em nada.

Enquanto isso, o Chrome continua sendo o navegador mais permissivo com fingerprinting. As APIs que expõem dados de GPU, áudio e canvas existem porque foram padronizadas com participação ativa do Google. E o Google Ads? Continua funcionando perfeitamente, agora com fingerprinting como complemento (ou substituto) dos cookies que ele mesmo ajudou a matar.

O resultado é um ecossistema onde players menores perderam acesso a cookies de terceiros, mas o Google, que controla o navegador, o buscador e a maior rede de anúncios do mundo, consegue rastrear tudo usando uma combinação de dados first-party, login do Google e, sim, fingerprinting.

Quanto você expõe? O teste de entropia

Quer ver na prática? O site Cover Your Tracks da EFF analisa seu navegador e mostra exatamente quais dados estão sendo expostos e quantos bits de entropia cada um contribui.

Eu testei com três configurações diferentes:

Navegador Config Bits de entropia Único?
Chrome 130 Padrão, sem extensões 22.4 bits Sim
Firefox 132 Resist Fingerprinting ativo 12.1 bits Parcialmente
Brave 1.73 Shields ativados 10.8 bits Parcialmente
Tor Browser Padrão 8.2 bits Provavelmente não

Chrome padrão: completamente identificável. Nem é surpresa. Firefox com proteções ajuda, mas não resolve. Brave é melhor, mas longe de perfeito. Só o Tor Browser oferece proteção real, padronizando o máximo de valores possível pra que todos os usuários pareçam iguais.

Como se proteger (de verdade)

Vou ser honesto: não existe proteção perfeita fora do Tor Browser. Mas dá pra reduzir bastante a superfície de rastreamento.

Nível 1: o mínimo (fácil)

  • Use Firefox ou Brave no lugar do Chrome. Ambos adicionam ruído ao canvas e limitam acesso ao WebGL debug info.
  • Ative o Resist Fingerprinting no Firefox (privacy.resistFingerprinting = true em about:config). Isso padroniza timezone, resolução reportada e várias outras variáveis.
  • Instale o uBlock Origin. Ele bloqueia scripts conhecidos de fingerprinting e mitiga CNAME cloaking (na versão Firefox com DNS API).

Nível 2: moderado

  • Mullvad Browser: feito pela equipe do Tor Browser em parceria com a Mullvad VPN. Traz as mesmas proteções anti-fingerprinting do Tor mas sem a rede onion (mais rápido).
  • JShelter: extensão que intercepta e randomiza APIs de fingerprinting (Canvas, WebGL, AudioContext, WebRTC).
  • Desative WebGL quando não precisar: webgl.disabled = true no Firefox.

Nível 3: sério

  • Tor Browser pra navegação sensível. Ponto. Nenhuma extensão é tão eficaz quanto proteção no nível do engine.
  • Compartimentalize: use navegadores diferentes pra atividades diferentes. Um pro dia a dia logado, outro pra navegação “limpa”.
  • Use VMs ou containers pra isolar sessões que não devem ser correlacionadas.

O que os navegadores estão fazendo (ou não)

Safari foi pioneiro em bloquear cookies de terceiros e adicionou proteções contra fingerprinting no ITP (Intelligent Tracking Prevention). Mas o Safari no iOS ainda tem limitações sérias porque a Apple força todos os navegadores no iOS a usarem o WebKit (pelo menos até a DMA na Europa começar a mudar isso).

Firefox tem o Resist Fingerprinting, que é poderoso mas quebra alguns sites. A abordagem deles é promissora: em vez de bloquear APIs, retornam valores padronizados.

Brave é agressivo com bloqueio de scripts, randomização de fingerprints e detecção de bounce tracking. Talvez o melhor equilíbrio entre usabilidade e privacidade no desktop.

Chrome? O Google adicionou mitigações de bounce tracking e particionamento de storage, mas continua expondo canvas, WebGL e AudioContext sem proteção significativa. Considerando que o Chrome tem 65% do mercado de navegadores, a maioria dos usuários está exposta.

A ironia do Privacy Sandbox

Vale parar e refletir sobre o que aconteceu. O Google gastou seis anos vendendo o Privacy Sandbox como a solução pro rastreamento na web. A proposta era substituir cookies de terceiros por APIs “privadas” como Topics (que agrupava seus interesses em categorias genéricas) e Attribution Reporting (que media conversões sem identificar indivíduos).

Reguladores europeus desconfiaram. A indústria de ads resistiu. Desenvolvedores reclamaram da complexidade. E em 2025, o Google desistiu.

O resultado prático? Cookies de terceiros ainda existem no Chrome. Fingerprinting cresceu exponencialmente como alternativa. E as ferramentas do Privacy Sandbox que sobreviveram (CHIPS, FedCM, particionamento de rede) são úteis, mas não resolvem o problema central: o navegador continua vazando dados suficientes pra identificar você.

O futuro do fingerprinting: pior antes de melhorar

Com a proliferação de dispositivos IoT, smartwatches, TVs conectadas e óculos de realidade aumentada, a superfície de fingerprinting só tende a crescer. Cada novo sensor, cada nova API, é mais um vetor de identificação.

O lado positivo? Reguladores estão acordando. O GDPR já classifica fingerprints como dados pessoais. A Californian Privacy Rights Act (CPRA) exige opt-out de tracking. E a próxima onda de legislação (ePrivacy Regulation na UE) deve endurecer ainda mais.

Mas legislação sem enforcement é decoração. E o enforcement, historicamente, chega tarde.

Por enquanto, a melhor defesa ainda é individual. Conheça as ferramentas, entenda o que seu navegador expõe, e faça escolhas conscientes. O site que você está visitando agora provavelmente já coletou sua fingerprint enquanto você lia este parágrafo.

Aquele banner de “Aceitar cookies” que aparece em todo site? Já era. A nova pergunta deveria ser: “Podemos ler a impressão digital do seu navegador?”. Mas ninguém vai te perguntar isso.

—

Fonte de inspiração: Fingerprints are the new cookies (Roy Fish)

Leave a Reply

Your email address will not be published. Required fields are marked *

Related Posts