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.

+ 1 2 3 4 5
1 2 3 4 5 6
2 3 4 5 6 7
3 4 5 6 7 8
4 5 6 7 8 9
5 6 7 8 9 10
6 7 8 9 10 11
7 8 9 10 11 12
8 9 10 11 12 13
9 10 11 12 13 14
10 11 12 13 14 15

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.

1 2 3 4 5
1
2 1
3 2 1
4 3 2 1
5 4 3 2 1
6 5 4 3 2 1
7 6 5 4 3 2
8 7 6 5 4 3
9 8 7 6 5 4
10 9 8 7 6 5

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 eine Aufgabe mit positivem Ergebnis gefunden ist.

Multiplikation

Zu guter Letzt die Multiplikationstabelle:

× 1 2 3 4 5
1 1 2 3 4 5
2 2 4 6 8 10
3 3 6 9 12 15
4 4 8 12 16 20
5 5 10 15 20 25
6 6 12 18 24 30
7 7 14 21 28 35
8 8 16 24 32 40
9 9 18 27 36 45
10 10 20 30 40 50

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.

Addition Subtraktion Multiplikation Gesamt Wahrscheinlichkeit
1 5 1 6 0,0444444444
2 1 5 2 8 0,0592592593
3 2 5 2 9 0,0666666667
4 3 5 3 11 0,0814814815
5 4 5 2 11 0,0814814815
6 5 4 3 12 0,0888888889
7 5 3 1 9 0,0666666667
8 5 2 3 10 0,0740740741
9 5 1 2 8 0,0592592593
10 5 3 8 0,0592592593
11 5 5 0,037037037
12 4 3 7 0,0518518519
13 3 3 0,0222222222
14 2 1 3 0,0222222222
15 1 2 3 0,0222222222
16 2 2 0,0148148148
18 2 2 0,0148148148
20 3 3 0,0222222222
21 1 1 0,0074074074
24 2 2 0,0148148148
25 1 1 0,0074074074
27 1 1 0,0074074074
28 1 1 0,0074074074
30 2 2 0,0148148148
32 1 1 0,0074074074
35 1 1 0,0074074074
36 1 1 0,0074074074
40 2 2 0,0148148148
45 1 1 0,0074074074
50 1 1 0,0074074074
Summe 50 35 50 135 1

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.