Sept. 10, 2007

reCaptcha - Spamschutz und OCR-Hilfe

Der Trollvote, wo ironisch über den schlimmsten/besten Heisetroll abgestimmt werden kann, war in letzter Zeit massiv gespammt worden. Der einzige Schutz vor Mehrfachvotes war ein IP-Check, da sowieso jeder pro Tag und Troll einmal abstimmen dürfen soll. Andere Merkmale sind noch leichter fälschbar, also hatte es keinen Zweck Browserversion, Cookies oder ähnliches zu überprüfen. Den Schutz hat jedoch ein Übeltäter ausgenutzt, indem er (vermutlich durch Trennen der Verbindung alle paar Minuten) mit einer großen Menge IPs für seine Favouriten (unter anderem der berüchtigte "Analüst ...") abgestimmt hat.

Die Lösung ist ein Captcha. Ein reCaptcha wählte ich, da ich schon darüber gelesen hatte, und es mir auch im Heiseforum nocheinmal empfohlen wurde. Nachdem man sich auf der Seite angemeldet hat bekommt man die Möglichkeit sich für eine URL ein Schlüsselpaar aus öffentlichem und privatem Schlüssel zu generieren. Die Integration ist dann mit librecaptcha.php sehr einfach:

Captcha generieren:

<? echo recaptcha_get_html($publickey); ?>
Captcha überprüfen:
$resp = recaptcha_check_answer ($privatekey, $_SERVER["REMOTE_ADDR"], $_POST["recaptcha_challenge_field"], $_POST["recaptcha_response_field"]); if($resp->is_valid){ ... }
Das besondere an reCaptcha ist, dass die Captchas nicht einfach verzerrter Text sind, sondern Teile von Buchscans an denen die OCR-Software gescheitert ist. Diese werden noch ein bisschen unkenntlicher gemacht, und dann bekommt der User ein bekanntes und ein unbekanntes Wort. Wird das bekannte richtig eingegeben, wird angenommen, dass auch das unbekannte stimmt. Gibt der User das Captcha falsch ein, bekommt er 2 bekannte Wörter.

Ein Problem für das Projekt ist, dass man mit 50% Wahrscheinlichkeit das unbekannte Wort falsch eingeben kann, wenn man das andere richtig eingibt. Ich hoffe, dass das nun "bekannte" Wort wenn es vom nächsten User richtig, also für die Software "falsch" eingegeben wird wieder als unbekannt eingeordnet wird. Weiterhin habe ich nicht feststellen können, aus welchen Büchern die Scans sind, und in wieweit das fertig digitalisierte Buch der Allgemeinheit zur Verfügung gestellt wird. Da es sich aber ein Projekt einer Universität ist, ist es vermutlich keine Ausbeutung.

Einen völlig anderen Ansatz habe ich bei der Shoutbox gewählt. Nachdem der User eine kurze Zeit lang bei einer kleinen Zahl entscheiden musste ob sie eine Primzahl ist, gibt es jetzt nur noch 2 Radiobuttons:

  • Ich will etwas konstruktives posten
  • Ich will spammen.
Bisher hilft es. Ich bin gespannt ob das alles nur automatische Bots waren, die zu blöd sind das zu verstehen, oder ob die Spammer sich anpassen werden.

Zu dem Thema gab es auch auf der FrOSCon einen Vortrag. Folien sind online verfügbar.

[UPDATE] Bei HotCaptcha muss man Bilder von Personen beurteilen. Ein lustiger Ansatz, aber vermutlich hängt da auch einiges vom persönlichem Geschmack bei ab.

Kategorien: Sicherheit SPAM
Tagged:

2 Kommentare

Kommentare
Sept. 23, 2007 10:48 - laxu &raquo; Blog Archive &raquo; Binärcaptcha ges

[...] reCaptcha-Artikel hatte ich erwähnt, dass ich mit dem Shoutbox-Captcha ein wenig experimentieren möchte. Mit einem [...]

Dez. 5, 2007 19:05 - laxu &raquo; Blog Archive &raquo; reCaptcha in den

[...] und vielleicht sogar etwas sicherer sein. Wer sich dafür interessiert findet hier einen etwas längeren Artikel zum Thema reCaptcha. [...]


Kommentar schreiben