Bundesamt für Sicherheit in der Informationstechnik

M 3.61 Einführung in Verzeichnisdienst-Grundlagen

Verantwortlich für Initiierung: IT-Sicherheitsbeauftragter

Verantwortlich für Umsetzung: Fachverantwortliche, IT-Sicherheitsbeauftragter

Immer mehr Institutionen nutzen dezentrale, länderübergreifende oder gar weltweite Computer-Netze, um im Rahmen ihres Geschäftsbetriebs, ihrer Fachaufgaben oder Verfahren die benötigten Informationen auszutauschen und verteilte Anwendungen zu realisieren. Dabei müssen die Daten, aber auch die externen und internen Anwendungen vor Missbrauch geschützt werden.

Für den Datenaustausch innerhalb solcher Netze ist es von großer Bedeutung, dass eine Vielzahl von Informationen über die verschiedenen Kommunikationspartner, Benutzer und Ressourcen im Netz den Nutzern und Anwendungen, die diese benötigen, bereitgestellt werden. Dabei muss sichergestellt werden, dass nur autorisierte Nutzer und Anwendungen auf diese Informationen, wie beispielsweise Zertifikate, Eigenschaften usw., zugreifen können. Außerdem muss gewährleistet werden, dass die Informationen nicht manipuliert oder kompromittiert werden können. Nur dann ist sichergestellt, dass nur mit vertrauenswürdigen Partner Kommunikationsverbindungen aufgebaut und Daten hinreichend abgesichert ausgetauscht werden.

Vor allem, wenn viele gleichartige Informationen für verschiedene Verfahren zur Verfügung stehen sollen, sollten diese Daten effektiv und effizient verwaltet werden. Wenn diese Daten häufig abgerufen, aber selten geändert werden, sollte ein Verzeichnisdienst in das Netz integriert werden, um die Informationen in einer einheitlichen Art und Weise zu organisieren und gleichzeitig standardisierte Schnittstellen zu ihrer Nutzung anzubieten.

Darüber hinaus unterstützen Verzeichnisdienste "Single Sign-On", also Verfahren, die es ermöglichen, dass Benutzer nach nur einer Authentisierung ohne weitere Anmeldung auf weitere Ressourcen im Netz zugreifen können.

Heutige Verzeichnisdienste haben ihren Ursprung im X.500-Standard der International Telecommunication Union (ITU) zu Verzeichnisdiensten. X.500 wurde auch als ISO 9594 verabschiedet. Von diesem Standard haben aktuelle Verzeichnisdienste im Wesentlichen dessen internen Aufbau hinsichtlich Namens- und Datenstrukturen übernommen.

Ein Nachteil des X.500-Standards ist jedoch das komplexe Zugangsprotokoll des Verzeichnisdienstes, das Directory Access Protocol ( DAP ), welches zudem auf einem vollständigen ISO/OSI-Protokollstapel beruht. Als praktikable Alternative wurde das Lightweight Directory Access Protocol ( LDAP ) entwickelt, welches den Zugang zu Verzeichnisdiensten vereinfacht hat und so auch zu deren Popularität beigetragen hat. LDAP implementiert gegenüber DAP lediglich einen reduzierten Umfang an Funktionen und Datentypen und setzt auf einem TCP/IP-Stack auf.

LDAP hat sich inzwischen in der Version LDAPv3 als Industriestandard durchgesetzt und ist als Internetstandard im RFC 4511 (ehemals RFC 2251) spezifiziert. Praktisch alle Verzeichnisdienste bieten heute eine LDAP-Schnittstelle an, wenngleich daneben auch proprietäre Protokolle bzw. Schnittstellen zum Einsatz kommen.

Aufgrund des Protokolls werden Verzeichnisdienst-Server im administrativen Sprachgebrauch gelegentlich auch als LDAP-Server bezeichnet.

