reCAPTCHA: was es prüft, was es nicht kann

« Blog · Von

Fast jedes Formular im Netz ist heute durch ein Captcha geschützt, meistens durch reCAPTCHA von Google. Wir setzen es selbst ein. Trotzdem lohnt ein nüchterner Blick darauf, was es tatsächlich leistet – und was nicht.

Die drei Varianten

  • v2 mit Kästchen – das bekannte „Ich bin kein Roboter". Bei Zweifeln folgt die Bilderaufgabe.
  • v2 unsichtbar – kein Kästchen, die Prüfung läuft im Hintergrund und meldet sich nur bei Verdacht.
  • v3 – überhaupt keine Interaktion. Liefert einen Wert zwischen 0,0 und 1,0, und die Website entscheidet selbst, ab wann sie misstrauisch wird.

Was tatsächlich geprüft wird

Nicht das Kästchen. Der Klick ist im Wesentlichen der Anlass, die eigentliche Bewertung passiert vorher und daneben. Ausgewertet werden unter anderem:

  • Mausbewegungen, Tippverhalten, Zeitabstände
  • vorhandene Google-Cookies und damit die bisherige Historie im Browser
  • Reputation der IP-Adresse
  • Browser-Merkmale: Auflösung, Schriften, Plugins, Zeitzone – zusammen oft eindeutig

Wer mit einem frischen Browserprofil über ein VPN kommt und keine Google-Cookies hat, bekommt deshalb überdurchschnittlich oft die Bilderrätsel. Das ist kein Fehler, sondern das Prinzip: Ohne Vorgeschichte gibt es nichts, worauf sich Vertrauen stützen ließe.

Der Schritt, den viele weglassen

Ein Captcha im Formular ist wertlos, solange die Antwort nicht serverseitig überprüft wird. Der Ablauf muss sein:

  1. Der Browser holt sich ein Token und schickt es mit dem Formular.
  2. Der Server sendet dieses Token zusammen mit seinem geheimen Schlüssel an die Prüf-Schnittstelle des Anbieters.
  3. Erst wenn die Antwort success: true lautet, wird das Formular verarbeitet.

Fehlt Schritt zwei und drei, genügt es, das Feld beim Absenden einfach wegzulassen – ein Skript ist schneller fertig als ein Mensch. Wir prüfen serverseitig; auch das Fehlen des Tokens führt bei uns zur Ablehnung.

Wogegen es nicht hilft

  • Menschen. Wer bereit ist, das Formular von Hand auszufüllen, kommt durch. Ein Captcha begrenzt die Menge, nicht die Absicht.
  • Bezahlte Lösedienste. Es gibt Anbieter, die Captchas für Bruchteile eines Cents lösen. Gegen wirtschaftlich motivierten Missbrauch ist das keine Hürde.
  • Missbrauch nach dem Absenden. Das Captcha prüft einmal. Was danach mit dem angelegten Zugang passiert, sieht es nicht.

Deshalb ist ein Captcha eine Schicht unter mehreren, nicht die Lösung. Bei uns sitzt die eigentliche Bremse hinter dem Formular: Ausgehende Nachrichten werden vor der Zustellung gesichtet.

Die Datenschutzfrage

reCAPTCHA überträgt IP-Adresse und Interaktionsdaten an Google. Wer es in der EU einsetzt, muss das in der Datenschutzerklärung offenlegen und eine Rechtsgrundlage benennen; üblich ist das berechtigte Interesse an der Abwehr von Missbrauch. Ob das trägt, hängt davon ab, ob es ein milderes Mittel gibt – und je nach Formular gibt es das durchaus.

Alternativen

  • Honeypot-Feld. Ein per CSS verstecktes Eingabefeld, das Menschen nie ausfüllen. Ist es befüllt, war es ein Skript. Kostet nichts, überträgt nichts, fängt einen erstaunlich großen Teil des Grundrauschens ab.
  • Zeitmessung. Ein Formular, das nach 400 Millisekunden abgeschickt wird, hat kein Mensch ausgefüllt.
  • Rate-Limits. Pro IP nur eine begrenzte Zahl von Vorgängen je Zeitfenster. Wirkt gegen Masse, unabhängig davon, ob Mensch oder Maschine.
  • Proof-of-Work. Der Browser löst eine kleine Rechenaufgabe. Für einen Nutzer unmerklich, für tausend Anfragen teuer. Umsetzungen wie Altcha oder Friendly Captcha kommen ohne Datenübertragung an Dritte aus.
  • hCaptcha. Funktional ähnlich, anderer Anbieter – die grundsätzliche Datenschutzfrage bleibt.

Fazit

reCAPTCHA hält automatisiertes Grundrauschen ab, und das ist viel wert. Es ersetzt aber weder Rate-Limits noch eine inhaltliche Kontrolle dort, wo Missbrauch wirklich weh tut. Für viele Formulare wäre die Kombination aus Honeypot, Zeitmessung und Rate-Limit die datensparsamere Wahl mit vergleichbarer Wirkung.