CAPTCHA no cadastro: o que ele para e o que custa

AnáliseUNIFOKAL8 min de leituraAntifraude
Ver em Markdown

O CAPTCHA barra automação barata, não o atacante que paga por resolução humana. O que o W3C e a WCAG 2.2 dizem, o custo em conversão e quais alternativas de desenho usar.

Quase todo formulário de cadastro tem um quadradinho pedindo para o usuário provar que é humano, e essa decisão raramente é revisitada: entrou uma vez, ficou. O custo dele nunca aparece no mesmo relatório em que aparece o benefício, porque o benefício é contado em bots bloqueados e o custo é contado em gente que desistiu no meio do caminho e nunca reclamou.

Este artigo trata o CAPTCHA como o que ele é: uma escolha de desenho, com uma faixa estreita de ameaça que resolve bem e duas contas que cobra caro, uma em acessibilidade e outra em conversão. A sigla é Completely Automated Public Turing test to tell Computers and Humans Apart, teste de Turing público e automatizado para distinguir computadores de humanos.

A conta interessa a quem opera cadastro de fintech, marketplace ou casa de apostas, em que o funil de entrada é o funil de receita, e a quem responde por acessibilidade digital, porque nesse ponto a norma internacional é explícita.

O que o CAPTCHA realmente para

O CAPTCHA foi desenhado contra um adversário específico: o script que roda sozinho, em volume, sem humano no circuito. Contra esse adversário ele funciona bem, porque um bot de formulário que não sabe ler imagem distorcida custa quase nada para escrever e, por isso mesmo, é barato de barrar. Essa linha de baixo do problema está tratada em ataques de automação em cadastro.

O adversário que importa é outro. Em 2010, Motoyama e coautores publicaram na USENIX Security o trabalho "Re: CAPTCHAs, Understanding CAPTCHA-Solving Services in an Economic Context", medindo o mercado de serviços que resolvem CAPTCHA sob encomenda. Os números são diretos: havia serviços com preço de varejo a partir de um dólar por mil resoluções; a taxa de acerto da maioria dos serviços medidos ficou entre 86% e 89%; e o tempo mediano de resposta foi de 14 segundos, com terceiro quartil em 20 segundos, dentro da janela de sessão da maioria dos sites. Os autores resumem a consequência: a segurança do CAPTCHA vira questão econômica, o custo da resolução contra o valor do ativo protegido.

A conclusão estrutural é o que interessa: contra automação barata, o CAPTCHA é barreira real; contra um atacante que monetiza a conta em dezenas ou centenas de reais, é linha de custo desprezível. Nenhum ajuste de dificuldade resolve isso, porque a dificuldade que sobe para o atacante sobe igual para o cliente legítimo, e só um dos dois está sendo pago para atravessar.

A conta da acessibilidade

Aqui não há espaço para opinião, porque o próprio W3C escreveu o documento. A nota "Inaccessibility of CAPTCHA: Alternatives to Visual Turing Tests on the Web", publicada como W3C Group Draft Note em 16 de dezembro de 2021 pelo Accessible Platform Architectures Working Group, afirma que a natureza da tarefa interativa exclui inerentemente muitas pessoas com deficiência, resultando em negação de serviço a esses usuários. O documento recomenda priorizar abordagens não interativas e, quando o desafio interativo for inevitável, oferecer modalidades alternativas.

A norma vai junto. O critério 1.1.1 Non-text Content das WCAG 2.2, nível A, exige que quando o conteúdo não textual serve para confirmar que quem acessa é pessoa e não computador, haja alternativa textual identificando o propósito e formas alternativas de CAPTCHA usando modos de saída para diferentes tipos de percepção sensorial. Só a imagem não basta no nível A, o mais básico da escala.

As WCAG 2.2 acrescentaram o critério 3.3.8 Accessible Authentication (Minimum), nível AA, que proíbe exigir teste de função cognitiva em qualquer etapa de autenticação, salvo se houver alternativa, mecanismo, reconhecimento de objeto ou conteúdo pessoal. O documento de entendimento do W3C define teste de função cognitiva como tarefa que exige lembrar, manipular ou transcrever informação, e é explícito num ponto que pega muita implementação: se o desafio exige transcrição, oferecer opção em áudio não satisfaz a exceção. Reconhecimento de objeto é exceção em AA, mas deixa de ser em AAA. O 3.3.8 fala de autenticação, não de cadastro em geral, mas produtos usam o mesmo componente nos dois lugares. O tema está em acessibilidade em verificação de identidade.

A conta da conversão

O CAPTCHA é atrito puro: tempo gasto, chance de errar, chance de repetir. Cada repetição é uma oportunidade nova de abandono, e o abandono no topo do funil é invisível porque a pessoa nunca virou registro. Não existe número público universal de queda de conversão por CAPTCHA, e não vale inventar um: a métrica válida é a sua, e a forma de medir está em funil de verificação: onde o usuário desiste.

