Kerberos
Kerberos ist ein Protokoll zur Authentifizierung von Dienstanforderungen zwischen vertrauenswürdigen Hosts über ein nicht vertrauenswürdiges Netzwerk, wie zum Beispiel das Internet.
Kerberos ist in alle wichtigen Betriebssysteme integriert, einschließlich Microsoft Windows, Apple OS X, FreeBSD und Linux. Seit Windows 2000 hat Microsoft das Kerberos-Protokoll als Standardauthentifizierungsmethode in Windows integriert. Es ist ein integraler Bestandteil von Windows Active Directory. Breitbanddienstanbieter verwenden Kerberos auch zur Authentifizierung von DOCSIS-Kabelmodems und Set-Top-Boxen, die auf ihre Netzwerke zugreifen.
Kerberos wurde ursprünglich für das Projekt Athena am Massachusetts Institute of Technology (MIT) entwickelt. Der Name Kerberos stammte aus der griechischen Mythologie; Kerberos (Cerberus) ist ein dreiköpfiger Hund, der die Tore des Hades bewacht. Die drei Köpfe des Kerberos-Protokolls stehen für einen Client, einen Server und ein Key Distribution Center (KDC), das als der vertrauenswürdige Authentifizierungsdienst von Kerberos für Dritte fungiert.
Benutzer, Maschinen und Dienste, die Kerberos verwenden, müssen nur dem KDC vertrauen, das als ein einziger Prozess läuft und zwei Dienste anbietet: einen Authentifizierungsdienst und einen Dienst zur Ticketausstellung. KDC-Tickets ermöglichen es Knoten, sich gegenseitig auf sichere Weise ihre Identität nachzuweisen. Die Kerberos-Authentifizierung verwendet herkömmliche, gemeinsam genutzte, geheime Kryptographie, um zu verhindern, dass Pakete, die über das Netzwerk verschickt werden gelesen oder verändert werden, und um Nachrichten vor Lausch- und Wiedergabeattacken zu schützen.
Überblick über das Kerberos-Protokoll
Es folgt eine vereinfachte Beschreibung der Funktionsweise von Kerberos; der eigentliche Prozess ist komplizierter und kann von einer Implementierung zur anderen variieren. Wir erläutern das Funktionieren mit einem beispielhaften Szenario, in dem ein Endbenutzer auf einem Firmen-Laptop mit Windows als initiierendem Client versucht, sich im Firmennetzwerk anzumelden.
Um den Kerberos-Authentifizierungsprozess zu starten, sendet der initiierende Client eine Anfrage an einen Authentifizierungsserver für den Zugriff auf einen Dienst. Die Anfrage wird als Klartext gesendet, da keine sensiblen Informationen enthalten sind.
Der Authentifizierungsserver ruft den privaten Schlüssel des initiierenden Clients ab, vorausgesetzt, der Benutzername des initiierenden Clients befindet sich in der KDC-Datenbank. Wenn der Benutzername des einleitenden Clients nicht in der KDC-Datenbank gefunden werden kann, kann der Client nicht authentifiziert werden, und der Authentifizierungsprozess wird abgebrochen. Wenn der Benutzername des Clienten in der KDC-Datenbank gefunden werden kann, generiert der Authentifizierungsserver einen Sitzungsschlüssel (Session Key) und ein Ticket für die Ticketausstellung. Das Ticket zur Ticketgewährung wird vom Authentifizierungsserver mit einem Zeitstempel versehen und mit dem Passwort des Clients, der die Anfrage gestellt hat, verschlüsselt.
Wenn die Eingabe mit dem Passwort in der KDC-Datenbank übereinstimmt, wird das vom Authentifizierungsserver gesendete verschlüsselte Ticket zur Bestätigung entschlüsselt und dazu verwendet, vom Ticketgewährungsserver einen Berechtigungsnachweis für den gewünschten Dienst anzufordern. Der Client sendet das Ticket-Gewährungs-Ticket an den Ticket-Gewährungs-Server, der möglicherweise physisch auf derselben Hardware wie der Authentifizierungsserver läuft, aber eine andere Rolle einnimmt.
Der Ticket-Gewährungsdienst führt eine ähnliche Authentifizierungsprüfung durch wie der Authentifizierungsserver, sendet diesmal jedoch einen Berechtigungsnachweis und ein Ticket für den Zugriff auf den angeforderten Dienst. Diese Übertragung wird mit einem Sitzungsschlüssel verschlüsselt, der für den Benutzer und den Dienst, auf den zugegriffen wird, spezifisch ist. Dieser Identitätsnachweis kann verwendet werden, um auf den Dienst zuzugreifen. Nachdem er die ursprüngliche Anforderung validiert hat ist seine Identität gegenüber dem System bestätigt.
Das mit einem Zeitstempel versehene Ticket ermöglicht für einem bestimmten Zeitraum dem anfordernden System den Zugang mit einem einzigen Ticket, ohne dass es erneut authentifiziert werden muss. Wenn man das Ticket für eine begrenzte Zeitspanne gültig macht, verringert sich die Wahrscheinlichkeit, dass jemand anderes es später benutzen kann; es ist auch möglich, die maximale Lebensdauer auf 0 zu setzen, in diesem Fall verfallen Service-Tickets nicht. Microsoft empfiehlt eine maximale Lebensdauer von 600 Minuten für Service-Tickets; dies ist der Standardwert in Windows-Server-Implementierungen von Kerberos.
Das MIT-Kerberos-Konsortium wurde im September 2007 gegründet, um die Entwicklung von Kerberos voranzutreiben. Im Jahr 2013 wurde das Konsortium erweitert und in MIT Kerberos and Internet Trust Consortium umbenannt.