Single Sign-On mit Kerberos

End-to-End-Security

Neben der Zielsetzung des Single Sign-Ons spielt Kerberos aus einem zweiten Grund eine zunehmend wichtige Rolle: Kerberos ist ein hervorragend geeigneter Mechanismus, um Endto-End-Security zu erreichen. Der Begriff der End-to-End-Security bezeichnet Ansätze, bei denen ein Benutzer über die gesamte Verarbeitung hinweg in seiner Identität erkannt wird. Das wird am besten an konkreten Beispielen klar.

Viele Anwendungen arbeiten heute mit einem mehrschichtigen Modell. Browser greifen über den Webserver auf einen Anwendungsserver zu, der wiederum eine Datenbank nutzt. Bei n-Tier-Anwendungen ist Kerberos besonders interessant, beispielsweise wenn mehrere bestehende Systeme zur Abbildung eines Geschäftsprozesses integriert und in einem Portal zur Verfügung gestellt werden.

Heute werden diese Anwendungen häufig so realisiert, dass der Benutzer sich beim Zugriff über den Browser authentifizieren muss. Diese Authentifizierung kann beispielsweise über den Webserver erfolgen und wird von diesem gegebenenfalls auch noch an den Anwendungsserver weitergereicht. Dort ist der Benutzer nun bekannt. Der Anwendungsserver greift nun auf die Datenbank zu, um Daten für diesen Benutzer anzufordern. Die häufigste Lösung dafür ist, dass der Anwendungsserver dazu ein generisches Konto verwendet, das ihm volle Zugriffsberechtigungen zumindest für die benötigte Datenbank gibt. Durch die entsprechende Gestaltung von Abfragen und die Verarbeitung der Abfrageergebnisse schränkt die Anwendung anschließend ein, welche Informationen der Benutzer sehen darf.

Dieses Konzept hat den gravierenden Nachteil, dass die Anwendungssicherheit letztlich im Code der auf dem Anwendungsserver laufenden Anwendung versteckt wird. Dort müssen oft auch noch Kennwörter für die Datenbank gespeichert werden. Änderungen der Sicherheit sind nur durch Anpassungen des Quellcodes möglich. Außerdem lässt sich von außen kaum nachvollziehen, welcher Benutzer tatsächlich welche Zugriffsberechtigungen auf Informationen hat.

Mit dem Ansatz der End-to-End-Security kann das geändert werden, beispielsweise durch Nutzung von Kerberos. Der Benutzer authentifiziert sich auch hier und erhält ein Service Ticket für den Zugriff auf einen Dienst. Das Ticket und der Dienst sind so konfiguriert, dass eine Delegation erfolgen kann. In diesem Fall wird auf die Datenbank also in der Form zugegriffen, dass sich der Anwendungsserver anstelle des Benutzers authentifiziert – aber mit dessen Identität. Der Vorteil ist, dass er genau auf die Informationen zugreifen kann, die für den Benutzer freigegeben sind.

Das macht im Übrigen auch die Realisierung von Anwendungen einfacher, weil dort keine Sicherheitslogik realisiert werden muss. Der Nachteil ist, dass dafür wesentlich genauere Zugriffsberechtigungen auf allen Ebenen erforderlich werden. Man kann nicht mehr nur den Zugriff auf die Datenbank erlauben, sondern muss genau festlegen, wer wie darauf zugreifen darf. Außerdem muss die Datenbank die gleichen Benutzer wie beispielsweise der Anwendungsserver kennen. Diese Integration gibt es beispielsweise zwischen den Windows-Servern und dem Microsoft SQL Server. In anderen Konstellationen kann der administrative Aufwand dafür aber erheblich sein. Kerberos bietet durch seine Architektur eine umfassende Unterstützung für die End-to-End-Security. Dabei spielen zwei Aspekte eine zentrale Rolle:

  • Mit den Service Tickets wird die enge Einbindung von Anwendungen unterstützt.

  • Durch die Delegationsfunktionen kann eine Anwendung im Kontext eines Benutzers agieren, also mit genau den Berechtigungen zugreifen, die dieser hat.

Diese beiden Fähigkeiten machen Kerberos inzwischen zu einem zunehmend beachteten Mechanismus, dessen aktive Nutzung auch in heterogenen Umgebungen – also mit der Integration verschiedener Systemumgebungen und mit der Anpassung von Anwendungen für die Nutzung von Kerberos – immer mehr geschätzt wird. Verschiedene Aspekte der Herausforderungen, die sich bei der Nutzung von Kerberos sowohl innerhalb der Windows-Welt als auch im heterogenen Umfeld stellen, werden in den folgenden Artikeln näher betrachtet.

Das Thema der End-to-End-Security ist dabei keineswegs nur ein Entwicklerthema. Einerseits setzt es natürlich Anwendungen voraus, die beispielsweise Kerberos-Tickets verwenden können, X.509-Zertifikate akzeptieren oder bei denen die Federation-Standards genutzt werden können. Dahinter stehen aber immer auch administrative Herausforderungen. Das beginnt bei der Vergabe von differenzierten Berechtigungen auf allen Ebenen und geht bis hin zu einem anwendungsübergreifenden Benutzermanagement. Solche Ansätze müssen daher im Zusammenspiel von Anwendungsentwicklern und Systemadministratoren entwickelt werden, weil keiner der Bereiche alleine eine Lösung schaffen kann.

Kerberos ist, wie in dem Artikel deutlich wurde, ein Ansatz, dieses Ziel zu erreichen. Es gibt aber auch andere Lösungsmöglichkeiten. Welche davon am besten geeignet ist, hängt primär von den vorhandenen Anwendungen und der IT-Infrastruktur ab. Innerhalb des Netzwerks ist Kerberos aber ein interessanter Mechanismus, der zu Recht in den letzten Monaten wieder in den Blickpunkt gerückt ist, nachdem sich nach dem Release von Windows 2000 die Erwartungen zunächst nicht erfüllt hatten.

Bild 2: End-to-End-Security mit durchgängigem Sicherheitsmodell über alle Stufen der Anwendung hinweg.
Bild 2: End-to-End-Security mit durchgängigem Sicherheitsmodell über alle Stufen der Anwendung hinweg.