Single-Sign-on mit Kerberos und LDAP

27.01.2006
Von Joachim Keltsch
Mit dem Authentifizierungs- und dem Verzeichnisdienst lässt sich ein heterogenes Netzwerk aus Windows- und Unix-Clients einheitlich verwalten - jedenfalls im Prinzip. Die Bedienung ist komfortabel.
Kerberos wurde vor rund 20 Jahren entwickelt, um Benutzer in einem Computernetz sicher zu identifizieren.
Kerberos wurde vor rund 20 Jahren entwickelt, um Benutzer in einem Computernetz sicher zu identifizieren.

Mitunter wandert Innovation auf verschlungenen Pfaden. Ein fast schon kurioses Beispiel ist die Geschichte des Authentifizierungsdienstes Kerberos. Der wurde vor rund 20 Jahren am Massachusetts Institute of Technology (MIT) entwickelt, um Benutzer in einem Netzwerk sicher zu identifizieren. Als Pionierstätte für freie Software stellte das MIT den für Unix geschriebenen Quellcode kostenlos zur Verfügung. So wurde Kerberos weltweit zum beliebten Hilfsmittel an Informatikfakultäten und anderen Stätten, an denen sich Experimentierfreude mit chronisch knappen Kassen paart.

Kerberos im Detail: Zehn Schritte zur Identität im Netz

Will sich ein Benutzer in einem mittels Kerberos verwalteten System beispielsweise am Mail-Server anmelden, sind drei verschiedene Rechner beteiligt: Neben dem Arbeitsplatzrechner (Client) des Benutzers sowie dem Mail-Server selbst spielt das Key Distribution Center (KDC) dabei eine zentrale Rolle.

Beim KDC handelt es sich um einen besonders abgesicherten Computer innerhalb des Netzwerks, der nicht nur über sämtliche Benutzerpasswörter verfügt, sondern auch für jeden Netzwerkdienst auf jedem Server ein eigenes Passwort verwaltet.

Erste Bekanntschaft mit Kerberos

Will der Anwender sich am Mail-System anmelden, teilt sein Client-PC dem KDC mit, dass ein bestimmter Benutzer sich authentifizieren möchte.

Das KDC schickt einen kryptografischen Schlüssel, Session Key 1, zurück an den Client. Genauer: Er schickt zwei Kopien dieses Schlüssels, die selbst wiederum verschlüsselt sind, die eine mit dem Passwort des Benutzers, die andere mit einem Passwort, das nur das KDC kennt.

Der Benutzer tippt auf dem Client-Rechner sein Passwort ein und kommt so in den Besitz von Session Key 1. Die zweite Kopie des Keys, das so genannte Ticket Granting Ticket (TGT), speichert er zur weiteren Verwendung.

Anmeldung an einem Netzwerkdienst

Der Client schickt das TGT zurück an das KDC und teilt mit, dass der Benutzer seine Post am Mail-Server abrufen möchte.

Das KDC entschlüsselt das TGT mit Hilfe seines Server-Passworts und erhält so den Session Key 1 des Benutzers zurück.

Das KDC erzeugt einen neuen Session Key 2, speziell zum Abrufen der Post am Mail-Server. Wieder wird der Key in zwei Kopien verschickt. Die eine Kopie verschlüsselt er mit einem Passwort, das außer ihm nur der Mail-Server kennt. Für die andere verwendet er den ursprünglichen Session Key 1 aus dem TGT. Das komplette Paket mit den beiden Kopien wird auch Ticket genannt.

Der Client entschlüsselt mit Hilfe des ursprünglichen Session Key 1 den neuen Session Key 2 für den Mail-Server.

Der Client schickt die verschlüsselte zweite Kopie des Session Key 2 an den Mail-Server, um die Post des Benutzers abzurufen.

Der Mail-Server entschlüsselt den Session Key 2 mit Hilfe seines Server- Passworts.

