# ReCAPTCHA

O serviço reCAPTCHA é um sistema de caixa de diálogo para usuário originalmente desenvolvido na Universidade Carnegie Mellon, principal campus de Pittsburgh. É baseado na interface do CAPTCHA, que pede para usuários digitarem palavras distorcidas exibidas na tela, para ajudar a digitalizar o texto de livros, enquanto protege sites de robôs tentando acessar áreas restritas. Em 16 de Setembro de 2009, o Google adquiriu o reCAPTCHA. Atualmente o reCAPTCHA está digitalizando os arquivos do New York Times e livros do Google Books. Desde 2009, vinte anos do New York Times já foram digitalizados e o planejamento do projeto seria completar o restante dos anos no final de 2010.
O serviço reCAPTCHA fornece, para os sites inscritos, imagens de palavras que o software de reconhecimento óptico de caractéres (OCR) não foi capaz de identificar. Estes sites inscritos (os quais seus propósitos não são geralmente relacionados à ajuda do projeto de digitalização de livros) apresentam estas imagens para humanos decifrarem como palavras CAPTCHAs, como parte do seu procedimento normal de validação. Depois eles retornam os resultados para o serviço reCAPTCHA, que envia esses resultados para a digitalização de seus projetos.
O sistema divulgou a mostra de mais de 100 milhões de CAPTCHAs todo dia, e tem como alguns de seus sites inscritos sites populares como Facebook, TicketMaster, Twitter, 4chan, CNN.com e StumbleUpon. O Craiglist começou a utilizar o serviço em Junho de 2008. A Administração nacional de telecomunicações e informação dos Estados Unidos também usou o reCAPTCHA para o coupon de conversão de TV digital em seu site, como parte do plano de transição de TV digital dos EUA.
Em 2014, o Google mudou o conceito original do produto, com o objetivo de reduzir a quantidade de interação do usuário necessária para verificar se é um usuário real, apresentando desafios de reconhecimento humano apenas quando a análise comportamental suspeita que o usuário possa ser um robô, como por exemplo identificar imagens em um conjunto que satisfaça um prompt específico.

## Origem

O programa reCAPTCHA originou-se com o cientista da computação Guatemalteco Luis von Ahn, auxiliado pela Sociedade MacArthur. Um desenvolvedor de CAPTCHA precoce, ele percebeu que involuntariamente criou um sistema que estava desperdiçando, em incrementos de dez segundos, milhões de horas do mais precioso recurso: os ciclos do cérebro humano.

## Operação

Textos escaneados são submetidos a dois diferentes tipos de programas de reconhecimento óptico de caractéres (OCR). Suas respectivas saídas são posteriormente alinhadas uma com a outra por um algoritmo de correspondência de cadeia e comparados um com o outro e com um dicionário inglês. Qualquer palavra que for decifrada diferentemente em ambos os programas de reconhecimento OCR ou que não está no dicionário inglês é marcada como "suspeita" e convertida em um CAPTCHA. A palavra suspeita é mostrada, fora de contexto, juntamente com uma palavra de controle que é conhecida. O sistema assume que se o usuário digitar a palavra de controle corretamente, então a resposta para a palavra questionada é aceita como provavelmente válida. Se usuários suficientes digitarem corretamente a palavra de controle, mas digitar incorretamente a segunda palavra que o OCR falhou em reconhecer, então a versão digital do documento poderá conter a palavra incorreta. Entretanto, devido ao erro humano em distinguir entre a palavra "Internet" e o nome francês "Infernet", referências para Captain infernet se tornaram ocasionalmente Captain internet. A identificação praticada por cada programa OCR dá um valor de 0,5 pontos, e cada interpretação por um humano é dado um ponto completo. Uma vez que a identificação atinge 2,5 pontos, a palavra é considerada reconhecida. Aquelas palavras que são frequentemente dadas uma identificação única por julgadores humanos são depois recicladas como palavras de controle.
O método original do reCAPTCHA foi concebido para mostrar as palavras questionáveis separadamente, como uma correção fora de contexto, ao invés de em uso, como uma frase contendo 5 palavras do documento original. Também, a palavra de controle pode induzir um erro de contexto para a segunda palavra, como um pedido de "/metal/ /fife/" sendo enviado como "metal file" devido a conexão lógica de apresentação com uma ferramenta de metal que estaria sendo considerada mais comum do que o instrumento musical fife (flauta).

## Implementação

Os testes do reCAPTCHA são exibidos do site central do projeto reCAPTCHA, o qual fornece as palavras a serem decifradas. Isto é feito através de uma API em JavaScript com o servidor fazendo uma chamada de volta para o reCAPTCHA após que o pedido foi submetido. O projeto reCAPTCHA provê bibliotecas para várias linguagens de programação e aplicações para tornar este processo mais fácil. reCAPTCHA é um serviço gratuito (isto é, as imagens CAPTCHA são providenciadas para os sites livre de cobranças, em troca pela assistência com o deciframento), mas o software próprio do reCAPTCHA não é de código aberto.
Também, reCAPTCHA oferece plugins para várias aplicações na plataforma web, como ASP.NET, Ruby ou PHP, para facilitar a implementação deste serviço.

## Segurança

A base do sistema CAPTCHA é para prevenir acesso automático a um sistema por programas de computadores ou "bots" (robõs). Em 14 de Dezembro de 2009, Jonathan Wilkins divulgou um folheto descrevendo fraquezas no reCAPTCHA que permitiu resolver uma média de 18%.
Em 1 de Agosto de 2010, Chad Houck deu uma apresentação para o DEF CON 18 Hacking Conference detalhando um método que reverte a distorção adicionada as imagens que permitiam um programa de computador determinar uma resposta válida 10% do tempo. O sistema reCAPTCHA foi modificado em 21 de Julho de 2010, antes de Houck falar sobre seu método. Houck modificou o seu método para o que ele descreveu como um CAPTCHA mais fácil para determinar uma resposta válida 31,8% do tempo. Houck também mencionou defesas de segurança no sistema como uma trava de alta segurança se uma resposta válida não for dada em 32 vezes.
Em 26 de Maio de 2012, Adam, C-P e Jeffball do DC949 deram uma apresentação no LayerOne Hacker Conference detalhando como eles foram capazes de criar uma solução automática com eficácia de 99,1%. Sua tática consiste em usar uma forma de inteligência artificial conhecida como máquina de aprendizagem para analisar a versão de áudio do reCAPTCHA que está disponível para cegos e pessoas de baixa visão. O Google disponibilizou uma nova versão do reCAPTCHA apenas horas após a fala deles, e assim adicionou mudanças significativas em ambas as versões de áudio e visual do seu serviço. Nesta atualização, a versão de áudio foi aumentada de 8 segundos para 30 segundos, e é muito mais difícil agora de entender, tanto para humanos quanto robôs.

## Ocultação de Email

reCAPTCHA também criou um projeto chamado Mailhide (ocultação de email), que protege endereços de email em páginas da internet de serem capturadas por spammers. Por padrão, o email é convertido em um formato que não permite ao capturador de ver o endereço completo do email. Por exemplo, "mailme@example.com" seria convertido em "mai...@example.com". O visitante teria que clicar no "..." e resolver um CAPTCHA para obter o endereço completo do email. Também é possível editar o código popup, então nada do endereço fica visível.