Athena's Kerberos

Athena war der Name eines der ersten verteilten Netzwerk-Betriebssysteme, entwickelt am Massachusetts Institute of Technology (MIT). Athena hatte zum Ziel eine Vielzahl heterogene Workstations in einem Netz unter einem gemeinsamen Betriebssystem zu betreiben. Im System Athena gibt es Server die bestimmte Dienste zu Verfügung stellen, derjenige der für die Sicherheit zuständig ist trägt den Namen 'Kerberos' (nach einem myth. Hund der die Unterwelt bewacht). Die Verschlüsselungstechnik benutzt das Privat Key Verfahren DES (Data Encription Standard). Es tritt daher das Problem auf, Schlüssel ungesehen durch das (unsichere, öffentliche) Netz zu transportieren.

Damit Kerberos funktioniert, müssen alle Parteien dem Kerberos Server vertrauen, was wiederum bedeutet, dass die Maschinen die Kerberos auführen, in gesicherten Räumen aufgestellt sind, während die Client-Rechner der Benutzer frei zugänglich sein dürfen. Insbensondere enthalten die Clients deshalb keinerlei Passwort Informationen und es dürfen auch keine Passworte im Klartext über das Netz gehen.

Jeder Server C besitzt einen Schlüssel K-C, der nur Kerberos und ihm selbst bekannt ist. jeder Benutzer B hat einen User-Key K-B der nach einem bekannten Verfahren aus dem Benutzerpasswort abgeleitet werden kann, das Passwort selbst kennen aber nur Kerberos und der Benutzer B selbst. Wenn ein Client einen Dienst eines Servers in Anspruch nehmen will, benötigt er dafür ein Ticket das er von Kerberos - genauer gesagt vom Ticket-Granting-Service (TGS)- erhält. Ein Ticket enthält neben einem Zeitstempel, der Gültigkeitsdauer und einigen anderen Infomationen den sogenannten Session-Key B-C der für die Kommunikation zwischen Benutzer B und Server C erforderlich ist. Der TGS ist nun aber auch wieder ein Service eines Servers, also braucht man auch für die Anforderung von Tickets ein Ticket, nämlich das Ticket-Granting-Ticket (TGT). Dieses erhält der Benutzer beim Login. Beim Login des Benutzers wird zunächst nur der Benutzername B eingegeben und an Kerberos weitergegeben. Der sucht in seiner Benutzerdatenbank das zugehörige Passwort und bildet daraus den User-Key K-B. Ausserdem generiert Kerberos einen Session-Key für die bevorstehende Kommunikation von B mit dem Ticket-Granting-Service. Dieser Session-Key B-TGS wird in das Ticket-Granting-Ticket eingesetzt. Danach wird TGT mit dem Schlüssel K-TGS des Ticket-Granting-Servers verschlüsselt. Kerberos schickt nun ein Paket an die Workstation des Benutzers zurück, in der folgende Objekte verpackt sind:

K-B(B-TGS) und
K-B(K-TGS(TGT))

Inzwischen hat der Benutzer sein Passwort eingegeben. In der Workstation wird daraus der User-Key K-B abgeleitet. Nur wenn das Passwort korrekt war, kann damit das obige Paket entschlüsselt werden. So ist die Kombination Benutzer/Passwort identifiziert, ohne das Passwort oder User-Key über das Netz übertragen werden mussten.

Zur Authentifizierung des Zugriffs auf den Server S benötigt B zunächst ein Ticket für den Zugriff auf S vom TGT. Er sendet deshalb seinen Wunsch im Klartext an den TGT, gefolgt vom mit dem von TGS K-TGS verschlüsselten Ticket-Granting-Ticket K-TGS(TGT) und dem vom Session Key B-TGS verschlüsselten Authentifizierer B-TGS(Aut). Aut enthält dabei den Namen und die Intenetadresse des Benutzers und einen Zeitstempel. Der Ticket-Granting-Service entschlüsselt nun K-TGS(TGT) und findet in TGT die Identität des Benutzers und den Session Key B-TGS den Kerberos beim Login generiert hatte. Damit kann dann auch der Authentisierer Aut entschlüsselt werden. Stimmen die beiden Benutzeridentitäten überein, so ist hierdurch B authentisiert und TGS wird ihm das gewünschte Ticket für den Server S (mit dem Schlüssel (K-S) schicken (Tanenbaum et al. 1996).