Was ist ein Captcha?

Ein Captcha ist eine Schutzsoftware, die dazu dient, festzustellen, ob eine Interaktion auf einer Website von einem Menschen oder einem Computerprogramm (einem Bot) ausgeht. Das Akronym CAPTCHA steht für "Completely Automated Public Turing test to tell Computers and Humans Apart". Ein paar Initialen wurden der Acronymbildung offensichtlich verschluckt. Im Großen und Ganzen versucht ein Captcha herauszufinden, ob eine digitale Anfrage tatsächlich von einem Menschen oder einem Bot kommt. Das zu unterscheiden ist natürgemäß schwierig, denn die Anfrage kommt ja in jedem Fall von einem Computer. Herauszufinden, ob dort ein Programm oder ein Mensch mit der Maus auf ein Feld geklickt hat, erfordert etwas Kreativität. Dabei hängt die Sicherheit und die Bereitstellung einer Website oder einer App von eben jener Erkennung ab.

Warum gibt es Captchas?

Bots werden häufig für verschiedene Zwecke im Internet eingesetzt. Dabei richten sie durch die automatisierte Ausführung in mehrerer Hinsicht Schaden an.

  • Spam:

    Bots können automatisch Massenmails versenden oder Kommentare in Foren posten. Häufig versendet ein Formular nicht nur an den Websiteinhaber eine Nachricht, sondern zu Bestätigung auch an die oder den Besucher:in der Website. Füllt ein Bot in kurzer Abfolge das Formular immer wieder aus und trägt als Absender jeweils fremde eMail-Adressen ein, wird an diese eMail-Adressen die Bestätigung des Formulars gesendet, obwohl die Adress-Inhaber das Formular gar nicht versandt haben. In der Folge kann es zu einem sog. Abuse-Report kommen, z.B. erzeugt über einen Feedback-Loop, einem Instrument, das automatisch Beschwerden an den Absender versendet, wenn eine eMail als Spam markiert wird. Tritt das in gehäufter Form auf, kann der Host den Dienst sperren, was im Zweifelsfall den ganzen Server betreffen kann.

  • Brute-Force Angriffe:

    Bots können versuchen, sich gewaltsam Zugang zu Websites zu verschaffen oder diese durch übermäßige Anfragen zu überlasten. Sog. Brute-Force-Attacks versuchen in schneller Folge mit verschiedenen Passworten Zugang zu bekommen. Das schadet nicht nur, weil die Gefahr eines erfolgreichen Angriffs besteht, sondern auch weil der Server mit diesen Zugriffen unnötig belastet wird.

  • DDoS Angriffe:

    DDoS steht für Distributed Denial of Service. Für solche Angriffe werden viele einzelne Computer zu einem Botnet koordiniert und greifen gleichzeitig z.B. auf eine Website zu. Wegen der vielen gleichzeitigen Anfragen, wird die Arbeitsleistung des Servers ausgelastet und weitere Anfragen können kaum noch verarbeitet werden. Weil diese Angriffe über viele verschiedene IPs kommen, ist ein Ausschluss über eine IP-Sperre nicht möglich. 
    Solche Angriffe stören nicht nur die Funktion einer Website, sondern können gleich die des ganzen Servers stören.

Captchas sollen diese automatisierten Aktivitäten verhindern. Schäden die durch Bots entstehen, werden nicht nur oft nicht entdeckt, die Folgen können in extremen Fällen Unternehmen in den Ruin treiben, u.A. durch rechtliche Folgen die sich aus einem mangelnden Schutz vor Bots ergeben. So kann z.B. unkontrolliert versendeter Spam in besonderen Fällen einen Datenschutzbruch (Verletzung des Schutzes personenbezogener Daten) im Sinne der DSGVO darstellen.

Wie funktionieren Captchas?

Lese- & Rechencaptcha

Frühere Formen von Captchas nahmen den User in Anspruch, indem sie einfache Rechenaufgaben stellten oder das Abtippen einer schwer lesbaren Zeichenfolge anforderten. Bots können diese Aufgabe jedoch inzwischen besser lösen als Menschen und lassen sich so nicht mehr aussperren.

Traps & Delays

Es gibt subtilere Tricks wie z.B. sog. Honeypots. Dort werden z.B. Felder in ein Formular eingefügt, die dem User aber nicht gezeigt werden. Dieser füllt diese Felder deswegen nicht aus, ein Bot aber schon, weil er ja nicht wirklich die Website "sieht" und verrät sich dadurch. Aber diese Fallen (Traps) lassen sich von Bots leicht umgehen und stellen keine Sicherheit mehr her. Auch sog. Delays bei denen zu schnell ausgefüllte Formulare nicht gesendet werden können, können Bots nicht mehr ausschließen. Außerdem eignen sich Traps und Delays nur für Formulare und nicht für den grundsätzlichen Schutz vor Bots.

