Mit Deep-Learning Passwörter generieren

||Password-Guessing-Algorithmen|Passwörter generieren||
|© ML2R

Die mit Abstand gängigste Art, Nutzer*innen auf Internetseiten und Geräten zu identifizieren, sind Passwörter. So werden sie seit Jahrzehnten zur Identifikation verwendet, sind Nutzer*innen und Entwickler*innen bekannt und einfach zu verwenden. Allerdings stellen sie für sich allein keine besonders sichere Authentifikationsmethode dar. Benutzer*innen neigen dazu dasselbe Passwort auf mehreren Seiten zu verwenden und benutzen einfache, kurze Passwörter bestehend aus geläufigen Zeichenketten und Wörtern, die in Wörterbüchern zu finden sind. Somit zeigen Menschen häufig erkennbare Verhaltensmuster beim Erstellen von Passwörtern. Diese Muster zu untersuchen und die erkannten Regelmäßigkeiten zur Erstellung von neuen, sichereren Passwörtern zu verwenden, ist Thema des Forschungsbereichs des Password Guessing.

In Zusammenarbeit mit dem Bundeskriminalamt in Wiesbaden haben Forschende des ML2R nun untersucht, wie sich Deep-Learning-Algorithmen im Bereich des Password Guessings anwenden lassen.

- Lamarr Institute for Machine Learning (ML) and Artificial Intelligence (AI)
© ML2R
Password-Guessing-Algorithmen versuchen, Passwörter zu rekonstruieren, um die Sicherheit von Systemen zu prüfen.

Password Guessing: Untersuchung von Passwort-Datensätzen

Password Guessing ist ein aktives Forschungsfeld, in dem versucht wird in bereits bekannten Datensätzen von Passwörtern statistische Muster zu erkennen und dadurch effizient neue Passwörter zu erstellen. Das Forschungsfeld hat in den letzten Jahren bedeutende Durchbrüche mittels Deep Learning erzielt. Deswegen konzentrieren wir uns in unserer Forschung auf eine breite Sammlung von Deep-Learning- und probabilistischen Modellen, um neue, sicherere Passwörter generieren zu können. Diese neuen Passwörter können dann verwendet werden, um zum Beispiel die IT-Sicherheit in Unternehmen zu testen (Penetration Testing): Ermöglicht eines der generierten Passwörter Zugang zum System, waren die gesetzten Passwörter zu schwach. Genauso können Nutzer diese Algorithmen verwenden, um die Stärke der eigenen Passwörter zu testen: Ist der Algorithmus in der Lage, das eigene Passwort aus bekannten Datensätzen herzuleiten, sollte  ein stärkeres Passwort ausgewählt werden. Theoretisch lässt sich das Passwort eines Systems, das nur von einem Passwort geschützt ist, erraten, in dem man alle überhaupt möglichen Passwörter ausprobiert (Brute Forcing). Praktisch versagt diese Methode jedoch an der Anzahl der möglichen Kombinationen für Passwörter schon ab ein paar Zeichen Länge. Daher werden Algorithmen verwendet, die aus der schier endlosen Zahl an möglichen Zeichenkombinationen jene herausfiltern, die mit einer höheren Wahrscheinlichkeit als Passwort gesetzt werden könnten.

Password-Guessing-Algorithmen setzen größtenteils auf statistische Analyse und die Anwendung von Regeln. Einerseits werden im Datensatz häufig vorkommende Zeichenfolgen gezählt und neu kombiniert, andererseits können Regeln erstellt werden, wie aus bekannten Passwörtern neue erstellt werden. Beispiele hierfür sind die Anpassung von Groß- und Kleinschreibung oder das Anhängen von Zahlen und Buchstaben.

Wie Deep Learning die Analyse von Passwörtern voranbringt

Die Vorteile von Deep-Learning-Modellen bei der Analyse von Passwörtern liegen auf der Hand: Machine-Learning-Algorithmen haben wiederholt bewiesen, dass sie in der Lage sind aus reinen unstrukturierten Daten Muster zu erkennen, die ein Mensch niemals gefunden hätte. Außerdem müssen sie keine starren Regeln zur Generierung von Text befolgen und sind in ihren Möglichkeiten sehr flexibel.

