- A verificação de dispositivo “Verify you're human” do Cloudflare Turnstile está entrando em loop infinito em navegadores baseados em WebKitGTK desde cerca de uma semana atrás
- A causa direta que está bloqueando o acesso a vários sites parece ser o comportamento do Cloudflare de tentar obter a impressão digital do dispositivo por meio de WebGL
- A mensagem do Turnstile afirma que usa coleta de impressão digital do navegador para verificar se é uma pessoa, e que ferramentas de bloqueio ou aleatorização podem fazer o navegador parecer um bot
- O WebKit vem bloqueando esse tipo de recurso há anos, e isso não parece ser uma opção de privacidade que o usuário possa desativar facilmente
- Enquanto se supõe que haja uma exceção para o Safari, todos os navegadores WebKitGTK estão sendo bloqueados, e usuários com proteções de privacidade do Firefox também podem ser afetados
Verificação Turnstile em loop no WebKitGTK
- A verificação de dispositivo “Verify you're human” do Cloudflare Turnstile está entrando em loop infinito em navegadores baseados em WebKitGTK desde cerca de uma semana atrás, bloqueando o acesso a vários sites
- A causa do bloqueio de acesso parece ser o comportamento do Cloudflare de tentar obter a impressão digital do dispositivo por meio de WebGL
- O texto informativo do Turnstile afirma que usa coleta de impressão digital do navegador para verificar se é uma pessoa
- Ferramentas de privacidade que bloqueiam ou aleatorizam a coleta de impressão digital podem fazer o navegador parecer um bot tentando ocultar sua identidade
- O WebKit vem bloqueando esse tipo de recurso há anos, e isso não parece ser uma função de privacidade que possa ser facilmente desativada
- Enquanto se supõe que o Cloudflare tenha feito uma exceção para o Safari, todos os navegadores WebKitGTK acabaram ficando bloqueados
Comportamento de proteção relacionado no Firefox
- A proteção contra coleta de impressão digital via WebGL no Mozilla Firefox tem o problema Bugzilla#1916271: Gecko reveals sanitized GPU Characteristics; webkit and blink return hardcoded strings for all users
privacy.resistfingerprintingnão é ativado mesmo ao selecionar “Strict” e “Enhanced Privacy Protection” nas configurações- Usuários do Firefox voltados à privacidade que ativaram
privacy.resistfingerprintingmanualmente podem, no futuro, não conseguir passar pela verificação de dispositivo do Cloudflare
1 comentários
Comentários do Hacker News
A Cloudflare é conhecida por usar coleta de impressão digital do navegador para detectar scrapers. Por exemplo, ela compara a impressão digital JA3 com o user agent para bloquear coisas como cURL e permitir OkHttp (cliente Android), mas isso pode ser facilmente disfarçado com pacotes como o CycleTLS [1]
Não quero defender isso, já que “proteção contra bots” acaba bloqueando uma grande parte da internet, mas se não for usar prova de trabalho (PoW), a coleta de impressão digital pode ser um método realista, e o resultado é destruir completamente a privacidade de todos os envolvidos
O Cromite, um fork do Chromium para Android focado em privacidade, vive tendo problemas com o Cloudflare Turnstile [2], porque a Cloudflare coleta impressões digitais de várias formas para deixar o desafio passar
Para resolver isso, seria preciso entrar no programa Cloudflare Browser Developer, que exigia assinatura de NDA, e parece justo que o mantenedor do projeto tenha recusado
Se quiser ver até onde a Cloudflare vai na coleta de impressão digital do navegador, basta olhar na issue [2] quais flags precisam ser desativadas para conseguir passar pelo desafio. No mínimo, acho que a Cloudflare poderia ser flexível o bastante para substituir por prova de trabalho em vez de simplesmente impedir pessoas de enviar formulários ou acessar sites
[1]: https://github.com/Danny-Dasilva/CycleTLS
[2]: https://github.com/uazo/cromite/issues/2365
Dar reputação a IPs residenciais e faixas comerciais também pode ser outra forma de alcançar o resultado desejado. Isso faria os provedores tomarem muito mais cuidado com abuso de IP, mas nesse caso os negócios de DDoS dos dois lados, atacantes e defensores, também poderiam desmoronar
Ironicamente, há muitas empresas que investem tanto em criar seus próprios bots quanto em bloquear bots de outras empresas
Se forem 2 segundos com carga de 5 W, isso dá 0,002 Wh, e como também precisa funcionar em smartphones, não daria para exigir uma prova de trabalho de dezenas de segundos. Mesmo com 8 bilhões de verificações por dia durante 1 ano, isso daria 8 GWh
Existe um motivo para
privacy.resistfingerprintingnão ser ativado mesmo quando se escolhe “Strict” em “Enhanced Privacy Protection”. Eu usei isso por bastante tempo, mas os sites quebravam de formas estranhas, então eu sempre precisava desligar e criar exceçõesEm certos sites, o tratamento de fuso horário ficava quebrado, e por pouco não perdi compromissos algumas vezes. Para avisar ao usuário que não é o Firefox que está quebrado, seria preciso algo como um banner permanente dizendo “se sites quebrarem, aparecerem glitches estranhos, o horário do seu computador parecer errado, a fonte ficar esquisita ou vídeos às vezes não carregarem, clique aqui para desativar a proteção contra fingerprinting”
Curiosamente, o Turnstile quebra com
resistfingerprinting, mas funciona comfingerprintingProtection. Este último parece ter levado esse tipo de situação lixo em consideraçãoNa configuração Strict, eu até espero algum nível de quebra de site, mas não espero que os caminhos de rastreamento continuem totalmente abertos. Parece enganoso
Eu mantenho um navegador de nicho[0], e vários usuários vêm enfrentando esse problema há algumas semanas[1]. No momento eu não trato isso como bug do navegador, mas claro que pode haver algum bug relacionado, e seria bom ter mais gente olhando; preciso de ideias e ajuda para melhorar ou mitigar a situação
[0]: https://konform-browser.codeberg.page/
[1]: Não sei se é a maioria ou todos. Estou dependendo de relatos de usuários e testes próprios, sem telemetria
“Se descobriram que você está se disfarçando, é porque você não se disfarçou bem o suficiente.”
Essa guerra idiota contra bots vai levar ao colapso da internet e acabar transformando tudo em mais um jardim murado onde só agentes hostis ao usuário “aprovados” serão permitidos. Não caiam nesse papo furado de “scrapers de IA”. É só um meio de fabricar consentimento
Google e Cloudflare fizeram algum acordo para dificultar o uso de navegadores que não sejam Chrome? A pressão para usar Chrome só aumenta, e o que dá para filtrar de anúncios no Chrome só diminui
Se você esconde alguma coisa, é automaticamente classificado do lado dos “agentes que têm motivo para esconder algo”
Para ser claro, esse é o problema central. Como uma parte tão grande da internet passa pela Cloudflare, deveria haver sinais alternativos suficientes para demonstrar, com mais força do que um sinal específico, que você não é um agente malicioso
Só que, como quase não existem usuários com a mesma configuração dentro da base, pode demorar muito até surgir uma solução real
Dizem “parece que você quer esconder sua identidade”, mas eles nunca tiveram o direito de exigir isso para começar
Eu não conhecia
privacy.resistfingerprinting, mas daqui para frente vou deixar todos os Cloudflare Turnstile falharemA configuração
privacy.resistfingerprintingé para o Tor BrowserEla também vem ativada por padrão no Konform Browser e no Mullvad Browser, que trazem muitos dos patches de privacidade e segurança do Tor Browser
Gosto daquele ditado ligado ao crime: se X% da população está violando uma certa lei, então o certo é abolir essa lei. Drogas recreativas são um exemplo óbvio
Se o rendering aleatório de canvas era tratado como comportamento de bot, mas agora todo mundo que usa Firefox faz isso, então talvez a Cloudflare também devesse simplesmente “legalizar” isso, não?