Deutsch
  • Passwortknacken
  • Rainbow-Table-Angriff
  • Hashing

Wie werden deine Passwörter geknackt? Wie kann man die Passwortsicherheit verbessern?

In diesem Artikel haben wir mehrere klassische Methoden zur Passwortknackung sowie die zugrunde liegenden Prinzipien dieser Ansätze vorgestellt. Dazu haben wir Praktiken sowohl aus der Perspektive von Passwortverwaltern als auch von Kontoinhabern bereitgestellt, um die Sicherheit von Passwörtern zu erhöhen.

Darcy Ye
Darcy Ye
Developer

Wir sehen oft Nachrichten, dass die Passwörter von Nutzern einiger bekannter Apps mit großer Benutzerbasis geleakt werden. Du magst vielleicht denken, dass solche Vorfälle nichts mit dir zu tun haben, da du diese spezielle App nicht benutzt, aber das ist in Wirklichkeit nicht der Fall.

Kürzlich gab es auch Nachrichten auf Twitter, dass KI-Methoden die Geschwindigkeit des Passwortknackens erheblich beschleunigen können. Also wollten wir die Feinheiten dahinter verstehen und sehen, wie wir die Sicherheit unserer Passwörter verbessern können.

PassGAN Twitter

Wie werden Passwörter geknackt?

Im Allgemeinen werden Konto-Passwörter typischerweise mithilfe verschiedener Hashing-Algorithmen verarbeitet und dann in Datenbanken gespeichert. Du kannst unseren früheren Blog konsultieren, um ein besseres Verständnis von Passwort-Hashing zu gewinnen. Leider speichern einige Dienstanbieter, denen der gesunde Menschenverstand fehlt, Passwörter im Klartext in ihren Datenbanken. Diese Praxis kann zu noch größeren Schäden führen, wenn die Daten geleakt werden.

Indem sie gehashte Passwörter speichern, können selbst Datenbankadministratoren nicht auf dein ursprüngliches Passwort zugreifen, wodurch die Sicherheit erheblich verbessert wird. Bei der Überprüfung der Korrektheit eines eingegebenen Passworts wird derselbe Hash-Algorithmus verwendet, um das eingegebene Passwort zu verarbeiten. Der resultierende Hash wird dann mit dem gespeicherten Wert in der Datenbank verglichen. Wenn die beiden Hash-Werte übereinstimmen, wird das eingegebene Passwort als korrekt angesehen.

Einfach ausgedrückt, beinhaltet das Knacken von Passwörtern das Generieren von Zeichenfolgen, die den erlaubten Passwortregeln entsprechen. Anschließend wird kontinuierlich überprüft, ob diese Zeichenfolgen mit der oben genannten Methode schließlich das richtige Klartextpasswort aufdecken.

Gewöhnliche Methoden zum Knacken von Passwörtern

In diesem Abschnitt werden wir kurz drei gängige Methoden zur Passwortknackung vorstellen.

Brute-Force-Angriff

Brute-Force-Angriffe enumerieren normalerweise alle Möglichkeiten innerhalb der erlaubten Passwortregeln und probieren sie eine nach der anderen aus.

Zum Beispiel können Handys ein 4-stelliges numerisches Passwort setzen. Brute-Force-Angriffe probieren alle Möglichkeiten nacheinander von 0000, 0001, 0002, … bis 9999 aus.

Brute-Force-Angriffe sind sehr zeitaufwendig, da es zu viele Versuche gibt. Wenn man annimmt, dass die Passwortlänge $L$ ist und die Anzahl der möglichen Zeichen pro Passwortstelle $n$, dann ist die Anzahl der Möglichkeiten, die Brute-Force-Angriffe ausprobieren müssen, $n^L$, was eine sehr große Zahl ist.

Der Grund, warum viele Passwörter eine Kombination aus Zahlen, Groß- und Kleinbuchstaben und Sonderzeichen erfordern, ist, $n$ zu erhöhen, was die Anzahl der Möglichkeiten erheblich erhöht und somit die Schwierigkeit des Knackens des Passworts erhöht.

Wörterbuchangriff

Wörterbuchangriffe verwenden Wörter aus Wörterbüchern, die oft mit Leerzeichen, Zahlen, Sonderzeichen und anderen Elementen kombiniert werden, um verschiedene Passwortkombinationen zu bilden. Diese Kombinationen werden dann verwendet, um Passwortübereinstimmungen zu versuchen.

