Diskussion: Bessere CAPTCHAS

Der Offtopic-Treff auf phpBB.de - Hier ist (unter Beachtung des phpBB.de-Knigges) fast alles erlaubt :-)
Benutzeravatar
Underhill
Mitglied
Beiträge: 1180
Registriert: 24.09.2003 11:40
Wohnort: 742 Evergreen Terrace

Diskussion: Bessere CAPTCHAS

Beitrag von Underhill »

Hi,

hier ein kurzer Artikel den ich mal verfasst habe zum Start einer neuen Diskussionsrunde:

--------------------------------------------------------------------

Ein weiterer Ansatz für CAPTCHA
von Rainer Obermann

Die CAPTCHA-Methode (Completely Automated Public Turing-Test to tell Computers and Humans Apart) wurde im wesentlichen entwickelt, um Computer und Menschen zu unterscheiden. Auch in unserem Beispiel phpBB wurde diese Methode gewählt, um die Sicherheit zu erhöhen und SPAM zu vermeiden. Eine sehr verbreitete Art von CAPTCHAS sind Bilder. Buchstaben oder Zahlenkombinationen werden in Bildform auf dem Monitor angezeigt, und der menschliche Leser muss diesen Text in ein Eingabefeld abtippen. Diese Methode ist leider jedoch nicht mehr sicher, da es sich einige Menschen zur Aufgabe gemacht haben, Dinge, die andere Menschen erstellt haben, wieder kaputt zu machen. Über den Sinn oder Unsinn wollen wir aber hier nicht eingehen. Jedenfalls gibt es mittlerweile im Internet ein paar frei verfügbare Werkzeuge, die über eine Art Bildschirmlesefunktion dieses mühsam erstelle Bild-CAPTCHA in Sekundenschnelle auslesen können.

Ich möchte mit diesem Artikel einmal neue Ansätze für ein CAPTCHA erstellen und vielleicht auch noch andere Menschen dazu überreden, auch Interesse für neue CAPTCHAS zu entwickeln. Aber fangen wir einmal ganz vorne an:

Der Mensch nimmt die Umwelt schon nach Aristoteles mit seinen fünf Sinnen wahr:

akustisch (Gehörsinn)
olfaktorisch (Geruchssinn)
gustatorisch (Geschmackssinn)
visuell (Sehsinn)
haptisch (Tastsinn)


Die moderne Physiologie kennt für den Menschen noch vier weitere Sinne:

Thermozeption (Temperatursinn)
Nozizeption (Schmerzempfindung)
vestibulär (Gleichgewichtssinn)
Propriozeption (Körperempfindung oder Tiefensensibiliät)


Für eine Prüfung auf Menschlichkeit über das Internet scheiden die Sinne Geschmack, Geruch und die vier "neuen" Sinne erstmal komplett aus, da unsere Computer aktuell nicht über die entsprechenden Ein- und Ausgabegeräte verfügen. Bleiben wir bei den übrig gebliebenen drei Sinnen:

Der Sehsinn
Die am meisten verbreitete CAPTCHA-Methode. Bilder mit Buchstaben oder Piktogrammen sollen Computer von Menschen durch Denk- oder Rechenaufgaben unterscheiden. Einige davon auch mehr oder weniger effektiv. Das Problem ist hierbei wie immer der Mensch selbst. Barrierefreiheit ist nicht nur ein Schlagwort für die Internetauftritte von Behörden. Wie soll ein Farbenblinder die rote, verdrehte Buchstabensuppe auf einer grünen gemusterten Tapete erkennen? Was ist mit Schlaumeiern, die immer wieder versuchen, den Begriff "Canis lupus" neben einem Bild, das einen Hund zeigt, einzugeben, wo doch "Hund" oder "dog" völlig ausreichend wäre? Was ist mit Menschen, die aufgrund einer oft erfolgreich selbst eingeredeten Rechenschwäche Aufgaben wie "Was ist 8 x 5 + 2?" nicht lösen können? Ganz einfach - Sie werden nicht an dieser Community teilhaben, weil sie sich nicht registrieren können. Aber macht ja nichts - Die meisten dieser CAPTCHAS sind auch mittlerweile durch Texterkennungssoftware geknackt, so dass sich der Betreiber eines Forum immer noch mit den SPAM-BOTS beschäftigen kann.

Der Gehörsinn
Einige Webseiten sollen in der freien Wildbahn dieses CAPTCHA schon unterstützen. Anstelle eines Bildes bekommt man einen Link, der nach dem Anklicken mit einer schlecht verständlichen, synthetischen Stimme oft ein englisches oder gar amerikanisches Wort vorgelesen bekommt. Sicher ist sogar der heutige Stand der Spracherkennungssoftware dazu in der Lage, dieses Piepsen zu verstehen. Wahrscheinlich sogar eher als ein Mensch.