Der Mail-Server verschlüsselt die weitere Kommunikation mit Session Key 2 und stellt so sicher, dass nur der passende Benutzer auf dem Client-Rechner sie entschlüsseln kann.

Der Clou: Will sich der Benutzer für einen weiteren Netzwerkdienst anmelden, etwa an einem Web-Portal oder per ssh an einem anderen Computer, müssen lediglich die Schritte 4 bis 10 entsprechend wiederholt werden. Sie laufen völlig automatisch ab, ohne dass der Benutzer erneut sein Passwort eingeben muss - jedenfalls so lange, bis der Benutzer sich ausloggt oder das TGT seine Gültigkeit verliert.

Hier lesen Sie …

• wie Kerberos und LDAP entstanden sind und ihren Weg in die IT-Umgebungen fanden;

• was das Duo von anderen Verfahren wie Active Directory und NIS unterscheidet;

• welche Vorteile Single-Sign-on mit Kerberos und LDAP bringt;

• wie das Verfahren technisch funktioniert.

Von NIS nach LDAP

Zum Importieren von NIS-Informationen (NIS = Network Information Services) in einen LDAP-Server bietet sich "Migration Tools" von der bereits erwähnten Firma Padl Software an, wobei dieses Produkt im Gegensatz zu XAD vom selben Hersteller ein Open-Source-Programm ist. Das Projekt "Ldaputils" auf Sourceforge.net verspricht ähnliches, wird jedoch seit vier Jahren nicht mehr gepflegt. Der Autor dieses Beitrags konnte mit Migration Tools Nutzerdaten problemlos übernehmen. Allerdings sind in LDAP sämtliche Daten mit detaillierten Attributen versehen, die unter NIS schlicht nicht vorhanden sind. Deshalb müssen Migrationsskripte prinzipiell manche Informationen erraten. Das Resultat funktioniert zwar, entspricht aber nicht immer dem Wunsch des Administrators. Die Feinabstimmung muss daher häufig im Anschluss noch von Hand erledigt werden.

Mehr zum Thema

www.computerwoche.de/go/

571245: Den richtigen Linux-Dienstleister finden;

571402: Testversion von Samba 4;

571175: Fehler in KDE;

571039: Linux virtualisieren;

571133: Bank spart mit Linux.

Die kommerzielle Unix-Welt hingegen reagierte mit Desinteresse. Jahre später erkannte paradoxerweise Microsoft das große Potenzial des Open-Source-Projekts. Seit Windows 2000 integriert es Kerberos als Kern von Active Directory in seine Produkte und freut sich seither über ein Authentifizierungssystem, das Sicherheit mit Bedienkomfort vereint - und amüsiert sich insgeheim sicher auch über die Unix-Konkurrenz, die man mit ihrer eigenen Technik überholt hat. Immerhin: Seit etwa einem Jahr scheint auch die Unix-Seite aufgewacht zu sein und richtete mehr und mehr Kerberos ein.

Heterogene Netzwerkstrukturen mit Administrationsinseln

Besonders hoch ist der Migrationsdruck in Unternehmen, die sowohl über Windows- als auch Unix-Netzwerke verfügen und diese bislang getrennt verwalten. Die Automobilbranche mit dem meist Windows-dominierten Bürobereich und dem traditionell Unix-lastigen Engineering ist ein Paradebeispiel heterogener Netzwerkstruktur. Die Windows-Rechner werden in der Regel bereits über Active Directory administriert, auf Unix-Seite kommt überwiegend das althergebrachte NIS zum Einsatz.

In dieser Situation fällt die Entscheidung zum Umstieg nicht schwer, denn Active Directory fußt neben Kerberos auf dem Verzeichnisdienst LDAP. Das ist ebenfalls ein offener Standard, für den seit Jahren ausgereifte Unix-Implementierungen zur Verfügung stehen. Mit Kerberos und LDAP lässt sich ein heterogenes Netzwerk aus Windows- und Unix-Clients somit einheitlich verwalten - jedenfalls im Prinzip, denn Microsoft hat sich nicht damit begnügt, den beiden eher sperrigen Technologien eine komfortable Benutzeroberfläche überzustreifen.

