Das Passwort-Cracking (englisch cracking; deutsch Knacken oder Brechen) oder ein Passwortangriff bezeichnet das Brechen eines Passworts in der IT-Sicherheit. Dies geschieht durch Erraten des richtigen Passworts, indem der Angreifer eine große Anzahl möglicher Passwörter durchprobiert.
Zu unterscheiden sind Angriffstechniken, die online oder offline stattfinden.
Bei einem Online-Angriff interagiert der Angreifer mit dem angegriffenen IT-System, beispielsweise über ein Computernetz. Dadurch ist die Anzahl der Versuche limitiert. Dies ergibt sich zum einen aus technischen Rahmenbedingungen, weil das angegriffene System über eine begrenzte Verarbeitungsgeschwindigkeit verfügt. Zum anderen kann die Rate, mit der Passwörter ausprobiert werden können, künstlich gedrosselt werden. Auch ist ein Online-Angriff auffällig, sodass ein Angreifer nach zu vielen Fehlversuchen eine Zeit lang aus dem System ausgesperrt werden kann. Um unentdeckt zu bleiben, kann ein Angreifer seine Login-Versuche drosseln und über die Zeit verteilen, um sich unterhalb von Schwellwerten zu bewegen.
Bei einem Offline-Angriff besitzt der Angreifer den kryptographischen Hashwert eines Passworts und kann diesen ohne Interaktion mit dem angegriffenen System versuchen zu brechen. Dadurch ist die Anzahl Versuche nur durch die Rechenkapazität des Angreifers limitiert und um Größenordnungen schneller als ein Online-Angriff. Auch bleibt der Angreifer bei einem Offline-Angriff unentdeckt.
Beim Offline-Angriff muss der Angreifer alle möglichen Passwortkandidaten zu einem Hashwert umrechnen und mit dem zu brechenden Hashwert vergleichen. Die für eine Berechnung erforderliche Rechenleistung hängt von der verwendeten Hashfunktion ab. Um Angriffe zu erschweren, kommen spezialisierte Funktionen zur Schlüsselableitung oder Schlüsselstreckung zum Einsatz. PBKDF2 beispielsweise erhöht den erforderlichen Rechenaufwand bei der Umrechnung von Passwort zu Hashwert durch eine parametrisierte Iteration. Offline-Angriffe lassen sich sehr effizient durch den Einsatz spezialisierter Hardware beschleunigen, beispielsweise Grafikprozessoren, FPGAs oder ASICs. Eine Möglichkeit, um Hardware-Beschleunigung zu erschweren, ist der Einsatz von arbeitsspeicher-intensiven Funktionen, wie beispielsweise Argon2.
Ein Offline-Angriff kann gegen eine große Anzahl von entwendeten Passwort-Hashwerten gleichzeitig ausgeführt werden. Die Hashberechnung muss nur einmal erfolgen, um das Ergebnis gegen eine große Anzahl zu brechender Hashwerte zu vergleichen. Um das zu verhindern, kann die Hashfunktion mit einem Salt oder Pepper parametrisiert werden.
Es gibt verschiedene Techniken, mit denen ein Angreifer mögliche Passwörter durchprobieren kann. Diese unterscheiden sich darin, welche und wie viele Passwörter durchprobiert werden.
Bei der Brute-Force-Methode probiert der Angreifer alle möglichen Kombinationen von Passwörtern durch. Theoretisch wird bei dieser Methode das richtige Passwort immer irgendwann gefunden. Bei einem langen und sicheren Passwort kann die Suche jedoch so lange dauern, dass der Angriff praktisch unmöglich wird. Die Brute-Force-Methode ist sehr effektiv gegen kurze Passwörter.
Passwort-Spraying (englisch spraying; deutsch Versprühen) ist eine Angriffstechnik für Online-Angriffe. Hierbei wird eine kleine Anzahl leicht zu erratender Passwörter, beispielsweise herstellerseitig vorgegebene Standardpasswörter, gegen eine große Anzahl von Nutzerkonten ausprobiert. Der Angreifer zielt darauf ab, irgendein schlecht gesichertes Konto zu kompromittieren. Das ist effektiver als ein Brute-Force-Angriff, garantiert jedoch keinen Erfolg.
Beim Credential Stuffing (englisch; deutsch etwa Zugangsdaten-Stopfen) verfügt der Angreifer über echte Benutzerkennungen mit jeweils zugehörigem Passwort, die aus einem Datenleck stammen. Diese werden bei verschiedenen Onlinediensten automatisch durchprobiert (bildlich werden Anmeldemasken mit Zugangsdaten vollgestopft). Der Angriff ist effektiv, wenn Nutzer dasselbe Passwort für verschiedene Dienste wiederverwenden, was häufig der Fall ist.
Eine Möglichkeit zur Einsparung von Rechenzeit bei einem Offline-Angriff ist es, vorberechnete Listen von Hashwerten zu erzeugen. Vollständige Listen benötigen jedoch zu viel Speicherplatz, um praktikabel zu sein. Rainbow Tables stellen einen Kompromiss zwischen Rechenzeit und Speicherplatz dar: hierbei werden vorberechnete Teile in Tabellen gespeichert. Der Suchalgorithmus einer Rainbow Table ist schneller als bei der Brute-Force-Methode, die Suche ist jedoch nicht erschöpfend und somit der Erfolg nicht garantiert.
Die Verwendung von Salt oder Pepper schützen vor einem Rainbow-Tables-Angriff, da durch diesen Parameter die Hashfunktion einmalig wird und eine Vorberechnung daher in den meisten Fällen nicht sinnvoll ist.
Bei einem Wörterbuchangriff probiert der Angreifer eine vorgegebene Passwortliste durch. Hierbei kann es sich um eine Zusammenstellung von häufig genutzten Passwörtern oder um ein allgemeines Wörterbuch handeln. Dabei werden auch Eigennamen und Wortschöpfungen aus der Literatur und Unterhaltungsmedien berücksichtigt, da diese oft als Passwörter genutzt werden.
Die Effektivität eines Wörterbuchangriffs hängt von der Güte des Wörterbuchs ab. Bei einem Offline-Angriff sind Wörterbücher schnell abgearbeitet. Um weitere Kombinationen durchzuprobieren, können die Wörter permutiert oder mit zusätzlichen Zeichen aufgefüllt werden.
Eine weitere Technik besteht darin, wahrscheinliche Passwörter mit probabilistischen Methoden zu generieren und nur diese auszuprobieren. Dies ist beispielsweise mit Markow-Ketten möglich, die basierend auf einem Textkorpus erzeugt werden und die Wahrscheinlichkeit für eine bestimmte Zeichenkombination angeben. Eine weitere Methode sind probabilistische kontextfreie Grammatiken. Als Textkorpus kann ein Wörterbuch verwendet werden, das auch beim Wörterbuchangriff Verwendung findet.
Ein probabilistischer Angriff benötigt weniger Versuche als ein Brute-Force-Angriff. Im Vergleich mit einem Wörterbuchangriff erzeugen probabilistische Methoden aber auch neue Kombinationen, die nicht im Wörterbuch enthalten sind. Die Effektivität des Angriffs hängt neben dem Algorithmus auch vom Textkorpus ab, da sich daraus ergibt, ob das gesuchte Passwort vom Algorithmus als eine wahrscheinliche Kombination ausgegeben wird.