Verzeichnisdienste sind wie eine hierarchische Datenbank organisiert. Die hierarchische Gliederung der Objekte erfolgt in Form eines Baumes, wobei die einzelnen Knotenpunkte des Verzeichnisbaums aus den Container-Objekten bestehen, welche wiederum andere Objekte enthalten können. Die so genannten Leaf-Objekte (Blätter) stellen die Endpunkte des Verzeichnisbaums dar. Die Objekte (Einträge, Entries) bilden den "Directory Information Tree" ( DIT ). Jedes Objekt besitzt dabei einen eindeutigen Namen, den sogenannten Distinguished Name ( DN ).

Beispiel: "cn=Max Mustermann, l=Bonn, ou=BSI, o=Bund, c=DE"

Innerhalb einer Ebene können die Objekte durch den Relative Distinguished Name (RDN), z. B. "cn=Max Mustermann", unterschieden werden.

Die Objekte enthalten ihrerseits Eigenschaften (Attribute). Den Attributen werden schließlich Werte zugewiesen, zum Beispiel: "mail: max.mustermann@bsi.bund.de".

Jedem Eintrag im Directory Information Tree (DIT) ist mindestens eine Objektklasse (ObjectClass) zugeordnet, wie z. B. "objectClass inetOrgPerson". Es gibt Objektklassen, die als "Container" für weitere Einträge dienen können, und solche, die sich als "Blattobjekte" an den Enden der Äste in der Baumstruktur des DIT befinden. Der Directory Information Tree stellt innerhalb der Verzeichnisdienst-Struktur eine Grenze des Einflusses von Administratoren und somit auf den Verzeichnisdienst an sich dar.

In den Objektklassen sind Attribute definiert, die für entsprechende Einträge zur Verfügung stehen. Durch die Zuordnung der Attribute zu Objektklassen wird gesteuert, welche Attribute für die Einträge zur Verfügung stehen. Es gibt Attribute, die einen Wert erhalten müssen, und andere, die leer bleiben können. Beispielsweise kann das Attribut "mail", das in der Objektklasse "inetOrgPerson" deklariert wird, leer bleiben.

Es gibt Abhängigkeiten zwischen Objektklassen. Damit etwa die weit verbreitete Objektklasse "inetOrgPerson" verwendet werden kann, muss zunächst die Objektklasse "organizationalPerson" deklariert werden, diese wiederum braucht die Objektklasse "person" und diese die Objektklasse "top". Die im RFC 2798 definierte Objektklasse "inetOrgPerson" ist eine der meist genutzten Klassen, um in LDAP Personen in ihrem organisatorischen Umfeld darzustellen.

Die Definitionen der Objektklassen werden in einem so genannten Schema festgehalten. Ein Schema definiert jeweils Objektklassen mit ihren verbindlichen oder optionalen Attributen. Schemata werden in so genannten Schemadateien gespeichert. So ist beispielsweise die Objektklasse "inetOrgPerson" mit ihren Attributen in der Datei "inetorgperson.schema" beschrieben. Verzeichnisdienste liefern mit ihren Installationspaketen bereits eine Menge an Schemadateien mit. Nichtsdestotrotz besteht die Möglichkeit, bei Bedarf Schemata zu erweitern oder ein eigenes Schema zu entwickeln.

Sollen Veränderungen an der Definition einzelner Objektklassen vorgenommen werden, z. B. durch Erweiterung des zugehörigen Attributsatzes, so geschieht dies über eine Änderung bzw. Erweiterung des Schemas. Somit ist eine Schema Änderung gewissermaßen die sensibelste Operation überhaupt, welche an einem Verzeichnisbaum vorgenommen werden kann. Eine solche Änderung hat Auswirkungen auf den gesamten Baum, so dass die bisherige Konzeption des Baums neu überdacht werden muss. Die Administration des Verzeichnisdienst-Schemas verlangt daher eine hohe Kompetenz im Verzeichnisdienst sowie ein sehr hohes Sicherheitsbewusstsein.