Die Ingenieure aus Redmond haben den Protokollen noch ein paar hauseigene Erweiterungen hinzugefügt, die dafür sorgen, dass ein Active-Directory-Server zwar auch Unix-Clients verwalten kann, ein Kerberos-Server unter Unix sich an Windows-Clients ohne Zusatzsoftware aber die Zähne ausbeißt. Somit ist klar, welches System im Netzwerk den Ton angibt.

Windows-Clients via Linux verwalten

Zu den Anbietern von Zusatzwerkzeugen zählt Padl Software mit "XAD" an, das nach Herstellerangabe auch aktuelle Windows-Clients von Linux aus verwalten kann. Der Linux-Server verwendet dazu Kerberos, LDAP und Samba, allerdings mit PADL-eigenen Erweiterungen, die nicht oder nur teilweise als Open-Source verfügbar sind. XP-Clients lassen sich offenbar direkt einbinden, ohne das auf Windows-Seite noch zusätzliche Software nötig wäre.

Dabei gibt es neben diesen strategischen Überlegungen auch handfeste technische Gründe für den Umstieg. In seltenem Einklang vereint das Duo aus LDAP und Kerberos mehr Sicherheit mit mehr Komfort. Während LDAP meist im Verborgenen wirkt, sind die Vorteile durch Kerberos für jeden Benutzer unmittelbar spürbar: Egal ob am Mail-Server, bei Web-Anwendungen oder beim Shell-Zugriff auf andere Rechner, immer wieder wird der Benutzer aufgefordert, seine Identität nachzuweisen. Üblicherweise tut er dies mittels Passworteingabe.

Anders in einem mit Kerberos verwalteten Netzwerk. Hier meldet sich der Nutzer nur einmal zu Beginn an seinem Arbeitsplatzrechner mit seinem Passwort an. Danach stellt der Kerberos-Server ihm sozusagen ein elektronisches Visum aus, mit dem er sich allen anderen Netzwerkdiensten gegenüber ausweisen kann. Vollautomatisch, ohne weitere Eingaben, bis er die Sitzung beendet oder die Gültigkeitsdauer des Visums abgelaufen ist. Dieses Single-Sign-on genannte Prinzip wird umso bedeutsamer, je mehr Dienste über das Netzwerk auf unterschiedliche Server ausgelagert sind.

Mindeststandards für Passwortvergabe

Gleichzeitig erhöht Kerberos die Sicherheit im Netzwerk, und zwar nicht nur deshalb, weil durch das Protokoll automatisch kryptografische Schlüssel ausgetauscht werden, mit denen sich der Datenverkehr zwischen Server und Client vor Lauschangriffen schützen lässt. Die Vorzüge liegen auch in der menschlichen Natur: Wer sein Passwort nur noch einmal pro Tag eintippen muss, wird eher bereit sein, ein längeres und sichereres Passwort zu verwenden. Die Kerberos-Implementierungen sorgen mit technischen Mitteln dafür, dass bestimmte Mindeststandards bei der Passwortvergabe eingehalten werden. Und wer sich nicht mehr ein Dutzend verschiedener Passwörter vom Mail-Server bis zum Web-Portal merken muss, der muss diese Passwörter auch nicht mehr auf kleinen, gelben Zetteln notieren und an den Monitor kleben.

