Um novo CAPTCHA usando frases?

8

Eu estava pensando em como a recaptcha está ficando mais difícil quando pensei em outra solução possível. As imagens não duram para sempre, então precisaremos de algo mais algum dia - como lógica ou emoção humana. O Google e outros estão tentando agrupar imagens por categoria (encontre a imagem que não pertence), mas isso exige uma grande quantidade de imagens e não funciona para os cegos.

De qualquer forma, e se uma coleção massiva de texto fosse reunida (livros de domínio público de cada idioma) e uma frase fosse exibida ao usuário com 1 (ou 2) palavras que fossem uma caixa de seleção? Somente computadores que sabiam gramática inglesa / espanhola / alemã correta seriam capazes de dizer quais das palavras pertenciam à frase.

Haveria algum problema com essa abordagem? Eu diria que seria fácil o suficiente para qualquer um que conhecesse o idioma em que o sentense era exibido para descobrir a resposta mais fácil do que tentar ler o texto reCAPTCHA. Além disso, armazenar um número insano de frases levaria apenas alguns gigabytes de espaço e não levaria nem um pouco perto do tempo da CPU, criando imagens / tomadas de áudio. Em outras palavras, qualquer pessoa poderia hospedar seu próprio sistema captcha com um impacto mínimo no desempenho do sistema.

Existe algum problema com essa abordagem? Mais especificamente, estou procurando o principal problema com essa abordagem.

migrado do stackoverflow

Xeoncross
fonte
4
Tentei fazer um dos ouvintes no outro dia, pois estava lutando com os visuais à vista. O som era completamente incompreensível. Tudo ficando um pouco bobo, não é?
Armand
2
Ou você pode tentar administrar um teste de Voight-Kampff como um captcha. Parece que funciona em replicantes ...
FrustratedWithFormsDesigner
4
Isso soa como uma história em quadrinhos xkcd .... xkcd.com/810
Tyanna 28/03
1
Bem, primeiro, nem todos podem conhecer um idioma perfeitamente, e muitos usuários podem não ser falantes nativos (por exemplo, eu). Mas, mais importante, eu não confiaria demais na suposição de que todos os humanos são dotados de lógica . A experiência me ensinou que em certos casos a lógica humana não passa de um mito .. Então possibilidade pode ser que você iria acabar filtrando os seres humanos e deixando bots através ..
Lucius
2
Não sei, mas considerei seriamente comprar software que quebra captcha para legitimamente fazer login em alguns sites. :)
davidhaskins

Respostas:

7

Primeiro, eu lhe dou o Watson da IBM . Eu acho que a computação excedeu em muito o simples preenchimento dos problemas em branco da linguagem.

A seguir, dou a você todos os verificadores ortográficos / gramaticais implementados em software. Determinar se uma palavra está gramaticalmente correta em uma frase é resolvido em> 90% dos casos. Vou até esticar o pescoço e dizer que eles são melhores em alfabetização do que a maioria dos humanos que conheço.

Não acho que a sua ideia de CAPTCHA funcione tão bem quanto você espera ...

Dan McGrath
fonte
Ortografia e gramática obedecem a regras que, mesmo que obscuras, funcionam. Por outro lado, seria a pesquisa definitivamente stirr nessa direção também ...
Matthieu M.
Assumindo a alta taxa de uso correto por muitos corretores ortográficos e a probabilidade de adivinhar as palavras restantes, como Jeff mencionou, acredito que isso reduziria bastante a eficácia do CAPTCHA. Eu acho que funcionaria bem para muitos sites menores - mas não aquele que os spammers se importariam de gastar um pouco de tempo tentando quebrar. Os computadores já falam melhor linguagem que os humanos - os corretores ortográficos provam isso.
Xeoncross
6

Vamos ver, quanto tempo levaria para sempre selecionar a primeira opção e, eventualmente, acertar?

