quarta-feira, abril 15

Saiba o que é um Captcha

Gente este assunto é muito interessante, se você, internauta, ainda nunca ouviu falar deve ler esta reportagem pois acho que todos nós humanos, ainda, devemos saber o que é um Captcha.

Você está usando seu computador para comprar ingressos para ver o show da Madonna.Mas antes de efetuar a compra, você tem primeiro que passar por um teste. Não é um teste difícil - na verdade, esse é o ponto. Para você, o teste é simples e objetivo. Mas para um computador, o teste é quase impossível de resolver. Esse tipo de teste é um Captcha, (Teste de Turing público completamente automatizado para distinguir computadores de seres humanos).

Eles também são conhecidos como um tipo de prova interativa humana (Human Interaction Proof - HIP). Você provavelmente já viu montes de testes Captcha em sites na Internet. O mais comum é uma imagem com várias letras distorcidas. Seu trabalho é digitar a série correta de letras em um formulário. Se as letras baterem com aquelas da imagem distorcidas, você passa no teste. O serviço Gmail, do Google, exige que novos usuários entrem com um Captcha antes de criar uma conta. Por que alguém precisa criar um teste que distingua humanos de computadores? Porque há pessoas que querem burlar os sistemas - eles querem explorar as fraquezas nos computadores que hospedam os sites.

Embora esses indivíduos sejam a minoria na Internet, suas ações podem afetar milhões de usuários e web sites. Por exemplo: um serviço gratuito de e-mail pode se ver bombardeado por requisições de contas de um programa automático. Esse programa automático poderia ser parte de uma tentativa maior de enviar spam a milhões de pessoas. O teste Captcha ajuda a identificar quais usuários são pessoas de verdade e quais são programas de computador. Uma coisa interessante sobre Captchas é que as pessoas que os projetam nem sempre ficam chateadas quando seus testes falham. Isso porque para um teste Captcha falhar, alguém tem de encontrar uma maneira de ensinar o computador como solucionar a falha. Em outras palavras, cada falha Captcha representa um avanço na inteligência artificial.

Um formulário Captcha pode ajudar a impedir que programadores tirem vantagem do sistema de pesquisas. Formulários de registro na Web frequentemente usam Captchas. Por exemplo: serviços de e-mail gratuitos, como Hotmail, Yahoo! Mail ou Gmail permitem que as pessoas criem uma conta de e-mail livre de qualquer custo. Geralmente, os usuários têm de fornecer alguns dados pessoais quando cria uma conta, mas os serviços não verificam essa informação. Eles usam Captchas para tentar impedir spammers de usar bots para gerar centenas de contas de e-mail para spam.

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. Previamente embalado

Instalar um Captcha em seu website é tão fácil quanto copiar umas poucas linhas de código para a sua página HTML. E não custará um centavo. Muitas aplicações Captcha são gratuitas. 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. Você pode me ouvir? De muitas formas, Captchas audíveis são similares aos visuais. Em uma abordagem de banco de dados, o criador do Captcha deve pré-gravar uma pessoa ou computador falando cada série de caracteres e então correlacioná-lo com a solução certa. Com uma abordagem randômica, o criador pré-grava cada caracter individualmente e a aplicação coloca os caracteres juntos aleatoriamente para criar Captchas.

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%. Yahoo! usa como Captcha linhas alfanuméricas em vez de palavras quando você cria uma conta de e-mail Empresas de vendas de ingressos, como TicketMaster e Ingressos.com também usam aplicações Captcha. Essas aplicações ajudam a prevenir que cambistas comprem ingressos massivamente em grandes eventos. Sem algum tipo de filtro, é possível para um cambista usar um bot para comprar centenas ou milhares de ingressos em alguns segundos. Consumidores legítimos se tornam vítimas, já que os ingressos se esgotam em poucos minutos após o início das vendas.

Os cambistas tentam então vender os ingressos comprados com bots por valor de face maior. Se as aplicações Captcha não impedem a ação dos cambistas, pelo menos conseguem dificultar a compra em larga escala. Alguns sites têm formulários de comentários que permitem ao visitante postar uma mensagem públicaou enviá-la diretamente ao administrador do site. Para prevenir uma avalanche de spam, muitos desses sites têm um programa Captcha para filtrar os spams. Um teste Captcha não vai impedir alguém que está determinado a postar uma mensagem grosseira ou molestar um administrador, mas ajudará a prevenir que bots postem mensagens automaticamente. O formulário Captcha mais comum exige que os visitantes digitem uma palavra ou uma série de letras e números que a aplicação distorceu de alguma forma. Alguns dos criadores de Captchas apareceram com uma maneira de aumentar o valor de tais aplicações: digitalizar livros. Uma aplicação chamada reCaptcha controla as respostas dos usuários nos campos Captcha para verificar os conteúdos do pedaço de papel escaneado.

