CAPTCHA ist eine Abkürzung für “Completely Automated Public Turing test to tell Computers and Humans Apart” – “Vollautomatische Überprüfung um Computer und Menschen voneinander zu unterscheiden”
Die “Sicherheit” basiert darauf, dass Zeichen in verzerrter Form in einem Bild angezeigt werden und man darauf hofft, dass eine Maschine diese Zeichen nicht erkennen kann.
In den letzen Monaten wurde aber eindrucksvoll gezeigt, dass diese Zeichen sehr wohl von Maschinen korrekt ausgelesen werden können. Die Erfolgsrate hängt sehr stark von der eingesetzten Methode der Verschleierung ab, liegt aber dennoch bei 5 – 25 Prozent.
Die einfachste Methode um Captchas maschinenlesbar zu machen ist mit Filtern aus Bildbearbeitungsprogrammen und Schrifterkennung aus Textverarbeitungen (OCR). Sehen wir uns zwei Beispiele an wie die Filter und OCR einfache CAPTCHAS in Sekunden knacken:

Wir sehen, die Software hat kein Problem alle Zeichen korrekt zu erkennen.
Nur wie sieht es mit komplexeren Szenarien aus? Captchas die auf Mustererkennung beruhen. Zum Beispiel werden vier Bilder von Tieren angezeigt, mit der Aufforderung das Känguru auszuwählen. Bieten diese CAPTCHAs nennenswerte Vorteile? Nein.
Problem: Es steht in der Regel nur eine begrenzte Menge an Bilder zur Verfügung. Angenommen es stehen 100 Bilder zur Verfügung, 20 Versuche pro Sekunde und eine Wahrscheinlichkeit von Anfangs 25% das richtige Bild zu erraten sowie der entsprechenden Lernkurve, welche vom eingesetzten Algorithmus abhängig ist. Somit werden wir mit etwas Pech erst in einer Minute das Captcha geknackt haben.
Weiters verwenden viele Algorithmen schlechte Zufallszahlengeneratoren. So kann man zum Beispiel ein fünfstelliges rand()-basiertes Captcha in weniger als 20 Versuchen aushebeln.
Diese und ähnliche Methoden können auch auf Audio-Captchas angewandt werden. Hier kommt ein Faktor, der “Hamming-Abstand” genannt wird, ins Spiel.
Was ist aber wenn die Wahrscheinlichkeit sinkt? Angenommen wir haben ein Captcha mit einer potenziellen Chance von 1 zu 100.000 das korrekte Ergebnis zu erraten. Daran wird sich auch jedes Botnet die Zähne ausbeißen. Jede Technik (siehe oben) diese Rate auf 10% bis 20% zu erhöhen hört sich im ersten Moment vielleicht lächerlich an, aber für 10.000 Maschinen ist dies ein Frühstücks-Häppchen.
Was macht man eigentlich mit geknackten Captchas? Ganz einfach: E-Mail Accounts anlegen und Spam verschicken. Phishing-Attacken durchführen und immer mehr Rechner in das Botnet eingliedern.
Gibt es neue Methoden und Ansätze um das Problem zu beseitigen? Es gibt einige Ansätze, aber noch keine praktischen Methoden. In den meisten Fällen bleibt die “user experience” auf der Strecke.
In der Zwischenzeit freuen wir uns einfach über unsere täglichen Lottogewinne