Nachdem wir auf protect-it.org ein neues Captcha eingebaut haben, wollen wir euch an unseren Ansichten zu Captchas teilhaben lassen.
Wikipedia definiert Captcha so: "CAPTCHA ['kæptʃə] ist ein Akronym für Completely Automated Public Turing test to tell Computers and Humans Apart. Wörtlich übersetzt bedeutet das „Vollautomatischer öffentlicher Turing-Test, um Computer und Menschen zu unterscheiden“.
Weiterhin wird das Ziel eines Captchas so definiert: "CAPTCHAs sollen im Internet sicherstellen, dass nur Menschen und keine programmierten Bots bestimmte Dienste nutzen können. Die Herausforderung für einen Programmierer beim Turing-Test ist es, den Computer möglichst menschenähnlich erscheinen zu lassen; bei CAPTCHAs entstehen zwei Herausforderungen: einerseits schwere Aufgaben in den CAPTCHAs zu stellen, andererseits solche Aufgaben lösen zu können."
Stellt man sich nun die Frage wie, so ein Captcha funktioniert - Ich behaupte mal, dass 90% aller Captchas bildbasierend sind. An dieser Stelle fällt der Teil der Menschen die keine Bilder darstellen können, als Kandiaten zum lösen des Captchas weg. Klar, 99% der Webmaster denken: "für diese Menschen habe ich mein Angebot nicht ausgelegt". Weiterhin wird es, so scheint es mir, schwer sein, ein sicheres Captcha ohne ein Bild zu generieren. Dazu aber später mehr.
Bei den bildbasierten Captchas wird meistens eine Antwort zufällig ausgesucht, diese grafisch verarbeitet und dem Benutzer ausgeben. Der Knackpunkt ist, dass man hofft, dass der Computer nicht in der Lage ist, diese Antwort automatisch zu erkennen; der Mensch jedoch schon. Hierbei entsteht auch das erste Problem: die Algorithmen werden immer besser und die Computer immer leistungsfähiger. Eine mögliche Folge ist, dass die Captchas immer unleserlicher gemacht werden, sodass Mensch und Machine daran scheitern.
Textbasierende Captchas haben zwei Nachteile, denn sie sind Frage und Antwortspiele z.B "Was ist eins plus 2". Hierbei kann man diese Frage ganz leicht auslesen und auswerten, denn bei Rechenaufgaben gibt es nur vier einfach zu lösenen Operationen. Sollte ein Captcha im Stil von "Was ist die sechste Wurzel aus 729" erschaffen werden - Herzlichen Glückwunsch, Ihr Captcha sortiert die Menschen aus. Ziel erreicht. Denn wer kann diese Aufgabe schnell im Kopf lösen? Ein Computer hingegen schon. Parsen, Rechnen, Drei eingeben, Fertig.
Ja, dann machen wir eben Fragen wie "Was hat vier Räder und kann fahren" und die dazugehörigen Antwortlisten wie "PKW, Auto, LKW, Personenkraftwagen". Nicht nur der Autor des Captchas hat einen Duden, auf der Angreifer; auf beiden Seiten ist der gleiche Aufwand solche Listen zu erstellen.
Die ersten Grafikcaptchas beruhten darauf, dass Text verändert wurde, sodass dieser schwer erkennbar ist. Es hat angefangen indem einige Buchstaben leicht verändert wurden. Heute sind diese Captchas teilweise so schwer zu erkennen, dass man dies nichtmal mehr als Mensch im ersten Anlauf schafft; eine Sperrung der Aktion ist schließlich auf ein Botschutz, das Wegfallen der menschlichen Besucher ist nebensächlich.
Eine Möglichkeit, dass Captcha sicherer zu machen, ist es eine GIF-Animation zu verwenden, die immer wieder Teile des Bildes freigibt. Sollte sich das Ziel lohnen ist es einfach, das Sichtfenster von der Hintergrundfarbe zu trennen, weil dies meistens einfarbig ist. Man zerlegt die GIF-Animation hierzu in Einzelbilder und versucht so den Bereich zu erkennen, transparent zu machem, und dann die Einzelbilder wieder zu einem Bild zusammensetzen. Dies kann man dann durch die normalen OCR-Methoden wie ein Captcha ohne Animation verarbeiten.
Ein wichtiger Schritt in Richtung Benutzerfreundlichkeit, jedoch damit weg von der Sicherheit, ist es den Benutzer Formen erkennen zu lassen. Sollten aber entweder zu wenig Formen oder zu einfache Aufgaben sein, ist es mit einem größeren Aufwand dennoch möglich, das Captcha auzulesen. Jedoch hat dieser Weg für den Benutzer den Vorteil, dass er das Captcha mit einem Klick lösen kann.
Kommen wir nun zu dem Captcha, dass wir auf protect-it.org verwenden. Da es uns sehr an der Sicherheit des Captchas liegt und wir "Security through obscurity" (=Sicherheit, die auf der Unwissenheit des Angreiferes beruht) nicht haben wollen, lege ich die Funktionsweise und Gedanken, die bei der Erstellung dieses Captchas mitgewirkt haben, dar. Sollte diese Idee irgendwo anderes Verwendung finde, bin ich für einen Link dankbar.
Das Captcha hat eine feste Auflösung von 150 Pixel Höhe und 500 Pixel Breite. Das Hintergrundbild wird zufällig gewählt. Auf dem Captcha werden vier Symbole (jedes kommt nur einmal vor) von je 64x64 Pixel verteilt. Das ergibt nun vier Bereiche zu je 150 Pixel Höhe und 125 Pixel Breite. Damit das Bild nicht ausserhalb des angezeiten Bereiches liegt, darf es nur bis zu Pixel 61 (125-64) in der Breite und bis zu 84 (150-64) in der Höhe. Es gibt 5.124 (84x61) Möglichkeiten, das Bild in einem der Bereiche zu platzieren. Ohne Überschneidungen ergeben sich somit 20.496 (5.124x4) Möglichkeiten die Symbole zu verteilen.
Ein Problem ist, dass man die Symbole anlernen kann, aus diesem Grund wird eine Datenbank benötigt, die ständigt erneuert wird.
Sollte hier ein Rechen- oder Denkfehler vorliegen, bitte ich um einen Kommentar.
Wir haben hier versucht, ein neuartiges Konzept umzusetzen. Die Sicherheit des Captchas sollte nicht allein in der Möglichkeit der Bruteforcetreffer liegen, sondern auch in der Erkennung an sich. Diese sollte für einen Mensch so einfach wie möglich, aber für einen Computer so kompliziert wie möglich sein. Aus diesem Grund haben wir uns für das Zusammenspiel von Fotos, Symbolen und Bildern entschieden.
Für einen menschlichen sollte es einfach genug sein, das richtige, am unteren Rand des Captchas beschriebene, Symbol auszuwählen und vom Hintergrund zu unterschieden.
Ein Computer müsste in diesem Fall erstmal die Symbole vom Hintergrund trennen, was nicht immer ganz einfach ist, denn ist wäre z.B. möglich, dass ein Tannebaum gesucht wird und der Hintergrund einen Ostbaum darstellt. Zur Lösung dieser Aufgaben ist, unserer Meinung nach, ein neuronales Netz notwendig (Personen die in der Lage sind, sowas zu programmieren, könnten ihre Enerige besser nutzen). Sollten wir hier falsch liegen, bitte verbessert uns. Als GAU ist eine Wahrscheinlichkeit von 25% für die richtige Lösung vorhanden. Diese bietet unserer Meinung nach nciht ausreichenden Schutz. Eine Liste von Symbolen wäre aber weiterhin möglich; dies kann man aber verhindern indem man die Symbole geringfügig verändert, bzw. Bildstörungen ähnlich einen Textcaptcha darüber legt. Für einen Computer wird es hier wieder schwieriger, die Fehlinformation von der richtigen zu unterscheiden, denn wenn ein rosa Fleck auf einer Baumrinde ist, weiss jeder Mensch sofort, dass dies nicht passt. Wenn aber nun eine rosa Tasse auf einem Holztisch steht ist dies nicht unbedingt eine Fehlinformation, sondern das gesuchte Objekt.
Samstag, 3. Januar 2009
Blog
Damit die Startseite nicht überladen wird, werden wir längere Beiträge und Zusatzinformatioen ab jetzt in dem Blog verlinken.
Abonnieren
Posts (Atom)