Schein und Sein eines Captchas
Wie leicht man ein Rechen-Captcha durch Raten löst

Captcha ist ein englisches Kurzwort und steht für vollautmatischer öffentlicher Turingtest zur Unterscheidung von Computern und Menschen. Das mag kompliziert klingen, meint aber etwas, das fast jeder Nutzer des weltweiten Netzes kennt – zum Beispiel in Form eines kleinen Bildes mit verschwommenen Zeichen, die beim Registrieren auf einer Netzpräsenz in ein Textfeld übertragen werden müssen.

In der Annahme, nur Menschen seien in der Lage, die Aufgabe zu lösen, werden Captchas als Hürde gegen Computerprogramme eingesetzt, welche im Netz mit dem Verbreiten von Werbung oder anderweitig nerven und schaden. Doch die Tauglichkeit von Captchas wird oft überschätzt. Ich möchte das an einem Rechen-Captcha demonstrieren, das eine Welle von Spämkommentaren in der digitalen Bildergalerie eines Bekannten nicht unterbinden konnte.

36 Rechen-Captchas 4 × 3 = 12 6 × 2 = 12 8 + 4 = 12 10 × 2 = 20 5 + 1 = 6 8 + 1 = 9 4 − 1 = 3 9 + 5 = 14 3 + 5 = 8 9 × 2 = 18 8 − 1 = 7 8 + 1 = 9 6 × 2 = 12 5 × 3 = 15 8 × 2 = 16 6 × 2 = 12 3 × 3 = 9 3 + 4 = 7 2 × 4 = 8 7 × 3 = 21 2 + 4 = 6 10 × 4 = 40 8 + 1 = 9 2 + 1 = 3 3 × 4 = 12 8 − 3 = 5 1 + 5 = 6 7 + 5 = 12 7 × 4 = 28 4 + 5 = 9 1 + 4 = 5 5 + 3 = 8 7 − 1 = 6 9 − 2 = 7 1 + 3 = 4 8 + 4 = 12
36 Beispielbilder eines „mathematischen“ Captchas

Captcha mit Rechenaufgabe

Auf den ersten Blick mag das Captcha geeignet erscheinen, Menschen und Maschinen zu trennen. Da steht in einem kleinen Bild blau auf weißem Grund eine Rechenaufgabe, deren Identifizierung von blauen Punkten und Linien erschwert wird.1 Ein automatisches Programm müsste nicht nur der Störungen zum Trotz die Rechenaufgabe erkennen, sondern auch noch lösen können, oder …?2

Bei näherer Betrachtung der Captcha-Bilder fällt auf:

  1. Jedes Bild stellt eine Rechnung mit zwei Zahlen dar.
  2. Die erste Zahl stammt aus dem Bereich 1 bis 10.
  3. Die zweite Zahl stammt aus dem Bereich 1 bis 5.
  4. Beim Operator handelt es sich um ein Plus-, Minus- oder Malzeichen.
  5. Das Ergebnis ist immer positiv.
  6. Subtraktionen kommen seltener als Additionen und Multiplikationen vor.

Ich gehe davon aus, dass die ersten fünf Beobachtungen tatsächlich Grundlage des Captcha-Systems sind und die jeweiligen Zahlen sowie Operationen möglichst gleich häufig auftreten sollen. Bei der Subtraktion würden bei einer gleichverteilten Häufigkeit der Zahlen allerdings auch negative Ergebnisse und null herauskommen. Wenn in diesen Fällen das Captcha neu berechnet wird, erklärt das die sechste Beobachtung.3

Lösung raten

Mit den fünf Regeln erkennt man schnell, dass das Captcha nur ganzzahlige Lösungen zwischen 1 × 1 = 1 und 10 × 5 = 50 haben kann. Das bedeutet, dass es maximal fünfzig Lösungen gibt. Man könnte also zufällig eine Zahl aus diesem Bereich wählen und hoffen, dass man richtig liegt. Aber es geht noch viel besser. Aus dem Zahlenbereich kommen manche Zahlen nämlich gar nicht und andere recht häufig unter den Lösungen vor, wie eine vollständige Analyse zeigt …

Addition

