Damit Sie verstehen, wie die Kerberos-Authentifizierung genau abläuft, werden wir sie in diesem Abschnitt in ihre Kernkomponenten zerlegen. Hier sind die wichtigsten Komponenten, die an einem typischen Kerberos-Arbeitsablauf beteiligt sind:
- Client: Der Client handelt „im Auftrag“ des Nutzers und initiiert die Kommunikation bei einer Dienstanforderung.
- Hosting-Server: Dies ist der Server, der den Dienst hostet, auf welchen der Nutzer zugreifen möchte.
- Authentifizierungs-Server (AS): Der AS führt die gewünschte Client-Authentifizierung durch. Wenn die Authentifizierung erfolgreich verläuft, stellt der AS dem Client ein Ticket aus, das TGT (Ticket Granting Ticket). Dieses Ticket sichert den anderen Servern zu, dass der Client authentifiziert ist.
- Ticket Granting Server (TGS): Der TGS ist ein Anwendungsserver, der Service-Tickets Dienst ausstellt.
- Key Distribution Center (KDC): Das KDC besteht aus dem Authentifizierungsserver (AS) und dem Ticket Granting Server (TGS).
Kommen wir nun zum Protokollablauf, der im Schaubild dargestellt ist.
1. Schritt: Der Client stellt eine verschlüsselte Anfrage an den Authentifizierungsserver. Wenn der AS die Anfrage erhält, sucht er anhand der Benutzer-ID in der Kerberos-Datenbank nach dem Kennwort. Wenn der Benutzer das richtige Kennwort eingegeben hat, entschlüsselt der AS die Anfrage.
2. Schritt: Nach der Verifizierung des Benutzers stellt der AS ein Ticket Granting Ticket (TGT) aus, das an den Client zurückgesendet wird.
3. Schritt: Der Client sendet nun das TGT an den Ticket Granting Server. Zusammen mit dem TGT „erklärt“ der Client auch den Grund für den Zugriff auf den Hosting-Server. Der TGS entschlüsselt das Ticket mit dem geheimen Schlüssel, den AS und TGS miteinander teilen.
4. Schritt: Wenn das TGT gültig ist, stellt der TGS ein Service-Ticket für den Client aus.
5. Schritt: Der Client sendet das Service-Ticket an den Hosting-Server. Dieser entschlüsselt das Ticket mit dem geheimen Schlüssel, den Server und TGB miteinander teilen.
6. Schritt: Wenn die geheimen Schlüssel übereinstimmen, erlaubt der Hosting-Server dem Client den Zugriff auf den Dienst. Das Service-Ticket bestimmt, wie lange der Benutzer den Service verwenden darf. Sobald der Zugriff abläuft, kann er mit dem Kinit-Befehl erneuert werden, indem das gesamte Kerberos-Authentifizierungsprotokoll erneut durchlaufen wird.