Kajuzinho

Por que eu detesto captchas

Hoje, mais uma vez, esbarrei com um captcha da hCaptcha. Hoje, mais uma vez, fiquei trancado de fora de um software por causa da hCaptcha. Hoje, mais uma vez agradeço à hCaptcha por tornar o mundo mais inacessível.

Dessa vez, fiquei trancado de fora do Letterboxd, que eu queria muito experimentar, já que pretendo assistir mais filmes. A vez antes dessa foi o Neocities, que era uma das minhas opções pra fazer esse blog aqui. Fico muito grato por não ter dado certo, inclusive. E antes disso foi o site da Receita Federal. Eu precisava consultar meu CPF, e nem isso eu consegui fazer por causa da hCaptcha.

Os problemas de acessibilidade do hCaptcha

Captchas são terríveis por essência, mas a hCaptcha se esforça pra tornar um inferno a vida de quem não pode resolver o desafio visual. O produto deles oferece alternativas em áudio e em texto, além de um cookie de acessibilidade, que torna o processo de verificação direto.

A alternativa em áudio é conceitualmente similar ao desafio de imagem. Você deve identificar, a partir de uma instrução, algum aspecto do áudio e escrever na caixinha. Ele parece show de bola, quando você considera pessoas cegas ou com baixa visão, mas e as pessoas surdocegas? Elas não conseguem acessar nem o desafio principal, nem o alternativo.

E aí que entra a alternativa em texto. Essa é um pouco diferente, porque ela exige raciocínio lógico. Ela te oferece perguntas razoavelmente simples, como "uma carpa é um boi?". Mas até o razoavelmente simples pode ser exaustivo pra algumas pessoas.

Entretanto eles estão, na teoria, em conformidade com a WCAG 2.2 nível A, especificamente citando o critério 1.1.1:

