Entwicklung eines CAPTCHAs in Zeiten von Deep Learning

Master-Studiengang Information Security

Dipl.-Ing. David Prohaska, BSc

Betreuer: FH-Prof. Prof. (h.c.) Dipl.-Ing. (FH) Thomas Brandstetter, MBA

Ausgangslage

Online Dienste können schwer nachvollziehen, ob ein Mensch oder ein Bot hinter einer Anfrage steckt. In vielen Fällen will man den Zugriff von Bots verhindern. Zu hoch ist das Risiko, dass potenziell schädliche Aktionen durchgeführt werden. Hier wird ein sogenanntes CAPTCHA (Completely Automated Public Turing test to tell Computers and Humans Apart) eingesetzt. Anhand einer kleinen Aufgabe, wie dem Erkennen von Zeichen oder Objekten, wurde Bots ein Riegel vorgeschoben, da sie diese nicht lösen konnten. Mittlerweile ist diese Problemstellung mithilfe von Deep Learning mit sehr hohen Erfolgsraten lösbar. Hier bedarf es einer neuen Idee.

Ziel

Innerhalb dieser Arbeit soll ein CAPTCHA entwickelt werden, dessen Aufgaben nicht mehr im Bereich der visuellen Erkennung liegen. Hierbei entsteht die Schwierigkeit, erneut eine Idee zu finden, mit der sich zahlreiche einzigartige Aufgaben bilden lassen können, deren Anzahl im besten Fall exponentiell steigt. Dies ist wichtig, da andernfalls das Erstellen der Aufgaben gleich viel Zeit in Anspruch nehmen würde, wie das Anfertigen einer Lösungsdatenbank, was einen erheblichen Angriffsvektor darstellt. 

Ergebnis

Im Rahmen dieser Arbeit wurde zunächst ein neuer Ansatz beschrieben. Basierend auf einer ersten Idee wurden Umfragen gestartet, mit denen die Durchführbarkeit der Logik evaluiert wurde. Nachdem sich dies als vielversprechend erwiesen hat, wurden die ersten Prototypen des CAPTCHAs entwickelt, um auch die technische Machbarkeit zu beweisen. Das entwickelte CAPTCHA kann einzigartige Aufgaben im Milliardenbereich darstellen. Weiters sieht die Logik der Idee es vor, dass durch das Lösen des CAPTCHAs automatisiert im Hintergrund Informationen für das Bilden von neuen Aufgabenstellungen erlernt werden können. Durch diesen Lernvorgang wird das Warten des CAPTCHAs auf ein Minimum reduziert. Abschließend wurde mit dem Prototyp ein Proof of Concept durchgeführt, bei dem zufällig generierte Aufgaben von Menschen gelöst werden mussten. Bereits bei dieser beispielhaften Implementierung des CAPTCHAs wurde dabei eine Erfolgsrate von 85% erreicht, was nahelegt, dass diese Idee durchaus Potential hat.