6.2 CAPTCHAs? SIM, CAPTCHAs

Sabe aquelas imagens chatas que aparecem quando você está preenchendo um formulário ou quer acessar uma página específica, pedindo para você decifrar o texto? Isso é o que chamamos de CAPTCHA (Completely Automated Public Turing test to tell Computers and Humans Apart). Captchas foram criados para impedir que robôs acessem determinadas páginas na web de forma irrestrita. Algumas empresas como a Google também usam essas coisinhas para utilizar o conhecimento de seres humanos para dominar o mundo.

library(decryptr)
'imgs/receita/captcha48ec12131bab.png' %>% 
  read_captcha() %>% 
  plot()
Exemplo de CAPTCHA: Consulta de CNPJ da Receita Federal.

Figura 6.1: Exemplo de CAPTCHA: Consulta de CNPJ da Receita Federal.

Existem captchas de todo tipo: difíceis, fáceis, que fazem sentido e que não fazem sentido. Um exemplo de CAPTCHA que faz sentido são os presentes em formulários para criação de emails. Imagine se alguém fizesse um programa que criasse bilhões de contas de e-mail do gmail!

Um exemplo de CAPTCHA que não faz sentido são os sites de serviços públicos, como a Receita Federal ou de alguns Tribunais de Justiça. Algumas justificativas para isso são: i) não onerar os sistemas ou ii) a falsa ideia de que assim estão protegendo as pessoas.

Pensando nisso, fiquei imaginando:

Será que é possível quebrar CAPTCHAs usando modelos estatísticos?

Tornando curta uma história longa, sim, é possível! O resultado dessa brincadeira está na organização decryptr. Claro que não são todos os CAPTCHAs que conseguimos quebrar, mas estamos fazendo pesquisa, brincando nas Rackathons (hackathons com R) e discutindo várias ideias para tornar isso viável. É um esforço da comunidade para tornar os serviços públicos mais acessíveis.