Ein neues CAPTCHA mit Sätzen?


8

Ich habe gerade darüber nachgedacht, wie schwierig Recaptcha wird, als ich über eine andere mögliche Lösung nachdachte. Bilder werden nicht ewig dauern, also werden wir eines Tages etwas anderes brauchen - wie menschliche Logik oder Emotionen. Google und andere versuchen, Bilder nach Kategorien zu gruppieren (finden Sie das Bild, das nicht dazu gehört), dies erfordert jedoch eine große Anzahl von Bildern und funktioniert nicht für Blinde.

Was wäre, wenn eine riesige Sammlung von Texten gesammelt würde (gemeinfreie Bücher aus jeder Sprache) und dem Benutzer ein Satz mit 1 (oder 2) Wörtern angezeigt würde, die eine Auswahlbox darstellen? Nur Computer, die die richtige englische / spanische / deutsche Grammatik kannten, konnten erkennen, welches der Wörter in den Satz gehörte.

Gibt es Probleme mit diesem Ansatz? Ich würde davon ausgehen, dass es für jeden, der die Sprache kennt, in der das Urteil angezeigt wurde, einfach genug ist, die Antwort leichter herauszufinden, als zu versuchen, den reCAPTCHA-Text zu lesen. Außerdem würde das Speichern einer wahnsinnigen Anzahl von Sätzen nur ein paar Gigabyte Speicherplatz beanspruchen und nicht annähernd die CPU-Zeit in Anspruch nehmen, um Bilder / Audioaufnahmen zu erstellen. Mit anderen Worten, jeder kann sein eigenes Captcha-System mit minimalen Auswirkungen auf die Systemleistung hosten.

Gibt es ein Problem mit diesem Ansatz? Insbesondere suche ich nach dem Hauptproblem bei diesem Ansatz.

vom Stackoverflow migriert


4
Ich habe neulich versucht, eines der hörenden zu machen, da ich auf irgendeine Sicht mit den visuellen zu kämpfen hatte. Der Ton war völlig unverständlich. Alles wird ein bisschen albern, nicht wahr?
Armand

2
Oder Sie könnten versuchen, einen Voight-Kampff-Test als Captcha durchzuführen. Es scheint auf Replikanten zu funktionieren ...
FrustratedWithFormsDesigner

4
Das klingt wie ein xkcd-Comic .... xkcd.com/810
Tyanna

1
Erstens kennt möglicherweise nicht jeder eine Sprache perfekt, und viele Benutzer sind möglicherweise keine Muttersprachler (z. B. ich). Vor allem aber würde ich mich nicht zu sehr auf die Annahme verlassen, dass alle Menschen mit Logik ausgestattet sind . Die Erfahrung hat mich gelehrt, dass menschliche Logik in bestimmten Fällen nur ein Mythos ist. Es besteht also die Möglichkeit, dass Sie am Ende Menschen herausfiltern und Bots durchlassen.
Lucius

2
Ich weiß es nicht, aber ich habe ernsthaft darüber nachgedacht, Captcha-brechende Software zu kaufen, um mich legitimerweise bei einigen Websites anzumelden. :)
Davidhaskins

Antworten:


7

Zuerst gebe ich Ihnen IBMs Watson . Ich denke, das Rechnen hat das einfache Ausfüllen der leeren Sprachprobleme weit übertroffen .

Als nächstes gebe ich Ihnen alle in der Software implementierten Rechtschreib- / Grammatikprüfungen. In> 90% der Fälle wird festgestellt, ob ein Wort in einem Satz grammatikalisch korrekt ist. Ich werde sogar meinen Hals rausstrecken und sagen, dass sie besser lesen und schreiben können als die meisten Menschen, die ich kenne.

Ich glaube nicht, dass Ihre CAPTCHA-Idee so gut funktioniert, wie Sie es erwarten ...


Rechtschreibung und Grammatik halten sich an Regeln, die funktionieren, auch wenn sie dunkel sind. Auf der anderen Seite würde es definitiv auch die Forschung in diese Richtung anregen ...
Matthieu M.