Der Tastsinn
Warum verfolgen wir nicht diese Methode? Kann ein Computer eine Maus bewegen? Lohnt es sich wirklich, den Fischertechnikkasten rauszukramen und die RS232-Schnittstelle zu bemühen, einen anderen Computer zu bedienen? Man sieht doch schon mal Software von Banken, die richtige Zufallszahlen durch die Mausposition generieren. Wie wäre es damit, dieser Methode ein wenig Aufmerksamkeit zu geben?

Ich selbst habe mir einmal die Arbeit gemacht und so einen Zufallszahlengenerator unter PHP und JavaScript nachgebaut. Läuft nach meiner Meinung auch schon ganz gut. Natürlich fehlt noch so einiges. Meine Beispielversion sendet erstmal nur die mit Mausbewegungen generierte Zufallszahl mittels POST an eine PHP-Seite, aber mit ein wenig AJAX-KnowHow und frischen Ideen kann man da sicher etwas ganz neues draus machen.

Achja - der Demo-URL: http://www.underhill.de/tests/zzpmm/

Gruß
Underhill
Benutzeravatar
Olli Oberhausen
Mitglied
Beiträge: 561
Registriert: 22.10.2004 01:03
Wohnort: Oberhausen NRW
Kontaktdaten:

Beitrag von Olli Oberhausen »

Eine weitere Möglichkeit visuelle captchas auszunutzen wäre vielleicht ein komplexes bild bereitzustellen mit der Anweisung: "Klicke auf den Hund" oder wo ist der unterschied zwischen bild 1 und 2...

Die Eingabe könnte man dann einfach per x und y Position + Fehlertoleranz auswerten. Ganz ohne js und ajax.

Leider scheiterts in dem Fall auch mal wieder an der Einbeziehung von Menschen mit Sehschwächen.

Gruß, Olli
Neulich im Zoo: Papa, guck mal, da sind Linuxe...
KB-Suche :: db_update_generator :: phpMyAdmin
Winmerge :: Zend Studio
Fähnchen
Ehemaliges Teammitglied
Beiträge: 2124
Registriert: 14.08.2004 23:38

Beitrag von Fähnchen »

Bei der Registrierung einen Wert per Post weiterzugeben durch den Klick auf einen Button, damit das Formular aufgerufen werden kann, halte ich bislang noch am sinnvollsten.

Meine Idee beruht da auf diesem Snippet:
http://www.phpbb.de/viewtopic.php?t=120649

Die Vaiable "verfied" kann auch durch einen eigenen String ersetzt werden.

Suche in usercp_register.php

Code: Alles auswählen

if ( $mode == 'register' && !isset($HTTP_POST_VARS['agreed']) && !isset($HTTP_GET_VARS['agreed']) )
Ersetze durch

Code: Alles auswählen

