Os CAPTCHAs e reCAPTCHAs determinam se um usuário é realmente um bot. Embora possam ajudar a interromper as atividades de bots mal-intencionados, esses testes estão longe de ser infalíveis.
Após ler este artigo, você será capaz de:
Conteúdo relacionado
Assine o theNET, uma recapitulação mensal feita pela Cloudflare dos insights mais populares da internet.
Copiar o link do artigo
O teste de CAPTCHA é projetado para determinar se um usuário on-line é realmente um ser humano e não um bot. "CAPTCHA" é um acrônimo que significa "Teste de Turing Público Totalmente Automatizado para Diferenciar Computadores de Humanos". Os testes de CAPTCHA e reCAPTCHA que os usuários encontram com frequência na internet são uma forma de gerenciamento das atividades de bots, embora essa abordagem tenha algumas desvantagens.
Embora sejam projetados para bloquear bots automatizados, os CAPTCHAs propriamente ditos também são automatizados. São programados para surgir em determinados lugares de um site e aprovam ou reprovam os usuários automaticamente.
Os CAPTCHAs clássicos, que são usados até hoje em algumas propriedades da internet, solicitam aos usuários que identifiquem algumas letras. As letras aparecem distorcidas para que os bots não possam identificá-las. Para serem aprovados no teste, os usuários precisam interpretar o texto distorcido, digitar as letras corretas em um campo de formulário e enviar o formulário. Se as letras não estiverem corretas, os usuários serão solicitados a tentar novamente. Esses testes são comuns em formulários de login, formulários de cadastramento de contas, buscas on-line e nas páginas do caixa de comércio eletrônico.
A ideia é que um programa de computador, como um bot, não será capaz de interpretar as letras distorcidas, enquanto um ser humano, que é usado para ver e interpretar letras em diversos tipos de contextos — fontes diferentes, diferentes caligrafias etc — será, de modo geral, capaz de identificá-las.
O melhor que muitos bots são capazes de fazer é digitar algumas letras aleatórias, o que torna estatisticamente improvável que sejam aprovados no teste. Assim, os bots são reprovados e ficam impedidos de interagir com o site ou aplicação, enquanto os humanos podem continuar a usá-los normalmente.
Os bots avançados são capazes de usar o aprendizado de máquina para identificar essas letras distorcidas, portanto esses tipos de testes com CAPTCHA estão sendo substituídos por testes mais complexos. O reCAPTCHA do Google desenvolveu vários outros testes para distinguir os usuários humanos de bots.
O reCAPTCHA é um serviço gratuito que o Google oferece como substituto dos CAPTCHAs tradicionais. A tecnologia reCAPTCHA foi desenvolvida por pesquisadores da Universidade Carnegie Mellon, que foi adquirida pelo Google em 2009.
O reCAPTCHA é um tipo de teste mais avançado que os CAPTCHA típicos. Como o CAPTCHA, alguns reCAPTCHAs exigem que os usuários insiram imagens de texto que os computadores têm dificuldade de decifrar. Diferentemente dos CAPTCHAs comuns, o reCAPTCHA origina o texto a partir de imagens do mundo real: fotos de endereços físicos, textos de livros impressos, textos de jornais antigos e assim por diante.
Ao longo do tempo, o Google expandiu a funcionalidade dos testes de reCAPTCHA para que não precisem mais depender do jeito antigo de identificar textos desfocados ou distorcidos. Os outros tipos de testes reCAPTCHA incluem:
De modo geral, para cada teste de reCAPTCHA com reconhecimento de imagens 9 ou 16 imagens quadradas são apresentadas aos usuários. As imagens podem ser todas parte de uma mesma imagem grande ou ser cada uma diferente. O usuário precisa identificar as imagens que contêm determinados objetos, como animais, árvores ou placas de rua. Se corresponder às respostas da maioria dos outros usuários que foram submetidos ao mesmo teste, a resposta será considerada "correta" e o usuário será aprovado no teste.
Distinguir determinados objetos em fotos desfocadas é um problema de difícil solução para os computadores. Até mesmo programas de inteligência artificial (IA) costumam ter dificuldades com isso, então um bot terá o mesmo problema. No entanto, um usuário humano pode fazer isso com relativa facilidade, já que os humanos estão acostumados a perceber objetos cotidianos em todos os tipos de contexto e situações.
Alguns testes de reCAPTCHA simplesmente solicitam ao usuário que marque uma caixa ao lado da declaração "Não sou um robô". O teste real, no entanto, não é a ação de clicar na caixa de seleção propriamente dita, mas tudo o que leva ao clique na caixa de seleção.
Esse teste de reCAPTCHA leva em consideração o movimento do cursor do usuário quando ele se aproxima da caixa de seleção. Até o movimento mais direto de um ser humano apresenta certa aleatoriedade em nível microscópico, pequenos movimentos inconscientes que os bots não conseguem imitar com facilidade. Se o movimento do cursor contiver um certo grau desse tipo de imprevisibilidade, o teste decidirá que o usuário provavelmente é legítimo. O reCAPTCHA também pode avaliar os cookies armazenados pelo navegador em um dispositivo do usuário e o histórico do dispositivo para avaliar a probabilidade de que o usuário seja um bot.
Se ainda assim não conseguir determinar se o usuário é humano ou não, o teste pode apresentar um desafio adicional, como o teste de reconhecimento de imagem descrito acima. No entanto, na maioria das vezes, os movimentos do cursor do usuário, os cookies e o histórico do dispositivo são suficientemente conclusivos.
As versões de reCAPTCHA mais recentes são capazes de observar holisticamente o comportamento de um usuário e seu histórico de interação com o conteúdo da internet. Na maioria das vezes, o programa pode decidir se o usuário é ou não um bot com base nesses fatores, sem fornecer ao usuário um desafio a ser executado. Se não for capaz de decidir, o programa mostrará ao usuário um desafio de reCAPTCHA típico.
O Google oferece um serviço pago mensal chamado reCAPTCHA Enterprise, que usa um sistema de detecção baseado em pontuação para distinguir entre humanos e bots. O reCAPTCHA Enterprise interage com o back-end do cliente e as páginas web para acionar uma sequência de eventos JavaScript, HTML e autenticação por token. Em seguida, o sistema obtém a "pontuação" de risco do visitante da web, de 0,0 a 1,0, e o desenvolvedor do site determina qual ação deve ser tomada com base na pontuação.
Quanto menor a pontuação, maior a probabilidade de o "visitante da web" ser, na verdade, um bot. Uma pontuação do reCAPTCHA Enterprise de 0,0 indica que a interação pode ser fraudulenta e de alto risco, enquanto 1,0 indica que a interação é provavelmente legítima e de baixo risco.
Algumas propriedades da web simplesmente têm CAPTCHAs implementados automaticamente como uma defesa proativa contra bots. Outras vezes, um teste pode ser acionado se o comportamento do usuário for parecido com o de um bot — por exemplo, se os usuários solicitarem sites ou clicarem em hiperlinks em uma velocidade muito superior à média.
Alguns bots conseguem ultrapassar CAPTCHAs de texto por conta própria. Pesquisadores também demonstraram maneiras de escrever um programa que derrotam os CAPTCHAs de reconhecimento de imagem. Além disso, os invasores podem usar fazendas de cliques para derrotar os testes: milhares de trabalhadores mal pagos resolvendo os CAPTCHAs em lugar dos bots.
Além do CAPTCHA, é preciso haver outras estratégias para impedir a ação de bots indesejados (como bots raspadores de conteúdo, bots de preenchimento de credenciais ou bots de spam).
Experiência do usuário ruim: um teste CAPTCHA pode interromper o fluxo daquilo que os usuários estão tentando fazer, proporcionando-lhes uma impressão negativa de sua experiência na propriedade da web e levando-os, em alguns casos, a abandonar a página do site.
Utilização impossível para pessoas com deficiência visual: o problema com os CAPTCHAs é que dependem da percepção visual. Isso torna seu uso quase impossível, não apenas para pessoas que são legalmente cegas, mas para qualquer pessoa com visão gravemente comprometida.
Alguns bots conseguem enganar esses testes: conforme descrito acima, os CAPTCHAs não são totalmente à prova de bots e não devem ser considerados confiáveis pelo gerenciamento de bots.
Soluções de gerenciamento de bot como o Cloudflare Bot Management ou o Super Bot Fight Mode podem identificar bots "maus" sem afetar a experiência do usuário, com base no comportamento do bot. Dessa forma, os bots podem ser mitigados sem forçar os usuários a executar CAPTCHAs.
A Cloudflare também oferece o Turnstile, uma alternativa invisível ao CAPTCHA que usa um snippet de código gratuito. O Turnstile está disponível para todos. Não é necessário ser cliente da Cloudflare para usá-lo.
À medida que milhões de usuários identificam textos difíceis de ler e selecionam objetos em imagens desfocadas, esses dados são inseridos em programas de IA para computadores para que estes também melhorem seu desempenho nesse tipo de tarefa.
De modo geral, os programas de computador têm dificuldades para identificar objetos e letras em contextos diferentes, porque o contexto no mundo real pode mudar de forma quase infinita. Por exemplo, um sinal de parada é um octógono vermelho com as letras "PARE" em branco. Um programa de computador pode identificar uma combinação de forma e texto desse tipo com bastante facilidade. No entanto, um sinal de parada em uma foto pode ter uma aparência muito diferente dessa descrição simples, dependendo do contexto — o ângulo da foto, a iluminação, as condições climáticas e assim por diante.
Por meio do aprendizado de máquina, os programas de IA podem aprimorar sua capacidade de superar essas limitações. No caso da identificação de um sinal de PARE, por exemplo, o programador alimentaria o programa de IA com uma grande quantidade de dados sobre o que é e o que não é um sinal de PARE. Para que o processo seja eficaz, são necessários muitos exemplos de imagens com sinais de PARE e imagens sem sinais de PARE, além de usuários humanos que as identifiquem até que o programa tenha dados suficientes para fazê-lo com eficácia.
O reCAPTCHA ajuda a satisfazer essa necessidade fazendo com que seres humanos identifiquem objetos e textos, o que, aos poucos, vai fornecendo dados suficientes para criar programas de IA consistentes.
O teste de Turing avalia a capacidade de um computador de imitar o comportamento humano. Alan Turing, um dos pioneiros da computação, inventou o conceito de um teste de Turing em 1950. Um programa de computador é "aprovado" no teste de Turing se seu desempenho durante o teste for indistinguível do de um ser humano, isto é, se ele agir da maneira como um ser humano o faria. Um teste de Turing não gira em torno de dar respostas corretas, mas sim do grau de semelhança entre essas respostas e as de um "ser humano", independentemente de estarem certas ou erradas.
Embora seja chamado de "teste de Turing público", um CAPTCHA é realmente o oposto de um teste de Turing — que determina se um usuário supostamente humano é realmente um programa de computador (um bot) ou não, ao invés de tentar determinar se um computador é humano. Para conseguir isso, um CAPTCHA precisa alocar uma tarefa rápida na qual as pessoas tendem a ser competentes e com a qual os computadores tendem a ter dificuldades. A identificação de textos e imagens geralmente atende a esses critérios.