Zum Hauptinhalt springen

1. Einleitung

Das Lightweight Directory Access Protocol (LDAP) [RFC4510] ist ein leistungsfähiges Protokoll für den Zugriff auf Verzeichnisse. Es bietet Mittel zum Suchen, Abrufen und Bearbeiten von Verzeichnisinhalten sowie Möglichkeiten zum Zugriff auf eine reichhaltige Menge von Sicherheitsfunktionen.

Es ist entscheidend, dass diese Sicherheitsfunktionen zwischen allen LDAP-Clients und -Servern im Internet interoperabel sind; daher muss es eine minimale Teilmenge von Sicherheitsfunktionen geben, die allen Implementierungen gemeinsam ist, die LDAP-Konformität beanspruchen.

Grundlegende Bedrohungen für einen LDAP-Verzeichnisdienst umfassen (ohne darauf beschränkt zu sein):

(1) Unbefugter Zugriff auf Verzeichnisdaten über datenabrufende Operationen.

(2) Unbefugter Zugriff auf Verzeichnisdaten durch Überwachung der Zugriffe anderer.

(3) Unbefugter Zugriff auf wiederverwendbare Client-Authentifizierungsinformationen durch Überwachung der Zugriffe anderer.

(4) Unbefugte Änderung von Verzeichnisdaten.

(5) Unbefugte Änderung von Konfigurationsinformationen.

(6) Dienstblockade (Denial of Service): Verwendung von Ressourcen (üblicherweise im Übermaß) in der Absicht, anderen den Dienst zu verweigern.

(7) Vortäuschung (Spoofing): Einen Benutzer oder Client glauben machen, eine Information stamme aus dem Verzeichnis, obwohl dies nicht der Fall ist, sei es durch Änderung von Daten während der Übertragung oder durch Fehlleitung der Transportverbindung des Clients. Einen Benutzer oder Client dazu bringen, privilegierte Informationen an eine feindliche Instanz zu senden, die wie der Verzeichnisserver erscheint, es aber nicht ist. Einen Verzeichnisserver glauben machen, eine Information stamme von einem bestimmten Client, obwohl sie in Wirklichkeit von einer feindlichen Instanz stammt.

(8) Session-Übernahme (Hijacking): Ein Angreifer übernimmt die Kontrolle über eine bestehende Protokollsitzung.

Die Bedrohungen (1), (4), (5), (6), (7) und (8) sind aktive Angriffe. Die Bedrohungen (2) und (3) sind passive Angriffe.

Die Bedrohungen (1), (4), (5) und (6) gehen von feindlichen Clients aus. Die Bedrohungen (2), (3), (7) und (8) gehen von feindlichen Instanzen auf dem Pfad zwischen Client und Server oder von feindlichen Instanzen aus, die sich als Server ausgeben, z. B. durch IP-Spoofing.

LDAP bietet die folgenden Sicherheitsmechanismen:

(1) Authentifizierung mittels der Bind-Operation. Die Bind-Operation bietet eine einfache Methode, die die Mechanismen anonym, nicht authentifiziert und Name/Kennwort unterstützt, sowie die Methode Simple Authentication and Security Layer (SASL), die eine breite Vielfalt von Authentifizierungsmechanismen unterstützt.

(2) Mechanismen zur Unterstützung herstellerspezifischer Zugriffskontrollfunktionen (LDAP bietet keine standardisierte Zugriffskontrollfunktion).

(3) Dienst für Datenintegrität mittels Sicherheitsschichten in Mechanismen von Transport Layer Security (TLS) oder SASL.

(4) Dienst für Datenvertraulichkeit mittels Sicherheitsschichten in Mechanismen von TLS oder SASL.

(5) Begrenzung der Serverressourcennutzung mittels auf dem Server konfigurierter administrativer Grenzen.

(6) Serverauthentifizierung mittels des TLS-Protokolls oder von SASL-Mechanismen.

LDAP kann zudem durch Mittel außerhalb des LDAP-Protokolls geschützt werden, z. B. durch Sicherheit auf IP-Ebene [RFC4301].

Die Erfahrung zeigt, dass es keine zu Interoperabilität führende Strategie ist, Implementierungen einfach die Sicherheitsmechanismen frei auswählen zu lassen, die umgesetzt werden. Ohne verbindliche Vorgaben werden weiterhin Clients geschrieben, die keine der vom Server unterstützten Sicherheitsfunktionen unterstützen, oder schlimmer: die nur Mechanismen unterstützen, die in den meisten Situationen unzureichende Sicherheit bieten.