if ( $mode == 'register' && !isset($HTTP_POST_VARS['agreed']) && !isset($HTTP_POST_VARS['verfied'] )
Öffne agreement.tpl und finde

Code: Alles auswählen

<td><span class="genmed"><br />{AGREEMENT}<br /><br /><br /><div align="center"><a href="{U_AGREE_OVER13}" class="genmed">{AGREE_OVER_13}</a><br /><br /><a href="{U_INDEX}" class="genmed">{DO_NOT_AGREE}</a></div><br /></span></td>
Ersetze durch

Code: Alles auswählen

<td><span class="genmed"><br />{AGREEMENT}<br /><br /><br /><div align="center"><form method="post" action="{U_AGREE_OVER13}"><input type="hidden" name="agreed" value="true"><input type="hidden" name="verified" value="true><input type="submit" class="mainoption" style="width:700px; border:2px solid" value="{AGREE_OVER_13}"></form><br /><br /><a href="{U_INDEX}" class="mainmenu">{DO_NOT_AGREE}</a></div></span></td>
Öffne language/lang_german/lang_main.php und suche

Code: Alles auswählen

$lang['Agree_over_13']
Ersetze diese Variable durch etwas passendes wie z.B "Ich bin mit den Konditionen des Forums einverstanden".

Etwas ähnliches kann man dann auch beim Posten von Beiträgen einbinden, so dass ein versteckter Wert beim Klick auf den Absende-Button übergeben wird.

Von Captchas halte ich wenig. Die nerven mich persönlich und haben mich auch schon von einer Anmeldung in dem einem oder anderen Board abgehalten. Anstatt bessere Captchas zu entwickeln sollten liebe bessere Methoden entwickelt werden um vor Bots zu schützen, von denen Otto Normaluser nichts mitbekommt.
Die Signatur hat Urlaub.
Benutzeravatar
Olli Oberhausen
Mitglied
Beiträge: 561
Registriert: 22.10.2004 01:03
Wohnort: Oberhausen NRW
Kontaktdaten:

Beitrag von Olli Oberhausen »

Die Vaiable "verfied" kann auch durch einen eigenen String ersetzt werden.
Eigendlich nur eine frage der zeit bis Robots diese variable auslesen können...
In gemoddeten Foren wird das wohl nie passieren, aber sollte z.b. Olympus mit so was kommen, werden sich die Bots darauf einstellen.

Olli
Neulich im Zoo: Papa, guck mal, da sind Linuxe...
KB-Suche :: db_update_generator :: phpMyAdmin
Winmerge :: Zend Studio
Benutzeravatar
Underhill
Mitglied
Beiträge: 1180
Registriert: 24.09.2003 11:40
Wohnort: 742 Evergreen Terrace

Beitrag von Underhill »

Hi,
Olli Oberhausen hat geschrieben:Eine weitere Möglichkeit visuelle captchas auszunutzen wäre vielleicht ein komplexes bild bereitzustellen mit der Anweisung: "Klicke auf den Hund" oder wo ist der unterschied zwischen bild 1 und 2...
Da wuerde doch eine ImageMap reichen...

Aber nach meiner Meinung ist da die "trial and error" Chance zu hoch...


Gruss
Underhill
Benutzeravatar
Underhill
Mitglied
Beiträge: 1180
Registriert: 24.09.2003 11:40
Wohnort: 742 Evergreen Terrace

Beitrag von Underhill »

Hi,
Fähnchen hat geschrieben:Bei der Registrierung einen Wert per Post weiterzugeben durch den Klick auf einen Button, damit das Formular aufgerufen werden kann, halte ich bislang noch am sinnvollsten.
Die BOTs koennen bereits mit der POST-Methode umgehen... Und "Suche innerhalb <form> nach <hidden>" beherrschen sie auch schon..
Fähnchen hat geschrieben:Von Captchas halte ich wenig. Die nerven mich persönlich und haben mich auch schon von einer Anmeldung in dem einem oder anderen Board abgehalten. Anstatt bessere Captchas zu entwickeln sollten liebe bessere Methoden entwickelt werden um vor Bots zu schützen, von denen Otto Normaluser nichts mitbekommt.
Agreed - Verbinde CAPTCHA aber nicht mit der Visualisierung...

Vielleicht kommen wir im Laufe der Zeit noch eine schoene neue Loesung.


Gruss
Underhill
Benutzeravatar
Olli Oberhausen
Mitglied
Beiträge: 561
Registriert: 22.10.2004 01:03
Wohnort: Oberhausen NRW
Kontaktdaten:

Beitrag von Olli Oberhausen »

Underhill hat geschrieben:Hi,
Olli Oberhausen hat geschrieben:Eine weitere Möglichkeit visuelle captchas auszunutzen wäre vielleicht ein komplexes bild bereitzustellen mit der Anweisung: "Klicke auf den Hund" oder wo ist der unterschied zwischen bild 1 und 2...
Da wuerde doch eine ImageMap reichen...

Aber nach meiner Meinung ist da die "trial and error" Chance zu hoch...


Gruss
Underhill
Aus einr Imagemap kann man die url auslesen sowas geht nur serverseitig...
Mit t&e geb ich dir leider recht...

Olli
Neulich im Zoo: Papa, guck mal, da sind Linuxe...
KB-Suche :: db_update_generator :: phpMyAdmin
Winmerge :: Zend Studio
Benutzeravatar
Underhill
Mitglied
Beiträge: 1180
Registriert: 24.09.2003 11:40
Wohnort: 742 Evergreen Terrace

Beitrag von Underhill »

Hi,

ich hatte vergessen diesen URL zu posten:

http://www.captcha.net/captchas/

Hier werden weitere visuelle CAPTCHAS vorstellt...


Gruss
Underhill
Benutzeravatar
Underhill
Mitglied
Beiträge: 1180
Registriert: 24.09.2003 11:40
Wohnort: 742 Evergreen Terrace

Beitrag von Underhill »

Hi,

ebenso interessant finde ich den Ansatz von Gmaj7 unter http://www.phpbb.de/viewtopic.php?t=142441

Nach meiner Meinung koennte das dann so
[ externes Bild ]
aussehen...


Gruss
Underhill
Jensemann
Ehemaliges Teammitglied
Beiträge: 2549
Registriert: 25.02.2002 01:00

Beitrag von Jensemann »

Was haltet ihr davon, die Captchas nicht mehr als Einzelbild zu generieren, sondern einzelne Bilder per CSS zusammenzusetzen? Die Anordnung kann zufällig geschehen. Der Bot müsste somit entweder CSS parsen, oder von der Seite einen Screenshot machen und die entsprechende Position durch einen OCR-Scanner jagen. Erscheint mir recht viel Aufwand.

Dadurch könnte man die komplexität der Captchas minimieren, was die Nutzerfreundlichkeit verbessert.
Antworten

Zurück zu „Smalltalk“