Você abre um site, espera dois segundos, e um checkmark verde aparece. “Verificação concluída.” Nenhum quebra-cabeça, nenhuma foto de semáforo. Parece mágico. Parece inofensivo. Mas por trás desse checkmark, a Cloudflare acabou de extrair a identidade da sua placa de vídeo, o modelo da sua GPU, as extensões que seu navegador suporta, e criou uma impressão digital quase impossível de falsificar.
O Cloudflare Turnstile — que protege mais de 42 milhões de sites — agora exige acesso completo à API WebGL do seu navegador. Quem bloqueia essa API por privacidade? Bloqueado. Quem usa o Firefox com proteções ativadas? Suspeito. Quem roda WebKitGTK no Linux? Banido completamente.
E a parte mais irônica: quanto mais você se protege, mais “bot” você parece.
A impressão digital que você não autorizou
Fingerprinting é uma técnica antiga. A ideia é simples: coletar detalhes suficientes sobre o navegador e o hardware do visitante para criar um identificador único, sem precisar de cookies. Canvas fingerprinting renderiza formas invisíveis e lê os pixels resultantes. Audio fingerprinting analisa como seu hardware processa ondas sonoras. Mas WebGL fingerprinting vai além — ela entra na GPU.
Quando um site usa WebGL, ele pode consultar diretamente:
- Vendor e renderer — a marca e modelo exato da sua GPU (ex: “NVIDIA Corporation”, “GeForce RTX 4070”)
- Extensões suportadas — lista completa de funcionalidades que o driver expõe
- Precisão de shaders — como a GPU lida com cálculos de ponto flutuante
- Tamanho máximo de textura — varia entre GPUs e drivers
- Renderização de teste — um canvas WebGL renderiza uma cena 3D e lê os pixels, que variam microscopicamente entre hardware diferente
Pesquisadores da Inria e KU Leuven demonstraram que apenas a string do renderer já é capaz de estreitar a identificação para grupos menores que 100 pessoas. Quando combinada com outros sinais — canvas, fontes instaladas, timezone, tamanho da tela — a taxa de identificação única passa de 96%.
Traduzindo: o Turnstile sabe quem você é com mais certeza que um cookie. E você não clicou em “Aceitar” em lugar nenhum.
Como o Turnstile funciona (e por que mudou)
O Cloudflare Turnstile nasceu em 2022 como alternativa ao reCAPTCHA do Google. A proposta era sedutora: verificação sem interação do usuário, sem vender dados para publicidade, sem puzzles irritantes. O slogan era “A CAPTCHA replacement that doesn’t exploit your data.”
Na prática, o Turnstile roda um widget JavaScript invisível que coleta centenas de sinais do navegador. Historicamente, esses sinais incluíam tempo de carregamento, resolução de tela, suporte a APIs, e padrões de movimento do mouse. Mas em algum momento de 2025 para 2026, o WebGL virou obrigatório.
A mudança foi documentada pelo desenvolvedor francês Haelwenn (lanodan) Monnier, que mantém o navegador Badwolf, baseado no WebKitGTK. Ao tentar acessar sites protegidos por Turnstile, ele entrou num loop infinito de verificação. O motivo? O WebKitGTK bloqueia fingerprinting via WebGL por design — uma decisão de privacidade tomada pela equipe do WebKit da Apple anos atrás.
A Cloudflare respondeu com uma lógica circular que vale citar:
“Turnstile uses browser fingerprinting to verify you’re human. Privacy tools that block or randomize fingerprinting make your browser look like a bot.”
Em outras palavras: para provar que você é humano, precisa entregar seus dados de hardware. Se você se recusa, é automaticamente classificado como bot.
20% da internet pode te bloquear agora
Os números assustam. A Cloudflare processa mais de 20% de todo o tráfego de internet global. São 42 milhões de sites. Das 1.000 maiores páginas por tráfego, 375 usam Cloudflare. No top 1 milhão, quase metade — 48,7% — roda por trás da rede deles.
Isso significa que uma decisão técnica tomada por uma única empresa pode efetivamente excluir usuários de quase metade da web relevante. Não é um site obscuro bloqueando um navegador alternativo. É a infraestrutura que sustenta a internet moderna dizendo: “Ou você se deixa rastrear, ou não entra.”
| Métrica | Valor | |
|---|---|---|
| ——— | ——- | |
| Sites usando Cloudflare | ~42 milhões | |
| Participação no tráfego global | 20.4% | |
| Top 1M sites com Cloudflare | 48.7% | |
| Top 1000 sites com Cloudflare | 375 (37.5%) | |
| Market share CDN | 38.5% (maior do mundo) |
E não é como se existissem alternativas fáceis. Se o site X usa Cloudflare Turnstile e seu navegador não passa na verificação, você tem exatamente zero opções. Não tem como resolver o captcha manualmente. Não tem como “pular”. A decisão é binária: aceita o fingerprinting ou vai embora.
Os navegadores que viraram párias
O caso mais absurdo é o dos navegadores baseados em WebKitGTK. Esses são browsers usados primariamente no Linux — como GNOME Web (Epiphany), Badwolf, Surf, e outros. O WebKit implementou proteções contra fingerprinting via WebGL há anos, seguindo a filosofia da Apple de que rastreamento por hardware é inaceitável. Essas proteções não podem ser desativadas facilmente — estão hardcoded no engine.
Resultado? Todos esses navegadores estão permanentemente bloqueados pelo Turnstile. Sem workaround. Sem opção. É como se a Cloudflare tivesse decidido que Linux com WebKit não é um cenário válido.
Mas e o Safari? Afinal, o Safari também usa WebKit. Aqui entra a hipocrisia: a Cloudflare explicitamente permite o Safari, criando uma exceção para o navegador da Apple. Ou seja, a proteção de privacidade do WebKit é respeitada quando vem da Apple (que tem 1,4 bilhão de dispositivos ativos), mas ignorada quando vem de projetos open source menores.
O mantenedor do Cromite — um fork do Chromium focado em privacidade — relatou que a Cloudflare exigiu a assinatura de um NDA (acordo de não-divulgação) para discutir como resolver os problemas de compatibilidade. Ele recusou. A mensagem implícita é clara: privacidade é negociável, e os termos são definidos pela Cloudflare.
O Firefox também tem problemas. A configuração privacy.resistFingerprinting deveria proteger contra esse tipo de rastreamento, mas na prática ela revela informações sobre a GPU que deveriam estar mascaradas. A proteção “Strict” do Firefox não ativa automaticamente essa flag, o que significa que mesmo usuários que se consideram protegidos estão expostos.
“Mas é pra proteger contra bots!”
Esse é o argumento principal da Cloudflare: fingerprinting é necessário para separar humanos de bots. E sim, o problema de bots é real. Administradores de sites relatam que 80-90% do tráfego em alguns endpoints é automatizado. Credential stuffing, scraping agressivo, ataques DDoS na camada de aplicação — tudo isso existe e causa prejuízo.
Mas a comunidade técnica levanta três contra-argumentos demolidores:
1. Fingerprinting para bot detection é indistinguível de vigilância em massa
Os mesmos dados que identificam um bot também identificam um humano. A Cloudflare diz que “não tem capacidade de identificar indivíduos diretamente” a partir dos sinais coletados, mas isso é uma questão de semântica. Se eu sei sua GPU, timezone, resolução, fontes instaladas e extensões do navegador, eu posso te rastrear entre sites mesmo sem saber seu nome.
2. Servidores modernos aguentam o tráfego
Um servidor decente em 2026 lida com milhares de requests por segundo. A maioria dos sites que usam Cloudflare não precisa de proteção contra bots no nível de fingerprinting de hardware. Um rate limiting básico + challenge de JavaScript resolve 95% dos casos. O restante pode ser tratado com proof-of-work — onde o navegador resolve um quebra-cabeça computacional que custa poucos milissegundos para humanos mas inviabiliza automação em escala.
3. Quem paga o preço são os mais vulneráveis
Usuários de hardware antigo, sistemas operacionais alternativos, navegadores de privacidade, e pessoas em regiões com dispositivos limitados são os mais afetados. Como um comentarista no Hacker News resumiu: “É discriminação sistemática contra pessoas mais pobres.” Quem pode pagar por um iPhone 15 com Safari passa pelo Turnstile sem problemas. Quem usa um laptop de 10 anos com Linux é tratado como ameaça.
Proof-of-Work: a alternativa que ninguém adota
A ironia é que existe uma solução técnica que protege contra bots sem exigir fingerprinting: Proof-of-Work (PoW). O conceito é simples — o navegador precisa resolver um cálculo criptográfico antes de acessar o site. Para um humano, isso leva menos de um segundo. Para um botnet tentando enviar milhões de requests, o custo computacional torna o ataque economicamente inviável.
// Exemplo simplificado de PoW no navegador
async function solveChallenge(difficulty, data) {
let nonce = 0;
while (true) {
const hash = await crypto.subtle.digest(
'SHA-256',
new TextEncoder().encode(data + nonce)
);
const hex = Array.from(new Uint8Array(hash))
.map(b => b.toString(16).padStart(2, '0'))
.join('');
if (hex.startsWith('0'.repeat(difficulty))) {
return nonce;
}
nonce++;
}
}
Projetos como o mCaptcha e o Friendly Captcha já implementam PoW de forma prática. Nenhum dos dois precisa saber sua GPU. Nenhum coleta dados de hardware. E ambos são eficazes contra bots.
Mas a Cloudflare não adota PoW como padrão. Por quê? Porque fingerprinting oferece algo que PoW não oferece: persistência. Com um fingerprint, a Cloudflare pode reconhecer que “esse navegador já foi verificado” e liberar acesso futuro sem challenge. Com PoW, cada visita exige um novo cálculo. A conveniência vence a privacidade — como sempre.
Como verificar o que o Turnstile coleta de você
Quer ver com os próprios olhos? Abra o DevTools do seu navegador (F12) em qualquer site com Turnstile e observe as requisições de rede. Ou execute esse snippet no console para ver exatamente o que o WebGL expõe:
const canvas = document.createElement('canvas');
const gl = canvas.getContext('webgl');
if (gl) {
const debugInfo = gl.getExtension('WEBGL_debug_renderer_info');
console.log('Vendor:', gl.getParameter(debugInfo.UNMASKED_VENDOR_WEBGL));
console.log('Renderer:', gl.getParameter(debugInfo.UNMASKED_RENDERER_WEBGL));
console.log('Max Texture Size:', gl.getParameter(gl.MAX_TEXTURE_SIZE));
console.log('Extensions:', gl.getSupportedExtensions().length);
// Shader precision
const hp = gl.getShaderPrecisionFormat(gl.FRAGMENT_SHADER, gl.HIGH_FLOAT);
console.log('Shader Precision:', hp.precision, hp.rangeMin, hp.rangeMax);
}
Se você rodar isso em dois computadores diferentes, os resultados vão ser diferentes. Se rodar em dois computadores idênticos, os resultados vão ser iguais. Esse é exatamente o problema.
Para referência, estes são os sites onde você pode verificar sua exposição ao fingerprinting:
| Ferramenta | O que testa | |
|---|---|---|
| ———— | ————- | |
| BrowserLeaks WebGL | Renderer, vendor, extensões, hash WebGL | |
| AmIUnique | Fingerprint completo (canvas, WebGL, áudio) | |
| Cover Your Tracks (EFF) | Nível de proteção contra fingerprinting | |
| CreepJS | Detecção avançada de spoofing |
O que dá pra fazer (na prática)
Se você usa Firefox, a opção mais direta é ativar privacy.resistFingerprinting no about:config. Mas aviso: isso quebra vários sites e pode mudar a resolução reportada da sua tela. O Firefox 128+ também oferece privacy.fingerprintingProtection como alternativa mais granular, mas os resultados são inconsistentes com o Turnstile.
Se você usa Chromium/Chrome, extensões como uBlock Origin podem bloquear o script do Turnstile, mas aí você simplesmente não acessa o site. Não existe meio-termo no Chromium — é tudo ou nada.
Se você usa Tor Browser, a situação é mista. O Tor roda com resistFingerprinting habilitado por padrão e bloqueia WebGL, mas muitos sites com Cloudflare já bloqueiam Tor diretamente pelo IP da rede onion.
A verdade inconveniente é que não existe solução boa para o usuário final. As opções são:
- Aceitar o fingerprinting e usar a web normalmente
- Bloquear e perder acesso a quase metade dos sites relevantes
- Usar um navegador mainstream (Chrome/Safari) e torcer para que “não identifiquem indivíduos”
Nenhuma dessas opções deveria ser aceitável em 2026.
O problema é maior que a Cloudflare
Seria fácil transformar a Cloudflare em vilã, mas o problema é estrutural. A web moderna criou um ecossistema onde a verificação de humanidade é delegada a intermediários privados. O Google fez isso com o reCAPTCHA por mais de uma década — usando os dados dos puzzles para treinar IA. A Cloudflare prometeu ser diferente, e durante um tempo pareceu ser. Mas fingerprinting obrigatório de hardware é um passo na mesma direção.
O W3C — o consórcio que define os padrões da web — nunca padronizou uma API de verificação de humanidade que preserve privacidade. Os navegadores não implementaram nada equivalente ao Privacy Pass em escala. E enquanto nenhuma solução padronizada existe, cada intermediário inventa a sua, sempre priorizando o lado do site sobre o lado do usuário.
A questão que fica é simples, mas ninguém quer responder: se 20% da internet pode te bloquear por proteger sua privacidade, até que ponto sua privacidade é realmente um direito?
Fonte de inspiração: Cloudflare Turnstile requiring fingerprintable WebGL — lanodan’s cyber-home













