Como resposta à ameaça hacker que habitualmente cria robôs para abusar dos sistemas, nasce o uso do CAPTCHA para verificação humana, e atualmente é popularmente utilizado por toda a Internet. Neste artigo, os nossos Engenheiros ZARZA discutem este interessante tema e partilham informação concreta sobre o uso correto e as medidas alternativas recomendáveis.
O que é e para que serve um CAPTCHA?
Quando nos inscrevemos num site, ou preenchemos um formulário, encontramos um texto deformado, uma figura cujo nome nos pedem que escrevamos, ou melhor dito, que transcrevamos o seu conteúdo… Nesse momento estamos perante um CAPTCHA, e a sua finalidade é saber se quem está a preencher o formulário é um programa de computador (um robô programado) ou um ser humano.
CAPTCHA: Completely Automated Public Turing test to tell Computers and Humans Apart
O teste de Turing completamente automático e público para diferenciar computadores de humanos é o que entendemos como CAPTCHA, e tem basicamente este aspeto:

Como podemos ver, as letras sofrem uma transformação, pensada para dificultar o discernimento das letras pelos bots automáticos, e mesmo assim permitir que um ser humano identifique a sequência, que seria «smwm», embora as estatísticas mostrem que não é assim tão simples para todas as pessoas.
Adicionalmente à distorção das letras, os CAPTCHA podem incluir linhas, gradientes e elementos de distração que aumentem assim o seu nível de complexidade.
Contudo, os CAPTCHA mais modernos incluem a opção de ouvir as letras, e de tentar com um novo CAPTCHA no caso de não compreendermos qual é o seu conteúdo. Por exemplo, um dos mais destacados é o que oferecem gratuitamente no reCAPTCHA (atualmente propriedade da Google), onde se misturam ainda 2 ou mais palavras, tal como vemos no exemplo em seguida:

Os CAPTCHA continuarão a aumentar a sua complexidade, e tornar-se-ão cada vez mais modernos; contudo, veremos sempre a linha ténue entre o compreensível para um humano, e não para um robô.
É o CAPTCHA totalmente intransponível? Não, não é.
Atualmente, tanto os que praticam o Back Hat Hacking como o White Hat Hacking sabem que existem ferramentas de reconhecimento visual, que foram promovidas na Internet, e que inclusive alguns serviços pagos dentro e fora da Deep Web oferecem ligação expedita para decifrar os CAPTCHA, e assim vulnerar sistemas e torná-los mais lentos.
É pelo anterior que, ao desenvolver o seu software, ou ao contratar o desenvolvimento, deve considerar que o CAPTCHA é apenas mais uma medida, e não deve ser em momento algum o único controlo realizado para proteger o sistema em questão.
Algumas recomendações adicionais podem ser, dependendo do esquema do sistema, as seguintes:
- Limitar o número de consultas: Tanto por endereço IP, como por país, por tempo e por tipo de consulta. Com isto, mesmo que o atacante consiga decifrar o CAPTCHA, encontrará outros limites fisicamente impossíveis para seres humanos.
- Verificar o número de erros: Muitas vezes os scripts utilizados para decifrar os CAPTCHA enviam matrizes com múltiplas possibilidades, que podem conduzir a um número de erros superior ao que habitualmente um utilizador poderia tentar de novo. Experimente e peça ao seu programador (ou a si mesmo, se for programador) que estes parâmetros possam ser ajustados eventualmente, segundo as estatísticas de uso dos seus próprios utilizadores.
- Verifique os serviços por utilizadores: Se o esquema o permitir, exija a validação de credenciais ao mesmo tempo que verifica o CAPTCHA; simultaneamente, registe a utilização, e assim localize facilmente utilizadores abusivos, que possam ser excluídos manual e automaticamente.
Muitas vezes este tipo de elementos pode resultar frustrante para utilizadores reais, pelo que poderia também analisar, em vez de bloquear totalmente as consultas, a inclusão de um tempo de espera, ainda que em segundos, que obrigue o utilizador a esperar um tempo entre cada consulta e, uma vez esta bem-sucedida, que deva esperar para receber os resultados, tudo baseado no seu comportamento e nas políticas que se definam para cada grupo de utilizadores. Não deveria aplicar os mesmos parâmetros a utilizadores registados conhecidos e a visitantes, ou utilizadores recentemente inscritos.
Para os Engenheiros da ZARZA é e será um prazer ajudá-lo em todas as suas necessidades de desenvolvimento de software, e desejamos recordar-lhe que a nossa especialidade é satisfazer as suas necessidades, mantê-lo protegido, e elevar o seu rendimento e o rendimento da sua presença na Internet.