O teste honesto compara duas taxas na mesma coorte: quantas tentativas automatizadas o desafio barrou e quantos cadastros legítimos a mais entraram quando ele saiu daquele passo. Sem esses dois números, o CAPTCHA está no produto por inércia.

Quatro alternativas de desenho

Nenhuma é substituta universal. São camadas, e a maioria dos produtos precisa de mais de uma.

Desafio invisível por sinal de comportamento. Em vez de pedir uma tarefa, o sistema observa como o formulário é preenchido e só escala para desafio explícito quando o padrão destoa. O usuário legítimo nunca vê nada. O cuidado é de proteção de dados: coleta de sinal comportamental é tratamento de dado pessoal e precisa de base legal, finalidade declarada e minimização.

Atestação criptográfica de cliente. A família Privacy Pass, descrita na RFC 9576 (The Privacy Pass Architecture, Informational, junho de 2024), com o esquema de autenticação HTTP na RFC 9577 e os protocolos de emissão na RFC 9578, permite que o cliente apresente tokens não rastreáveis atestando propriedade verificada antes, sem identificar quem é. A nota do W3C cita Privacy Pass porque ele reduz drasticamente o número de desafios interativos. O limite prático é a cobertura: depende do navegador e do emissor.

Limite de taxa. Banal e subestimado. Teto por endereço de origem, por faixa, por dispositivo, por documento tentado, com janela deslizante. Não distingue humano de máquina, e não precisa: distingue volume normal de volume anormal, que é o que o ataque em escala produz.

Prova de trabalho no cliente. Custo computacional pequeno para uma requisição e caro para dez mil. É invisível e não discrimina por capacidade sensorial, mas pune aparelho antigo e bateria fraca, então precisa ser calibrado para baixo.

A regra de onde colocar o atrito

A regra que resume o artigo: atrito não vai no primeiro passo. É ali que o usuário ainda não investiu nada e o custo de desistir é zero, então todo obstáculo colocado nesse ponto é pago pela base inteira, inclusive por quem nunca representou risco.

Atrito bem colocado é condicionado e tardio. Condicionado porque só aparece quando um sinal justifica. Tardio porque quem já preencheu dados, recebeu um código e subiu um documento tolera um passo a mais. E o atacante que chegou até ali já gastou mais do que gastaria com mil resoluções de CAPTCHA. É a lógica de escalonamento por risco discutida em onboarding digital e fraude, e a que orienta o desenho da esteira na UNIFOKAL, por exemplo, em que o passo pesado só entra quando o caso pede. A sequência do fluxo está em como funciona.

Perguntas frequentes

CAPTCHA é proibido pelas WCAG?

Não. O critério 1.1.1 das WCAG 2.2, nível A, permite CAPTCHA desde que haja alternativa textual descrevendo o propósito e formas alternativas usando modos de percepção sensorial diferentes. A nota do W3C "Inaccessibility of CAPTCHA" recomenda priorizar abordagens não interativas, porque mesmo o CAPTCHA conforme continua excluindo parte dos usuários.

Oferecer a versão em áudio resolve o problema de acessibilidade?

Ajuda, mas não fecha a conta. O documento de entendimento do W3C sobre o critério 3.3.8, nível AA, é explícito: se o desafio exige transcrição, a opção em áudio não satisfaz a exceção. E a versão em áudio não atende quem tem perda auditiva.

Vale manter CAPTCHA se ele pode ser resolvido por serviço humano?

Vale quando a ameaça dominante é automação barata em volume, e não vale quando o ativo protegido paga com folga o custo da resolução terceirizada. É comparação de preços, não de tecnologia.

Fontes citadas

  • W3C, "Inaccessibility of CAPTCHA: Alternatives to Visual Turing Tests on the Web", W3C Group Draft Note de 16 de dezembro de 2021: https://www.w3.org/TR/turingtest/
  • W3C, WCAG 2.2, critério 1.1.1 Non-text Content (nível A): https://www.w3.org/TR/WCAG22/
  • W3C, Understanding SC 3.3.8 Accessible Authentication (Minimum), nível AA: https://www.w3.org/WAI/WCAG22/Understanding/accessible-authentication-minimum.html
  • IETF, RFC 9576, The Privacy Pass Architecture (Informational, junho de 2024): https://www.rfc-editor.org/rfc/rfc9576.html
  • IETF, RFC 9577, The Privacy Pass HTTP Authentication Scheme: https://www.rfc-editor.org/rfc/rfc9577.html
  • IETF, RFC 9578, Privacy Pass Issuance Protocols: https://www.rfc-editor.org/rfc/rfc9578.html
  • Motoyama, Levchenko, Kanich, McCoy, Voelker e Savage, "Re: CAPTCHAs, Understanding CAPTCHA-Solving Services in an Economic Context", USENIX Security Symposium, 2010