38.2. Funktionsweise von Kerberos

Kerberos wird meist als vertrauenswürdiger Authentifizierungsdienst eines Drittanbieters bezeichnet. Das bedeutet, alle Clients vertrauen Kerberos' Beurteilung der Identität eines anderen Clients. Kerberos verwaltet eine Datenbank aller Benutzer mit deren privaten Schlüsseln.

Wenn Sie die absolute Sicherheit von Kerberos garantieren möchten, sollten Sie sowohl den Authentifizierungs- sowie den Tickets ausstellenden Server auf einer dedizierten Maschine ausführen. Stellen Sie sicher, dass nur der Administrator direkt auf diese Maschine und über das Netzwerk zugreifen kann. Reduzieren Sie die darauf ausgeführten (Netzwerk-)Dienste auf das absolute Minimum. Führen Sie auch nicht sshd aus.

38.2.1. Erster Kontakt

Ihr erster Kontakt mit Kerberos ähnelt einem beliebigen Anmeldevorgang bei einem normalen Netzwerksystem. Geben Sie Ihren Benutzernamen ein. Diese Informationen und der Name des Dienstes, welcher das Ticket ausstellt, werden an den Authentifizierungsserver (Kerberos) gesendet. Wenn Sie dem Authentifizierungsserver bekannt sind, wird ein zufälliger Sitzungsschlüssel zur Verwendung zwischen Ihrem Client und dem Ticket ausstellenden Server generiert. Jetzt bereitet der Authentifizierungsserver ein Ticket für den Ticket ausstellenden Server vor. Das Ticket enthält die folgenden Informationen, die alle mit einem Sitzungsschlüssel verschlüsselt sind, der nur dem Authentifizierungsserver und dem Server bekannt ist, welcher das Ticket ausstellt:

  • Die Namen des Clients und des Ticket ausstellenden Servers

  • Die aktuelle Zeit

  • Eine Lebensdauer für dieses Ticket

  • Die Client-IP-Adresse

  • Der neu generierte Sitzungsschlüssel

Dieses Ticket wird dann gemeinsam mit dem Sitzungsschlüssel zurück an den Client gesendet. Das geschieht wieder in verschlüsselter Form. Dieses Mal wird jedoch der private Schlüssel des Clients verwendet. Dieser private Schlüssel ist nur Kerberos und dem Client bekannt, da er vom Benutzerpasswort abgeleitet wird. Jetzt hat der Client eine Antwort erhalten und Sie werden zur Eingabe Ihres Passworts aufgefordert. Das Passwort wird in den Schlüssel umgewandelt, der das vom Authentifizierungsserver gesendete Paket entschlüsselt. Das Paket wird „ausgepackt“ und das Passwort und der Schlüssel werden aus dem Speicher der Arbeitsstation gelöscht. Solange die Lebensdauer Ihres Tickets, das zum Erstellen anderer Tickets verwendet wird, nicht erlöscht, kann Ihre Arbeitsstation Ihre Identität nachweisen.

38.2.2. Anfordern eines Diensts

Zum Anfordern eines Diensts von einem beliebigen Netzwerkserver, muss die Client-Anwendung dem Server ihre Identität beweisen. Daher generiert die Anwendung einen Authentifikator. Ein Authentifikator besteht aus folgenden Komponenten:

  • Der Prinzipal des Client

  • Die Client-IP-Adresse

  • Die aktuelle Zeit

  • Eine Prüfsumme (gewählt vom Client)

Alle diese Informationen werden mithilfe des Sitzungsschlüssels, den der Client bereits für diesen bestimmten Server erhalten hat, verschlüsselt. Der Authentifikator und das Ticket für den Server werden an den Server gesendet. Der Server verwendet seine Kopie des Sitzungsschlüssels zum Entschlüsseln des Authentifikators. So erhält der Server alle erforderlichen Informationen zur Anforderung des Clients und kann sie mit denen im Ticket vergleichen. Der Server prüft, ob das Ticket und der Authentifikator vom selben Client stammen.