In unserer Forschung entwickeln wir neuartige generative Deep-Learning-Modelle, welche selbstständig Passwort-Datensätze analysieren und neue Passwörter erzeugen, deren Qualität mit den etablierten Methoden mithalten kann und sie teilweise übertrifft. Zusätzlich ermöglichen die Architekturen die gezielte Generierung von Passwörtern nach gewünschten Mustern oder Beispiel-Passwörtern.

Dafür führen wir eine gründliche empirische Analyse in einem kontrollierten Rahmen über bekannte Datensätze (RockYou, LinkedIn, Youku, Zomato, Pwnd) durch. Die Daten haben sich als Standard-Datensätze in der Forschung etabliert und sind reine Passwort-Datensätze (das heißt ohne dazugehörige Nutzernamen/E-Mail-Adressen). Unsere Ergebnisse identifizieren nicht nur die vielversprechendsten, von tiefen neuronalen Netzen angetriebenen Modelle,  sondern veranschaulichen auch die Stärken der einzelnen Ansätze in Bezug auf die Generierungsvariabilität und die Einzigartigkeit der Stichprobe. Untersucht wurden dabei drei Ansätze:

Auto-Encoder: Ein Auto-Encoder besteht aus einem Enkodierer und einem Dekodierer, die einen Datenpunkt (in diesem Fall ein einzelnes Passwort) erst komprimieren und anschließend aus der komprimierten Version wiederherstellen. Ziel ist es eine kompakte komprimierte Version des Passwortes zu lernen, das bereits alle nötigen Informationen enthält, um das Passwort möglichst genau wiederherzustellen. Um neue Datenpunkte zu generieren, muss man nun lediglich einen komprimierten Datenpunkt erstellen (was durch Sampling aus einer Wahrscheinlichkeitsverteilung passiert) und an den Dekodierer weitergeben, der daraus ein Passwort generiert. Eine interessante Eigenschaft stellt dabei die Beschaffenheit des Raumes aller komprimierten Datenpunkte dar: ähnliche Datenpunkte werden zu ähnlichen komprimierten Datenpunkten enkodiert. Sampled man nun nur aus einer Umgebung eines enkodierten Datenpunktes, werden die neuen generierten Passwörter ebenfalls alle ähnlich aussehen. Dadurch kann vorhandenes Wissen über die Zielpasswörter in den Generationsprozess miteinbezogen werden.

Generative Adversarial Networks: Generative Adversarial Networks (GAN) stellen den aktuellen Stand der Forschung für die künstliche Erstellung von Bildern dar, sind allerdings schwieriger auf Text anzuwenden. Ein GAN besteht aus zwei unabhängigen Netzwerken: Ein Generator-Netzwerk erstellt neue Datenpunkte aus zufälligen Inputdaten (zum Beispiel Samples aus einer Verteilungsfunktion) und ein Diskriminator-Netzwerk erhält diese künstlichen Daten zusammen mit echten Daten und entscheidet, welche Datenpunkte echt und welche künstlich generiert sind. Durch das Training wird der Diskriminator immer besser darin, künstliche und echte Daten (Passwörter) auseinanderzuhalten und der Generator lernt, aus zufälligen Daten realistische künstliche Passwörter zu erzeugen.

Transformer-basierte Sprachmodelle: Transformer haben in den letzten Jahren das Feld der Verarbeitung natürlicher Sprache revolutioniert. Eine bekannte Version der Transformer-basierten Architektur stellt GPT2 dar, ein sogenanntes Sprachmodell. Sprachmodelle sind Architekturen, die Sprache als Fließtext einlesen und an jedem Punkt versuchen das nächste kommende Wort vorauszusagen. Durch den Vergleich des tatsächlichen nächsten Wortes und der eigenen Vorhersage wird das Modell trainiert. Passwörter müssen für das Training also zu einem langen Fließtext aus zufälligen Passwörtern zusammengefügt werden. Um neuen Text zu generieren, kann man dem Modell dann einen Satzanfang eingeben und das Modell wird den Satz jeweils mit den passendsten Wörtern fortsetzen. Um neue Passwörter zu generieren, kann man dann einen “Satz“ zum Beispiel mit einer zufälligen Zeichenfolge beginnen und das Modell schreibt daraufhin einen langen Fließtext aus Passwörtern.

