O primeiro passo para criar um Captcha é olhar as diferentes formas que humanos e máquinas processam a informação. Máquinas seguem conjuntos de instruções. Se alguma sai fora dos domínios dessas instruções, a máquina não é capaz de compensar. Um projetista Captcha tem que levar isso em conta quando está criando um teste. Por exemplo: é fácl construir um programa que olhe para os metadados - a informação na Web que é invisível aos humanos, mas que as máquinas podem ler. Se você criar um Captcha visual e os metadados da imagem incluirem a solução, seu Captcha estará quebrado na mesma hora.
De modo similar, é imprudente construir um Captcha que não distorça letras e números de alguma forma. Um série de caracteres sem distorção não é muito segura. Muitos programas de computador podem escanear uma imagem e reconhecer formas simples, como letras e números.
Uma forma de criar um Captcha é pre-determinar as imagens e as soluções que ele vai usar. Esse método exige um banco de dados que inclui todas as soluções Captcha, o que pode comprometer a confiabilidade do teste. De acordo com os especialistas da Microsoft Research Kumar Chellapilla e Patrice Simard , humanos devem ter uma taxa de sucesso de 80% na solução de qualquer Captcha, mas máquinas teriam uma taxa de sucesso de 0,01%. Se um spammer conseguisse encontrar uma lista de todas as soluções Captcha, poderia criar uma aplicação que bombardeasse o Captcha com cada resposta possível num ataque de força bruta. A base de dados precisaria ter mais de 10 mil possíveis Captchas para atender às qualificações de um bom Captcha.
Outras aplicações Captcha criam linhas de comando aleatórias de letras e números. Você jamais conseguiria obter a mesma série duas vezes. Usar a aletoriedade elimina a possibilidade de ataque de força bruta - as chances de um bot entrar com a série de letras aleatórias corretas são muito baixas. Quanto maior a série de caracteres, menos provável que um bot tenha sorte.
Captchas usam diferentes métodos para distorcer palavras. Alguns esticam e inclinam as letras de forma estranha, como se você as estivesse olhando através de um vidro derretido. Outros colocam a palavra atrás de um padrão de barras de linhas cruzadas para quebrar a forma das letras. Uns poucos usam cores diferentes ou um campo de pontos para alcançar o mesmo efeito. No final, o objetivo é o mesmo: tornar difícil para um computador imaginar o que está no Captcha.
Os projetistas também podem criar quebra-cabeças ou problemas que são fáceis para os humanos de resolver. Alguns Captchas apóiam-se no reconhecimento de padrão e na inferência. Por exemplo: um captcha pode incluir uma série de formas e perguntar ao usuário que forma entre várias opções seria lógico vir em seguida. O problema com essa abordagem é que nem todos os humanos são bons nesse tipo de problema e a taxa de sucesso para um usuário humano pode cair abaixo dos 80%.
A seguir, vamos ver como os computadores podem quebrar os Captchas.