Zum Hauptinhalt springen

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.