Samstag, 22. Januar 2011


Topthema

Donnerstag, 21. Dezember 2006 | Topthema

About Security #86: Sicheres Einloggen mit Single Sign-On

(Link zum Artikel: http://www.entwickler.de/php/kolumnen/033303)

'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:

N E U ! Security aktuell
Täglich aktuelle Security-Infos!

  • 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:

About Security: Die komplette Serie
  • 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"

Kommentare

Folgende Links könnten Sie auch interessieren

  • PHP 5 & MySQL 5  [25.04.2005]
    [http://entwickler.de/zonen/portale/psecom,id,102,buch,325,.html]
  • Einsteigen und durchstarten mit PHP 5  [22.11.2005]
    [http://entwickler.de/zonen/portale/psecom,id,102,buch,462,.html]
  • Zend Framework  [06.05.2008]
    [http://entwickler.de/zonen/portale/psecom,id,102,buch,734,.html]
  • PHP 5 in Practice  [12.03.2007]
    [http://entwickler.de/zonen/portale/psecom,id,102,buch,610,.html]
  • IT-Sicherheit  [19.04.2007]
    [http://entwickler.de/zonen/portale/psecom,id,102,buch,616,.html]