JeffO
fonte
3
Ha, o argumento base para minha própria resposta superengenharia. Mas, sim, é por isso que os CAPTCHAs de múltipla escolha são tolos.
Meredith L. Patterson
Certamente um problema que precisa ser resolvido. No entanto, por enquanto, meus sites empregam limitação de taxa de IP e registro de falhas. A menos que o remetente de spam tenha uma rede grande e não relacionada (igual a um DoS distribuído), eu o pegaria.
Xeoncross
Você não daria a alguém três chances?
JeffO 8/03
3? Estou pensando em mais de 40 hits em 30 minutos antes de bani-los.
Xeoncross
2
Suponha que uma resposta errada conceda a você 10 minutos de penalidade e uma boa resposta reduza a penalidade em 5 minutos. Se sua penalidade for maior que zero, você entra no modo de penalidade. O modo de penalidade significa que o aplicativo exige que você passe o captcha antes de atingir qualquer funcionalidade. Um bot de força bruta alcançará alguns anos de penalidade em pouco tempo, enquanto humanos podem (com instruções claras) se recuperar do erro inicial em duas etapas.
Jacek Prucia
4

Se você está usando frases de livros de domínio público, um bot não precisa saber nada sobre gramática. Seria apenas necessário indexar essas mesmas sentenças e fazer uma pesquisa para descobrir qual palavra a sentença real usava. E isso pressupõe que você resolva razoavelmente o problema que Jeff O sugeriu onde você pode contornar o problema, adivinhando sempre a primeira opção.

Além disso, muitas das frases no universo de livros de domínio público seriam inadequadas para esse tipo de empreendimento. Muitos seriam ambíguos sem contexto. Muitos conteriam conteúdo censurável (imagine apresentar uma frase aleatória de Huckleberry Finn). Portanto, você teria que investir um esforço considerável para chegar a um conjunto de sentenças que não serão ofensivas nem ambíguas. Se você aceitar que algumas frases serão ambíguas, você perde grande parte da capacidade de punir bots por adivinhações incorretas.

Justin Cave
fonte
3

Um problema mais desafiador para os robôs seria remover uma palavra de uma frase e, em seguida, apresentar uma escolha entre quatro palavras diferentes da mesma parte do discurso. (Por exemplo, remova um substantivo; qual desses quatro substantivos se encaixa melhor aqui?)

Os algoritmos de marcação e análise não são perfeitos, mas as abordagens baseadas em corpus chegaram ao ponto em que você pode treinar um analisador suficientemente bem para ajudá-lo a vencer as probabilidades de um CAPTCHA com software de código aberto ou de commodity. (Quando você está enviando spam em volume, tudo bem se algumas mensagens não forem exibidas, desde que o suficiente para aumentar sua taxa geral de sucesso.)

Os computadores ainda não são tão bons com a semântica.

Meredith L. Patterson
fonte
Sim, eu estava pensando que a palavra é uma certa parte do discurso com substituições de PoS correspondentes, pois trabalhei na análise automatizada de texto e posso ver uma computação superando esse sistema se a escolha das palavras corretas for óbvia. Por outro lado, quanto menos óbvio, mais difícil é para os que não falam o idioma.
Xeoncross
De couse, há momentos em que as pessoas não são tão grandes com a semântica ...
FrustratedWithFormsDesigner
3

A maior parte do spam que recebo atualmente não é gerada por bot. Recebo muitos spams provenientes de países do terceiro mundo, onde as pessoas são contratadas por alguns centavos por hora para postar mensagens em fóruns e blogs.

Nenhum sistema que diferencie humanos e computadores interrompe isso.

Por esse motivo, acabei totalmente com o CAPTCHA em meus sites. Em vez disso, eu tenho uma solução baseada em javascript bastante simples (basicamente, o Javascript em execução no cliente reorganiza os campos para que, se você postar com o Javascript desativado, ele falhar). Isso interrompe 95% do spam de bots, mas obviamente não afeta o spam humano - mas também não seria um CAPTCHA.

Dean Harding
fonte
Estou começando a ver mais e mais sites que simplesmente exigem que uma caixa de seleção com um ID aleatório seja clicada, caso contrário, uma postagem não seja adicionada ou um texto impresso em algum lugar da página seja inserido em um campo de entrada nomeado aleatoriamente. Funciona muito melhor que o captcha e é mais amigável.
9118 jwenting
2

Somente computadores que sabiam gramática inglesa / espanhola / alemã correta seriam capazes de dizer quais das palavras pertenciam à frase.

A resposta pode se tornar subjetiva (na realidade não é subjetiva, mas a falta de conceitos de linguagem abrange todas as sociedades) e difícil para aqueles que não falam a língua nativamente.

