md5-summen immer unterschiedlich in der master.passwd trotz identischem passwort

padarasa

New Member
Hi,

ich habe gerade festgestellt, dass die md5 summe in der master.passwd immer unterschiedlich ist, wenn ich mehrmals mein Passwort mittels passwd ändere, jedoch immer wieder das selbe Passwort eingebe?

Da die md5 ja eigentlich nur eine Prüfsumme ist, frage ich mich woher dieses Verhalten kommt...?

Viele Grüße
padarasa
 
man 5 passwd
man 3 crypt

Das Passwort wird mit einem sog. "Salt" gehasht. Dabei wird das Passwort zunächst mit einem String verknüpft, dem Salt, und dann die Hashsumme aus dem zusammengesetzen String gebildet. Das Salt ändert sich natürlich jedes Mal, wenn Du Dein Passwort änderst.
 
Danke für die Erklärung. Dann stellt sich doch aber die Frage, wie der Vergleich des Passwortes funktioniert?

Das Passwort wird mit einem Salt gehasht und dann in der master.passwd gespeichert. Gebe ich dann bei einem simplen login mein passwort an, steht der Salt doch nicht mehr zur Verfügung? Somit komme ich doch gar nicht mehr auf die identische Prüfsumme in der master.passwd?
 
Lies den Abschnitt "Modular Crypt" in crypt(3) nochmal genau. Dann schau Dir das Password Feld in master.passwd nochmal genau an. Du wirst sehen, dass das Salt mit dem gehashten Passwort (und dem verwendeten Algorithmus) gespeichert wird.
 
Das ganze wird gemacht, damit nicht eine große Hashtable berechnet werden kann und diese dann für alle Rechner gilt.
 
wenn zwei benutzer das gleiche passwort haben, dann ist natuerlich auch die md5-summe davon identisch.

Code:
dettus> echo password | md5
286755fad04869ca523320acce0dc6a4
thomas> echo password | md5
286755fad04869ca523320acce0dc6a4

also wird nicht nur das passwort gehasht, sondern ein wenig zufaelliger salt der dazukommt:
Code:
dettus> echo salt1password | md5
ad2ac947fd6c332c5f5710a481ed48b0
thomas> echo salt2password | md5
a94666f1516e3f9222a5bd73fbe9f70f
im ersten fall landet also $salt1$ad2ac947fd6c332c5f5710a481ed48b0 in der master.passwd, im zweiten $salt2$a94666f1516e3f9222a5bd73fbe9f70f.

gibst du beim login dein passwort wieder ein, dann wird selbiges wieder zusammen mit dem salt gehast
Code:
login: dettus
password: password

salt1password -> 
ad2ac947fd6c332c5f5710a481ed48b0 = ad2ac947fd6c332c5f5710a481ed48b0

ACCESS GRANTED
 
Die Sache ist ja nicht, warum Salt, sondern wie Salt.

Also das Salt ändert sich ja (laut Themenersteller) jedes Mal auf dem System beim Paßworterstellen, selbst beim selben Benutzer.

Da beim Anmelden des Benutzers ja die Prüfsummen des Paßwortes verglichen werden, stellt sich nun die Frage, woher der "Loginmanager" das richtige Salt bekommt, ohne, daß es für jeden offen gespeichert wäre (denn damit wäre es ja wieder nutzlos).
 
Das salt ist kein Sicherheitsfeature. Es ist nur dafür da, dass root nicht auf den ersten Blick erkennt, wenn Benutzer die gleichen Passwörter verwenden, wenn man sich die master.passwd ansieht. Jedenfalls vermute ich das so.
 
Das ganze wird gemacht, damit nicht eine große Hashtable berechnet werden kann und diese dann für alle Rechner und Benutzer gilt.
 
Zurück
Oben