Auch wenn die Daten eines Verzeichnisdienstes in einer Datenbank gespeichert sind, besitzen Verzeichnisse einige Eigenschaften, die sie von anderen, insbesondere relationalen Datenbanken (siehe B 5.7 Datenbanken ) unterscheiden:

  • Verzeichnisdienste sind in hierarchischer Art und Weise organisiert, in denen die Objekte mit ihren Attributen als Einträge abgelegt sind. Die Objekte eines Verzeichnisdienstes bilden die realen Objekte (z. B. Benutzer oder Rechner) eines Netzes nach. Die Beziehungen der Objekte untereinander werden durch die Baumstruktur ihrer Einträge widergespiegelt.
  • Verzeichnisdienste verwenden eine bestimmte genormte Struktur, die gegebenenfalls erweitert werden kann. Die Struktur wird durch das verwendete Schema definiert. Ein Schema definiert jeweils Objektklassen mit ihren verbindlichen oder optionalen Attributen. Diese Attribute können mehrwertig sein, also auch mehrere Werte annehmen.
  • Verzeichnisdienste bieten einen einfachen und schnellen Weg für einfach strukturierte suchende und lesende Anfragen. Um mit einem Verzeichnisdienst in Kontakt zu treten, werden Netzprotokolle verwendet. Die meisten Verzeichnisdienste unterstützen hierzu das Lightweight Directory Access Protocol (LDAP), genutzt werden häufig aber auch proprietäre Protokolle und Software-Schnittstellen.
  • Verzeichnisdienste stellen ein fein-granulares Sicherheitsmodell bereit. Zugriffsrechte können beispielsweise für einen Eintrag definiert werden und dann für alle darunter liegenden Einträge im Verzeichnisbaum übernommen werden.
  • Verzeichnisdienste sind zwar Datenbanken, unterstützen aber keine verteilten Transaktionen oder Rollback-Operationen (Zurücksetzen). Zugunsten einer höheren Verfügbarkeit in einer verteilten Umgebung können weder Objekte noch ihre Attribute für eine Änderung gesperrt werden. Zumindest zeitliche Inkonsistenzen zwischen Datenbank-Repliken werden dafür in Kauf genommen.

Gegenüber hierarchischen Datenbanken, wie sie typischerweise für Verzeichnisdienste Verwendung finden, bieten relationale Datenbanken u. a. folgende Merkmale:

  • Mit der Abfragesprache SQL sind komplexere Möglichkeiten von Operationen, wie z. B. "Aggregation" zur Zählung und "Join" zur Verknüpfung gegeben.
  • Die Daten liegen in einer Normalform vor, es gibt keine mehrwertigen Attribute.
  • Relationale Datenbanken sind für zusammengesetzte und konkurrierende Schreiboperationen aufgrund von Locking-Mechanismen und Transaktionen geeignet.

Verzeichnisdienste sind für kurze Verbindungen und einfache Abfragen beispielsweise zur Existenz von Ressourcen, Werten von Attributen oder Lesen von ganzen Objekten prädestiniert.

Aus dieser Gegenüberstellung folgt daher, dass Verzeichnisdienste beispielsweise nicht für eine Personalverwaltung eingesetzt werden sollten, auch wenn viele Attribute von Personen innerhalb einer Institution von dem Verzeichnisdienst zur Verfügung gestellt werden. Dazu gehören z. B. die Zuordnung von Benutzern zu Telefonnummer, E-Mail-Adresse, Abteilung, aber auch zu Login-Namen, Passwörtern oder Zertifikaten. Andere Eigenschaften wie Gehaltsstufe, Kontonummer, Urlaubstage oder Arbeitszeitvereinbarungen sind hingegen Daten der Personalverwaltung, die nicht Bestandteil eines Verzeichnisdienstes sein sollten.

Somit können einzelne, für den Verzeichnisdienst relevante Daten auch über andere relationale Datenbanken einer Institution, wie im obigen Beispiel die Datenbank für die Verwaltung der Personaldaten, gepflegt werden. Dadurch können Abhängigkeiten zwischen der Datenbank des Verzeichnisdienstes und anderer Datenbanken entstehen. Im Rahmen der Datensicherung und auch bei der Notfallvorsorge ist daher darauf zu achten, von welchen anderen Datenbanken der Verzeichnisdienst seine Einträge erhält.

Zugriffsrechte und Vererbung

