3.4.3. Sequence Number Verification (Sequenznummernüberprüfung)
Alle AH-Implementierungen MÜSSEN den Anti-Replay-Dienst unterstützen, obwohl seine Verwendung vom Empfänger pro SA-Basis aktiviert oder deaktiviert werden kann. Anti-Replay ist sowohl auf Unicast- als auch auf Multicast-SAs anwendbar. Dieser Standard spezifiziert jedoch keine Mechanismen zur Bereitstellung von Anti-Replay für eine Multi-Sender-SA (Unicast oder Multicast). In Abwesenheit von Aushandlung (oder manueller Konfiguration) eines Anti-Replay-Mechanismus für eine solche SA wird empfohlen, dass die Sender- und Empfängerüberprüfung der Sequenznummer für die SA deaktiviert wird (über Aushandlung oder manuelle Konfiguration), wie unten angegeben.
Wenn der Empfänger Anti-Replay für eine SA nicht aktiviert, werden keine eingehenden Überprüfungen der Sequenznummer durchgeführt. Aus der Perspektive des Senders ist jedoch die Standardannahme, dass Anti-Replay beim Empfänger aktiviert ist. Um zu vermeiden, dass der Sender unnötige Sequenznummernüberwachung und SA-Einrichtung durchführt (siehe Abschnitt 3.3.2, "Sequence Number Generation"), SOLLTE der Empfänger, wenn ein SA-Einrichtungsprotokoll wie IKE verwendet wird, den Sender während der SA-Einrichtung benachrichtigen, wenn der Empfänger keinen Anti-Replay-Schutz bereitstellt.
Wenn der Empfänger den Anti-Replay-Dienst für diese SA aktiviert hat, MUSS der Empfangs-Paketzähler für die SA auf Null initialisiert werden, wenn die SA eingerichtet wird. Für jedes empfangene Paket MUSS der Empfänger überprüfen, dass das Paket eine Sequenznummer enthält, die nicht die Sequenznummer anderer während der Lebensdauer dieser SA empfangener Pakete dupliziert. Dies SOLLTE die erste AH-Überprüfung sein, die auf ein Paket angewendet wird, nachdem es einer SA zugeordnet wurde, um die Ablehnung duplizierter Pakete zu beschleunigen.
Duplikate werden durch die Verwendung eines gleitenden Empfangsfensters abgelehnt. Wie das Fenster implementiert wird, ist eine lokale Angelegenheit, aber der folgende Text beschreibt die Funktionalität, die die Implementierung aufweisen muss.
Die "rechte" Kante des Fensters repräsentiert den höchsten, validierten Sequenznummernwert, der auf dieser SA empfangen wurde. Pakete, die Sequenznummern enthalten, die niedriger sind als die "linke" Kante des Fensters, werden abgelehnt. Pakete, die in das Fenster fallen, werden gegen eine Liste empfangener Pakete innerhalb des Fensters geprüft.
Wenn die ESN-Option für eine SA ausgewählt ist, werden nur die niederwertigen 32 Bits der Sequenznummer explizit übertragen, aber der Empfänger verwendet die vollständige Sequenznummer, die unter Verwendung der höherwertigen 32 Bits für die angegebene SA (aus seinem lokalen Zähler) berechnet wurde, wenn er die empfangene Sequenznummer gegen das Empfangsfenster prüft. Beim Konstruieren der vollständigen Sequenznummer nimmt der Empfänger an, dass die höherwertigen 32 Bits inkrementiert wurden und in einen neuen Sequenznummern-Unterraum übergegangen sind, wenn die im Paket übertragenen niederwertigen 32 Bits niedriger sind als die niederwertigen 32 Bits des Sequenznummernzählers des Empfängers. (Dieser Algorithmus berücksichtigt Lücken im Empfang für eine einzelne SA von bis zu 2^32-1 Paketen. Wenn eine größere Lücke auftritt, KÖNNEN zusätzliche, heuristische Überprüfungen zur Resynchronisation des Sequenznummernzählers des Empfängers verwendet werden, wie in Anhang B beschrieben.)
Wenn das empfangene Paket in das Fenster fällt und kein Duplikat ist, oder wenn das Paket rechts vom Fenster liegt, fährt der Empfänger mit der ICV-Überprüfung fort. Wenn die ICV-Validierung fehlschlägt, MUSS der Empfänger das empfangene IP-Datagramm als ungültig verwerfen. Dies ist ein auditfähiges Ereignis. Der Audit-Log-Eintrag für dieses Ereignis SOLLTE den SPI-Wert, Datum/Uhrzeit, Quelladresse, Zieladresse, die Sequenznummer und (bei IPv6) die Flow-ID enthalten. Das Empfangsfenster wird nur aktualisiert, wenn die ICV-Überprüfung erfolgreich ist.
Eine MINIMALE Fenstergröße von 32 Paketen MUSS unterstützt werden, aber eine Fenstergröße von 64 wird bevorzugt und SOLLTE als Standard verwendet werden. Eine andere Fenstergröße (größer als das MINIMUM) KANN vom Empfänger gewählt werden. (Der Empfänger benachrichtigt den Sender NICHT über die Fenstergröße.) Die Empfangsfenstergröße sollte für Hochgeschwindigkeitsumgebungen erhöht werden, unabhängig von Sicherheitsfragen. Werte für minimale und empfohlene Empfangsfenstergrößen für sehr schnelle (z.B. Multi-Gigabit/Sekunde) Geräte werden von diesem Standard nicht spezifiziert.