Viele Personen entscheiden sich dafür, Sätze mit klaren Bedeutungen als Passwörter zu verwenden, um sie leichter merken zu können. Wörterbuchangriffe erweisen sich als eine effiziente Methode zum Knacken von Passwörtern mit solchen Eigenschaften.

Rainbow-Table-Angriff

Eine Rainbow-Tabelle ist eine vorkalkulierte Zuordnung von Klartextpasswörtern zu ihren entsprechenden Hash-Werten. Durch direkten Vergleich der in der Datenbank gespeicherten Hash-Werte mit denen in der Rainbow-Tabelle können alle gefundenen Übereinstimmungen verwendet werden, um das entsprechende Klartextpasswort direkt abzurufen.

Rainbow-Tabellen bieten den Vorteil, dass sie sofortigen Zugriff auf Klartextpasswörter bieten, wenn der Hash-Wert vorkalkuliert wurde (und in der Rainbow-Tabelle aufgezeichnet ist). Es ist jedoch wichtig zu beachten, dass eine Rainbow-Tabelle nicht genutzt werden kann, wenn der Hash-Wert nicht vorkalkuliert (und daher nicht in der Tabelle vorhanden) ist.

Zusätzlich zu den oben beschriebenen Methoden gibt es zahlreiche andere Techniken, die hier nicht behandelt werden. Im Allgemeinen wird eine Kombination dieser Methoden verwendet, um alle möglichen Passwörter abzudecken und den Knackprozess zu beschleunigen.

Wie kann man das Knacken von Passwörtern beschleunigen?

Im vorherigen Abschnitt haben wir einige klassische Methoden zur Passwortknackung kurz vorgestellt. Daraus können wir einige Ideen zur Verbesserung der Geschwindigkeit oder Erfolgsrate des Passwortknackens zusammenfassen.

Um ein Passwort zu knacken, sind oft zwei Schritte erforderlich:

  1. Bestimme den Suchraum für das Passwort (generiere mögliche Passwörter)
  2. Verwende den Hash-Algorithmus, um Hashes für die im vorherigen Schritt erhaltenen möglichen Passwörter zu generieren und vergleiche sie mit dem Hash des zu knackenden Passworts

Der Wörterbuchangriff und der Rainbow-Table-Angriff, die oben erwähnt wurden, optimieren diese beiden Schritte jeweils:

  • Der Wörterbuchangriff verkleinert den Suchraum für Passwörter. Ausgehend von der Annahme, dass „Benutzer dazu neigen, Passwörter mit tatsächlichen Bedeutungen zu verwenden“, sind Wörter wie zzzz nicht im Wörterbuch enthalten, was bedeutet, dass sie nicht als potenzielle Passwörter versucht werden. Diese Praxis ist vergleichbar damit, falsche Antworten vorsorglich auszuschließen. Ähnlich wie bei der Bewältigung von Multiple-Choice-Fragen können zwar nicht die richtigen Optionen bekannt sein, aber es kann festgestellt werden, welche Auswahlen definitiv falsch sind. Durch das Eliminieren dieser eindeutig falschen Optionen werden die Chancen, unter den verbleibenden Auswahlmöglichkeiten richtig zu raten, erhöht.
  • Der Rainbow-Table-Angriff beschleunigt die Ausführungszeit des Hash-Algorithmus. Für Personen, die mit Datenstrukturen gut vertraut sind, ist das Nachschlagen eine Operation mit $O(1)$-Komplexität, und keine Operation kann in Bezug auf Zeitkomplexität einfacher als $O(1)$ sein. Im Gegensatz dazu haben die Zeitkomplexität allgemein verwendeter Hash-Algorithmen wie MD5 und SHA $O(n)$, was merklich langsamer ist als $O(1)$.

In der Praxis beginnt die Optimierung des Passwortknackprozesses auch aus den oben genannten beiden Perspektiven. Es ist erwähnenswert, dass aufgrund des relativ geringen Spielraums für die Optimierung der $O(n)$-Zeitkomplexität für String-Hashing-Algorithmen mehr Überlegungen zur Verbesserung der Hardware oder Berechnungsmethoden angestellt werden, die hier nicht weiter ausgeführt werden.

Wie hilft KI beim Knacken von Passwörtern?

In dem gesamten Unterfangen des Passwortknackens besteht die Rolle der KI darin, bestimmte Muster und Konstruktionsmethoden aus offengelegten Klartextpasswörtern zu erlernen. Anschließend kann die KI diese Passwortkonstruktionsmuster simulieren, um eine Vielzahl potenzieller Passwörter zu generieren. Danach kann die KI Hashing-Algorithmen oder sogar spezielle Hardware einsetzen, um das Passwort zu knacken.