Jedem einzelnen Objekt und jeder Objektklasse eines Verzeichnisdienstes können Zugriffsrechte auf die einzelnen Attribute des Objektes erteilt werden. Die explizite Zuweisung erfolgt dabei durch Eintragung von Rechteinhabern in die Access Control List ( ACL ). Mögliche Rechte reichen dabei von Supervisor, d. h. einem vollständigen Administrationsrecht, bis hin zum Browsen, was das Durchlaufen des entsprechenden Verzeichnisbaum-Abschnittes gestattet. Die Zugriffsrechte auf die Objekte vererben sich dabei standardmäßig in der Baumhierarchie von oben nach unten. Einfluss auf den Vererbungsprozess kann durch das Einführen von Filtern genommen werden, die auch die automatische Vererbungen explizit unterbinden können.

Effektive Rechte

Letztendlich kommen beim Verzeichnisdienst-Zugriff die effektiven Rechte eines Benutzers bzw. einer Benutzergruppe zum tragen. Die effektiven Rechte werden dabei dynamisch bei jedem einzelnen Zugriff berechnet und basieren auf den dem Benutzer bzw. der Benutzergruppe zugewiesenen Rechten.

Authentisierung

Die Benutzer greifen über geeignete Client-Software auf den Verzeichnisdienst zu. Der Zugriff der Clients auf den Verzeichnisdienst erfolgt dabei über proprietäre Protokolle, dabei wird der private Schlüssel des sich anmeldenden Benutzers vom Verzeichnisdienst verschlüsselt an den Client geschickt. In den Verschlüsselungsvorgang wird das Benutzerpasswort einbezogen. Gibt der Benutzer sein Passwort ein, kann der Client den privaten Schlüssel entschlüsseln. Zwischen dem Client und dem Verzeichnisdienst-Server findet ein so genanntes Challenge-Response-Verfahren zur Authentisierung statt. Nach erfolgreicher Authentisierung besitzt der Benutzer die für ihn definierten Zugriffsrechte auf den Verzeichnisdienst.

LDAP-Zugriff

Netzapplikationen und Internet-Benutzer greifen in der Regel über das LDAP-Protokoll (Lightweight Directory Access Protocol) auf den Verzeichnisdienst zu. Hierbei gibt es verschiedene Anbindungsarten, wie beispielsweise den "anonymous bind" oder den "proxy user anonymous bind". In der Voreinstellung hat der anonyme Login dabei die Rechte des anonymen Benutzers. Standardmäßig besitzt dieser uneingeschränkte Lese-Rechte auf den gesamten Verzeichnisbaum. Eine Authentisierung ist für die anonyme Anmeldung nicht erforderlich, dies sollte bei weiteren Sicherheitsbetrachtungen berücksichtigt werden.

Die Passwort-Authentisierung kann so konfiguriert werden, dass das Passwort entweder im Klartext übertragen werden darf oder nicht. Passwörter sollten nie im Klartext übertragen werden. Für eine gesicherte Anbindung mittels Lightweight Directory Access Protocol steht das Secure Sockets Layer Protokoll (SSL-Protokoll) wahlweise mit ein- oder zweiseitiger Authentisierung zur Verfügung.

Zertifikatsserver

Ein Zertifikatsserver spielt eine wichtige Rolle für die Rechtevergabe und damit für die Systemsicherheit. Ebenso hängen die Authentisierungen im Netz sowie der Aufbau eines verschlüsselten Kanals (via Secure Sockets Layer, SSL) vom Zertifikatsmanagement ab. Daher erfordert der Zertifikatsserver eine besonders sorgfältige Administration.

Partitionierung

Zur Verbesserung der Skalierbarkeit und Leistungsfähigkeit des Verzeichnisdienstes empfiehlt sich eine Partitionierung der Verzeichnisdatenbank auf mehrere Server. Für die Partitionierung sind eine Reihe von Regeln zu beachten, wie beispielsweise bereits innerhalb M 2.409 Planung der Partitionierung und Replikation im Verzeichnisdienst beschrieben.

Replikation

Verzeichnisdienste unterstützen verschiedene Arten von Replikationen zur Erhöhung der Fehlertoleranz und des Systemdurchsatzes. Aspekte der Replikation sind auch in M 2.409 Planung der Partitionierung und Replikation im Verzeichnisdienst beschrieben.

Stand: 10. EL Stand 2008