Eine interessante Variante des Sprachmodelltrainings ist das Pretraining und Finetuning. Das Modell wird zuerst auf einem großen Korpus englischer Sprachdaten trainiert und anschließend auf Passwortdaten fortgesetzt. Die Entwickler*innen stellen dafür Modelle zur Verfügung, die bereits auf großen Mengen von Daten unter großem Einsatz von Rechenzeit und kostspieliger Hardware trainiert wurden. In der Anwendung zeigt diese Art von Training Vorteile, wenn der Passwort-Datensatz relativ klein ist. Das Trainieren auf normaler Sprache scheint den Modellen also Informationen über allgemeine Sprache zu geben, die sich dann auf Passwort-Daten übertragen lässt. (Mehr Informationen zu der Funktionsweise von Transformer-basierten Sprachmodellen anhand von BERT finden Sie in unseren Beiträgen: Die Bedeutung von Worten durch Vektoren erfassen und  BERT: Wie beschreiben Vektoren treffend den Sinngehalt von Wörtern?)

password love - Lamarr Institute for Machine Learning (ML) and Artificial Intelligence (AI)
© ML2R
Auto-Encoder können die Struktur der komprimierten Datenpunkte ausnutzen, um gezielt Passwörter mit bestimmten Eigenschaften zu erzeugen. Hier: Alle Passwörter enthalten das Wort ‘love’.

Deep-Learning-Modelle als flexible Passwort-Generatoren

Alle genannten Modelle zeigten sich in der Lage, realistische Passwörter zu erzeugen, die nicht bereits Teil des Trainingsdatensatzes sind. Viele dieser neuen Passwörter findet man in anderen Passwort-Datensätzen wieder. Das bedeutet, dass die erzeugten Zeichenketten nicht zufällig sind, sondern teilweise tatsächlich von einem Menschen als Passwort verwendet wurden. Die Modelle haben somit ausgehend vom reinen Lesen eines Datensatzes gelernt, wie Passwörter aussehen und welche Strukturen sie besitzen, und können aus diesen gelernten Faktoren selbstständig komplett neue Passwörter erstellen.  Zusätzlich können die trainierten Modelle Passwörter einlesen und mit den Trainingsdaten vergleichen, was es zum Beispiel ermöglicht, Nutzer*innen vor unsicheren Passwörtern zu warnen. Auto-Encoder basierte Modelle erlauben außerdem, gezielt Eigenschaften der zu erzeugenden Passwörter zu bestimmen.

Wir sehen also, dass Deep Learning basierte Modelle mit regelbasierten und aufwändig durch menschlichen Input angepassten Ansätzen nicht nur mithalten können, sondern auch Funktionen ermöglichen, die mit diesen herkömmlichen Methoden kaum hinreichend realisierbar waren. Zukünftige Forschung wird sich damit beschäftigen, Erkenntnisse aus der weitläufigen Welt der Password-Guessing-Algorithmen anzuwenden, um die Performanz der genannten Modelle  zu steigern. Details zu den verwendeten Modellen, Training, Ergebnissen und Vergleiche mit bestehenden Algorithmen haben wir in einem Preprint gemeinsam mit dem Bundeskriminalamt zusammengefasst:

Generative Deep Learning Techniques for Password Generation David Biesner, Kostadin Cvejoski, Bogdan Georgiev, Rafet Sifa, Erik Krupicka, 2020, arXiv, PDF.

Eine erweiterte Version wurde als Konferenzpaper in ICANN 2021 veröffentlicht:
Advances in Password Recovery using Generative Deep Learning Techniques
David Biesner, Kostadin Cvejoski, Bogdan Georgiev, Rafet Sifa, Erik Krupicka, Artificial Neural Networks and Machine Learning – ICANN, 2021, Link.

David Biesner,

13. Oktober 2021

Themen

David Biesner

David Biesner ist wissenschaftlicher Mitarbeiter und Doktorand an den Lamarr-Standorten des Fraunhofer Instituts IAIS in Sankt Augustin und der Universität Bonn. Sein Forschungsschwerpunkt liegt auf der Anwendung von Deep Learning Verfahren für die Untersuchung und Generierung von Text.

Weitere Blogartikel