Se existe uma lista finita de regras gramaticais (que toda linguagem possui) sendo apresentada, ela simplesmente se torna um algoritmo; acessível agora por qualquer máquina disposta a implementar o algoritmo.

Aaron McIver
fonte
E as pessoas que não entendem completamente o idioma em que a frase está? Eles não serão capazes de passar o captcha?
FrustratedWithFormsDesigner
1
Bom argumento, mas é a mesma resposta que E as pessoas que não entendem completamente o texto na imagem do reCAPTCHA?
Xeoncross
2
@Xeoncross Há uma diferença. O texto em um CAPTCHA típico é abstraído. Não é que um usuário não saiba que A == A; é a apresentação. O problema existe no fato de que a abstração infelizmente remove a legibilidade na esperança de criar uma lacuna entre o que um humano versus uma máquina pode entender. É de natureza básica. Um A sempre será igual a A. Quando você coloca a gramática na mistura, muda a abordagem. Agora você está assumindo que cada indivíduo está em um determinado nível de compreensão em relação ao idioma que está sendo usado.
Aaron McIver
1
Devo admitir que fiquei bastante empolgado com suas análises. Não apenas impede os bots de spam, mas você precisa ser semiletrado para deixar um comentário! Isso seria tão incrível! ; P
Xeoncross
1
@ Frustrado: Alguns de nós considerariam isso um recurso, não um bug. ;)
Mason Wheeler
2
  1. Todos os captchas são suscetíveis à criação de captcha.
  2. A escolha múltipla é muito fácil de resolver por tentativa aleatória. (Como indicado por outros.)

Mas, ignorando essas sérias dicas, existe o problema das línguas.

Línguas aglutinantes como húngaro ou finlandês se prestam facilmente a esse tipo de captchas, porque as palavras podem ter muitos sufixos e cada uma serve a um propósito diferente na frase (por exemplo, o mesmo substantivo tem um sufixo diferente quando usado como objeto ou sujeito) Se as regras são complicadas apenas para humanos, uma máquina encontrará a correta em algumas tentativas.

Isolar idiomas (o inglês é um exemplo aproximado, o chinês mandarim é muito mais limpo) é ainda pior, pois a gramática é ditada principalmente pela posição na frase e não pela forma da palavra.

Idiomas fusionais como russo ou grego provavelmente apresentam mais um conjunto de problemas e assim por diante.

Para resumir, enigmas linguísticos que traduzem bem e são difíceis de adivinhar aleatoriamente são notoriamente difíceis de encontrar. Provavelmente é muito mais fácil se concentrar na semântica do que na sintaxe. Por exemplo, "Continue a seguinte sequência: quinta, quarta, terça ..." ou "assar, fritar, assar ..." e assim por diante.

Biziclop
fonte
1

A idéia comum por trás de um captcha é que ele deve parar os bots quase o tempo todo. Uma escolha múltipla entre N respostas interrompe o bot apenas (N - 1) / N do tempo e, portanto, o bot realiza uma média de N tentativas.

Você pode implementar tempos limite para respostas erradas do captcha, mas não pode ser muito rigoroso com isso sem incomodar seriamente as pessoas que não são bons falantes de inglês (ou o que seja) ou têm problemas com caixas de seleção (mãos trêmulas, ratos ruins, outros desvantagens). Além disso, o tempo limite não vai parar uma botnet, pois os palpites podem vir de IPs diferentes.

Além disso, como você garante que haja apenas uma resposta legítima? Uma frase selecionada aleatoriamente do Projeto Gutenberg pode fazer sentido com vários substantivos selecionados aleatoriamente, mas apenas um é a resposta certa.

David Thornley
fonte
0

Tudo o que você está fazendo é dificultar o uso do site por humanos, enquanto nos bots você não está adicionando nenhum obstáculo.

O que você deveria focar é criar um mecanismo que detecte automaticamente se algo postado é spam e bloqueie a postagem, se for (adiando-o para a moderação humana, por exemplo, e dando uma mensagem ao pôster nessa medida).

Os CAPTCHAs chegaram ao ponto em que são tão irritantes que tendem a evitar cada vez mais sites que os usam, e muitos comigo. Isto, especialmente porque são amplamente conhecidos por não terem nenhum efeito sobre os spambots.

jwenting
fonte