Unter der Annahme der hohen Rate der korrekten Verwendung durch viele Rechtschreibprüfer und der Wahrscheinlichkeit, die verbleibenden Wörter zu erraten, wie Jeff erwähnte, glaube ich, dass dies die Wirksamkeit des CAPTCHA erheblich verringern würde. Ich denke, es würde für viele kleinere Websites gut funktionieren - aber nicht für Spammer, denen es etwas ausmachen würde, ein wenig Zeit damit zu verbringen, zu versuchen, zu brechen. Computer sprechen bereits eine bessere Sprache als Menschen - Rechtschreibprüfung beweist dies.
Xeoncross

6

Mal sehen, wie lange würde es dauern, immer die erste Wahl zu treffen und sie schließlich richtig zu machen?


3
Ha, der Grundfall für meine eigene überarbeitete Antwort. Aber ja, deshalb sind Multiple-Choice-CAPTCHAs albern.
Meredith L. Patterson

Sicherlich ein Problem, das angegangen werden muss. Derzeit verwenden meine Websites jedoch IP-Ratenbegrenzung und Fehlerprotokollierung. Wenn der Spammer kein großes Netzwerk hat (wie ein verteiltes DoS), würde ich ihn fangen.
Xeoncross

Sie würden nicht einmal jemandem 3 Chancen geben?
JeffO

3? Ich denke eher an 40 Treffer in 30 Minuten, bevor ich sie verbiete.
Xeoncross

2
Angenommen, eine falsche Antwort gibt Ihnen eine 10-minütige Strafe und eine gute Antwort reduziert die Strafe um 5 Minuten. Wenn Ihre Strafe größer als Null ist, wechseln Sie in den Strafmodus. Der Strafmodus bedeutet, dass Sie bei der Anwendung Captcha übergeben müssen, bevor Sie eine Funktionalität erreichen. Ein Brute-Force-Bot wird in kürzester Zeit einige Jahre Strafe erhalten, während sich der Mensch (mit klaren Anweisungen) in zwei Schritten von seinem anfänglichen Fehler erholen kann.
Jacek Prucia

4

Wenn Sie Sätze aus gemeinfreien Büchern ziehen, muss ein Bot nichts über Grammatik wissen. Es müsste lediglich dieselben Sätze indizieren und eine Suche durchführen, um herauszufinden, welches Wort der tatsächlich verwendete Satz ist. Und das setzt voraus, dass Sie das von Jeff O vorgeschlagene Problem vernünftig lösen, wo Sie das Problem umgehen können, indem Sie jedes Mal die erste Option erraten.

Außerdem wären viele der Sätze im Universum gemeinfreier Bücher für diese Art von Bestrebungen ungeeignet. Viele wären ohne Kontext mehrdeutig. Viele würden anstößige Inhalte enthalten (stellen Sie sich vor, Sie präsentieren einen zufälligen Satz von Huckleberry Finn). Sie müssten also einen angemessenen Aufwand betreiben, um zu einer Reihe von Sätzen zu gelangen, die nicht anstößig und nicht mehrdeutig sind. Wenn Sie akzeptieren, dass einige Sätze mehrdeutig sind, verlieren Sie einen Großteil der Fähigkeit, Bots für falsches Raten zu bestrafen.


3

Ein schwierigeres Problem für Bots wäre, ein Wort aus einem Satz zu entfernen und dann eine Auswahl zwischen vier verschiedenen Wörtern desselben Wortteils zu treffen. (ZB entfernen Sie ein Substantiv; welches dieser vier Substantive passt hier am besten?)

Tagging- und Parsing-Algorithmen sind nicht perfekt, aber korpusbasierte Ansätze haben einen Punkt erreicht, an dem Sie einen Parser gut genug trainieren können, um die Chancen eines CAPTCHA mit Standard- oder Open-Source-Software zu übertreffen. (Wenn Sie in der Lautstärke spammen, ist es in Ordnung, wenn einige Nachrichten nicht durchkommen, solange genug davon ausreichen, um Ihre Gesamterfolgsrate zu erhöhen.)