In der folgenden Tabelle sind links alle möglichen ersten Zahlen 1 bis 10 und oben alle möglichen zweiten Zahlen 1 bis 5 des Captchas aufgeführt. In der Tabelle steht das Ergebnis der Addition der jeweiligen Zahlen – also die Lösung für den Fall, dass im Captcha ein Pluszeichen steht.

+12345
123456
234567
345678
456789
5678910
67891011
789101112
8910111213
91011121314
101112131415

Unter den 50 Additionen kommen die Zahlen 6, 7, 8, 9, 10 und 11 jeweils ganze fünfmal als Lösung vor. Es gibt hier keine Lösungen über 15.

Subtraktion

Nun die entsprechende Tabelle für die Subtraktion.

12345
1
21
321
4321
54321
654321
765432
876543
987654
1098765

Unter 35 Subtraktionen kommen die Zahlen 1, 2, 3, 4 und 5 jeweils fünfmal als Lösung vor. Fünfzehn Tabellenfelder bleiben frei, weil das Ergebnis kleiner 1 wäre und in diesem Fall das Captcha neu generiert wird, bis ein Aufgabe mit positivem Ergebnis gefunden ist.

Multiplikation

Zu guter Letzt die Multiplikationstabelle:

×12345
112345
2246810
33691215
448121620
5510152025
6612182430
7714212835
8816243240
9918273645
101020304050

Bei 50 Multiplikationen sind die Zahlen 4, 6, 8, 10, 12 und 20 als häufigste dreimal unter den Lösungen vertreten. Alle Operationen zusammengenommen, tauchen bei 135 möglichen Rechenaufgaben nur 30 verschiedene Lösungen auf.

Wahrscheinlichkeiten

Die folgende Tabelle listet links alle möglichen Lösungen des Captchas auf. Wie oft jede vorkommt, fasse ich in dieser Tabelle noch einmal zusammen. In der letzten Spalte findet sich gerundet, mit welcher Wahrscheinlichkeit die jeweilige Lösung im Captcha auftritt. Die Wahrscheinlichkeit berechnet sich als Vorkommen bei allen drei Operationen geteilt durch 135, die Anzahl der möglichen Rechenaufgaben.

AdditionSubtraktionMultiplikationGesamtWahrscheinlichkeit
15160,0444444444
215280,0592592593
325290,0666666667
4353110,0814814815
5452110,0814814815
6543120,0888888889
753190,0666666667
8523100,0740740741
951280,0592592593
105380,0592592593
11550,037037037
124370,0518518519
13330,0222222222
142130,0222222222
151230,0222222222
16220,0148148148
18220,0148148148
20330,0222222222
21110,0074074074
24220,0148148148
25110,0074074074
27110,0074074074
28110,0074074074
30220,0148148148
32110,0074074074
35110,0074074074
36110,0074074074
40220,0148148148
45110,0074074074
50110,0074074074
Summe5035501351

Das wahrscheinlichste Resultat ist 6. Wer das Captcha durch Raten knacken will, ist mit dieser Zahl bestens bedient. Eine Wahrscheinlichkeit von 0,08888… bedeutet, dass man in rund einem von elf Fällen richtig liegt, ohne das Captcha anzuschauen. Das ist eine hervorragende Quote für ein automatisches Spämprogramm, welches es ja wiederholt versuchen kann.


  1. Scheinbar. Während dem menschlichen Auge bei schlechtem Licht das Blau von Rechenaufgabe und Störlinien identisch vorkommen mag, kann ein Computerprogramm beide leicht unterscheiden. Tatsächlich sind es verschiedene Töne, die in Form der sprichwörtlichen „Nullen und Einsen“ des Computers problemlos auseinanderzuhalten sind. Das ist ein schönes Beispiel dafür, dass in manchen Captchas eher Hürden für Menschen als für Computer eingebaut werden.
  2. Es sollte den Leser nicht überraschen, dass das Lösen von Rechenaufgaben Computern – man nennt sie nicht zufällig auch Rechner – leichter als Menschen fällt.
  3. Da der Quelltext für das Captcha-System Secureimage auf https://www.phpcaptcha.org/ offengelegt ist, kann ich versichern, dass die aus der Beobachtung abgeleiteten Vermutungen in der Version 3.5.4 den Tatsachen entsprechen.