6.7.3. Keyed MD5 and Meticulous Keyed MD5 Authentication (Keyed MD5 und Meticulous Keyed MD5-Authentifizierung)
6.7.3. Keyed MD5 and Meticulous Keyed MD5 Authentication (Keyed MD5 und Meticulous Keyed MD5-Authentifizierung)
Die Keyed MD5 und Meticulous Keyed MD5-Authentifizierungsmechanismen sind sehr ähnlich zu denen, die in anderen Protokollen verwendet werden. Bei diesen Authentifizierungsmethoden werden ein oder mehrere geheime Schlüssel (mit entsprechenden Schlüssel-IDs) in jedem System konfiguriert. Einer der Schlüssel ist in einem MD5 [MD5]-Digest enthalten, der über das ausgehende BFD Control Packet berechnet wird, aber der Schlüssel selbst wird nicht im Paket übertragen. Um Replay-Angriffe zu vermeiden, wird auch eine Sequenznummer in jedem Paket übertragen. Bei Keyed MD5 wird die Sequenznummer gelegentlich inkrementiert. Bei Meticulous Keyed MD5 wird die Sequenznummer bei jedem Paket inkrementiert.
Das empfangende System akzeptiert das Paket, wenn die Schlüssel-ID mit einem der konfigurierten Schlüssel übereinstimmt, ein MD5-Digest einschließlich des ausgewählten Schlüssels mit dem im Paket übertragenen übereinstimmt und die Sequenznummer größer oder gleich der zuletzt empfangenen Sequenznummer ist (bei Keyed MD5) oder strikt größer als die zuletzt empfangene Sequenznummer ist (bei Meticulous Keyed MD5).
Übertragung mit Keyed MD5 und Meticulous Keyed MD5-Authentifizierung
Das Auth Type-Feld MUSS auf 2 (Keyed MD5) oder 3 (Meticulous Keyed MD5) gesetzt werden. Das Auth Len-Feld MUSS auf 24 gesetzt werden. Das Auth Key ID-Feld MUSS auf die ID des aktuellen Authentifizierungsschlüssels gesetzt werden. Das Sequence Number-Feld MUSS auf bfd.XmitAuthSeq gesetzt werden.
Der Authentifizierungsschlüsselwert ist eine binäre Zeichenkette von bis zu 16 Bytes und MUSS in das Auth Key/Digest-Feld eingefügt werden, bei Bedarf mit nachfolgenden Null-Bytes aufgefüllt. Zur Interoperabilität MUSS die Verwaltungsschnittstelle, über die der Schlüssel konfiguriert wird, ASCII-Zeichenketten akzeptieren und SOLLTE auch die Konfiguration jeder beliebigen binären Zeichenkette in hexadezimaler Form ermöglichen. Andere Konfigurationsmethoden KÖNNEN unterstützt werden.
Ein MD5-Digest MUSS über das gesamte BFD Control Packet berechnet werden. Der resultierende Digest MUSS vor der Übertragung im Auth Key/Digest-Feld gespeichert werden (wobei der geheime Schlüssel ersetzt wird, der NICHT im Paket übertragen werden DARF).
Bei Keyed MD5 KANN bfd.XmitAuthSeq in zirkulärer Weise inkrementiert werden (wenn als vorzeichenloser 32-Bit-Wert behandelt). bfd.XmitAuthSeq SOLLTE inkrementiert werden, wenn sich der Sitzungszustand ändert oder wenn das übertragene BFD Control Packet einen anderen Inhalt als das zuvor übertragene Paket trägt. Die Entscheidung, wann bfd.XmitAuthSeq inkrementiert werden soll, liegt außerhalb des Geltungsbereichs dieser Spezifikation. Siehe den Abschnitt mit dem Titel "Security Considerations" (Sicherheitsüberlegungen) unten für eine Diskussion.
Bei Meticulous Keyed MD5 MUSS bfd.XmitAuthSeq in zirkulärer Weise inkrementiert werden (wenn als vorzeichenloser 32-Bit-Wert behandelt).
Empfang mit Keyed MD5 und Meticulous Keyed MD5-Authentifizierung
Wenn das empfangene BFD Control Packet keinen Authentication Section enthält oder der Auth Type nicht korrekt ist (2 für Keyed MD5 oder 3 für Meticulous Keyed MD5), MUSS das empfangene Paket verworfen werden.
Wenn das Auth Key ID-Feld nicht mit der ID eines konfigurierten Authentifizierungsschlüssels übereinstimmt, MUSS das empfangene Paket verworfen werden.
Wenn das Auth Len-Feld nicht gleich 24 ist, MUSS das Paket verworfen werden.
Wenn bfd.AuthSeqKnown 1 ist, untersuchen Sie das Sequence Number-Feld. Bei Keyed MD5, wenn die Sequenznummer außerhalb des Bereichs von bfd.RcvAuthSeq bis bfd.RcvAuthSeq+(3Detect Mult) inklusive liegt (wenn als vorzeichenloser zirkulärer 32-Bit-Zahlenraum behandelt), MUSS das empfangene Paket verworfen werden. Bei Meticulous Keyed MD5, wenn die Sequenznummer außerhalb des Bereichs von bfd.RcvAuthSeq+1 bis bfd.RcvAuthSeq+(3Detect Mult) inklusive liegt (wenn als vorzeichenloser zirkulärer 32-Bit-Zahlenraum behandelt), MUSS das empfangene Paket verworfen werden.
Andernfalls (bfd.AuthSeqKnown ist 0) MUSS bfd.AuthSeqKnown auf 1 gesetzt werden, und bfd.RcvAuthSeq MUSS auf den Wert des empfangenen Sequence Number-Felds gesetzt werden.
Ersetzen Sie den Inhalt des Auth Key/Digest-Felds durch den durch das empfangene Auth Key ID-Feld ausgewählten Authentifizierungsschlüssel. Wenn der MD5-Digest des gesamten BFD Control Packets gleich dem empfangenen Wert des Auth Key/Digest-Felds ist, MUSS das empfangene Paket akzeptiert werden. Andernfalls (der Digest stimmt nicht mit dem Auth Key/Digest-Feld überein) MUSS das empfangene Paket verworfen werden.