Computer sind jedoch noch nicht so gut mit Semantik.


Ja, ich habe darüber nachgedacht, dass das Wort ein bestimmter Teil der Sprache mit passenden PoS-Ersetzungen ist, da ich in der automatisierten Textanalyse gearbeitet habe und einen Computer sehen kann, der dieses System schlägt, wenn die Auswahl der richtigen Wörter offensichtlich ist. Andererseits, je weniger offensichtlich - desto schwieriger ist es für Nicht-Sprachsprecher zu antworten.
Xeoncross

Natürlich gibt es Zeiten, in denen die Leute mit Semantik nicht so gut umgehen können ...
FrustratedWithFormsDesigner

3

Der größte Teil des Spam, den ich heutzutage bekomme, wird nicht von Bots generiert. Ich bekomme viel Spam aus Ländern der Dritten Welt, in denen Leute für ein paar Cent pro Stunde eingestellt werden, um Nachrichten in Foren und Blogs und so weiter zu posten.

Kein System, das zwischen Mensch und Computer unterscheidet, wird dies aufhalten.

Aus diesem Grund habe ich CAPTCHA auf meinen Websites vollständig abgeschafft. Stattdessen habe ich eine ziemlich einfache Javascript-basierte Lösung (im Grunde ordnet Javascript, das auf dem Client ausgeführt wird, Felder neu an, sodass es fehlschlägt, wenn Sie mit deaktiviertem Javascript posten). Dies stoppt 95% des Bot-Spam, hat aber offensichtlich keine Auswirkungen auf den menschlichen Spam - aber ein CAPTCHA auch nicht.


Ich sehe immer mehr Websites, bei denen lediglich ein Kontrollkästchen mit einer zufälligen ID angeklickt werden muss, andernfalls wird kein Beitrag hinzugefügt oder ein Text auf der Seite gedruckt, der in ein zufällig benanntes Eingabefeld eingegeben werden soll. Funktioniert weitaus besser als Captcha und ist benutzerfreundlicher.
Jwenting

2

Nur Computer, die die richtige englische / spanische / deutsche Grammatik kannten, konnten erkennen, welches der Wörter in den Satz gehörte.

Die Antwort könnte subjektiv werden (sie ist in Wirklichkeit nicht subjektiv, aber das Fehlen von Sprachkonzepten erstreckt sich über alle Gesellschaften) und für diejenigen schwierig sein, die die Sprache nicht muttersprachlich sprechen.

Wenn eine endliche Liste von grammatikalischen Regeln (die jede Sprache hat) präsentiert wird, wird es einfach ein Algorithmus; Jetzt für jede Maschine zugänglich, die bereit ist, den Algorithmus zu implementieren.


Und was ist mit Leuten, die die Sprache, in der der Satz ist, nicht vollständig verstehen? Werden sie das Captcha nicht bestehen können?
FrustratedWithFormsDesigner

1
Guter Punkt, aber es ist die gleiche Antwort wie Was ist mit Leuten, die den Text im reCAPTCHA-Bild nicht vollständig verstehen?
Xeoncross

2
@Xeoncross Es gibt einen Unterschied. Der Text in einem typischen CAPTCHA wird abstrahiert. Es ist nicht so, dass ein Benutzer nicht weiß, dass A == A; Es ist die Präsentation. Das Problem besteht darin, dass die Abstraktion leider die Lesbarkeit aufhebt, in der Hoffnung, eine Lücke zwischen dem, was ein Mensch und eine Maschine verstehen können, zu schaffen. Es ist grundlegend in der Natur. Ein A ist immer gleich einem A. Wenn Sie Grammatik in die Mischung einbringen, ändern Sie den Ansatz. Sie gehen jetzt davon aus, dass jeder Einzelne in Bezug auf die verwendete Sprache ein bestimmtes Verständnisniveau aufweist.
Aaron McIver

