Captcha (”Completely Automated Public Turing test to tell Computers and Humans Apart” ou “teste de Turing público completamente automatizado para diferenciar entre computadores e humanos”) é um termo inventado em 2000 por Luis von Ahn, por Manuel Blum, Nicholas J. Hopper (todos da universidade do Carnegie-Mellon), e por John Langford (da IBM), que corresponde a um teste que pode distinguir seres humanos dos computadores.
O captcha é formado por três partes:
- uma imagem (normalmente .jpg ou .png, formada normalmente por um fundo com letras e números e, às vezes, destorcida ), gerada por um código.
-
um código alfanumérico (dígitos e letras contidos na imagem) , o qual deve ser preenchido em um campo de um formulário. O usuário deve digitar o que para ele mais se assemelha à imagem, e os dados digitados são enviados, através de um botão, para validação.
- um código separado, geralmente escrito em PHP, para validação do código digitado pelo usuário. (Veja mais em http://www.captcha.biz/)
Em princípio, os algoritmos para transformar uma imagem em texto (o que um programa faria para burlar a proteção) são bastante complexos. Eles usam uma tecnologia conhecida como OCR (“Optical Character Recognition” ou “Reconhecimento Óptico de Caracteres”). O OCR reconhece caracteres a partir de um arquivo de imagem, possibilitando a digitalização de uma folha de texto impresso para a obtenção de um texto editável, por exemplo. Para dificultar ainda mais o reconhecimento de caracteres através de OCR, a imagem no CAPTCHA possui pontos e linhas, ou ainda é destorcida, tentando confundir o bot o máximo possível. Assim, o computador tem uma tarefa em princípio insana para resolver o CAPTCHA, assumindo-se então que uma solução correta dada só pode ser feita presumivelmente por um humano.
O CAPTCHA é uma proteção para bots
Um dos objetivos do CAPTCHA é impedir o form spamming: spam através de preenchimentos automatizados (e em massa) de formulários (milhares de e-mails, cadastros em e-mails grátis ou solicitação de serviços e produtos). O CAPTCHA serve também para proteger contas e senhas enviadas pela rede.
Essa automatização de spam é feito por bots especializados, programas desenhados para vasculhar a internet sistematicamente atrás de formulários, para colher endereços de e-mail ou dados dentro de um código HTML.
Os bots mais “simples” procuram informações dentro de arquivos-texto, como HTML. No caso da procura de informação em CAPTCHAS, os bots não são eficientes, pela exigência de algoritmos sofisticados de reconhecimento de imagens. No nosso caso, o cérebro tem um sistema sofisticado que consegue reconhecer imagens complexas e facilmente extrair os números e letras da imagem dos CAPTCHAS.
O Teste de Turing
O CAPTCHA é baseado no teste de Turing, teste proposto pelo matemático inglês Alan Turing, que é considerado o pai da ciência da computação. O teste foi descrito no artigo “Computing Machinery and Intelligence”, de 1950, e consiste no discernimento entre um humano e uma máquina, a partir de um diálogo entre ambos: caso a máquina aja como um humano, ela então passa no teste. A decisão do teste é feita por um humano.
No caso do CAPTCHA, o juíz é o computador. Ou seja, como o computador é bem menos inteligente que o ser humano, assume-se que ele seja suficiente para arbitrar o CAPTCHA. Os autores desse tipo de teste o denominam de Turing automatizado, sendo mais conhecido como teste reverso (o Chapado não consegue ver o “reverso” nisso, mas enfim).
O CAPTCHA e o WordPress
No site recaptcha.net, ensina como os admnistradores de um blog podem colocar CAPTCHA nos comentários do WordPress e também no PHP. Para usar o serviço é necessário se cadastrar gratuitamente. Interessante é também a possibilidade de ouvir a palavra, o que é importante para deficientes visuais. (Não deixem de ler o site http://neosite.ilogic.com.br/dicas/2007/11/como-usar-captcha-no-seu-php-ou-wordpress.html)
Arquivado em: Dica do dia, Internet, Novidades & Curiosidades | Etiquetado: bot, captcha, OCR, spam, teste de Turing, teste de Turing reverso




Good read! Thank you!
Nice. Thank you for the lesson!