CAPTCHA - CAPTCHA

Este CAPTCHA (versão 1) de "smwm" obscurece sua mensagem da interpretação do computador, torcendo as letras e adicionando um leve gradiente de cor de fundo.

Um CAPTCHA ( / k æ p . ə / , um acrônimo inventado para " Teste de Turing público completamente automatizado para diferenciar computadores e humanos") é um tipo de teste de desafio-resposta usado na computação para determinar se o usuário é humano ou não .

O termo foi cunhado em 2003 por Luis von Ahn , Manuel Blum , Nicholas J. Hopper e John Langford . O tipo mais comum de CAPTCHA (exibido como Versão 1.0) foi inventado pela primeira vez em 1997 por dois grupos trabalhando em paralelo. Esta forma de CAPTCHA requer que alguém avalie corretamente e insira uma sequência de letras ou números perceptíveis em uma imagem distorcida exibida em sua tela. Como o teste é administrado por um computador, em contraste com o teste de Turing padrão administrado por um ser humano, um CAPTCHA às vezes é descrito como um teste de Turing reverso .

Este procedimento de identificação do usuário tem recebido muitas críticas, principalmente de pessoas com deficiência, mas também de outras pessoas que sentem que seu trabalho diário é retardado por palavras distorcidas e difíceis de ler. Em média, uma pessoa leva aproximadamente 10 segundos para resolver um CAPTCHA típico.

História