Se a finalidade do conteúdo não textual for confirmar que o conteúdo está sendo acessado por uma pessoa e não por um computador, então devem ser fornecidas alternativas textuais que identificam e descrevem a finalidade do conteúdo não textual. Formas alternativas de CAPTCHA, que utilizam modos de saída para diferentes tipos de percepção sensorial, devem ser apresentadas para atender diferentes deficiências. - [Diretrizes de Acessibilidade para Conteúdo Web (WCAG) 2.2

Porém isso é na teoria, porque os implementadores podem desativar ambas as opções alternativas, deixando só o desafio visual e o cookie, e frequentemente desativam mesmo. Com a popularização das LLM, ficou muito fácil burlar esses desafios de texto, e os desafios de áudio também não ficam muito pra trás se você souber blambers suficientes.

O mais curioso é que o mesmo se aplica aos captchas visuais, mas por algum motivo, todo mundo finge que eles de fato são uma boa opção pra validar que o recurso tá sendo usado por um humano.

O que resta é o cookie de acessibilidade. Spoiler: não existe cookie de acessibilidade. Não existe nenhum indicador de que eu uso um leitor de telas ou um tap strap ou o que seja. E isso é intencional, justamente pra evitar abusos desse tipo de informação e proteger a privacidade dos usuários. A deficiência é do usuário, a tecnologia assistiva e as estratégias adaptativas também. Ele escolhe o que fazer com essas informações.

A solução que a hCaptcha encontrou foi criar um cookie deles mesmos. Funciona assim: você faz um cadastro no site deles e clica no botãozinho pra definir o cookie. Depois, na página que você quer acessar e tá protegida pelo hCaptcha, você só clica na opção de pular o desafio recuperando o cookie e pronto. Mas pera aí, esse é um cookie de terceiros, né? E ele vem associado a um cadastro que você faz no site deles, consequentemente, é um identificador de que você é você.

Isto é, pra efeitos práticos, um rastreador fantasiado de recurso necessário, se aproveitando de uma barreira de acessibilidade criada pelos próprios captchas. E em teoria, qualquer site consegue ter acesso a esse cookie a partir do momento que ele foi definido e você deixa cookies de terceiros habilitados.

Recentemente inclusive, a hCaptcha começou a solicitar verificação por número de telefone, o que cria mais uma associação entre você, seu endereço de e-mail, seu telefone e seus hábitos na web. E eu tenho dúvidas sobre o uso que eles fazem desses dados. Nenhuma política de privacidade me faz acreditar que eles não vão vender meus dados pra algum broker.

A raiz do problema

A grande questão é que os captchas sempre estão dando murro em ponta de faca, sempre tentando ficar à frente dos avanços tecnológicos. Visão computacional não era algo prático duas décadas atrás, então usar imagens como forma de validar habilidades humanas era funcional, embora inacessível. Então vieram os áudios como alternativas, porque processamento de áudio e reconhecimento de fala também não eram habilidades que computadores tinham. E ainda assim, há barreiras de acessibilidade pra alguns usuários. E agora surgiram com os captchas que são um quebra-cabeças, e você deve deslizar pecinhas pros lugares certos. Isso deve ser péssimo pra quem tem coordenação motora comprometida, eu presumo.

Acontece que enquanto tentamos encontrar habilidades humanas básicas e universais, excluímos algumas pessoas, porque humanos tem habilidades diversas desde os primórdios da nossa espécie. Nós só insistimos em fingir que todos somos perfeitos, e insistimos em esconder, matar, marginalizar e dar a outra face pra pessoas com deficiência por tempo demais, e agora estamos nesse lugar de não conseguir conceber a ideia de que alguém tem uma habilidade diferente das nossas. É como as pessoas ficando horrorizadas quando se dão conta que ter duas pernas é ter mais pernas que a média da população mundial.

E junto disso, os avanços em inteligência artificial e aprendizagem de máquina tenta quebrar as barreiras da nossa compreensão, programando computadores pra fazerem o que tradicionalmente era visto como habilidade humana. Processamento de áudio, raciocínio, linguagem, memória, movimentos físicos, fala, visão computacional... E praticamente a cada dia nós descobrimos que não somos nada além de máquinas feitas de carne com especificações misteriosas.

A alternativa

Ok, mas como resolver o problema? Uma alternativa funcional e acessível são os captchas baseados em PoW (proof of work). É uma relação aluno-professor entre o cliente e o servidor.

O professor quer garantir que o aluno pode passar de ano, então ele dá uma prova, só um cálculo bastante complexo pro aluno resolver. O aluno então resolve dentro do tempo limite estabelecido pelo professor, entrega o resultado, e se tudo estiver correto, o professor permite que o aluno continue seus estudos. E cada vez que o aluno tenta avançar mais um ano, o professor pede uma prova mais complexa. Até o ponto que não vai ser mais possível que o aluno resolva com seu pobre cérebro de aprendiz.

A analogia ilustra que o cliente resolve desafios solicitados pelo servidor sempre que tenta acessar um recurso protegido pelo captcha. Porém, quanto mais ele insistir em acessar aquele recurso, mais complexos ficam os desafios. Esses desafios são puramente computacionais, e não medem nenhuma habilidade sensorial ou cognitiva humana, não ferem a privacidade em seu conceito e não prejudicam a usabilidade ou acessibilidade.

A primeira implementação que eu vi de um captcha desse tipo foi o Verity, que se baseia no Altcha. Outras alternativas existem, como o Cloudflare Turnstyle e o ReCaptcha da Google, mas ambos fazem fingerprinting e rastreamento, e levando em conta o recente fiasco da Cloudflare inutilizando quase a Internet inteira, eu optaria por correr de qualquer software produzido por ela.

Conclusão

Muitas barreiras de acessibilidade surgem a partir não da inabilidade de inovar, mas sim da insistência em manter velhas metodologias disfuncionais e da falta de investimento de verdade em acessibilidade. Não é apenas sobre eu, cego, conseguir acessar o site da Receita Federal. Captchas são uma péssima experiência de usuário pra todo mundo, e se conseguimos construir a Internet, vamos construir uma Internet que seja confortável pra todos com toda a sua diversidade de habilidades.

#Acessibilidade