4.4.2. Sicherheitsassoziationsdatenbank (Security Association Database, SAD)
In jeder IPsec-Implementierung gibt es eine nominelle Sicherheitsassoziationsdatenbank (Security Association Database, SAD), in der jeder Eintrag die mit einer SA verbundenen Parameter definiert. Jede SA hat einen Eintrag in der SAD.
SAD-Suchmechanismen
Ausgehende Verarbeitung (Outbound Processing)
Für die ausgehende Verarbeitung wird jeder SAD-Eintrag von Einträgen im SPD-S-Teil des SPD-Cache angezeigt.
Eingehende Verarbeitung (Inbound Processing)
- Für Unicast-SAs: Der SPI wird entweder allein verwendet, um eine SA zu suchen, oder in Verbindung mit dem IPsec-Protokolltyp.
- Wenn eine IPsec-Implementierung Multicast unterstützt: Der SPI plus Zieladresse oder SPI plus Ziel- und Quelladresse werden verwendet, um die SA zu suchen.
(Siehe Abschnitt 4.1 für Details zum Algorithmus, der verwendet werden MUSS, um eingehende IPsec-Datagramme auf SAs abzubilden.)
SAD-Eintragsparameter
Die folgenden Parameter sind mit jedem Eintrag in der SAD verbunden. Sie sollten alle vorhanden sein, sofern nicht anders angegeben, z.B. AH-Authentifizierungsalgorithmus. Diese Beschreibung erhebt nicht den Anspruch, eine MIB zu sein, sondern nur eine Spezifikation der minimalen Datenelemente, die zur Unterstützung einer SA in einer IPsec-Implementierung erforderlich sind.
Selektor-Befüllung (Selector Population)
Für jeden der in Abschnitt 4.4.1.1 definierten Selektoren MUSS der Eintrag für eine eingehende SA in der SAD zunächst mit dem oder den Werten befüllt werden, die zum Zeitpunkt der SA-Erstellung ausgehandelt wurden. (Siehe den Absatz in Abschnitt 4.4.1 unter "Behandlung von Änderungen an der SPD während das System läuft" für Hinweise zur Auswirkung von SPD-Änderungen auf bestehende SAs.)
Für einen Empfänger werden diese Werte verwendet, um zu überprüfen, ob die Header-Felder eines eingehenden Pakets (nach IPsec-Verarbeitung) mit den für die SA ausgehandelten Selektorwerten übereinstimmen. Somit fungiert die SAD als Cache zur Überprüfung der Selektoren des eingehenden Verkehrs, der auf SAs ankommt. Für den Empfänger ist dies Teil der Überprüfung, dass ein auf einer SA ankommendes Paket mit der Richtlinie für die SA übereinstimmt. (Siehe Abschnitt 6 für Regeln zu ICMP-Nachrichten.)
Diese Felder können die Form spezifischer Werte, Bereiche, ANY oder OPAQUE haben, wie in Abschnitt 4.4.1.1 "Selektoren" beschrieben.
SAD-Einträge ohne SPD-Entsprechung
Beachten Sie auch, dass es einige Situationen gibt, in denen die SAD Einträge für SAs haben kann, die keine entsprechenden Einträge in der SPD haben:
- Da dieses Dokument nicht vorschreibt, dass die SAD selektiv gelöscht wird, wenn die SPD geändert wird, können SAD-Einträge verbleiben, wenn die SPD-Einträge, die sie erstellt haben, geändert oder gelöscht werden.
- Wenn eine manuell geschlüsselte SA erstellt wird, könnte es einen SAD-Eintrag für diese SA geben, der keinem SPD-Eintrag entspricht.
Multicast-SA-Unterstützung
Hinweis: Die SAD kann Multicast-SAs unterstützen, wenn sie manuell konfiguriert werden.
Ausgehende Multicast-SA (Outbound Multicast SA)
Eine ausgehende Multicast-SA hat die gleiche Struktur wie eine Unicast-SA. Die Quelladresse ist die des Senders, und die Zieladresse ist die Multicast-Gruppenadresse.
Eingehende Multicast-SA (Inbound Multicast SA)
Eine eingehende Multicast-SA muss mit den Quelladressen jedes Peers konfiguriert werden, der berechtigt ist, an die betreffende Multicast-SA zu übertragen. Der SPI-Wert für eine Multicast-SA wird von einem Multicast-Gruppen-Controller bereitgestellt, nicht vom Empfänger wie bei einer Unicast-SA.
Da ein SAD-Eintrag möglicherweise mehrere einzelne IP-Quelladressen aufnehmen muss, die Teil eines SPD-Eintrags waren (für Unicast-SAs), ist die für eingehende Multicast-SAs erforderliche Funktion eine Funktion, die bereits in einer IPsec-Implementierung vorhanden ist. Da die SPD jedoch keine Bestimmungen zur Aufnahme von Multicast-Einträgen hat, spezifiziert dieses Dokument keine automatisierte Methode zum Erstellen eines SAD-Eintrags für eine eingehende Multicast-SA. Es können nur manuell konfigurierte SAD-Einträge erstellt werden, um eingehenden Multicast-Verkehr aufzunehmen.
Implementierungsleitfaden: SPD-S-zu-SAD-Verknüpfung
Dieses Dokument spezifiziert nicht, wie ein SPD-S-Eintrag auf den entsprechenden SAD-Eintrag verweist, da dies ein implementierungsspezifisches Detail ist. Es ist jedoch bekannt, dass einige Implementierungen (basierend auf Erfahrungen aus RFC 2401) in dieser Hinsicht Probleme haben.
Problem: Das einfache Speichern des Paares (entfernte Tunnel-Header-IP-Adresse, entfernter SPI) im SPD-Cache ist nicht ausreichend, da das Paar nicht immer einen einzelnen SAD-Eintrag eindeutig identifiziert.
Beispiele für Nicht-Eindeutigkeit:
- Zwei Hosts hinter demselben NAT könnten denselben SPI-Wert wählen.
- Einem Host wird eine IP-Adresse zugewiesen (z.B. über DHCP), die zuvor von einem anderen Host verwendet wurde, und die mit dem alten Host verbundenen SAs wurden noch nicht über Dead-Peer-Detection-Mechanismen gelöscht.
Konsequenz: Dies kann dazu führen, dass Pakete über die falsche SA gesendet werden oder, wenn das Schlüsselmanagement sicherstellt, dass das Paar eindeutig ist, die Erstellung ansonsten gültiger SAs verweigert wird.
Empfehlung: Implementierer sollten Verknüpfungen zwischen dem SPD-Cache und der SAD auf eine Weise implementieren, die solche Probleme nicht hervorruft.