Heute beschäftige ich mich mit dem Knacken der Passwörter aus der Passwortdatei, um zu zeigen, wie sicher dies ist.
Es gibt unter Linux Programme mit denen Passwörter geknackt werden können, z.B. für ZIP-Dateien ist dies fcrackzip. Dieses Programm darf nicht zu illegalen Zwecken verwendet werden, sondern nur, wenn man z.B. sein eigenes Passwort vergessen hat. Weiteres zum Hackerparagraphen bei Wikipedia!
Das Programm prüft in der Standardeinstellung alle Kombinationsmöglichkeiten aus (Bruteforce), der Zeichensatz, der dann verwendet wird, enthält keine Umlaute! (sollte notfalls umgestellt werden!)
Das könnte etliche Jahrhunderte dauern, um zur Lösung zu gelangen. Vielleicht ist es sinnvoller, sich die Systematik der Tabelle etwas genauer anzuschauen, um etliche Möglichkeiten auszuschliessen. Das erste Ausschlussverfahren ist also die Anzahl der Zeichen pro Stelle. Beim ASCII-Zeichensatz sind dies 255, bei Unicode ca 65000. (also n255 oder n65000 Varianten) Die Tabelle arbeitet normalerweise mit 90 Zeichen, dies verringert die Anzahl der Versuche enorm (n90, trotzdem dauert es noch mehrere hundert Jahre ein solches Passwort durch Probieren zu erraten.
Noch weniger Varianten werden es, wenn wir uns die Tabelle etwas genauer anschauen. Zur Veranschaulichung habe ich eine neue, kürzere Tabelle entworfen:
hund | katze | maus |
tiger | hamster | vogel |
käfig | fenster | geld |
Wenn man nicht weiss, wie das Passwort gebildet wurde, gibt es hier tatsächlich n6 Möglichkeiten (bei der echten Tabelle sind dies n100 Möglichkeiten), also zu viele, zumal, wenn man nicht wiess, wie viele „Elemente“ das einzelne Passwort hat. Bei Verwendung eines Feldes sind dies bei der echten Tabelle 100 Varianten, bei 2 Feldern immerhin 100*100 = 10.000 Varianten usw.
Einfacher ist die Varianten Länge bekannt und Reihenfolge bekannt: Hier das Beispiel für 2 „Elemente“, Reihenfolge egal:
hundtiger hundhamster hundvogel katzetiger katzehamster katzevogel maustiger maushamster mausvogel tigerhund tigerkatze tigermaus tigerkäfig tigerfenster tigergeld hamsterhund hamsterkatze hamstermaus hamsterkäfig hamsterfenster hamstergeld vogelhund vogelkatze vogelmaus vogelkäfig vogelfenster vogelgeld käfighund käfigkatze käfigmaus käfigtiger käfighamster käfigvogel fensterhund fensterkatze fenstermaus käfigtiger käfighamster käfigvogel fensterhund fensterkatze fenstermaus fenstertiger fensterhamster fenstervogel geldhund geldkatze geldmaus geldtiger geldhamster geldvogel hund katze maus tiger hamster vogel
Das Script dazu sieht so aus:
#!/bin/bash # Array erstellen ta=(hund katze maus tiger hamster vogel käfig fenster geld) spalten=3 # Anzahl der Spalten anzahl=${#ta[@]} # Anzahl der Wörter zeilen=$(($anzahl/$spalten-1)) # Anzahl der Zeilen rm ausgabe.txt #Ausgabedatei löschen for ((k=0;k<anzahl+1;k++)) do wort=${ta[$k]} for ((i=0;i<zeilen;i++)) # jede Zeile soll durchgegangen werden do jetztzeile=$(($k/$spalten)) [ "$jetztzeile" = "$i" ] && i=$(( $i + 1)) for ((j=0;j<spalten;j++)) # jede Spalte soll durchgegangen werden do jetzt=$(($j+$i*$spalten)) [ $k != $jetzt ] && echo $wort${ta[$jetzt]} >> ausgabe.txt done done done
Bei exakt 3 Elementen, wobei jedes nur einmal vorkommen darf wären dies:
hundtigerkäfig hundtigerfenster hundtigergeld hundhamsterkäfig hundhamsterfenster ... hundvogeldgeld katzetigerkäfig katzetigerfenster katzetigergeld katzehamsterkäfig katzehamsterfenster ...
Ich glaube, dies sind 3*3*3 Varianten=27.
Will man die Möglichkeit mit hinzuzunehmen, einzelne Zeilen auszulassen, würde ich die Tabelle um eine Spalte vergrößern, dann wären dies
doch 4*3*3 = 36 Varianten, oder? Puh, mein Studium ist schon lange her… Ich habe noch kein Script dafür geschrieben, heute wartet noch andere Arbeit auf mich, aber egal, man sieht jedoch die Anzahl der Varianten steigen, je weniger man über die Zusammensetzung der Varianten kennt. Deshalb ist meiner Meinung nach der Passwortgenerator relativ sicher, und trotz möglichens Diebstahls des Generators hat man ausreichend Zeit, seine Passwörter noch zu ändern.