Damit leistet Kerberos bereits einen großen Beitrag zu mehr Sicherheit im Netzwerk. Kerberos alleine reicht jedoch noch nicht aus, denn zur Benutzerverwaltung in einem vernetzten System gehört mehr als nur das Überprüfen der Identität. Jeder Nutzer-Account besitzt eine Vielzahl an Zusatzinformationen, die bei Bedarf jedem Rechner zur Verfügung stehen müssen. Das können relativ unkritische Daten sein wie Name und Büronummer eines Nutzers, aber auch sensiblere Informationen, etwa welche Dienste oder Rechner er verwenden darf oder auf welchen File-Server seine persönlichen Daten geschrieben werden sollen.

Selbst die Nutzer-ID, anhand derer fast alle Unix-Dateisysteme ihre Zugriffsrechte festlegen, wird nicht von Kerberos verwaltet, sondern muss über einen separaten Verzeichnisdienst zur Verfügung gestellt werden. Die traditionelle Unix-Antwort auf dieses Problem heißt Network Information Service (NIS) - ein einst bei Sun als "Yellow Pages" (YP) entwickelter Dienst, der sich seit Jahrzehnten bewährt hat und deshalb auch heute noch weit verbreitet ist.

LDAP bietet weit mehr als das betagte NIS

Doch im Leistungsvergleich mit der moderneren Alternative Lightweight Directory Access Protocol (LDAP) sieht NIS blass aus: LDAP erlaubt es, den Datentransfer zwischen den Rechnern zu verschlüsseln und für jeden Eintrag detaillierte Zugriffsrechte zu setzen. Außerdem ist jeder Eintrag eines Datensatzes mit einem Namen und Typ versehen. Das erleichtert automatische Abfragen aus Programmen heraus, selbst wenn ein Datensatz später um zusätzliche Einträge erweitert wird.

NIS stellt im Vergleich dazu keine Hilfen parat. Aufteilen und Interpretieren eines Datensatzes sind allein Sache des Programms, das die Anfrage stellt. Bereits vor der Integration in Active Directory war LDAP deshalb in Unternehmensnetzen längst kein Unbekannter mehr. Zumal inzwischen Hilfsprogramme existieren, mit denen sich bestehende Daten automatisch von NIS nach LDAP transferieren lassen (siehe Kasten "Von NIS nach LDAP"). Die Endbenutzer im Netzwerk spüren während solch einer Umstellung normalerweise keine Einschränkungen.

Im Gegensatz dazu klappt der Umstieg auf Kerberos nur mit aktiver Hilfe der Benutzer. Denn alle üblichen Authentifizierungssysteme speichern nur eine Prüfsumme jedes Passwortes, aus der es sich selbst nicht eindeutig rekonstruieren lässt. Damit Kerberos seine eigenen Prüfsummen berechnen kann, benötigt es aber während der Umstellung einmalig sämtliche Benutzerpasswörter im Klartext.

Egal ob nun die Benutzer vom Administrator neue Passwörter zugewiesen bekommen, um das Problem zu umgehen, oder ob sie während einer Übergangsphase ihr Passwort auf dem Kerberos-Server selbst setzen dürfen: Das Migrieren der Passwörter ist in jedem Fall das größte logistische Problem beim Umstieg auf Kerberos und bedarf sorgfältiger Planung.

Ein zweites Problem bereitet vor allem den Systemadministratoren Arbeit: Damit das Konzept des Single-Sign-on funktioniert, muss jede Applikation, die an einer Nutzer-Authentifizierung beteiligt ist, explizit das Kerberos-System unterstützen, und zwar sowohl auf Client- als auch auf Server-Seite. Bei vielen Programmen ist das nicht Standard, manche unterstützen es momentan überhaupt noch nicht.

Hier hilft der hohe Verbreitungsgrad von Active Directory, in dessen Sog immer mehr Applikationen "kerberisiert" werden. Die gebräuchlichsten Server-Programme sind längst darunter, immer mehr Client-Software zieht nach. Und bei der mitunter aufwändigen Planung und Konfigurationsarbeit für Kerberos hilft zur Not externer IT-Support von umstiegserfahrenen Profis. (ls)