Mehr Sicherheit und Tempo

Das Kerberos-Konzept

Das grundsätzliche Verfahren für die Authentifizierung ändert sich mit Kerberos nicht, weder bei der Authentifizierung über das Netzwerk noch beim Anmelden an lokalen Systemen. Die LSA-Komponente (LSA = Local Security Authority) von Windows 2000 steuert alle Authentifizierungsvorgänge. Dabei kann sie verschiedene Mechanismen verwenden, darunter Kerberos und NTLM.

Mit dem Konzept von "Vertrauensstellungen" oder "Trusts" geht Kerberos von Haus aus einen ähnlichen Weg wie Windows 2000 und Windows NT. So bauen Domänen Vertrauensbeziehungen zu "Trusted Domains" auf. Dabei "glaubt" eine Domäne der anderen, dass sie sich in korrekter Weise authentifiziert hat und stellt dieser ihre Ressourcen zur Verfügung.

Kerberos verlangt bei jedem Server-Zugriff eine Authentifizierung. Zunächst meldet sich der Benutzer im Netz an. Dazu benötigt er einen Benutzernamen und ein Kennwort, das auf seinem Rechner bleibt. Es dient allein der Verschlüsselung von Informationen. Wie der Benutzer hat auch jeder Dienst ein Kennwort, das ein "Kerberos Authentication Server" (KAS) verwaltet.

Das zentrale Element von Kerberos ist der "Key Distribution Service" (KDS). Dieser Dienst besteht aus drei Elementen.

- Der KAS ist für die Authentifizierung von Benutzern zuständig. Er hat Zugriff auf die Datenbank von Benutzerinformationen und ist ein Element der "Local Security Authority".

- Der Kerberos "Ticket Granting Server" (TGS) stellt Tickets für Benutzer aus, die auf einen Dienst zugreifen dürfen.

- Die Kerberos-Datenbank, ein Teil des Active Directory, enthält die Kennwörter.

Der Vorteil dieser Integration liegt darin, dass die Authentifizierungsinformationen repliziert werden und jeder Domänen-Controller die Rolle des KDS übernehmen kann.

Bei der Authentifizierung in Windows 2000 wird zunächst der Benutzername über die Komponente "Graphical Interactive Network Authentication" (GINA) erfragt und an den KAS gesendet. Dieser stellt einen "Fahrschein" aus, der die Authentifizierung bestätigt und den Zugriff auf andere Dienste erlaubt. Dieses "Ticket-Granting Ticket" (TGT)wird unter anderem mit dem Kennwort des Benutzers verschlüsselt und mit einer Zufallszahl, dem TGS-"Session Key", kombiniert. Es ist typischerweise für einen Zeitraum von acht bis zehn Stunden gültig und muss nach dieser Zeit neu angefordert werden.

Der Zeitraum ist so gewählt, dass mit heute existierenden Verfahren keine Decodierung des verschlüsselten Tickets erfolgen kann. Mit dem TGT kann der Benutzer so genannte Session-Tickets erhalten, die den Zugriff auf Serverdienste erlauben. Auch diese Session-Tickets haben eine begrenzte Lebensdauer und sind mit dem Kennwort des Dienstes verschlüsselt. Sie stehen daher nur jeweils einem System zur Verfügung, weil sie nur dessen Kennwort kennen.

Trotz hoher Komplexität und Sicherheit ist Kerberos ein sehr effizientes Verfahren. Es müssen in keinem Fall mehr als zwei Nachrichten ausgetauscht werden. Für weitere Zugriffe sind keine Authentifizierungen am KAS erforderlich, solange die Benutzer- und Session-"Fahrscheine" Gültigkeit besitzen. Damit sinkt die Anzahl der Authentifizierungsvorgänge im Vergleich zu NTLM deutlich. Zum anderen kann auch eine Weiterleitung der Authentifizierung erfolgen, sodass ein Server sich beim nächsten Server im Auftrag eines aktuellen Benutzers authentifizieren kann, indem er ein entsprechendes Session-Ticket beim KAS anfordert. Das ist dann wichtig, wenn sich ein Benutzer bei einem Web-Server, dieser wiederum bei einem "Web Application Server" und dieser schließlich bei einem Datenbankserver authentifizieren muss. Die sichere Implementierung solcher Prozesse wird durch Kerberos deutlich einfacher.