1
Ich muss zugeben, dass ich von Ihren Analysen ziemlich begeistert war. Es stoppt nicht nur Spam-Bots - Sie müssen auch halbkundig sein, um einen Kommentar zu hinterlassen! Das wäre so toll! ; P
Xeoncross

1
@Frustrated: Einige von uns würden das als Feature betrachten, nicht als Bug. ;)
Mason Wheeler

2
  1. Alle Captchas sind anfällig für Captcha-Landwirtschaft.
  2. Multiple Choice ist zu einfach durch zufälliges Ausprobieren zu lösen. (Wie von anderen betont.)

Aber wenn man diese ernsten Fallstricke ignoriert, gibt es das Problem der Sprachen.

Agglutinierende Sprachen wie Ungarisch oder Finnisch eignen sich leicht für diese Art von Captchas, da Wörter viele Suffixe haben können und jedes einen anderen Zweck im Satz erfüllt (z. B. hat dasselbe Substantiv ein anderes Suffix, wenn es als Objekt oder Subjekt verwendet wird) Die Regeln sind nur für Menschen kompliziert, eine Maschine findet in wenigen Versuchen die richtige.

Isolierende Sprachen (Englisch ist ein ungefähres Beispiel, Mandarin-Chinesisch ein viel saubereres Beispiel) sind noch schlimmer, da die Grammatik hauptsächlich durch die Position im Satz und nicht durch die Wortform bestimmt wird.

Fusionssprachen wie Russisch oder Griechisch werfen wahrscheinlich noch weitere Probleme auf und so weiter.

Zusammenfassend lässt sich sagen, dass sprachliche Rätsel, die sich gut übersetzen lassen und nur schwer zufällig zu erraten sind, notorisch schwer zu finden sind. Es ist wahrscheinlich viel einfacher, sich auf die Semantik als auf die Syntax zu konzentrieren. Beispiel: "Setzen Sie die folgende Sequenz fort: Donnerstag, Mittwoch, Dienstag ..." oder "Backen, Braten, Braten ..." und so weiter.


1

Die übliche Idee hinter einem Captcha ist, dass es Bots fast immer stoppen sollte. Eine Mehrfachauswahl zwischen N Antworten stoppt nur den Bot (N - 1) / N der Zeit, sodass der Bot in durchschnittlich N Versuchen durchkommt.

Sie können Zeitüberschreitungen für falsche Captcha-Antworten implementieren, aber Sie können diesbezüglich nicht zu streng sein, ohne Menschen ernsthaft zu belästigen, die nicht gut Englisch sprechen (oder was auch immer) oder Probleme mit ausgewählten Feldern haben (zitternde Hände, schlechte Mäuse usw.) Behinderungen). Darüber hinaus werden Timeouts ein Botnetz nicht aufhalten, da die Vermutungen von verschiedenen IPs stammen können.

Wie stellen Sie außerdem sicher, dass es nur eine legitime Antwort gibt? Ein zufällig ausgewählter Satz aus Project Gutenberg kann bei mehreren zufällig ausgewählten Substantiven sinnvoll sein, aber nur eines ist die richtige Antwort.


0

Alles, was Sie tun, ist, es den Menschen schwerer zu machen, Ihre Website zu nutzen, während Sie für die Bots überhaupt keine Hindernisse hinzufügen.

Sie sollten sich lieber darauf konzentrieren, einen Mechanismus zu erstellen, der automatisch erkennt, ob etwas, das veröffentlicht wird, Spam ist, und den Beitrag blockiert, wenn dies der Fall ist (z. B. auf menschliche Mäßigung verschieben und dem Poster eine Nachricht in diesem Umfang geben).

CAPTCHAs sind an einem Punkt angelangt, an dem sie so nervig sind, dass ich Websites, die sie verwenden, immer mehr vermeide, und viele mit mir. Dies gilt insbesondere, da allgemein bekannt ist, dass sie keinerlei Auswirkungen auf Spambots haben.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.