Als IT Administrator bin ich immer wieder um die Netzwerksicherheit und somit auch um die Passwörter der Benutzer besorgt und will es genau wissen. Also teste ich einmal mein persönliches Verfahren zur Generierung von Passwörtern auf deren Sicherheit.
Der Test-Aufbau im Detail: Ein Linux Rechner mit 400 MHz, Xeon. Ausreichend RAM und ein solides RAID. Das Tatwerkzeug: John The Ripper. Laut Benchmark schafft der Rechner gut 970 Hashes pro Sekunde, was uns durchaus reichen sollte. Ein Wörterbuch mit den gängigsten Passwörtern steht ebenfalls zur Verfügung.
Als Test generiere ich 20 Benutzer mit verschiedenen Passwörtern, mit pwgen generiert. Die Passwörter sehen etwa so aus, als wäre eine Katze über die Tastatur gelaufen – doch das ist so gewollt. Die Länge der Passwörter habe ich für unsere Zwecke auf 8 Zeichen beschränkt.
Der andere Test ist ein Passwort-Dump aus dem Active Directory einer mir bekannten Firma, welche es auch wissen wollte und die Passwort-Datei freundlicherweise zur Verfügung stellte. Alles Passwörter, wie sie im System verwendet wurden. Ich wähle davon zufällig 20 Benutzer aus um für unseren Test gleiche Voraussetzungen zu schaffen.
Auf unserem Rechner angekommen mache ich mich als erstes an den Passwort-Dump der Firma und jage ihn durch John The Ripper. Das Ergebnis ist ernüchternd: Der erste Angriff über das Wörterbuch knackt schon mal die Hälfte aller Passwörter und nach 2 Stunden ist der Spuk vorbei und ich habe alle Passwörter in unverschlüsselter Form in den Händen.
Der zweite Test ist noch immer am Laufen und beschäftigt sich mit den zufällig generierten Passwörtern:
Loaded 20 password hashes with 20 different salts (FreeBSD MD5 [32/32]) guesses: 0 time: 16:23:00:42 c/s: 970 trying: at6fcc
Wie hier unschwer zu erkennen ist, läuft der Cracker schon fast 17 Tage und hat noch immer kein einziges Passwort geknackt. Was die Verwendung von Rainbow Tables betrifft, wird dies der nächste Versuch um zu sehen, was das ausmacht. Aber davon ein Andermal…
Joe says:
Very interesting. I should do some testing of my own. I only need a good wordlist… Any tips to where these can be found?
Stargazer says:
I’ve used the one found on the jtr ftp site and added some lists I have found including a ton of default passwords from various systems…
iaindb says:
Nice.
And yet so many people still complain when I give them passwords looking like IO5Rugko. I wouldn’t be surprised if our entire user base of 30+ could be cracked in just a few hours too. Except mine of course, it’s 12345 (12345? That’s the kinda thing an idiot would have on his luggage!)
Anyway, here’s a nice bash one-liner to generate password for you when you have to set up new accounts and stuff:
for ((n=0;n/dev/null | uuencode -m – | tail -n 2 | head -n 1 | cut -c -8; done
HTH!
iaindb says:
OK, that one-liner got cut off, so here it is on multiple lines:
for ((n=0;n/dev/null \
| uuencode -m – | tail -n 2 \
| head -n 1 | cut -c -8; done
iaindb says:
*sigh* stripping out the html nasties:
for ((n=0;n<10;n++)); do dd if=/dev/urandom count=1 bs=8 2>/dev/null | uuencode -m – | tail -n 2 | head -n 1 | cut -c -8; done
Stargazer says:
Die Sicherheit an sich ist selten das Problem – es ist immer wieder die Bequemlichkeit, die das Problem verursacht…