Es ist wünschenswert, Clients die Authentifizierung mit einer Vielzahl von Mechanismen zu ermöglichen, einschließlich solcher, bei denen Identitäten als Distinguished Names [X.501][RFC4512], in Zeichenkettenform [RFC4514] oder in der in verschiedenen Systemen üblichen Form (z. B. einfache Benutzernamen [RFC4013]) dargestellt werden. Da einige Authentifizierungsmechanismen Anmeldeinformationen im Klartext übertragen und/oder keine Dienste für Datensicherheit bieten und/oder passiven Angriffen ausgesetzt sind, ist es notwendig, eine sichere Interoperabilität dadurch zu gewährleisten, dass ein verpflichtend zu implementierender Mechanismus für den Aufbau von Sicherheitsdiensten auf der Transportschicht festgelegt wird.

Die Menge der in LDAP bereitgestellten und in diesem Dokument beschriebenen Sicherheitsmechanismen soll die Sicherheitsanforderungen eines breiten Spektrums von Bereitstellungsszenarien erfüllen und zugleich ein hohes Maß an Interoperabilität zwischen verschiedenen LDAP-Implementierungen und -Bereitstellungen gewährleisten.

1.1. Beziehung zu anderen Dokumenten​

Dieses Dokument ist integraler Bestandteil der technischen LDAP-Spezifikation [RFC4510].

Dieses Dokument macht zusammen mit [RFC4510], [RFC4511] und [RFC4512] die RFC 2251 vollständig obsolet. Die Abschnitte 4.2.1 (teilweise) und 4.2.2 der RFC 2251 werden durch dieses Dokument obsolet. Anhang B.1 fasst die durch dieses Dokument an der RFC 2251 vorgenommenen wesentlichen Änderungen zusammen.

Dieses Dokument macht die RFC 2829 vollständig obsolet. Anhang B.2 fasst die durch dieses Dokument an der RFC 2829 vorgenommenen wesentlichen Änderungen zusammen.

Die Abschnitte 2 und 4 der RFC 2830 werden durch [RFC4511] obsolet. Der Rest der RFC 2830 wird durch dieses Dokument obsolet. Anhang B.3 fasst die durch dieses Dokument an der RFC 2830 vorgenommenen wesentlichen Änderungen zusammen.

1.2. Konventionen​

Die Schlüsselwörter „MUST", „MUST NOT", „SHALL", „SHOULD", „SHOULD NOT", „MAY" und „OPTIONAL" in diesem Dokument sind wie in RFC 2119 [RFC2119] beschrieben zu interpretieren.

Der Begriff „user" (Benutzer) bezeichnet jede menschliche oder anwendungsbezogene Instanz, die mithilfe eines Verzeichnisclients auf das Verzeichnis zugreift. Ein Verzeichnisclient (oder Client) wird auch als Directory User Agent (DUA) bezeichnet.

Der Begriff „transport connection" (Transportverbindung) bezeichnet die zugrunde liegenden Transportdienste, die zum Transport des Protokollaustauschs verwendet werden, sowie die von diesen Diensten aufgebauten Assoziationen.

Der Begriff „TLS layer" (TLS-Schicht) bezeichnet die TLS-Dienste, die zur Bereitstellung von Sicherheitsdiensten verwendet werden, sowie die von diesen Diensten aufgebauten Assoziationen.

Der Begriff „SASL layer" (SASL-Schicht) bezeichnet die SASL-Dienste, die zur Bereitstellung von Sicherheitsdiensten verwendet werden, sowie die von diesen Diensten aufgebauten Assoziationen.

Der Begriff „LDAP message layer" (LDAP-Nachrichtenschicht) bezeichnet die LDAP-Message-(PDU-)Dienste, die zur Bereitstellung von Verzeichnisdiensten verwendet werden, sowie die von diesen Diensten aufgebauten Assoziationen.

Der Begriff „LDAP session" (LDAP-Sitzung) bezeichnet die kombinierten Dienste (Transportverbindung, TLS-Schicht, SASL-Schicht, LDAP-Nachrichtenschicht) und deren Assoziationen.

Im Allgemeinen werden die Sicherheitsbegriffe in diesem Dokument in Übereinstimmung mit den in [RFC2828] gegebenen Definitionen verwendet. Darüber hinaus werden in Anhang A dieses Dokuments mehrere Begriffe und Konzepte zu Sicherheit, Authentifizierung und Autorisierung dargestellt. Die formale Definition dieser Begriffe und Konzepte liegt zwar außerhalb des Rahmens dieses Dokuments, doch ist ihr Verständnis Voraussetzung für das Verständnis eines Großteils des Materials in diesem Dokument. Lesern, die mit sicherheitsbezogenen Konzepten nicht vertraut sind, wird empfohlen, Anhang A vor dem übrigen Teil dieses Dokuments zu lesen.