Tatsächlich ist der Vorteil von PassGAN im Vergleich zu anderen Passwortknackwerkzeugen, dass es „die wahrscheinlichsten Passwörter so schnell wie möglich erraten kann", was der von uns oben erwähnten Idee des „Suchraums möglicher Passwörter verkleinern" entspricht.

Password Guessing Prob

Wie kann man Passwörter sicherer machen?

Wir werden erklären, wie Passwörter aus zwei Perspektiven geschützt werden können. Hier beginnen wir einfach beim Passwort selbst, ohne andere Maßnahmen zur Sicherstellung der Kontosicherheit zu besprechen, wie z.B. Multi-Faktor-Authentifizierung (MFA) und so weiter.

Aus Sicht der Identitätsdienstanbieter

Als Anbieter von Identitätsdiensten hosten sie alle Passwörter der Nutzer, was ihnen die Verantwortung überträgt, die Sicherheit dieser Passwörter zu schützen. Hier sind mehrere Maßnahmen, die umgesetzt werden können, um die Sicherheit der Nutzerpasswörter zu erhöhen:

  1. Vermeiden, Passwörter im Klartext zu speichern: Auch wenn dies vermutlich als Selbstverständlichkeit angesehen wird, speichern einige Dienstanbieter dennoch Passwörter im Klartext in ihren Datenbanken. Das Speichern von Hash-Werten stellt eine Sicherheitsebene dar; selbst wenn die Datenbank kompromittiert wird, müssten Hacker erheblichen Aufwand betreiben, um die gehashten Passwörter zu knacken.

  2. Begrenzung der Abfragerate der API-Schnittstelle für die Passwortüberprüfung: Kehren wir zum oben erwähnten Passwortknackprozess zurück. Ein wesentlicher Bestandteil dieses Prozesses ist das „Überprüfen“, ob ein Passwort korrekt ist. Da Passwörter an die Anbieter von Identitätsdiensten anvertraut sind, sind sie die einzigen Einrichtungen, die eine API zur Passwortüberprüfung anbieten können. Durch die Begrenzung der Häufigkeit der Nutzung dieser API können wir verhindern, dass Hacker schnell verschiedene Passwörter ausprobieren, selbst wenn sie höchstwahrscheinliche Passwortvermutungen haben.

  3. Erzwingen komplexerer Passwortstrukturen: Wie vorher schon erwähnt, trägt aufgrund der größeren Zeichenvielfalt innerhalb von Passwörtern einer bestimmten Länge zur erhöhten Komplexität bei. Außerdem ermöglicht der Einsatz von KI-Techniken wie die oben genannten die Bewertung der Passwortsicherheit vor der Einreichung. Wenn ein Passwort als schwach angesehen wird, können Benutzer aufgefordert werden, eine robustere Alternative zu wählen.

Aus Sicht der Benutzer

Als Kontoinhaber und verbundenes digitales Eigentum müssen Benutzer größte Aufmerksamkeit darauf richten, die Sicherheit ihrer Kontopasswörter zu gewährleisten.

  1. Vermeide die Verwendung desselben Passworts auf verschiedenen Websites: Nachdem Hacker Passwörter von bestimmten Websites erhalten haben, versuchen sie häufig, diese Account-Anmeldeinformationen zu verwenden, um auf andere Websites zuzugreifen. Wenn mehrere Konten für verschiedene Dienste dasselbe Passwort teilen, besteht das Risiko, Konten zu verlieren und Informationen in dem oben genannten Szenario zu verlieren.

  2. Wähle wann immer möglich rein zufällige Passwörter: Dieser Ansatz hilft, die Wiederverwendung allgemeiner Passwortmuster zu vermeiden, die die meisten Menschen verwenden (wie bereits erwähnt, die Verwendung von englischen Sätzen), was die Anstrengungen der Hacker erschwert, den „Suchraum für Passwörter einzugrenzen“ und die Komplexität des Passworts zu erhöhen.

Als Infrastrukturanbieter für Identitätsdienste hat Logto viele der oben genannten Best Practices implementiert, um die Sicherheit der Benutzerkonten zu gewährleisten. Dies ermöglicht es den Benutzern, mit verschiedenen Apps zu interagieren, ohne sich über den Verlust ihrer Konten Sorgen machen zu müssen, während Online-Dienstanbieter die Sicherheit der Benutzerdaten mit minimalem Aufwand sicherstellen können, sodass sie sich auf ihre Kerngeschäftsaktivitäten konzentrieren können.