- Kerberos (Informatik)
-
Kerberos im TCP/IP‑Protokollstapel: Anwendung Kerberos Transport UDP TCP Internet IP (IPv4, IPv6) Netzzugang Ethernet Token
BusToken
RingFDDI … 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 zurzeit 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 bietet sichere und einheitliche Authentifizierung in einem ungesicherten TCP/IP-Netzwerk auf sicheren Hostrechnern. 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 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.
Inhaltsverzeichnis
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 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.
Die Unterstützung von digitalen Zertifikaten auf Smartcards zur Authentisierung ist im UNIX-Bereich zurzeit in Entwicklung, wird aber bereits von Windows 2000 und 2003 unterstützt, und stellt damit die Hauptanwendung von Unternehmens-PKIs dar. Im Juni 2006 wurde das Dokument von der IETF zum offiziellen Standard (RFC 4556) ernannt.
Schematischer Ablauf der Kerberos-Authentifikation
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, d. h. 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
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
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.
Weitere Implementierungen für Unix und Linux sind Shishi und Heimdal Kerberos, welche dem MIT Kerberos sehr ähnlich sind.
Für den Apache HTTP Server gibt es das Kerberos-Modul. [1]
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. [2]
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 den selben Benutzerdaten sicher und verschlüsselt an verschiedenen Clients, unabhängig vom Client-Betriebssystem (Mac OS X, Windows oder Linux) an.
Das RFC verlangt für beteiligte Hosts einen Zeitabgleich der beteiligten Systeme, um Zeitunterschiede über 5 min. zu vermeiden.[3]. Hier bietet sich die Verwendung von NTP an.
Siehe auch
Literatur
- Roland Bless et al.: Sichere Netzwerkkommunikation. Grundlagen, Protokolle und Architekturen. In: X.systems.press. Springer Verlag, Berlin Heidelberg New-York 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.
- 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
- 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 (.ps, englisch, ausfuehrlich)
Einzelnachweise
- ↑ 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).
Kategorien:- Netzwerkprotokoll auf Anwendungsschicht
- Authentifizierungsprotokoll
Wikimedia Foundation.