Como os computadores nem sempre conseguem identificar palavras escaneadas, o ser humano tem de verificar o que a página impressa diz. Então é possível para mecanismos de busca buscar e indexar os conteúdos de um documento escaneado. Veja como funciona: · Primeiro o administrador do programa reCaptcha escaneia um livro. · Em seguida, o programa seleciona duas palavras da imagem digitalizada. A aplicação já reconhece uma das palavras. · Se o visitante digita aquela palavra corretamente no campo, a aplicação assume que a segunda palavra que o usuário digita tabém está correta. Essa segunda palavra vai fazer parte de um conjunto de palavras que a aplicação vai apresentar a outros usuários. · No momento em que o usuário digita uma palavra no formulário, a aplicação compara a palavra à resposta original. ·

Com o tempo, a aplicação recebe respostas suficientes para verificar a palavra com um alto grau de segurança. Essa palavra pode, então, ir para o conjunto de verificadas. Parece demorado, mas lembre-se que, neste caso, o Captcha está fazendo serviço dobrado. Não apenas está verificando os conteúdos de um livro digitalizado, como também está checando se as pessoas que preenchem o formulário são realmente pessoas. Em troca, essas pessoas estão ganhando acesso ao serviço que elas querem usar

Quebrando um Captcha O desafio de quebrar um Captcha não está em descobrir o que diz a mensagem - afinal, humanos deveriam ter pelo menos 80% de taxa de acertos. A tarefa dura mesmo é ensinar um computador como processar informação de modo similar a como pensam os humanos. Em muitos casos, pessoas que quebram Captchas se concentram não em tornar os computadores mais espertos, mas em reduzir a complexidade do problema proposto pelo Captcha. Vamos assumir que você protegeu um formulário online usando um Captcha que exibe palavras em inglês. A aplicação entorta levemente a fonte, esticando e dobrando as letras de maneira imprevisível.

Mais: o Captcha inclui atrás da palavra um fundo gerado aleatoriamente. Um programador que desejasse quebrar esse Captcha poderia abordar o problema em fases. Precisaria escrever um algoritmo - um conjunto de instruções que leva a máquina a seguir certa série de passos. Nesse cenário, um passo poderia ser converter a imagem em escala de cinza. Isso significa que a aplicação removeria todas as cores da imagem, tirando um dos níveis de confusão que o Captcha emprega. Em seguida o algoritmo poderia dizer ao computador para detectar padrões na imagem em preto e branco. O programa compararia cada padrão com uma letra normal, procurando por coincidências. Se o programa só pudesse correlacionar umas poucas letras, ele poderia fazer referência cruzada daquelas letras com um banco de dados de palavras em inglês. Em seguida, plugaria prováveis candidatas em um campo submit. Essa abordagem pode ser surpreendentemente eficaz. Pode não funcionar 100% do tempo, mas pode funcionar o suficiente para valer a pena para os spammers.

O Captcha Gimpy exibe dez palavras, mas você só precisa digitar três corretamente para passar no teste E os Captchas mais complexos? O Captcha Gimpy exibe dez palavras em inglês com fontes entortadas na frente de um fundo irregular. O Captcha arranja as palavras em pares e as palavras de cada par se sobrepõem uma à outra. Usuários têm de digitar três palavras corretas para seguir adiante. Quão confiável é esse método? Pelo que se viu depois, com o algoritmo certo de quebrar Captcha, ele não é assim tão confiável. Greg Mori e Jitendra Malik publicaram uma pesquisa detalhando sua abordagem para quebrar a versão Captcha do Gimpy. Uma coisa que os ajudou foi que o método Gimpy usa palavras verdadeiras em vez de sequências de letras e números aleatórias. Com isso em mente, Mori e Malik criaram um algoritmo que tentava identificar palavras examinando o começo e o fim das sequências de letras. Eles também usaram o dicionário de 500 palavras do Gimpy. Mori e Malik rodaram uma série de testes usando seu algoritmo. Eles descobriram que seu algoritmo poderia identificar corretamente as palavras em um Captcha Gimpy em 33% das vezes. Embora o resultado esteja longe de ser perfeito, é bastante significativo.