Das System hat auch Schwächen. Jeder Domänen-Controller fungiert als KAS und muss an einem geschützten Ort stehen. Im Vergleich zu früheren Windows-NT-Tagen ist das Risiko allerdings geringer geworden, da die Kerberos-Daten stark verschlüsselt sind.

Die Konfiguration von Kerberos erfolgt über die Gruppenrichtlinie der Domäne. In der "Default Domain Policy" stehen die Festlegungen, die standardmäßig nur von Mitgliedern der Gruppe "Domänen-Admins" bearbeitet werden. Die Festlegungen werden pro Domäne getroffen.

Hier lassen sich insgesamt fünf Parameter konfigurieren. Zum einen bestimmt die Option "Benutzeranmeldebeschränkungen erzwingen", dass der KDC bei der Anforderung der Session-Tickets überprüft, ob ein Benutzer auf das Zielsystem entsprechend der definierten lokalen Sicherheitsrichtlinien zugreifen darf. Diese Option verursacht eine hohe Netzlast und ist standardmäßig deaktiviert.

Über den Parameter "maximale Gültigkeitsdauer des Benutzertickets" wird die Lebensdauer des TGT festgelegt. Der Standardwert von zehn Stunden lässt sich modifizieren, was aber meist nicht nötig ist. Der Parameter "maximale Gültigkeitsdauer des Diensttickets" regelt die Gültigkeitsdauer der Diensttickets. Der Standardwert beträgt auch hier zehn Stunden. Der Wert "maximale Toleranz für die Synchronisation des Computertakts" beträgt fünf Minuten. Er bestimmt, wie weit die Uhren von Client und Server maximal voneinander abweichen dürfen und ist wichtig, weil Windows 2000 mit Zeitsynchronisationsmechanismen arbeitet. Der letzte Parameter "maximaler Zeitraum, in dem ein Benutzerticket erneuert werden kann" definiert, bis wann - also ohne zwischenzeitliche Abmeldung - das TGT erneuert werden kann. Der Standardwert gibt sieben Tage vor. Innerhalb dieses Zeitraums wird der Schlüssel regelmäßig verändert.

Im Register "Konto" der Benutzerkontenführung lassen sich weitere Werte einstellen. So besagt die Einstellung "Konto kann nicht delegiert werden", dass sich für dieses Konto keine Session-Tickets bei anderen Serverprozessen anfordern lassen. Manchmal ist es sinnvoll, diese Option für wichtige Systemkonten zu aktivieren und die Delegation nur in Verbindung mit normalen Benutzerkonten zuzulassen. Einem Angreifer ist es dann nicht mehr möglich, von einem Systemkonto aus auf Dienste im Netzwerk zuzugreifen.

Die Option "Konto wird für Delegierungszwecke vertraut" erlaubt, dass im Kontext des Benutzerkontos Dienste ausgeführt werden. Sie eignen sich nicht für normale Benutzer. Falls auf einem Computer Dienste im Kontext des lokalen Dienstkontos ausgeführt werden und diese mit der Impersonisation (Verwendung eines anderen als des eigenen Namens) arbeiten, muss bei den Eigenschaften des Computers im Register "Allgemein" die Option "Computer für Delegierungszwecke vertrauen" ausgewählt werden.

Schließlich legt eine Option für "Präauthentifizierung" noch fest, ob eine solche verlangt wird. Das kann für die Interoperabilität mit anderen Kerberos-Implementierungen erforderlich sein. Da es sich dabei aber um einen wichtigen Sicherheitsmechanismus handelt, sollte man ihn nur in Sonderfällen deaktivieren.

Kerberos ist ein Mechanismus, der ein hohes Maß an Sicherheit bietet und sich gleichzeitig optimal in die Windows-2000-Infrastruktur einbindet. Allerdings kommt Kerberos nur zum Einsatz, wenn Windows-2000-Systeme miteinander kommunizieren. Grundsätzlich ist auch eine Integration mit anderen Kerberos-Implementierungen möglich. Nur gibt es hier noch eine Reihe von Detailproblemen. Sobald mit Windows-NT, -9x oder anderen Downlevel-Clients gearbeitet wird, kommt auch bei Windows 2000 weiterhin NTLM zum Einsatz. (rim)

Zur Person

Martin Kuppinger

ist Geschäftsführer bei Kuppinger Redaktionsbüro.