Die Funktionsweise von Kerberos

Kerberos ist nicht ganz leicht zu verstehen, weil es in einigen Bereichen anders arbeitet als die vertrauten Verfahren. Insbesondere das Konzept der Tickets ist zunächst gewöhnungsbedürftig, aber durchaus logisch und in der Nutzung gleichermaßen effizient wie sicher. Der Artikel stellt die grundlegende Funktionsweise des Protokolls dar.

Kerberos ist ein Protokoll für die Authentifizierung, also die Überprüfung, ob ein Benutzer oder ein System dem entspricht, was er oder es zu sein vorgibt. Als solcher wird, wie schon im ersten Artikel des Schwerpunkts kurz angerissen, mit mehreren Komponenten gearbeitet, wobei die wichtigsten als KDC(Key Distribution Center) zusammengefasst sind. Genau genommen sind es allerdings drei Dienste:

  • Der AS Exchange ist der Authentication Service, also die Komponente, die die Authentifizierung übernimmt und so genannte Ticket Granting Tickets (TGT) ausstellt. Diese Tickets bezeugen, dass sich ein Benutzer erfolgreich authentifiziert hat.

  • Der TGS Exchange ist der Ticket Granting Service, der Tickets für den Zugriff auf Dienste ausstellt. Dazu benötigt ein Benutzer zunächst ein TGT als Nachweis der erfolgreichen Authentifizierung.

  • Der Client/Server Exchange ist die Komponente bei einem Netzwerkdienst mit Kerberos-Unterstützung, über die ein Service Ticket verarbeitet wird.

Die Arbeitsweise ist in Bild 1 dargestellt. Hier werden die verschiedenen aufeinander folgenden Schritte deutlich. Wichtig sind dabei mehrere Punkte:

  • Der Authentication Service und der Ticket Granting Service können prinzipiell auf verschiedenen Systemen liegen, werden aber in der Praxis zusammengefasst.

  • Ein TGT, das vom Authentication Service ausgestellt wird, ist standardmäßig mehrere Stunden gültig und kann damit ohne erneute Authentifizierung für die Anforderung verschiedener Service Tickets verwendet werden. Dabei erfolgt auch keine Authentifizierung im Hintergrund mit gespeicherten Credentials.

  • Ein Service Ticket ist ebenfalls mehrere Stunden gültig, so dass nicht für jeden Zugriff auf einen Dienst im Netzwerk eine erneute Authentifizierung erfolgen muss.

Dieses Modell ist im Grundsatz sehr einfach. Wenn man es sich genauer betrachtet, werden einige interessante Details sichtbar. So fließt beispielsweise grundsätzlich kein Kennwort über das Netzwerk. Vielmehr werden immer Informationen ausgetauscht, die mit dem Kennwort und zusätzlichen bekannten oder mit über das Netzwerk gesendeten Informationen verschlüsselt sind, so dass sie auch nur bei Kenntnis des Kennworts bei einem Client oder bei einem Netzwerkdienst entschlüsselt werden können. Das ist ein Grund für die Sicherheit von Kerberos – um Kerberos aus administrativer Sicht oder für die Anwendungsentwicklung zu verstehen, muss man sich damit allerdings nicht weiter beschäftigen.

Delegation

Diese Fähigkeiten alleine reichen nun aber nur für den Zugriff auf einen Netzwerkdienst und die einmalige Authentifizierung gegenüber verschiedenen Anwendungen mit Kerberos-Unterstützung, aber nicht für das im ersten Artikel des Hefts beschriebene Ziel der End-to-End-Security. Hier sind noch weitere Funktionen der Delegation erforderlich. Die Herausforderung dabei ist die korrekte Administration, da Systemen explizit das Vertrauen für die Delegation gegeben werden muss.

Bild 1: Die Funktionsweise von Kerberos.
Bild 1: Die Funktionsweise von Kerberos.

Weitere Informationen

Darstellungen zu Kerberos mit unterschiedlichem technischen Detaillierungsgrad finden sich unter anderem hier:

  • www.microsoft.com&msj/0899/kerberos/ kerberos.aspx:
    Ein Artikel im Microsoft Journal, der Kerberos schon etwas technischer erläutert.

  • http://support.microsoft.com/default.aspx?scid=kb;en -us;Q217098:
    Dieser Knowledge-Base-Artikel gibt einen grundlegenden Überblick über die Arbeitsweise von Kerberos und ist auch relativ technisch.

  • www.microsoft.com/technet/prodtechnol/ windowsserver2003/library:
    Der Bereich Technologies Collection/Windows Security Collection/Logon and Authentication erläutert die Kerberos-Authentifizierung.

  • http://support.microsoft.com/kb/266080/en-us
    enthält einen FAQ, in dem viele Fragen rund um Kerberos behandelt werden, und Verweise auf ergänzende Dokumente zu finden sind.

Daneben gibt es noch unzählige weitere Darstellungen im Internet, bis hin zum RFC 1510 mit der Definition des Standards.