- Um usuário com deficiência visual relatou um problema em que o cookie da conta de acessibilidade do hCaptcha não era definido no Brave, mas a equipe de suporte informou que esse uso de acessibilidade não era suportado e notificou a exclusão da conta e o bloqueio de novo cadastro
- Na época, o hCaptcha oferecia, em vez de CAPTCHA de áudio, uma conta especial que permitia ignorar o desafio de CAPTCHA por meio de um cookie; depois foi acrescentada uma correção informando que uma opção de CAPTCHA em texto foi adicionada em atualizações posteriores
- No Firefox e no Chromium a conta funcionava, mas no Brave o cookie não era definido por cerca de 1 ano, e no console JavaScript o endpoint de set cookie retornava 401 Unauthorized
- A equipe de suporte impediu o uso da conta de acessibilidade por concluir que o usuário não era deficiente visual, e manteve o bloqueio mesmo depois de ele pedir a remoção da restrição afirmando que de fato tinha deficiência visual
- Um sistema que delega acessibilidade a um mecanismo separado de contorno pode excluir usuários reais do serviço no momento em que esse mecanismo passa a ser bloqueado de forma arbitrária
O método de contorno de acessibilidade do hCaptcha
- O hCaptcha é um serviço de CAPTCHA em que o usuário marca uma caixa de seleção e depois precisa escolher imagens específicas, como casas
- Na época, o hCaptcha não oferecia CAPTCHA de áudio para pessoas com deficiência visual, alegando que isso facilitaria a aprovação de bots
- Em vez disso, havia um método de fornecer uma conta especial a pessoas com deficiência visual, definindo um cookie para que não precisassem passar pelo desafio de CAPTCHA
- Depois foi adicionada uma atualização informando que o hCaptcha passou a ter uma opção de CAPTCHA em texto, mas o autor afirma que a crítica central do texto continua válida
O cookie não era definido apenas no Brave
- O usuário usava o Brave como navegador principal, e por cerca de 1 ano a conta de acessibilidade do hCaptcha não conseguia definir o cookie no Brave
- A mesma conta funcionava normalmente em outros navegadores, como Firefox e Chromium
- Seguindo as orientações, ele verificou medidas básicas como permitir cookies de terceiros, mas no Brave o problema persistiu, e a mensagem de erro orientava enviar um e-mail ao suporte caso o problema continuasse
O contato com o suporte levou a suspeitas
- O usuário acabou enviando um e-mail para a equipe de suporte do hCaptcha, e o suporte orientou procedimentos básicos de solução de problemas
- Ao verificar o console JavaScript para restringir a causa do problema, ele informou que no Brave a chamada ao endpoint de set cookie do hCaptcha aparentemente retornava
401 unauthorized - O usuário forneceu essa informação para ajudar o suporte técnico, mas considera que isso pode ter despertado suspeitas na equipe
Exclusão da conta de acessibilidade e bloqueio de novo cadastro
- Durante a conversa com um atendente, outro membro do suporte enviou uma resposta com o seguinte teor
- essa forma de uso não é suportada
- não recebe crédito para o passe de acessibilidade
- todas as contas usadas dessa forma são excluídas do hCaptcha
- se o usuário tentar se cadastrar novamente em uma conta de acessibilidade, será bloqueado
- O usuário ficou confuso, dizendo que não estava fazendo nada proibido, apenas tentando fazer funcionar no Brave
- Depois, o suporte esclareceu que o usuário não deveria usar a conta de acessibilidade por não ser deficiente visual
Depois de afirmar que era de fato deficiente visual
- O usuário declarou que de fato tinha deficiência visual e pediu a remoção do bloqueio, mas o suporte enviou uma resposta padronizada dizendo que manteria o bloqueio da conta
- A conta de fato permaneceu bloqueada, e o usuário disse que, para passar pelo hCaptcha, acabou ficando na situação de ter que violar os termos de serviço e usar um programa automático de resolução
- Isso levou ao alerta de que não se deve confiar que uma empresa que oferece um produto deliberadamente inacessível manterá de forma estável um mecanismo de contorno de acessibilidade separado
- O autor pede que administradores de sites considerem essa experiência se usarem o hCaptcha, e acrescenta que a Cloudflare aparentemente já usa seu próprio sistema
1 comentários
Comentários do Hacker News
Eu também sou deficiente visual, e o hCaptcha é o pior
Como o cookie idiota expira, quase toda vez que encontro um hCaptcha preciso passar pelo processo de receber um e-mail para definir o cookie
É uma experiência de usuário especialmente horrível quando se usam vários dispositivos e navegadores, e acho que outras pessoas simplesmente desistiriam
Bots conseguem resolver com mais facilidade do que pessoas com deficiência visual, ou podem terceirizar isso para trabalhadores do terceiro mundo por quase nada. Ex.: Anticaptcha [0]:
Ele mostra imagens minúsculas que são quase indistinguíveis entre si, e é até impressionante que tenham conseguido torná-lo muito pior que o reCaptcha
Os captchas do Google, na maioria das vezes, me mandam para um loop infinito mesmo depois de resolvê-los corretamente por mais de 3 minutos e sempre falham, enquanto o hCaptcha me deixa passar depois de resolver corretamente só 1 a 3
Eu uso cookies de sessão, mas não há motivo para permitir que alguma empresa plante um cookie no meu sistema só para eu contornar o CAPTCHA idiota deles
Em outras palavras, eu não deveria ter que revelar nada a eles. Não deveria importar se, aos olhos deles, eu sou uma IA
Só pelo título, parece um problema muito menos grave do que realmente é
Segundo o texto, mesmo o autor sendo de fato deficiente visual, o hCaptcha o acusou de forma grosseira várias vezes de estar mentindo, sem fundamento
Não é uma defesa, é uma explicação; ao mesmo tempo, isso também mostra por que a ideia de “não dar a pessoas com deficiência visual um meio de contornar CAPTCHA, mas abrir exceção só para deficientes visuais ‘de verdade’ para cumprir a ADA” é completamente impossível e não escalável
Mesmo algo do tamanho de Google, Facebook ou Amazon teria dificuldade para suportar a carga de um sistema que determina quem é deficiente visual “de verdade”. Isso mesmo ignorando perguntas como o que exatamente define “deficiência visual”
Isso não é algo que deveria virar problema depois de implantado; é uma ideia que deveria ter sido analisada por 5 minutos numa reunião de proposta e barrada antes mesmo de chegar à etapa de design
Se existe, em um ambiente de ataques adversariais intensos, um sistema capaz de determinar perfeitamente uma característica como “quem é deficiente visual”, então ele é algo muito mais valioso do que o próprio sistema de CAPTCHA
Essa ideia só funciona se você já tiver uma solução mais forte do que o problema que o CAPTCHA tenta resolver, então, logicamente, ela não se sustenta desde a base
Alguns captchas estão ficando cada vez mais discriminatórios. Nem todo mundo vive no Ocidente e consegue reconhecer os objetos que o captcha exige
Recentemente vi um que pedia para escolher a forma com o mesmo número de conoids que aparecia na tela; se você perguntar a pessoas na rua o que é um conoid, muita gente vai ficar com cara de paisagem
Pelo menos agora descobri que há quem chame aquelas marcações de crosswalk
Acho que você queria dizer “nem todo mundo mora nos EUA”
Hidrantes, táxis amarelos e ônibus amarelos também não fazem nenhum sentido para mim
Claro, graças ao imperialismo cultural dos EUA por meio de coisas como CAPTCHA, na prática eu sei, já que o mundo todo precisa conhecer as referências culturais americanas
Até hoje não sei até onde devo selecionar o objeto, e semáforo também é ambíguo. Não sei se o poste entra ou não
Motocicletas também são bem difíceis, e uma vez apareceu uma foto cheia de escadas; acho que marquei umas 15 casas
O dicionário do Google diz que é um termo de zoologia para “aproximadamente em forma de cone”, e o painel da Wikipedia diz que, em geometria, é uma superfície regrada que satisfaz certas condições, mas a imagem não é nem um pouco intuitiva
O resultado do Merriam-Webster diz “estrutura em forma de cone, especialmente uma organela celular oca em forma de cone truncado na extremidade anterior de um organismo”
Isso não parece ter nenhuma relação, então cliquei na aba de imagens e só apareceram gráficos complexos estilo Mathematica que não se parecem muito com cones
Outras pessoas nos comentários do HN parecem igualmente perdidas
Você consegue explicar o que viu na tela? O que o captcha achava que era um conoid? Algo como um cone de trânsito?
A primeira lição ao competir com o Google deveria ser “não trate os usuários com mais desprezo do que o Google”. Caso contrário, as pessoas simplesmente usarão o Google
Mesmo que o modelo de negócios seja esse, depender da boa vontade de uma minoria de pessoas que “jamais usam Google” não é um caminho para o sucesso
Enquanto o hCaptcha destrói a própria reputação, o resto do mundo continuará usando reCaptcha e nem se importará com a existência do hCaptcha
Além disso, a grafia é intentional, não “intensional”. Pense como “intent” + “-tion” + “-al”, não “in-” + “tension” + “-al”
No fundo, o autor era inteligente demais para ser deficiente visual
Devem ter pensado: como uma pessoa cega “veria” o console JavaScript?
Claro que “fiz o leitor de tela ler o conteúdo do console JavaScript” é uma formulação meio comprida
Eu também passo por isso com frequência demais. Como estou em um lugar onde eu “não deveria” estar, ou fazendo algo que eu “não deveria” fazer, então dizem que não sou deficiente visual
O experimento do CAPTCHA já deveria acabar logo. Não funcionou
Verificação por número de telefone também não é ótima, mas pelo menos aumenta um pouco o custo do spam. CAPTCHA não. Quase todos os serviços turnkey de CAPTCHA são resolvidos por alguns centavos
Resolver o problema de spam e tráfego malicioso é difícil, e temo que, no fim, isso acabe se reduzindo a três possibilidades
Primeiro, abrir mão do anonimato dos usuários. Se a identidade real for verificada o suficiente, dá para banir indivíduos maliciosos permanentemente e filtrar bots com bastante eficácia, mas o anonimato online desaparece. Na minha opinião, isso é literalmente insustentável
Segundo, fechar a plataforma. Abordagens como Web Environment Integrity e Private Access Tokens pavimentam o caminho para fechar a plataforma web. A maioria dos usuários da web usa Google Chrome ou Safari em dispositivos com Secure Boot, então é possível atestar toda a cadeia de inicialização. Com o tempo, o número de usuários capazes de executar isso vai aumentar
Nesse futuro, a web não continua aberta de forma significativa. As alternativas ficarão cada vez menos úteis e, por exemplo, mesmo que machine learning não chegue à inteligência artificial geral, ele vai superar todos os CAPTCHAs à vista, então é bem provável que fique difícil entrar em sites sem esse tipo de mecanismo
Terceiro, aumentar a responsabilização dos operadores de rede. Gostando ou não, a internet se beneficia muito de operadores em áreas cinzentas, com pouca supervisão ou transparência. Mas outra forma de eliminar tráfego malicioso é impor mais responsabilidade aos operadores de rede e desconectar da internet provedores que não cooperam. Isso também provavelmente é ruim e vai incentivar abuso de poder
Ainda assim, é complicado. O que mais dá para fazer? Mesmo tentando reduzir os incentivos ao tráfego malicioso, é difícil sem diminuir o valor oferecido pelo serviço; e ofuscação pode dificultar o tráfego malicioso, mas é difícil deter um adversário determinado
De qualquer forma, parece que a era da web aberta praticamente acabou. A web aberta pode continuar existindo, mas provavelmente será ofuscada por uma web nova e muito mais fechada
No nosso site, sem CAPTCHA, bots preenchem dezenas de formulários por dia. Com CAPTCHA, isso cai para 0
Embora o custo para quebrar CAPTCHA seja baixo, no nosso site parece que ninguém está disposto a superar essa pequena barreira
CAPTCHA só é útil quando há custo para resolvê-lo. Ele vira um sinal de custo de que esta solicitação vem de uma pessoa real, ou pelo menos de uma entidade maior que um bilionésimo de uma pessoa real. Ou seja, não é um sistema de spam totalmente automatizado
Serviços postais também têm custo. Para enviar algo pelo correio, qualquer pessoa precisa comprar um selo. O custo de transporte é uma forma “natural” de regular tráfego e impedir spam
Usando uma combinação de arquitetura de rede e criptomoedas, seria possível cobrar um custo de transporte por cada tentativa de envio ou tentativa de login. Se cada email de spam ou palpite de login custasse apenas 1 centavo, isso já se tornaria proibitivo para a maior parte do spam totalmente automatizado
O elemento de criptomoeda serviria para permitir transações monetárias semelhantes a selos, preservando ao mesmo tempo o anonimato do acesso a uma carteira pessoal
As redes sociais mataram a USENET, e o email vem administrando o problema de spam graças à filtragem
Também há usuários demais que clicariam em qualquer coisa por uma chance de ganhar um prêmio e, no processo, autorizariam o uso da própria identidade para spam
Coisas como Web Environment Integrity ou Private Access Tokens nunca vão funcionar direito. Isso porque spammers só precisam quebrar um único modelo popular de dispositivo
Quem propõe esse tipo de coisa ou é golpista, ou são empresas de plataforma que querem usar isso como efeito de lock-in. Spammers gastam recursos para quebrar o sistema, mas usuários comuns não toleram inconveniências; no fim, isso acaba bloqueando concorrentes e interoperabilidade
A responsabilização de operadores de rede já acontece em boa parte. Faixas de IP com má reputação são bloqueadas. Mas, quando surge uma botnet de usuários espalhados por vários ISPs, alguns ISPs têm diferentes níveis de disposição para responder; mesmo quando respondem, não conseguem agir imediatamente; e alguns que não se importam estão em jurisdições fora de controle, mas são grandes demais para bloquear
A melhor solução provavelmente é exigir um pequeno pagamento em dinheiro, criptomoeda ou prova de trabalho ao criar uma conta. Usuários comuns só precisam de algumas contas que manterão por muito tempo, mas spammers precisam de grandes volumes de contas que serão bloqueadas quase imediatamente, criando a estrutura de custo assimétrica necessária para um sistema funcional
Mesmo naquela época, era preciso tornar os desafios cada vez mais difíceis para acompanhar o software de reconhecimento
Agora passamos para um terreno em que máquinas conseguem resolvê-los mais facilmente que humanos, então eles se tornaram inúteis para seu propósito original
Infelizmente, a maioria das opções de acessibilidade parece não ter sido feita para ser usada de verdade
Se você é governo ou uma grande empresa, acessibilidade entra nos requisitos básicos. É preciso conseguir dizer “sim, somos acessíveis”; caso contrário, a opinião pública faz barulho
Por isso, removem da lista de fornecedores aqueles que não dizem oferecer acessibilidade. Os fornecedores sabem disso e sempre dizem que oferecem
Mas é uma funcionalidade difícil de fazer bem e se aplica apenas a uma pequena parcela da base de usuários. Cada tipo de deficiência também precisa de suporte diferente. Ninguém da equipe de desenvolvimento entende de fato os requisitos reais
Pessoas que precisam de acessibilidade vão para outro lugar ou resmungam e se viram de algum jeito. Nenhuma das duas coisas aparece nos dashboards de métricas
Essa combinação incentiva shelfware: algo que é comprado e colocado em alguma prateleira, mas que na prática não é usado
Se entendi direito, o problema de acessibilidade criado pela hCaptcha está impedindo o acesso dessa pessoa cega a vários sites?
Isso não poderia criar um problema do ponto de vista da ADA para muitos clientes da hCaptcha?
Se o autor quiser entrar com um processo, isso parece ser quase um caso de vitória óbvia
Os termos de serviço não protegem contra responsabilidade sob a ADA
Não entendo por que CAPTCHA ainda existe
Se alguém quer fazer scraping de alguma coisa ou criar uma automação, não seria melhor simplesmente deixar? De todo modo, a pessoa precisa respeitar o sistema em que está fazendo login
Também há o benefício de privacidade de não expor os visitantes a um serviço de CAPTCHA com dezenas ou mais subprocessadores de dados
Bots criavam milhares de contas falsas usando endereços de e-mail de outras pessoas, e os e-mails de verificação que enviávamos eram denunciados como spam pelos destinatários, já que eles nunca tinham se cadastrado
No fim, o provedor de e-mail suspendeu nossa conta por causa do alto número de denúncias de spam
Eu já coloquei, e em poucos dias bots começaram a enviar spam por aquele formulário
Coloquei um CAPTCHA trivial hardcoded, tipo “2+3=”, mas, se a escala fosse maior, teria sido impossível dar conta
Também é preciso considerar spam em mensagens privadas e criação automatizada de contas para abusar de planos gratuitos
Automação e scraping acabam contornando isso
Se você remover o CAPTCHA de um formulário de login, vai descobrir que todos os dias pega centenas de usuários aos quais precisa enviar e-mails de “por favor, confirme seu endereço de e-mail” sem motivo algum
A crença de que “eles também deveriam respeitar o sistema em que fazem login” é ótima, mas, quando você opera algo na internet, descobre que, intencionalmente ou não, as pessoas batem no sistema até ele cair
Como esses bots não oferecem suporte a CSS, funciona ainda melhor quando combinado com campos de formulário ocultos
Mas, se for um ataque direcionado, no máximo aumenta a taxa de bloqueio de bots de 95% para 99%, fazendo apenas os usuários legítimos sofrerem