Zum Hauptinhalt springen

B3. Handling Loss of Synchronization (Behandlung von Synchronisationsverlust)

Wenn es einen unerkannten Paketverlust von 2^32 oder mehr aufeinanderfolgenden Paketen auf einer einzelnen SA gibt, dann verlieren Sender und Empfänger die Synchronisation der höherwertigen Bits, d.h., die Gleichungen in Anhang B2.2 werden nicht den korrekten Wert liefern. Wenn dieses Problem nicht erkannt und adressiert wird, werden nachfolgende Pakete auf dieser SA die Authentifizierungsprüfungen nicht bestehen und verworfen werden. Das folgende Verfahren SOLLTE von jeder IPsec-(ESP- oder AH-)Implementierung implementiert werden, die die ESN-Option unterstützt.

Beachten Sie, dass diese Art von ausgedehntem Verkehrsverlust unwahrscheinlich erscheint, wenn ein signifikanter Bruchteil des Verkehrs auf der betreffenden SA TCP ist, da die Quelle keine ACKs empfangen würde und aufhören würde zu senden, lange bevor 2^32 Pakete verloren gegangen wären. Auch für jede bidirektionale Anwendung, selbst solche, die über UDP betrieben werden, würde ein solcher ausgedehnter Ausfall wahrscheinlich dazu führen, dass eine Form von Timeout ausgelöst wird. Eine unidirektionale Anwendung, die über UDP betrieben wird, könnte jedoch Rückmeldung vermissen, die eine automatische Erkennung eines Verlusts dieser Größenordnung verursachen würde, daher die Motivation, eine Wiederherstellungsmethode für diesen Fall zu entwickeln.

Die von uns gewählte Lösung wurde ausgewählt, um:

  • die Auswirkungen auf die normale Verkehrsverarbeitung zu minimieren.
  • die Schaffung einer Gelegenheit für einen neuen Denial-of-Service-Angriff zu vermeiden, wie er auftreten könnte, indem ein Angreifer gezwungen wird, Ressourcen zu einem Resynchronisationsprozess umzuleiten.
  • den Wiederherstellungsmechanismus auf den Empfänger zu beschränken, da Anti-Replay ein Dienst nur für den Empfänger ist und der Sender im Allgemeinen nicht weiß, ob der Empfänger Sequenznummern zur Unterstützung dieses optionalen Dienstes verwendet. Es ist vorzuziehen, dass Wiederherstellungsmechanismen lokal beim Empfänger sind. Dies ermöglicht auch Rückwärtskompatibilität.

B3.1. Auslösen der Resynchronisation

Für jede SA zeichnet der Empfänger die Anzahl aufeinanderfolgender Pakete auf, die die Authentifizierung nicht bestehen. Diese Zählung wird verwendet, um den Resynchronisationsprozess auszulösen, der im Hintergrund oder unter Verwendung eines separaten Prozessors durchgeführt werden sollte. Der Empfang eines gültigen Pakets auf der SA setzt den Zähler auf Null zurück. Der Wert, der verwendet wird, um den Resynchronisationsprozess auszulösen, ist ein lokaler Parameter. Es besteht keine Anforderung, unterschiedliche Auslösewerte für verschiedene SAs zu unterstützen, obwohl ein Implementierer dies tun kann.

B3.2. Resynchronisationsprozess

Wenn der obige Auslösepunkt erreicht ist, wird ein "schlechtes" Paket ausgewählt, für das die Authentifizierung unter Verwendung sukzessiv größerer Werte für die obere Hälfte der Sequenznummer (Seqh) wiederholt wird. Diese Werte werden generiert, indem bei jedem Wiederholungsversuch um eins inkrementiert wird. Die Anzahl der Wiederholungsversuche sollte begrenzt werden, falls dies ein Paket aus der "Vergangenheit" oder ein gefälschtes Paket ist. Der Grenzwert ist ein lokaler Parameter. (Da der Seqh-Wert implizit nach dem AH-(oder ESP-)Payload platziert wird, kann es möglich sein, dieses Verfahren zu optimieren, indem der Integritätsalgorithmus über das Paket bis zum Endpunkt des Payload ausgeführt wird und dann verschiedene Kandidaten-ICVs durch Variation des Wertes von Seqh berechnet werden.) Eine erfolgreiche Authentifizierung eines Pakets über dieses Verfahren setzt die Zählung aufeinanderfolgender Fehler zurück und setzt den Wert von T auf den des empfangenen Pakets.

Diese Lösung erfordert nur Unterstützung seitens des Empfängers, wodurch Rückwärtskompatibilität ermöglicht wird. Da Resynchronisationsbemühungen entweder im Hintergrund auftreten oder einen zusätzlichen Prozessor nutzen würden, beeinträchtigt diese Lösung die Verkehrsverarbeitung nicht und ein Denial-of-Service-Angriff kann Ressourcen nicht von der Verkehrsverarbeitung ablenken.