X.509 vs. Kerberos

01.05.2006 von Martin Kuppinger
X.509 und Kerberos sind zwei wichtige Verfahren im Bereich der Authentifizierung, die gleichzeitig auch für das Single Sign-On gegenüber mehreren Anwendungen eingesetzt werden können. Der Artikel vergleicht die Einsatzbereiche der beiden Ansätze miteinander.

Vor allem Anbieter von Smartcard-Infrastrukturen klagen gelegentlich über Diskussionen darüber, dass Smartcards und X.509v3 verzichtbar seien, weil auf Kerberos gesetzt würde. Aussagen in dieser Art beruhen aber im besten Fall auf einem Vergleich von „Äpfeln mit Birnen“. Es gibt zwar einige Ergebnisse, die man zwar sowohl mit Kerberos als auch mit auf X.509v3 basierenden digitalen Zertifikaten erreichen kann. In der Praxis wird man aber zumindest in mittleren und größeren Netzwerken nicht daran vorbeikommen, beide Verfahren zu nutzen.

Kerberos

Kerberos ist zunächst ein Standard für die Authentifizierung in verteilten Umgebungen. Kerberos definiert, wie Clients, Authentifizierungsserver und Anwendungsdienste, auf die zugegriffen werden soll, zusammenarbeiten können. Da es sich um einen Standard handelt, mit dem auf verteilte Dienste zugegriffen werden kann, kann er auch für das Single Sign-On genutzt werden. So genannte „kerberized applications“, also Anwendungen mit integriertem Support für Kerberos, können nach einer Authentifizierung mit Dienst-Tickets, die vom KDC (Kerberos Key Distribution Center, die authentifizierende Komponente) genutzt werden.

X.509v3

X.509v3 beschreibt dagegen zunächst einmal nur einen Standard für digitale Zertifikate. Digitale Zertifikate identifizieren einen Benutzer, ein System oder einen Dienst.

Da zu digitalen Zertifikaten einerseits ein öffentlicher, andererseits ein privater Schlüssel gehört, können diese Zertifikate nicht nur für die Authentifizierung, sondern auch für andere Aufgabenstellungen wie die Verschlüsselung und Signatur genutzt werden.

Die Historie der digitalen Zertifikate liegt auch eher in diesen Bereichen. Der wichtigste Einsatzbereich ist bis heute die Authentifizierung von Servern gegenüber Browsern bei der Nutzung von HTTPS.

Single Sign-On gegenüber Anwendungen

Sowohl mit Kerberos als auch auf Basis von digitalen Client-Zertifikaten lässt sich ein Single Sign-On gegenüber Anwendungen realisieren. Bei Kerberos sind dafür die bereits genannten Anwendungen mit Kerberos-Unterstützung erforderlich. Bei Nutzung von X.509v3 müssen Anwendungen diesen Standard unterstützen und in irgendeiner Form ein Mapping der Benutzerinformationen aus dem Zertifikat auf Daten aus einem Verzeichnisdienst durchführen können. Beispiele für solche Mappings finden sich bei den IIS sowie beim Active Directory selbst (Bild 1).

Bild 1: Ein Mapping von Zertifikaten zu Benutzerkonten kann beispielsweise beim Active Directory erfolgen.

Auf den ersten Blick scheint sich hier also die These von der Austauschbarkeit der beiden Verfahren zu bestätigen. Das gilt auch, wenn man sich beispielsweise mit IPSec (IP Security) beschäftigt, wo die Authentifizierung ebenfalls über Kerberos und über X.509v3 erfolgen kann.

Bei näherer Betrachtung gibt es aber einige gravierende Unterschiede zwischen den beiden Verfahren. Zum einen ist die Unterstützung für X.509v3 insgesamt deutlich größer. Zum anderen ist Kerberos ein Verfahren, das nur innerhalb von lokalen Netzwerken wirklich sinnvoll nutzbar ist. Zwar lassen sich Vertrauensstellungen zwischen verschiedenen Kerberos-Infrastrukturen definieren. In der Praxis ist es aber sehr viel einfacher, einzelne digitale Zertifikate beispielsweise an externe Benutzer zu vergeben, als Vertrauensstellungen zwischen den Kerberos-Infrastrukturen zweier Unternehmen zu definieren (was faktisch meist unmöglich ist).

Kerberos ist auf der anderen Seite ein Mechanismus, der transparent innerhalb von Windows-Umgebungen ohnehin genutzt wird und der für die dort lokal eingesetzten Anwendungen erste Wahl ist. Eine Fokussierung auf Kerberos als Authentifizierungsstandard in Windows-Umgebungen, und damit auch für die Entwicklung eigener Anwendungen, ist daher durchaus sinnvoll.

Die zwingende Erfordernis für X.509v3

An X.509v3 wird man aber nicht vorbei kommen. Digitale Zertifikate werden für die Sicherheit von Web-Zugriffen, den Schutz von drahtlosen Netzwerken über IEEE 802.1X oder die Identity Federation als Einsatzbereiche betrachtet. In allen Fällen werden digitale Zertifikate und damit auch eine Infrastruktur für die Erstellung derselben benötigt.

In der Konsequenz muss man daher sowohl über Kerberos als auch X.509 nachdenken. Kerberos ist der sinnvolle Standard für die Authentifizierung an internen Anwendungen. X.509v3 wird dagegen für Web-Anwendungen und die gezielte Einbindung externer Benutzer benötigt. Die Standards ergänzen sich mehr als sie konkurrieren.