Donnerstag, 21. Dezember 2006 |
Topthema
'Single Sign-On' (SSO) ist eine weitere Verwendungsmöglichkeit einer
Public-Key-Infrastruktur (PKI, siehe About Security #83).
SSO ermöglicht, dass ein Benutzer nach einer einmaligen
Authentifizierung auf alle für ihn zugänglichen Server und
Dienste zugreifen kann, ohne sich jedes Mal neu authentifizieren zu
müssen. Dabei ist es egal, ob der Benutzer alle Server und Dienste
unter der gleichen Benutzerkennung nutzt oder ob er für verschiedene
Dienste verschiedene Identitäten besitzt. Nach erfolgreicher
Authentifizierung gegenüber dem SSO-System ist es dessen Aufgabe, den
Benutzer gegenüber anderen Servern und Diensten zu identifizieren. Ein
Beispiel für ein einfaches Single Sign-On-System ist ein
Passwortmanager wie z.B. der Schlüsselbund von Mac OS X: Nach der
Authentifizierung gegenüber dem Schlüsselbund werden von diesem
die Zugangsdaten zu Websites z.B. automatisch ausgefüllt. Dabei ist
es egal, dass der Benutzer auf dem lokalen Rechner als 'Alice'
angemeldet
ist, auf einer passwortgeschützten Webseite aber das Pseudonym
'Herzkönigin' verwendet und auf einer anderen als 08-15-4711
angemeldet wird.
Lösungsansätze
Für SSO gibt es mehrere Lösungsansätze, die alle auch ohne
den Einsatz einer PKI auskommen:
- Bei einer Portallösung authentifiziert sich der Benutzer
gegenüber einem zentralen Server und erhält ein Merkmal, das ihn
gegenüber den zugehörigen Servern und Diensten eindeutig identifiziert.
Nach der erfolgreichen Authentifizierung erhält der Benutzer ohne
weitere Anmeldungen Zugriff auf alle Server und Dienste, auf die er
zugreifen darf. Ein Beispiel dafür ist das Webportal von Yahoo!, das
nach einer einmaligen Anmeldung den Zugriff auf z.B. Yahoo! Mail,
Yahoo! Groups,... erlaubt.
- Bei einem Ticketsystem nutzt ein Netz eine gegenüber einem
Server erfolgte Authentifizierung, um Zugriff auf alle beteiligten
Server zu gewähren. Die gemeinsame Identifikation erfolgt entweder
durch den gegenseitigen Austausch der benötigten Informationen oder die
Vergabe eines virtuellen Logon-Tickets. Die erste Anmeldung erfolgt auf
einem Server, der nach erfolgreicher Authentifizierung dann den Zugriff
auf die anderen Server ermöglicht. Ein Beispiel für ein Ticketsystem
ist Kerberos, das in einer zukünftigen Folge ausführlich behandelt wird.
- Beim Einsatz lokaler Lösungen, z.B. dem oben erwähnten
Mac-OS-X-Schlüsselbund, füllt ein auf dem lokalen Rechner laufendes
Programm Anmeldeformulare mit den jeweils zugehörigen Zugangsdaten und
sendet sie automatisch ab. Die Zugangsdaten können entweder in einer
verschlüsselten lokalen Datei, einem Device (z.B. einem USB-Token oder
einer Smartcard) oder einem Verzeichnisdienst gespeichert sein.
Verwendung von SSO mit einer PKI
Im Folgenden soll von einer SSO-Anmeldung an einer zentralen
Stelle
ausgegangen werden, für die es folgende Lösungsansätze gibt:
- Ein zentraler Authentifizierungsserver stellt dem Benutzer
nach erfolgreicher Authentifizierung ein Logon-Ticket aus, mit dem er
sich gegenüber Servern und Diensten identifizieren kann.
- Eine zentrale Benutzerverwaltung, z.B. ein
LDAP-Verzeichnis, verwaltet die verschiedenen Benutzernamen und
Passwörter aller Benutzer. Ein Client auf dem Rechner des Benutzers
fragt diese dort nach erfolgreicher Authentifizierung ab und meldet den
Benutzer dann mit dem jeweiligen Benutzernamen und Passwort bei den
verschiedenen Servern und Diensten an.
Beide Ansätze kommen ohne eine PKI aus. Diese kommt nun ins Spiel:
- Die Benutzer weisen sich mit ihrem Zertifikat gegenüber
allen Servern und Diensten aus. Dazu müssen diese eine
Authentifizierung der Benutzer durch Zertifikate unterstützen. Der
Benutzer meldet sich sowohl bei seinem lokalen Rechner als auch danach
bei allen Servern und Diensten mittels seines Zertifikats an.
Wenn Server und Dienste beteiligt sind, die keine
Benutzerauthentifizierung
durch Zertifikate erlauben, kann ein Hybridsystem verwendet werden:
- Die Anmeldung beim zentralen Authentifizierungsserver bzw.
der zentralen Benutzerverwaltung erfolgt mittels Zertifikat. Auch bei
allen Servern und Diensten, die eine Authentifizierung der Benutzer
durch Zertifikate unterstützen, erfolgt die Anmeldung weiterhin mit dem
Zertifikat. Für die Anmeldung bei allen anderen Servern und Diensten
wird das Logon-Ticket des Authentifizierungsservers bzw. die Anmeldung
durch die Benutzerverwaltung verwendet.
Authentifizierung durch Zertifikat
Die Authentifizierung erfolgt nach dem
Challenge-Response-Verfahren: Eine
vom Server gesendete zufällige Zeichenkette (Challenge) wird mit dem
privaten Schlüssel des Benutzers digital signiert und das Ergebnis
(die Response) an den Server zurückgeschickt. Dieser prüft die
Signatur mit dem zertifizierten öffentlichen Schlüssel des
Benutzers. Ist sie korrekt, gilt der Benutzer als authentifiziert.
In der nächsten Woche gibt es ein Weihnachtsspecial:
"Lesestoff für lange Winterabende...".
In der
nächsten
regulären Folge
von "About Security" werden dann die Vor- und Nachteilen sowie
die Sicherheit des Single Sign-On behandelt.
Wenn
Sie Fragen oder Themenvorschläge haben, können Sie
diese gerne an die angegebene E-Mail-Adresse senden oder im Security-Forum
einbringen!
Carsten
Eilers
About Security – Übersicht zum aktuellen Thema "Kryptographie
– Anwendungen"