Zum Hauptinhalt springen

3.4.4. Integrity Check Value Verification (Integritätsprüfwertüberprüfung)

Der Empfänger berechnet den ICV über die entsprechenden Felder des Pakets unter Verwendung des spezifizierten Integritätsalgorithmus und überprüft, ob er mit dem ICV übereinstimmt, der im ICV-Feld des Pakets enthalten ist. Details der Berechnung werden unten bereitgestellt.

Wenn die berechneten und empfangenen ICVs übereinstimmen, dann ist das Datagramm gültig, und es wird akzeptiert. Wenn der Test fehlschlägt, dann MUSS der Empfänger das empfangene IP-Datagramm als ungültig verwerfen. Dies ist ein auditfähiges Ereignis. Der Audit-Log-Eintrag SOLLTE den SPI-Wert, Empfangsdatum/-uhrzeit, Quelladresse, Zieladresse und (bei IPv6) die Flow-ID enthalten.

Implementierungshinweis:

Implementierungen können einen beliebigen Satz von Schritten verwenden, der zum gleichen Ergebnis führt wie der folgende Satz von Schritten. Beginnen Sie damit, den ICV-Wert zu speichern und ihn (aber nicht das ICV-Feld-Padding) durch Null zu ersetzen. Setzen Sie alle anderen Felder auf Null, die möglicherweise während der Übertragung modifiziert wurden. (Siehe Abschnitt 3.3.3.1, "Handling Mutable Fields", für eine Diskussion darüber, welche Felder vor der ICV-Berechnung auf Null gesetzt werden.) Wenn die ESN-Option für diese SA gewählt ist, hängen Sie die höherwertigen 32 Bits der ESN nach dem Ende des Pakets an. Überprüfen Sie die Gesamtlänge des Pakets (wie oben beschrieben), und wenn sie implizites Padding basierend auf den Anforderungen des Integritätsalgorithmus erfordert, fügen Sie am Ende des Pakets (nach der ESN, falls vorhanden) nach Bedarf mit Null gefüllte Bytes hinzu. Führen Sie die ICV-Berechnung durch und vergleichen Sie das Ergebnis mit dem gespeicherten Wert, unter Verwendung der durch die Algorithmusspezifikation definierten Vergleichsregeln. (Wenn beispielsweise eine digitale Signatur und ein Einweg-Hash für die ICV-Berechnung verwendet werden, ist der Abgleichsprozess komplexer.)