Cryptographic Challenge

Ein Weg Bots zwar nicht direkt auszusperren, aber doch zu vergraulen, ist, das Öffnen einer Seite oder das Absenden eines Formulars mit einer Art Rechenaufgabe, die an den Empfangsrechner gestellt werden, zu verbinden. Zum einen stellen nicht alle Bots das dafür notwendige Javascript zur Verfügung und können die Aufgabe nicht lösen, zum anderen wird die Seite durch den Rechenaufwand für den Bot unattraktiv, selbst wenn der Bot grundsätzlich die Aufgabe (Challenge) lösen kann.

Verhaltenstest

Ähnlich der Definition des Turing Tests wird menschliches Verhalten beobachtet und anhand von Vergleichsmustern bewertet. Verläuft z.B. eine Mausbewegung linear, wird schnell klar, dass hier ein Bot die Bewegung simuliert. Nun kann ein Bot natürlich auch eine erratische Bewegungslinie simulieren und auch variieren, deswegen kann niemals ein Kriterium allein die Bewertung vornehmen. Stehen ausreichend Informationen zur Verfügung lässt sich aber ein recht verlässlicher Schluss ziehen.

Blacklist

Es gibt Blacklists, die verdächtige IPs protokollieren. Hier nachzuschauen, ob der ein User unter der IP schon mal verhaltensauffällig war, schützt vor ungeliebten Besuchern. Eine Blacklist bietet allerdings keinen vollständigen Schutz, weil natürlich nur IPs, die schon anderweitig auffällig geworden sind, blockiert werden.

Gründe für Captchas

Was spricht für den Einsatz eines Captchas?

  • Schutz vor Spam

    Captchas können verhindern, dass über Formulare von einer Website Spam gepostet wird.

  • Verhinderung von Brute-Force-Angriffen

    Captchas können verhindern, dass Bots mit Trial-and-Error systematisch unzählige Kombinationen von Benutzernamen, Passwörtern oder Verschlüsselungs-Keys testen, bis die richtige Kombination gefunden wird.

  • Schutz vor DDoS-Angriffen

    Automatisierte DDoS-Attacken können Server lahmlegen. Captchas können die Natur der Angreifer erkennen und den Zugriff blockieren und je nach Captcha die IP blockieren.

Was muss beim Einsatz von Captchas berücksichtigt werden?

  • Benutzerunfreundlichkeit

    Captchas können für Benutzer, insbesondere für Menschen mit Sehbehinderungen, eine Herausforderung darstellen. Vorzugsweise sollten sog. passive Captchas (no friction Captcha) Verwendung finden, die im Hintergrund arbeiten und vom User nicht bemerkt werden.

  • Umgehbarkeit

    Obwohl Captchas eine wirksame erste Verteidigungslinie darstellen, sind auch sie keine Garantie für die Verhinderung missbräuchlicher Zugriffe. Je nach Anwendung kann es sinnvoll sein, weitere Sicherheiten, wie z.B. eine Zwei Faktor Authentifizierung, zu ergänzen. Der angemessene Einsatz von Sicherheitssystemen wie einem Captcha muss jeweils anhand der erwartbaren und machbaren Angriffsmöglichkeiten bewertet werden.

  • Datenschutz

    Captchas sammeln Daten. Zumindest die IP des Users kann gelesen werden. Hier spielt insbesondere die Wahl des Anbieters eine Rolle. US-Amerikanische Dienste sind hier in der Regel nicht im Einklang mit der DSGVO, während Europäische Dienste bei entsprechender Transparenz die geforderten Bedingungen erfüllen können.

Fazit

Ein Captcha ist gut, wenn es möglichst unauffällig und unter Berücksichtigung des Datenschutzes einen verlässlichen Dienst verrichtet. Es ist in Verbindung mit der Sicherheit einer Website unverzichtbar, kann aber in einigen Fällen nicht als 100%er Schutz gewertet werden.

Trotz der oft unauffälligen Arbeitsweise ist ein Captcha aber insbesondere für Formulare unverzichtbar. Ungeschütze Formulare werden oft in wenigen Tagen entdeckt und ausgenutzt. Das Gleiche gilt für Logins, die ohne Schutz den Evaluierungsversuchen von Bots ausgeliefert sind.

Captchas sind ein wichtiges Instrument für die Sicherheit digitaler Angebote und schützen nicht nur vor Schaden, sondern senken ggf. auch die Serverlast. Insgesamt stellen sie einen Faktor im Sicherheitsapparat von Server und Website dar.