Kerberos (Informatik)
| Anwendung | Kerberos | ||||
| Transport | UDP | TCP | |||
| Internet | IP (IPv4, IPv6) | ||||
| Netzzugang | Ethernet | Token Bus |
Token Ring |
FDDI | … |
Kerberos ist ein verteilter Authentifizierungsdienst (Netzwerkprotokoll) für offene und unsichere Computernetze (zum Beispiel das Internet), der von Steve Miller und Clifford Neuman basierend auf dem Needham-Schroeder-Protokoll zur Authentifizierung (1978) entwickelt wurde. Die zur Zeit aktuelle Version ist Kerberos 5. Sie ist in RFC 4120 definiert und nutzt ASN.1 zur Codierung.
Kerberos entstand im Rahmen des Projekt Athena am MIT; erst die Version 4 Ende der 1980er Jahre wurde auch außerhalb des MIT verwendet. Kerberos soll eine sichere und einheitliche Authentifizierung in einem ungesicherten TCP/IP-Netzwerk auf sicheren Hostrechnern bieten. Die Authentifizierung übernimmt eine vertrauenswürdige dritte Partei (auch als Trusted Third Party bezeichnet). Diese dritte Partei ist ein besonders geschützter Kerberos-5-Netzwerkdienst. Kerberos unterstützt Single Sign-on, das heißt ein Benutzer muss sich nur einmal anmelden. Im Anschluss kann er alle verfügbaren Netzwerkdienste nutzen ohne ein weiteres Mal sein Passwort eingeben zu müssen.
Der Name leitet sich vom Höllenhund Kerberos aus der griechischen Mythologie ab, der den Eingang zur Unterwelt bewacht.
Inhaltsverzeichnis |
Funktionsweise [Bearbeiten]
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 dem Server und verifiziert selbst deren Identität.
Kerberos verwendet 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 Ticket Granting Ticket (TGT) an. Hierzu muss der Nutzer des Clients entweder ein Passwort eingeben, oder das TGT wird direkt bei der Benutzeranmeldung angefordert. Mit dem TGT ist der Client in der Lage, weitere Tickets für Dienste anzufordern, ohne nochmal ein Passwort eingeben zu müssen. Es wird auch ein Session Key für die Kommunikation zwischen Client und Kerberos-Server ausgehandelt. Er kann benutzt werden, um den Datenverkehr zu verschlüsseln.
Um einen Dienst, der Kerberos unterstützt, benutzen zu können, fordert der Client 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.
Schematischer Ablauf der Kerberos-Authentifikation [Bearbeiten]
Erläuterungen zur Abbildung:
Szenario: Nutzer u möchte Service s nutzen, er besitzt noch kein TGT. Die kleineren Rechtecke (hellgrün, hell-orange, weiß) sind Datenpakete, die jeweils mit dem nach dem Stern (*) stehenden Schlüssel verschlüsselt sind. Das Kürzel ST meint hier: Ticket zur Nutzung des Services s. In den großen Rechtecken (Server) und in der Ellipse (Client) stehen nach den Pfeilen diejenigen Informationen, die dem jeweiligen Service/Client bekannt sind. Kerberos Authentication-Server und Ticket Granting Server (TGS) haben beide Zugriff auf die Schlüsseldatenbank ihres Administrationsbereiches (Realm), sie kennen also beide alle Client- und Server-Schlüssel.
Ein Kerberos-Server ist für einen Realm zuständig, das heißt er verwaltet nur Konten, die zu seinem Realm gehören. Der Realm kann beispielsweise der DNS-Domänen-Name in Großbuchstaben, etwa EXAMPLE.COM, sein. 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 sich erneut authentisieren zu müssen.
Bei Kerberos4 wird als Chiffre nur DES unterstützt. Kerberos5 ist in der Lage, die verwendete Chiffre und das verwendete Prüfsummenverfahren auszuhandeln.
Nutzer, 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 Nutzer <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 erschwert.
Kerberos-Unterstützung [Bearbeiten]
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 verwenden.
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 [Bearbeiten]
Das MIT bietet eine freie Implementierung des Kerberos-Protokolls für Unix und Linux an. Es werden Version 4 und 5 unterstützt. Als Verschlüsselungsverfahren werden DES, 3DES, AES und RC4 unterstützt, als Prüfsummenverfahren stehen MD5, SHA-1, HMAC und CRC32 zur Verfügung.
An der KTH entstand eine weitere freie, weil unter BSD-Lizenz, Kerberos-Implementierung für Unix, Linux und Mac, namens Heimdal.[1] Der Hauptentwickler ist Love Hörnquist Åstrand. Da Heimdal kompatibel zur MIT Implementierung ist, werden dieselben Verschlüsselungsverfahren und Hashfunktionen unterstützt. Auch OpenBSD setzt seit Version 3.0 (1. Dezember 2001) auf Heimdal.[2] Samba (Software) benutzt mit Samba4 auch Heimdal.[3]
Weitere freie, weil unter der GPL, Kerberos-Implementierungen für Unix und Linux ist Shishi.[1]
Kerberos ist auch in Java implementiert.[1]
Für den Apache HTTP Server gibt es das Kerberos-Modul.[4]
Microsoft verwendet Kerberos als Standardprotokoll für die Authentifizierung unter Windows-2000/2003-basierten Netzwerken sowie für den Windows-2000/XP-Client. Hier werden die Kerberos-Schlüssel in Active Directory gespeichert. Unter Windows 2000 wird nur die Verschlüsselung mit RC4 oder DES unterstützt, was diesen Verzeichnisdienst verwundbar für Brute-Force-Angriffe macht. In der Version von Windows Server 2003 und Windows XP ab SP1 sind Erweiterungen implementiert worden, die das System gegen solche Angriffe stärker absichern. Darüber hinaus ist Microsoft wegen seiner Implementierung in die Kritik geraten.[5]
Univention hat Kerberos in das browser- und OpenLDAP-basierte Managementsystem der Linux-Infrastrukturlösung Univention Corporate Server (UCS) standardmäßig integriert. Mittels Kerberos realisiert UCS das Benutzer- und Authentifizierungsmanagement: Benutzer melden sich mit denselben Benutzerdaten sicher und verschlüsselt an verschiedenen Clients, unabhängig vom Client-Betriebssystem (Mac OS X, Windows oder Linux) an.
Der RFC verlangt für beteiligte Hosts einen Zeitabgleich der beteiligten Systeme, um Zeitunterschiede über fünf Minuten zu vermeiden.[6] Hier bietet sich die Verwendung von NTP an.
Siehe auch [Bearbeiten]
Literatur [Bearbeiten]
- Roland Bless u. a.: Sichere Netzwerkkommunikation. Grundlagen, Protokolle und Architekturen. In: X.systems.press. Springer Verlag, Berlin 2005, ISBN 978-3-54021-845-6, ISSN 1611-8618 (http://www.sineko.de/).
- Claudia Eckert: IT-Sicherheit. Oldenbourg Verlag, München 2006, ISBN 978-3-48657-851-5.
- Jason Garman: Kerberos. The Definitive Guide. O'Reilly Media, Sebastopol 2003, ISBN 978-0-59600-403-3.
- Mark Pröhl: Kerberos. Single Sign-on in gemischten Linux/Windows-Umgebungen. dpunkt.verlag, Heidelberg 2011, ISBN 978-3-89864-444-0 (http://www.kerberos-buch.de).
- William Stallings: Network Security Essentials. Applications and Standards: International Version, 4/E. Pearson Higher Education, New York 2010, ISBN 978-0-13706-792-3.
Weblinks [Bearbeiten]
- RFC 4120 (englisch)
- MIT Kerberos (englisch)
- Heimdal Kerberos (englisch)
- Shishi Kerberos (englisch)
- Kerberos – Single Sign On Benutzerauthentisierung (PDF; 94 kB)
- Kerberos: An Authentication Service for Open Network Systems (PostScript-Datei, englisch, ausführlich)
Einzelnachweise [Bearbeiten]
- ↑ a b c Heimdal. In: h5l.org. Abgerufen am 16. März 2012 (englisch).
- ↑ OpenBSD 3.0 changes. In: openbsd.org. 1. Dezember 2001, abgerufen am 22. März 2012 (englisch).
- ↑ Samba & Kerberos - SambaWiki. In: samba.org. 26. Februar 2007, abgerufen am 4. Juni 2012 (englisch).
- ↑ mod_auth_kerb
- ↑ Microsoft und Open Source: Nichts als Ärger. In: heise online. 29. Februar 2000, abgerufen am 19. März 2008.
- ↑ The Kerberos Network Authentication Service (V5). Environmental Assumptions. Abgerufen am 27. August 2011 (englisch).