Ohne serverseitige Sicherheitsmaßnahmen wäre dieser Prozessabschnitt ein ideales Ziel für Replay-Angriffe. Jemand könnte versuchen, eine vorher aus dem Netzwerk gestohlene Anforderung erneut zu versenden. Um das zu verhindern, akzeptiert der Server keine Anforderungen mit einem Zeitstempel und Ticket, die bereits vorher empfangen wurden. Außerdem wird eine Anforderung mit einem sehr unterschiedlichen Zeitstempel zur empfangenen Anforderung ignoriert.

38.2.3. Beiderseitige Authentifizierung

Die Kerberos-Authentifizierung kann in beide Richtungen verwendet werden. Es geht nicht nur um die korrekte Identität des Client. Der Server sollte sich außerdem selbst beim Client identifizieren, der seinen Dienst anfordert. Daher sendet er ebenfalls eine Art Authentifikator. Er fügt einen Authentifikator zur Prüfsumme des Client-Authentifikators hinzu und verschlüsselt ihn mit dem Sitzungsschlüssel, der gemeinsam von Server und Client verwendet wird. Der Client nimmt diese Antwort als Beweis für die Serverauthentizität und beide beginnen die Zusammenarbeit.

38.2.4. Ticket-Ausstellung: Alle Server werden kontaktiert

Tickets können jeweils nur von einem Server verwendet werden. Das bedeutet, Sie benötigen für jede Anforderung eines weiteren Diensts ein neues Ticket. Kerberos verwendet einen Mechanismus, um Tickets für einzelne Server zu erhalten. Dieser Dienst wird als „Ticket-Granting Service“ (Ticket-Ausstellung) bezeichnet. Der Ticket ausstellende Dienst gehört zu den zuvor erwähnten Diensten. Daher verwendet er dieselben Zugriffsprotokolle, die bereits erläutert wurden. Jedes Mal, wenn eine Anwendung ein Ticket benötigt, das noch nicht angefordert wurde, wird ein Kontakt mit dem Ticket ausstellenden Server hergestellt. Die Anforderung besteht aus folgenden Komponenten:

  • Der angeforderte Prinzipal

  • Das Ticket ausstellende Ticket

  • Ein Authentifikator

Wie jeder andere Server überprüft der Ticket ausstellende Server jetzt das Ticket ausstellende Ticket und den Authentifikator. Wenn diese gültig sind, erstellt der Ticket ausstellende Server einen neuen Sitzungsschlüssel zur Verwendung durch den ursprünglichen Client und den neuen Server. Darauf wird das Ticket für den neuen Server erstellt. Es enthält folgende Informationen:

  • Der Prinzipal des Client

  • Der Prinzipal des Servers

  • Die aktuelle Zeit

  • Die Client-IP-Adresse

  • Der neu generierte Sitzungsschlüssel

Das neue Ticket erhält eine Lebensdauer, die geringer ist als die restliche Lebensdauer des Ticket ausstellenden Tickets und des Standards für den Dienst. Der Client erhält dieses Ticket und den Sitzungsschlüssel, die durch den Ticket ausstellenden Dienst versendet werden. Aber dieses Mal ist die Antwort mit dem Sitzungsschlüssel verschlüsselt, der zum ursprünglichen Ticket ausstellenden Ticket gehört. Der Client kann die Antwort ohne ein Benutzerpasswort entschlüsseln, wenn ein neuer Dienst kontaktiert wird. So kann Kerberos Ticket um Ticket für den Client erwerben, ohne dass der Benutzer mehr als einmal bei der Anmeldung belästigt wird.

38.2.5. Kompatibilität mit Windows 2000

Windows 2000 enthält eine Microsoft-Implementierung von Kerberos 5. Da openSUSE® die MIT-Implementierung von Kerberos 5 verwendet, finden Sie in der MIT-Dokumentation nützliche Informationen und Hilfestellungen. Weitere Informationen hierzu finden Sie unter Abschnitt 38.4, „Weiterführende Informationen“.