Zum Inhalt springen

Kerberos (Protokoll)

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 12. Oktober 2004 um 17:17 Uhr durch 80.121.70.196 (Diskussion) (Implementierungen). Sie kann sich erheblich von der aktuellen Version unterscheiden.
Kerberos im TCP/IP-Protokollstapel
Anwendung Kerberos
Transport UDP/TCP
Netzwerk IP
Netzzugang Ethernet Token
Ring
FDDI ...

Kerberos ist ein Netzwerkprotokoll zur Authentifizierung, das für offene und unsichere Computernetze (z.b. das Internet) von Steve Miller und Clifford Neuman entwickelt wurde. Die zur Zeit aktuelle Version ist Kerberos5. Die Version 5 des Protokolls ist, im Gegensatz zu Version 4, in ASN.1 definiert. Kerberos5 wird in RFC 1510 definiert.

Kerberos bietet sichere und einheitliche Authentisierung in einem ungesicherten TCP/IP-Netzwerk aus sicheren Hostrechnern. Die Authentisierung übernimmt eine vertrauenswürdige dritte Partei. Diese dritte Partei ist ein besonders geschützter Kerberos 5-Netzwerkdienst. Kerberos unterstützt Single Sign On, d. h. ein Benutzer muss sich nur noch einmal anmelden, dann kann er alle Netzwerkdienste nutzen, ohne ein weiteres Mal ein Passwort eingeben zu müssen. Kerberos übernimmt die weitere Authentifizierung.

Der Name leitet sich vom Höllenhund Kerberos aus der griechischen Mythologie ab, der den Eingang zur Unterwelt bewacht.

Funktionsweise

Bei Kerberos sind drei Parteien beteiligt: Der Client, der Server, den der Client nutzen will, und der Kerberos-Server.

Der Kerberos-Dienst authentifiziert sowohl den Server gegenüber dem Client, als auch den Client gegenüber dem Server, um Man-in-the-Middle-Angriffe zu unterbinden. Auch der Kerberos-Server selbst authentifiziert sich gegenüber dem Client und Server und verifiziert selbst deren Identität.

Kerberos verwendet sog. Tickets zur Authentifizierung. Um den Kerberos-Dienst nutzen zu können, muss sich ein Client zuerst beim Kerberos-Server anmelden. Er fordert vom Kerberos-Server ein sog. Ticket Granting Ticket (TGT) an. Hierzu muss der Benutzer entweder ein Passwort eingeben oder das TGT wird direkt bei der Benutzeranmeldung angefordert. Die Unterstützung von Smartcards ist zur Zeit in Entwicklung. Mit dem TGT ist der Client in der Lage weiter Tickets für Dienste anzufordern, ohne nochmal ein Passwort eingeben zu müssen. Es wird auch ein Sitzungsschlüssel für die Kommunikation zwischen Client und Kerberos-Server ausgehandelt. Sie können benutzt werden, um den Datenverkehr zu verschlüsseln.

Um einen Dienst, der Kerberos unterstützt, benutzen zu können, fordert der Nutzer ein weiteres Ticket an. Dieses Ticket sendet der Client dann an den Dienst, der überprüft, ob er dem Client den Zugriff gestatten soll. Auch hierbei wird ein Sitzungsschlüssel vereinbart und die Identität von Client, Server und Kerberos-Server überprüft.

Bei Kerberos4 wird als Chiffre nur DES unterstützt. Kerberos5 ist in der Lage, die verwendete Chiffre und das verwendete Prüfsummenverfahren auszuhandeln.

Ein Kerberos-Server ist für einen Realm zuständig, d.h. er verwaltet nur Konten, die zu seinem Realm gehören. Der Realm ist meist der DNS-Domänen-Namen in Großbuchstaben, etwa EXAMPLE.COM. Ein Rechner kann immer nur zu einem Realm gehören. Um auf Dienste in anderen Realms über Kerberos zugreifen zu können müssen Vertrauensstellungen zwischen den einzelnen Realms hergestellt werden. So ist es möglich, dass ein Benutzer aus A.EXAMPLE.COM auf Dienste in B.EXAMPLE.COM zugreifen kann, ohne ein sich erneut authentifizieren zu müssen.

Benutzer, Hosts und Dienste werden bei Kerberos über symmetrische Schlüssel authentifiziert. Dem Schlüssel ist ein Name, der Kerberos Principal, zugeordnet. Für Hosts ist der Principal host/<hostname>@<REALM> (z.B.: host/www.example.com@EXAMPLE.COM) , für Dienste <servicename>/<hostname>@<REALM> (z.B.: imap/www.example.com@EXAMPLE.COM) und für Benutzer <benutzer>/<instanz>@<REALM> (z.B.: mueller/admin@EXAMPLE.COM ). Die Instanz gibt bei einem Nutzer-Principal die Art des Accounts an. Der Nutzer mueller/admin@EXAMPLE.COM ist ein Kerberos-Administrator.

Durch Kerberos werden insbesondere Angriffe durch passives Sniffing unterbunden, aber auch Spoofing, Wörterbuch, Replay und andere Angriffe werden erschwert.

Kerberos Unterstützung

Damit ein Netzwerkdienst Kerberos nutzen kann ist es nötig, dass der Dienst in der Lage ist mit Kerberos-Tickets umzugehen. Auf dem Server und Client Host muss jeweils ein Kerberos-Client installiert und konfiguriert sein. Sowohl die Client- als auch die Server-Software muss Kerberos unterstützen. Für Kerberos5 müssen Client, Server und Kerberos-Server ein gemeinsames Verschlüsselungs- und Prüfsummenverfahren unterstützen.

Es gibt zwei unterschiedliche Arten von Kerberos-Unterstützung: Entweder Kerberos wird vollständig unterstützt oder der Client sendet dem Server den Kerberos-Principal und das Passwort im Klartext.

Implementierungen

Das MIT bietet eine freie Implementierung des Kerberos-Protokolls für Unix und Linux an. Es werden Version 4 und 5 unterstützt. An Verschlüsselungsverfahren werden DES, 3DES, AES und RC4 unterstützt, als Prüfsummenverfahren stehen MD5, SHA-1, HMAC und CRC32 zur Verfügung.

Eine weitere Implementierung für Unix und Linux ist Heimdal Kerberos, welches dem MIT Kerberos sehr ähnlich.

Microsoft verwendet Kerberos, X.500 und LDAP um sein Active Directory zu implementieren. Hier werden die Kerberos-Schlüssel im X.500 Verzeichnis gespeichert. Es werden nur RC4 und DES Verschlüsselung unterstützt, was das Active Directory verwundbar für Brute Force Angriffe macht.


siehe auch: Netzwerksicherheit, Computersicherheit, Kryptologie, Active Directory