5.2 User-Password
5.2. User-Password
Description (Beschreibung)
Dieses Attribute gibt das Passwort des zu authentifizierenden Benutzers oder die Eingabe des Benutzers nach einem Access-Challenge an. Es wird nur in Access-Request-Paketen verwendet.
Bei der Übertragung wird das Passwort verborgen. Das Passwort wird zunächst am Ende mit Nullen auf ein Vielfaches von 16 Oktetts aufgefüllt. Ein Einweg-MD5-Hash wird über einen Oktett-Strom berechnet, der aus dem gemeinsamen Geheimnis gefolgt vom Request Authenticator besteht. Dieser Wert wird mit dem ersten 16-Oktett-Segment des Passworts XOR-verknüpft und in den ersten 16 Oktetts des String-Feldes des User-Password-Attributes platziert.
Wenn das Passwort länger als 16 Zeichen ist, wird ein zweiter Einweg-MD5-Hash über einen Oktett-Strom berechnet, der aus dem gemeinsamen Geheimnis gefolgt vom Ergebnis des ersten xor besteht. Dieser Hash wird mit dem zweiten 16-Oktett-Segment des Passworts XOR-verknüpft und in den zweiten 16 Oktetts des String-Feldes des User-Password-Attributes platziert.
Falls erforderlich, wird dieser Vorgang wiederholt, wobei jedes xor-Ergebnis zusammen mit dem gemeinsamen Geheimnis verwendet wird, um den nächsten Hash zu generieren, um das nächste Segment des Passworts zu xor-verknüpfen, bis zu maximal 128 Zeichen.
Die Methode stammt aus dem Buch "Network Security" von Kaufman, Perlman und Speciner [9] Seiten 109-110. Eine genauere Erklärung der Methode folgt:
Nennen Sie das gemeinsame Geheimnis S und den pseudozufälligen 128-Bit-Request Authenticator RA. Teilen Sie das Passwort in 16-Oktett-Blöcke p1, p2 usw. auf, wobei der letzte am Ende mit Nullen auf eine 16-Oktett-Grenze aufgefüllt wird. Nennen Sie die Chiffretextblöcke c(1), c(2) usw. Wir benötigen Zwischenwerte b1, b2 usw.
b1 = MD5(S + RA) c(1) = p1 xor b1
b2 = MD5(S + c(1)) c(2) = p2 xor b2
. .
. .
. .
bi = MD5(S + c(i-1)) c(i) = pi xor bi
Der String enthält c(1)+c(2)+...+c(i), wobei + die Verkettung bezeichnet.
Beim Empfang wird der Prozess umgekehrt, um das ursprüngliche Passwort zu erhalten.
Eine Zusammenfassung des User-Password-Attribute-Formats wird unten gezeigt. Die Felder werden von links nach rechts übertragen.
0 1 2
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
| Type | Length | String ...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Type
2 für User-Password.
Length
Mindestens 18 und nicht größer als 130.
String
Das String-Feld ist zwischen 16 und 128 Oktetts lang, einschließlich.