crypt / salt
alligator
- perl
Hallo zusammen,
ich will mal meine shadow überprüfen, wie lange es dauern würde die
bis jetzt eingesetzen Passwörter zu entschlüsseln.
Jedoch verstehe ich nicht ganz wie das gehen soll, da ja das "Salt"
unbekannt ist oder ?!?
Ich hab da nämlich schonmal rumprobiert und zwar auch wenn ich 2 mal dasselbe Passwort eingebe,
stehen ja verschiedene Strings in der Shadow. Wie kann ich denn dann die Shadow-Strings vergleichen,
ob ich das richtige Passwort gefunden habe.
Bspcode:
if ( ! $ARGV[0] )
{
print "Enter Passwd 1: ";
chomp ($a=<STDIN>);
}
else
{
$a=$ARGV[0];
}
if ( ! $ARGV[1] )
{
print "Enter Passwd 2: ";
chomp ($b=<STDIN>);
}
else
{
$b=$ARGV[1];
}
$salt = join '', ('.', '/', 0..9, 'A'..'Z', 'a'..'z')[rand 64, rand 64];
print "$salt\n";
$a_p=crypt($a,$salt);
$salt = join '', ('.', '/', 0..9, 'A'..'Z', 'a'..'z')[rand 64, rand 64];
print "$salt\n";
$b_p=crypt($b,$salt);
print "$a - $a_p\n$b - $b_p\n";
Gruß
alligator
Moin!
ich will mal meine shadow überprüfen, wie lange es dauern würde die
bis jetzt eingesetzen Passwörter zu entschlüsseln.
Jedoch verstehe ich nicht ganz wie das gehen soll, da ja das "Salt"
unbekannt ist oder ?!?
Nein, ist es nicht. Die ersten beiden Zeichen eines crypt-Hashes sind das Salt.
Der Sinn besteht darin, durch unterschiedliche Salts auch bei zwei identischen Passwörtern unterschiedliche Hash-Werte zu erhalten. Ansonsten wüßtest du, wenn dein Hash zufällig mit dem eines anderen Accounts übereinstimmt, das Passwort dieses Accounts.
- Sven Rautenberg
Hi,
Der Sinn besteht darin, durch unterschiedliche Salts auch bei zwei identischen Passwörtern unterschiedliche Hash-Werte zu erhalten. Ansonsten wüßtest du, wenn dein Hash zufällig mit dem eines anderen Accounts übereinstimmt, das Passwort dieses Accounts.
Wirklich DAS Passwort?
EIN Passwort für dieses Account ja.
Soweit ich weiß, ist nicht sichergestellt, daß crypt bei gleichem Salt für verschiedene Paßwörter auch verschiedene Ergebnisse bringt.
cu,
Andreas
Ahoi,
Danke habs begriffen.
Hab noch 2 Fragen:
1:
$salt = join '', ('.', '/', 0..9, 'A'..'Z', 'a'..'z')[rand 64, rand 64];
Kann mir diese Zeil mal jemand erklären wie das genau funktioniert ?
Ich weiss wie join und rand laut manpage funktionieren
http://www.perldoc.com/perl5.8.0/pod/func/join.html
http://www.perldoc.com/perl5.8.0/pod/func/rand.html
aber irgendwie bekomm ich das nicht ganz zusammen.
2:
Woher bekomme ich ein deutsches Wörterbuch am besten als Textdatei :o) ?
Gruß
alligator
use Mosche;
$salt = join '', ('.', '/', 0..9, 'A'..'Z', 'a'..'z')[rand 64, rand 64];
Kann mir diese Zeil mal jemand erklären wie das genau funktioniert ?
('.', '/', 0..9, 'A'..'Z', 'a'..'z')[rand 64, rand 64]
liefert einen Array-Splice, mit den Indizes zweier Zufallszahlen zwischen 0 und 63. Diese werden durch das join zu einem String zusammengefügt, ohne Trennzeichen. Hier also zB 'Aa', 'az', '/5' '..' usw.
use Tschoe qw(Matti);
Moin!
Wirklich DAS Passwort?
EIN Passwort für dieses Account ja.Soweit ich weiß, ist nicht sichergestellt, daß crypt bei gleichem Salt für verschiedene Paßwörter auch verschiedene Ergebnisse bringt.
Hm, das würde ich nicht unbedingt sagen.
Ein Crypt-Hash ist 15 Zeichen lang. 2 davon sind fürs Salt, also bleiben 13 Zeichen für das Hashen des Passwortes. Leider werden vom Passwort nur die ersten 8 Zeichen verwendet, also ist das Verhältnis 8:13 - also eigentlich kein Grund für Kollisionen, die ja dafür verantwortlich sind, dass zwei verschiedene Passworte zum gleichen Hashwert führen.
Die Begrenzung auf 8 Zeichen lange Passwörter ist übrigens ein sehr guter Grund, crypt nicht mehr einzusetzen, weil man das Verfahren mittlerweile sehr gut bruteforcen kann, wenn man den Hashwert kennt.
- Sven Rautenberg
Hi!
ich will mal meine shadow überprüfen, wie lange es dauern würde die
bis jetzt eingesetzen Passwörter zu entschlüsseln.
Dann wuerde ich nicht Perl nehmen, welches dafuer die Routine der C-Library benutzt, sondern Crack in Verbindung mit Ultra Fast Crypt. UFC ist etwa 30 bis 60 mal so schnell wie herkoemmliche crypt-Routinen, wenn man bei aufeinanderfolgenden Aufrufen immer wieder dasselbe Salt verwendet.
http://www.dfn-cert.de/infoserv/dib/dib-9301.html
http://www.dfn-cert.de/infoserv/dib/dib-9302.html
So long