Password Cracking

In diesem Blogpost berichte ich über das Password Cracking und wie man überprüfen kann, ob ein Passwort veröffentlicht wurde.

Password Cracking

Ein Passwort zu knacken ist theoretisch möglich, nur kommt es auf die Länge und Komplexität des Passworts an, wie schnell es geht. Das Passwort “Password1” ist z.B. ein sehr schlechtes Passwort. Nicht nur ist es bei verschiede Listen unter den Top 10 Passwörter, die benutzt werden, um ein Passwort zu knacken, sondern es enthält ein sehr bekanntes Wort, was in nur Millisekunden aus dem Wörterbuch fürs Passwort Cracking gefunden werden kann, gefolgt mit eine sehr einfache einstellige Zahl. Will man jetzt das Passwort verlängern indem man eine Zahlensequenz (12345678) hinzufügt, ist es immernoch sehr schlecht, weil eine bestimmte Reihenfolge von Zahlen oder Buchstaben sehr einfach herausgefunden werden kann. 

Ein gutes Passwort besteht aus:

  1. mindestens 8-stellig
  2. Zahlen 
  3. Groß- und Kleinbuchstaben
  4. Sonderzeichen (! , . * etc.)

Das Passwort soll auch am besten kein Sinn ergeben, zumindest nicht für andere ausser sich selber. Es wird zudem noch empfohlen, für verschiedene Websites auch verschiedene Passwörter zu benutzen. Falls man bei einer Website gehacked wird, wo es Sicherheitslücken hat, kann der Hacker sich nämlich mit dem gleichen Passwort auch auf Google oder Amazon einloggen. Die Diversität von den Zeichen und die Länge (länger als 8 Zeichen ist sehr empfehlenswert) sorgt für eine deutlich geringere Chance, gehacked zu werden.

Es gibt viele Methoden, ein Passwort zu knacken. Malware, Phishing, Social Engineering etc. All diese Methoden sind immer noch erfolgreich. Die berühmtesten sind aber Dictionary Attack und Brute Force Attack.

Dictionary Attack

Ein Dictionary Attack ist sehr simple. Es wird eine simple Datei mit Wörter benutzt, daher kommt auch der Name. Diese Wörter sollen aber mögliche Passwörter sein, die ein Benutzer haben könnte. “Password1” wäre bei so einer Datei, wie schon erwähnt, auf jeden Fall dabei. So eine Attacke mit einer grossen Liste, die hundert von Millionen Passwörter oder auch mehr beinhaltet, wird in wenigen Sekunden durchgeführt. Falls Ihr Passwort ziemlich “generisch” so wie “Password1“ ist, dann könnten Sie in nur ein paar Sekunden gehacked werden.

Brute Force Attack

Der Brute Force Attack ist auch sehr simple. Es ist ähnlich wie der Dictionary Attack, nur kommt es noch mit einem zusätzlichen Bonus für den Hacker. Statt einfach nur eine Liste von Wörter zu benutzen wird in einem Brute Force Attack alle mögliche Zeichenkombinationen ausprobiert. Beispiel: Es fängt von aaa1 an und endet bis zzz10. Mit einer 6-stelligen Passwort geht das sehr schnell, doch je länger das Passwort, desto mehr Kombinationsmöglichkeiten hat es und desto länger braucht der Brute Force Attack. Es ist zwar nicht schnell, doch schlussendlich kann es das ein oder andere Passwort knacken. Die Attacke kann auch verkürzt werden mit einer stärkere Rechenleistung, wie z.B. mehrere sehr gute GPUs. Brute Force Attacks geben einem aber auf jeden Fall ein guten Grund, einen langen Passwort zu verwenden.

Es gibt wie gesagt noch weitere Methoden, wie z.B. die Rainbow Table Attack. Doch eine Rainbow Table Attack kann einfach vermieden werden, indem die gehashten Passwörter vorerst gesalted werden.

PWNED

Eine sehr gute Seite, auf der man überprüfen kann, ob ein Passwort geleakt wurde, ist:

https://haveibeenpwned.com/Passwords

Die Seite überprüft, ob ein Passwort geleakt wurde, ohne dass der Benutzer sein Passwort der Seite “verrät”. Das geschieht durch die Rest API der Website (soweit ich weiss Open Source). Wenn man sein Passwort auf der Website eingibt, wird zuerst das Passwort zu SHA-1 gehashed. Hier wird aber nicht der ganze Hash genommen, sondern nur ein Teil vom Hash. Danach wird gesucht, ob es ein Passwort gibt, dessen Hash mit den gleichen Zeichen beginnen. Somit gibt es dir entweder bescheid, dass es keine ähnliche Hashes gefunden hat oder dass es welche gefunden hat und das Passwort geleakt sein könnte. Der Benutzer entscheidet selbst, was er danach macht und hat bei der Benutzung der Website nicht das eigene Passwort “verraten”. Dieses Verfahren nennt man auch K-Anonymity.