Henryk Plötz: Was ist Unix Crypt Format?

Beitrag lesen

Moin,

Übertragung im Klartext

ja

Entschlüsselung des Passwortes,
                       das zum übermittelten Nutzernamen gehört.

nein

Vergleichen und entsprechend reagieren.

ja

Das Passwort kann prinzipbedingt nicht wieder entschlüsselt werden, wenn es erst mal ge-crypt()-ed ist, da die Abbildung (zumindest potentiell) nicht ein-eindeutig ist. (Michael: Die Ausgabe hat zwar mehr Zeichen, aber weniger relevante Bits pro Zeichen.)

Also das zu überprüfende Passwort muss im Klartext vorliegen. Dann wird das verschlüsselte Passwort rausgesucht und daraus der Salt extrahiert (der wird zusammen mit dem crypt()-Ergebnis gespeichert). Der crypt()-Algorithmus basiert im Prinzip auf DES mit ein paar Veränderungen, die das effiziente Ausführen einer Schlüsselsuche in Hardware erschweren sollen. Der Salt-String besteht aus zwei Zeichen aus der Menge [a-zA-Z0-9./] und verändert die Verschlüsselungsfunktion in einer von 4096 Arten.
Dann werden die 7 niederwertigsten Bits der ersten 8 Buchstaben des Passworts genommen und daraus wird dann ein 56 Bit-Schlüssel. Der wird dann benutzt um mit dem modifizierten DES-Algorithmus einen festen String (in der Regel alles Nullen) mehrfach hintereinander zu verschlüsseln, wobei 11 druckbare ASCII-Zeichen entstehen (plus 2 Zeichen Salt, die vorangestellt werden).
Dieser Algorithmus wird also einmal beim Festlegen des Passworts (mit zufälligem Salt) durchgeführt und das Ergebnis gespeichert. Ausserdem wird er jedesmal bei der Überprüfung eines Passworts (mit dem bekannten Salt) durchgeführt und das Ergebnis mit dem gespeicherten Ergebnis verglichen.

--
Henryk Plötz
Grüße aus Berlin