Spammers podem dar-se ao luxo ter apenas um terço de suas tentativas bem sucedidas se eles configurarem seus bots para quebrar Captchas várias centenas de vezes a cada minuto. Ouvidos eletrônicos Captchas auditivos não são infalíveis também. Na primavera de 2008, houve relatos de que hackers descobriram uma maneira de derrubar o sistema de Captcha auditivo do Google. Para crackear um Captcha auditivo, você tem de criar uma biblioteca no banco de dados do Captcha de sons representando cada caracter. Tendo em mente que, dependendo da distorção, haverá vários sons para o mesmo caracter. Depois de categorizar cada som, o spammer usa uma variação do software de reconhecimento de voz para interpretar o Captcha auditivo. Você pode achar que os inventores do Captcha ficariam chateados por seu trabalho duro estar sendo decomposto por hackers, mas você está errado.

Captcha e inteligência artificial Luis von Ahn, da Universidade Carnegie Mellon, é um dos inventores do Captcha, Em uma palestra de 2006, von Ahn falou sobre o relacionamento entre o Captcha e o campo da inteligência artificial (IA). Porque o Captcha é uma barreira entre spammers ou hackers e seu objetivo, essas pessoas dedicaram tempo e energia para quebrar Captchas. Seus sucessos significam que as máquinas estão ficando mais sofisticadas.

Toda vez que alguém descobre como ensinar a máquina a derrotar um Captcha, nós ficamos um passo mais perto da inteligência artificial. Hackers descobriram formas de ensinar computadores como reconhecer um texto em Captchas EZ-Gimpy Enquanto as pessoas descobrem novas formas de contornar Captchas, cientistas da computação como von Ahn desenvolvem Captchas que voltam-se para outros desafios no campo da Inteligência artificial. Um passo para trás para o Captcha ainda é um passo para frente para a inteligência artificial - cada derrota é também uma vitória. Mas e os administradores Web? Eles não devem achar a filosofia de von Ahn nem um pouco atraente. Da perspectiva deles, eles ainda têm de lidar com um problema massivo - spammers e hackers.

Pessoas que mantêm Web sites ou criam pesquisas de opinião online precisam estar conscientes de que vários sistemas Captcha não são mais eficazes. É importante fazer uma pequena pesquisa sobre que aplicações Captcha ainda são confiáveis. E é igualmente importante manter-se atualizado nesse assunto. Se um sistema Captcha falha, o administrador precisa remover o código do seu site e substitui-lo por outra versão. Em relação aos projetistas Captcha, eles têm de ser muito cuidadosos. À medida que os computadores se tornam mais sofisticados, o método de teste também tem que evoluir. Mas se o teste evolui para o ponto em que os humanos não podem mais solucionar o Captcha com uma taxa de sucesso decente, o sistema como um todo falha. A resposta pode não envolver entortar ou distorcer o texto - ela pode exigir que usuários solucionem uma equação matemática ou respondam questões sobre uma história curta. E à medida que esses testes ficam mais complicados, há o risco de o usuário perder o interesse.

Quantas pessoas ainda vão querer postar uma resposta em um fórum se eles têm primeiro de resolver uma equação quadrada? Vamos jogar um jogo? Luis von Ahn tem uma reputação de usar a computação humana como uma forma de avançar na tecnologia de computador. Como você convence as pessoas a ajudá-lo a tornar as máquinas mais inteligentes? Transforme isso em um jogo! Aqui estão alguns jogos em que von Ahn trabalhou para tornar os programas de computador mais eficazes: ·

O ESP Game, que forma pares de jogadores, mostra uma imagem para cada jogador, e desafia-os a sugerir as mesmas tags para descrever aquela imagem. Cada tag verificada ajuda a categorizar a foto nos mecanismos de busca. · E há o Verbosity. Um jogador descreve uma palavra para outro jogador usando uma série de pistas. O outro jogador deve adivinhar a palavra correta. ·

O Matching game apresenta as mesmas duas fotos a dois jogadores diferentes. Cada jogador escolhe a foto de que gosta mais. Ambos os jogadores ganham pontos para cada foto igual escolhida. À medida que o jogo acumula resultados, ele categoriza as fotos da mais atrativa para a menos atrativa. Com o tempo, nós podemos chegar a um ponto em que computadores e humanos interpretem quebra-cabeças da mesma forma. Se isso acontecer, testes como o Captcha se tornarão linhas de código inúteis. Até lá, nós teremos de apertar os olhos ou os ouvidos cuidadosamente enquanto tentamos decifrar códigos Captcha. Fonte de Pesquisa: HSW

2 comentários:

ivandro disse...

Esta foi muito exclarecedora aumentei meus conhecimentos tudo que rola neste blog é de altisima qualidade obrigado.

Drauzio Milagres disse...

Eu não tinha a menor idéia disso. Aprendendo mais um pouco. Obrigado e um abraço. Drauzio Milagres.