Desde os primórdios da Internet , os usuários desejam tornar o texto ilegível para os computadores. As primeiras dessas pessoas foram hackers , postando sobre tópicos delicados em fóruns da Internet que pensavam estar sendo monitorados automaticamente por palavras-chave. Para contornar esses filtros, eles substituíram uma palavra por caracteres semelhantes. OLÁ pode se tornar |-|3|_|_()ou )-(3££0, assim como inúmeras outras variantes, de forma que um filtro não poderia detectar todas elas. Mais tarde, isso ficou conhecido como leetspeak .

Um dos primeiros usos comerciais de CAPTCHAs foi no teste de Gausebeck-Levchin . Em 2000, idrive.com começou a proteger sua página de inscrição com um CAPTCHA e se preparou para registrar uma patente sobre essa técnica aparentemente nova. Em 2001, o PayPal usou esses testes como parte de uma estratégia de prevenção de fraudes em que pedia aos humanos que "redigitassem textos distorcidos que os programas tinham dificuldade em reconhecer". O cofundador do PayPal e CTO Max Levchin ajudou a comercializar esse uso inicial.

Uma implantação popular da tecnologia CAPTCHA, reCAPTCHA , foi adquirida pelo Google em 2009. Além de prevenir a fraude de bot para seus usuários, o Google usou a tecnologia reCAPTCHA e CAPTCHA para digitalizar os arquivos do The New York Times e livros do Google Books em 2011.

Reivindicações de inventário

Duas equipes afirmam ser as primeiras a inventar os CAPTCHAs amplamente usados ​​na web hoje. A primeira equipe com Mark D. Lillibridge, Martín Abadi , Krishna Bharat e Andrei Broder , usou CAPTCHAs em 1997 no AltaVista para evitar que bots adicionassem Uniform Resource Locator (URLs) ao seu mecanismo de pesquisa na web . Procurando uma maneira de tornar suas imagens resistentes a ataques de reconhecimento óptico de caracteres (OCR), a equipe consultou o manual de seu scanner Brother , que trazia recomendações para melhorar os resultados de OCR (fontes semelhantes, fundos simples, etc.). A equipe criou quebra-cabeças tentando simular o que o manual afirmava que causaria um OCR ruim.

A segunda equipe a reivindicar ser a primeira a inventar CAPTCHAs com Luis von Ahn , Manuel Blum , Nicholas J. Hopper e John Langford , primeiro descreveu CAPTCHAs em uma publicação de 2003 e posteriormente recebeu muita cobertura na imprensa popular. Sua noção de CAPTCHA cobre qualquer programa que possa distinguir humanos de computadores.

A controvérsia sobre a invenção foi resolvida pela existência de um pedido de patente com data de prioridade de 1997 por Eran Reshef, Gili Raanan e Eilon Solan (segundo grupo) que trabalharam no Sanctum no Application Security Firewall . O pedido de patente detalha que "A invenção é baseada na aplicação de vantagens humanas na aplicação de habilidades sensoriais e cognitivas para resolver problemas simples que provam ser extremamente difíceis para software de computador. Essas habilidades incluem, mas não estão limitadas ao processamento de informações sensoriais, como identificação de objetos e letras em um ambiente gráfico barulhento ". Lillibridge, Abadi, Bharat e Broder (primeiro grupo) publicaram sua patente em 1998. Ambas as patentes são anteriores a outras publicações em vários anos, embora não usem o termo CAPTCHA, eles descrevem as ideias em detalhes e representam precisamente os CAPTCHAs gráficos usados ​​em a Web hoje.

Características

Os CAPTCHAs são, por definição, totalmente automatizados, exigindo pouca manutenção ou intervenção humana para administrar, produzindo benefícios em custo e confiabilidade.

O algoritmo usado para criar o CAPTCHA deve ser tornado público, embora possa ser coberto por uma patente. Isso é feito para demonstrar que quebrá-lo requer a solução de um difícil problema no campo da inteligência artificial (IA), e não apenas a descoberta do algoritmo (secreto), que poderia ser obtido por meio de engenharia reversa ou outros meios.

Os CAPTCHAs modernos baseados em texto são projetados de forma que exijam o uso simultâneo de três habilidades separadas - reconhecimento invariável, segmentação e análise - para concluir a tarefa corretamente com qualquer consistência.

  • O reconhecimento invariável refere-se à capacidade de reconhecer a grande variação nas formas das letras. Existe um número esmagadoramente grande de versões de cada personagem que um cérebro humano pode identificar com sucesso. O mesmo não é verdade para um computador, e ensiná-lo a reconhecer todas essas formações diferentes é uma tarefa desafiadora.
  • A segmentação, ou a capacidade de separar uma letra da outra, também é dificultada em CAPTCHAs, pois os caracteres são agrupados sem nenhum espaço em branco entre eles.
  • O contexto também é crítico. O CAPTCHA deve ser entendido de forma holística para identificar corretamente cada personagem. Por exemplo, em um segmento de um CAPTCHA, uma letra pode se parecer com um "m". Somente quando a palavra inteira é inserida no contexto, fica claro que é um ue um n .

Cada um desses problemas representa um desafio significativo para um computador, mesmo isoladamente. A presença de todos os três ao mesmo tempo é o que torna os CAPTCHAs difíceis de resolver.

Ao contrário dos computadores, os humanos se destacam nesse tipo de tarefa. Embora a segmentação e o reconhecimento sejam dois processos separados necessários para a compreensão de uma imagem para um computador, eles fazem parte do mesmo processo para uma pessoa. Por exemplo, quando um indivíduo entende que a primeira letra de um CAPTCHA é um a , esse indivíduo também entende onde estão os contornos desse a e também onde ele se funde com os contornos da próxima letra. Além disso, o cérebro humano é capaz de pensar dinâmico com base no contexto. É capaz de manter várias explicações vivas e, em seguida, escolher aquela que é a melhor explicação para toda a entrada com base em pistas contextuais. Isso também significa que ele não será enganado por variações nas letras.

Relação com AI

Embora sejam usados ​​principalmente por razões de segurança, os CAPTCHAs também servem como uma tarefa de referência para tecnologias de inteligência artificial. De acordo com um artigo de Ahn, Blum e Langford, "qualquer programa que passe nos testes gerados por um CAPTCHA pode ser usado para resolver um problema difícil de IA não resolvido."

Eles argumentam que as vantagens de usar problemas de IA rígidos como meio de segurança são duplas. Ou o problema continua sem solução e permanece um método confiável para distinguir humanos de computadores, ou o problema é resolvido e um difícil problema de IA é resolvido junto com ele. No caso de CAPTCHAs baseados em imagem e texto, se um AI fosse capaz de completar a tarefa com precisão sem explorar falhas em um design CAPTCHA específico, então teria resolvido o problema de desenvolver um AI que é capaz de reconhecer objetos complexos em cenas.

Acessibilidade

Muitos sites exigem a digitação de um CAPTCHA ao criar uma conta para evitar spam.

CAPTCHAs baseados na leitura de texto - ou outras tarefas de percepção visual - evitam que usuários cegos ou deficientes visuais acessem o recurso protegido. No entanto, os CAPTCHAs não precisam ser visuais. Qualquer problema difícil de inteligência artificial , como reconhecimento de fala , pode ser usado como base para um CAPTCHA. Algumas implementações de CAPTCHAs permitem que os usuários optem por um CAPTCHA de áudio, embora um artigo de 2011 tenha demonstrado uma técnica para derrotar os esquemas populares da época.

Para usuários sem visão (por exemplo, usuários cegos ou daltônicos em um teste de uso de cores), os CAPTCHAs visuais apresentam sérios problemas. Como os CAPTCHAs são projetados para serem ilegíveis por máquinas, ferramentas comuns de tecnologia assistiva , como leitores de tela, não podem interpretá-los. Uma vez que os sites podem usar CAPTCHAs como parte do processo de registro inicial, ou mesmo todos os logins, este desafio pode bloquear completamente o acesso. Em certas jurisdições, os proprietários de sites podem se tornar alvos de litígios se estiverem usando CAPTCHAs que discriminam certas pessoas com deficiência. Por exemplo, um CAPTCHA pode tornar um site incompatível com a Seção 508 nos Estados Unidos. Em outros casos, aqueles com dificuldades de visão podem escolher identificar uma palavra que está sendo lida para eles.

Embora o fornecimento de um CAPTCHA de áudio permita que usuários cegos leiam o texto, ele ainda atrapalha aqueles que são cegos e surdos. De acordo com o sense.org.uk, cerca de 4% das pessoas com mais de 60 anos no Reino Unido têm deficiência visual e auditiva . Existem cerca de 23.000 pessoas no Reino Unido com graves deficiências visuais e auditivas. De acordo com o Consórcio Nacional de Assistência Técnica para Crianças e Jovens Surdos-Cegos (NTAC), o número de crianças surdocegas nos EUA aumentou de 9.516 para 10.471 durante o período de 2004 a 2012. Gallaudet University cita estimativas de 1980 a 2007 que sugerem mais de 35.000 adultos totalmente surdocegos nos EUA. As estimativas da população surdocega dependem muito do grau de deficiência usado na definição.

O uso de CAPTCHA, portanto, exclui um pequeno número de indivíduos do uso de subconjuntos significativos de serviços comuns baseados na Web, como PayPal, Gmail, Orkut, Yahoo !, muitos sistemas de fórum e weblog, etc.

Mesmo para indivíduos com visão perfeita, as novas gerações de CAPTCHAs gráficos, projetados para superar softwares de reconhecimento sofisticados, podem ser muito difíceis ou impossíveis de ler.

Um método de melhorar o CAPTCHA para facilitar o trabalho com ele foi proposto por ProtectWebForm e denominado "Smart CAPTCHA". Os desenvolvedores são aconselhados a combinar CAPTCHA com JavaScript. Como é difícil para a maioria dos bots analisar e executar JavaScript, foi proposto um método combinatório que preenche os campos CAPTCHA e oculta a imagem e o campo dos olhos humanos.

Um método alternativo envolve exibir ao usuário uma equação matemática simples e exigir que o usuário insira a solução como verificação. Embora sejam muito mais fáceis de derrotar usando software, eles são adequados para cenários em que imagens gráficas não são adequadas e fornecem um nível muito mais alto de acessibilidade para usuários cegos do que os CAPTCHAs baseados em imagens. Às vezes, eles são chamados de MAPTCHAs (M = "matemático"). No entanto, isso pode ser difícil para usuários com transtorno cognitivo.

Outros tipos de desafios, como aqueles que exigem a compreensão do significado de algum texto (por exemplo, um quebra-cabeça lógico, uma pergunta trivial ou instruções sobre como criar uma senha) também podem ser usados ​​como um CAPTCHA. Novamente, há pouca pesquisa sobre sua resistência contra contramedidas.

Evasão

Existem algumas abordagens para derrotar CAPTCHAs: usar trabalho humano barato para reconhecê-los, explorar bugs na implementação que permitem ao invasor ignorar completamente o CAPTCHA e, finalmente, usar o aprendizado de máquina para construir um solucionador automatizado. De acordo com o ex- czar da fraude de cliques do Google Shuman Ghosemajumder , existem vários serviços que resolvem CAPTCHAs automaticamente.

Ataques baseados em aprendizado de máquina

Em suas primeiras iterações, não havia uma metodologia sistemática para projetar ou avaliar CAPTCHAs. Como resultado, houve muitos casos em que os CAPTCHAs tinham um comprimento fixo e, portanto, tarefas automatizadas puderam ser construídas para fazer suposições fundamentadas sobre onde a segmentação deveria ocorrer. Outros CAPTCHAs iniciais continham conjuntos limitados de palavras, o que tornou o teste muito mais fácil de jogar. Outros ainda cometeram o erro de confiar demais na confusão de fundo da imagem. Em cada caso, foram criados algoritmos capazes de completar a tarefa com sucesso, explorando essas falhas de projeto. Esses métodos mostraram-se frágeis, no entanto, e pequenas alterações no CAPTCHA foram facilmente capazes de impedi-los. Os CAPTCHAs modernos, como o reCAPTCHA, não dependem mais apenas de padrões fixos, mas apresentam variações de caracteres que costumam ser agrupados, tornando a segmentação quase impossível. Essas iterações mais recentes têm sido muito mais bem-sucedidas em evitar tarefas automatizadas.

Um exemplo de desafio reCAPTCHA de 2007, contendo as palavras "seguinte descoberta". A ondulação e o traço horizontal foram adicionados para aumentar a dificuldade de quebrar o CAPTCHA com um programa de computador.
Um CAPTCHA geralmente tem uma caixa de texto logo abaixo, onde o usuário deve preencher o texto que vê. Nesse caso, "sclt ..estava aqui".

Em outubro de 2013, a empresa de inteligência artificial Vicarious afirmou que havia desenvolvido um algoritmo genérico de resolução de CAPTCHA que era capaz de resolver CAPTCHAs modernos com taxas de reconhecimento de caracteres de até 90%. No entanto, Luis von Ahn , um pioneiro do CAPTCHA e fundador do reCAPTCHA, expressou ceticismo, afirmando: "É difícil para mim ficar impressionado, pois vejo isso a cada poucos meses." Ele indicou que 50 reivindicações semelhantes à de Vicarious haviam sido feitas desde 2003.

Em agosto de 2014, na conferência Usenix WoOT, Bursztein et al. apresentou o primeiro algoritmo de resolução de CAPTCHA genérico baseado no aprendizado por reforço e demonstrou sua eficiência contra muitos esquemas CAPTCHA populares. Eles concluíram que esquemas de CAPTCHAs baseados em distorção de texto devem ser considerados inseguros no futuro.

Em outubro de 2018 na conferência ACM CCS'18, Ye et al. apresentou um ataque baseado em aprendizagem profunda que poderia resolver com sucesso todos os 11 esquemas de captcha de texto usados ​​pelo site mais popular em 2018 com uma alta taxa de sucesso. Seu trabalho mostra que um solucionador CAPTCHA eficaz pode ser treinado usando apenas 500 CAPTCHAs reais, mostrando que é possível lançar rapidamente um ataque de um novo esquema de CAPTCHA de texto.

Trabalho humano barato ou involuntário

É possível subverter CAPTCHAs retransmitindo-os para uma fábrica de operadores humanos que são empregados para decodificar CAPTCHAs. Um artigo de 2005 de um grupo de trabalho do W3C afirmou que tal operador poderia verificar centenas por hora. Em 2010, a Universidade da Califórnia em San Diego conduziu um estudo em grande escala de fazendas CAPTCHA e descobriu que o preço de varejo para resolver um milhão de CAPTCHAs era tão baixo quanto $ 1.000.

Outra técnica que foi descrita consiste em usar um script para postar novamente o CAPTCHA do site de destino como um CAPTCHA em um site de propriedade do invasor, que humanos desavisados ​​visitam e resolvem corretamente em um curto espaço de tempo para o script usar. É provável que essa técnica seja economicamente inviável para a maioria dos invasores devido ao custo de atrair usuários suficientes e executar um site popular.

Terceirização para serviços pagos

Existem várias empresas de Internet, como 2Captcha e DeathByCaptcha, que oferecem serviços de resolução CAPTCHA apoiados por humanos e máquinas por apenas US $ 0,50 por 1000 CAPTCHAs resolvidos. Esses serviços oferecem APIs e bibliotecas que permitem aos usuários integrar a evasão de CAPTCHA às ferramentas que os CAPTCHAs foram projetados para bloquear em primeiro lugar.

Implementação insegura

Howard Yeend identificou dois problemas de implementação com sistemas CAPTCHA mal projetados:

  • Alguns sistemas de proteção CAPTCHA podem ser contornados sem usar OCR, simplesmente reutilizando o ID de sessão de uma imagem CAPTCHA conhecida
  • CAPTCHAs que residem em servidores compartilhados também apresentam um problema; um problema de segurança em outro host virtual pode deixar o site do emissor CAPTCHA vulnerável

Às vezes, se parte do software que gera o CAPTCHA for do lado do cliente (a validação é feita em um servidor, mas o texto que o usuário deve identificar é processado no lado do cliente), então os usuários podem modificar o cliente para exibir o un -Texto renderizado. Alguns sistemas CAPTCHA usam hashes MD5 armazenados no lado do cliente, o que pode deixar o CAPTCHA vulnerável a um ataque de força bruta .

Ataques notáveis

Alguns ataques notáveis ​​contra vários esquemas CAPTCHAs incluem:

  • Mori et al. publicou um artigo no IEEE CVPR'03 detalhando um método para derrotar um dos CAPTCHAs mais populares, EZ-Gimpy, que foi testado como tendo 92% de precisão em derrotá-lo. O mesmo método também demonstrou derrotar o programa Gimpy, mais complexo e menos amplamente implantado, 33% das vezes. No entanto, a existência de implementações de seu algoritmo em uso real é indeterminada neste momento.
  • O PWNtcha fez um progresso significativo ao derrotar os CAPTCHAs comumente usados, o que contribuiu para uma migração geral para CAPTCHAs mais sofisticados.
  • O Podec, um trojan descoberto pela empresa de segurança Kaspersky, encaminha as solicitações CAPTCHA para um serviço de tradução humana online que converte a imagem em texto, enganando o sistema. Podec é direcionado a dispositivos móveis Android.

Esquemas CAPTCHAs alternativos

Com a demonstração de que CAPTCHAs baseados em distorção de texto são vulneráveis ​​a ataques baseados em aprendizado de máquina, alguns pesquisadores propuseram alternativas, incluindo CAPTCHAs de reconhecimento de imagem, que exigem que os usuários identifiquem objetos simples nas imagens apresentadas. O argumento a favor desses esquemas é que tarefas como reconhecimento de objetos são normalmente mais complexas de realizar do que reconhecimento de texto e, portanto, devem ser mais resistentes a ataques baseados em aprendizado de máquina. Aqui estão alguns esquemas CAPTCHA alternativos notáveis:

  • Chew et al. publicou seu trabalho na 7ª Conferência Internacional de Segurança da Informação, ISC'04, propondo três versões diferentes de CAPTCHAs de reconhecimento de imagem e validando a proposta com estudos de usuários. É sugerido que uma das versões, a anomalia CAPTCHA, é melhor com 100% dos usuários humanos sendo capazes de passar uma anomalia CAPTCHA com pelo menos 90% de probabilidade em 42 segundos.
  • Datta et al. publicou seu artigo na Conferência ACM Multimedia '05, denominado IMAGINATION (IMAge Generation for INternet AuthenticaTION), propondo uma forma sistemática de reconhecimento de imagem CAPTCHAs. As imagens são distorcidas de tal forma que as abordagens de reconhecimento de imagem de última geração (que são tecnologias de ataque em potencial) falham em reconhecê-las.
  • A Microsoft (Jeremy Elson, John R. Douceur, Jon Howell e Jared Saul) afirma ter desenvolvido o Reconhecimento de Imagens de Espécies Animais para Restrição de Acesso (ASIRRA), que pede aos usuários para distinguir cães de gatos. A Microsoft tinha uma versão beta deste para uso em sites. Eles afirmam que "o Asirra é fácil para os usuários; pode ser resolvido por humanos 99,6% das vezes em menos de 30 segundos. Curiosamente, os usuários parecem achar a experiência de usar o Asirra muito mais agradável do que um CAPTCHA baseado em texto." Esta solução foi descrita em um artigo de 2007 para Proceedings of 14th ACM Conference on Computer and Communications Security (CCS). No entanto, este projeto foi encerrado em outubro de 2014 e não está mais disponível.

Veja também

Referências

Outras referências

links externos