Sun Enterprise Authentication Mechanism Handbuch

Zugriff auf einen Service mit SEAM erhalten

Damit ein Benutzer Zugriff auf einen bestimmten Service auf einem bestimmten Server erhält, benötigt er zwei Dinge. Als erstes benötigt er einen Berechtigungsnachweis für den Ticket-granting-Service (auch als TGS bezeichnet). Nachdem der Ticket-granting-Service diesen Berechtigungnachweis entschlüsselt hat, erstellt er einen zweiten Berechtigungsnachweis für den Server, auf den der Benutzer zugreifen möchte. Der zweite Berechtigungsnachweis kann dann dazu verwendet werden, den Zugriff auf den Service des Servers anzufordern. Nachdem der Server den zweiten Berechtigungsnachweis erfolgreich entschlüsselt hat, wird dem Benutzer der Zugriff gewährt. Dieser Prozeß wird unten eingehender beschrieben.

Erhalten eines Berechtigungsnachweises für den Ticket-granting-Service

  1. Der Client sendet eine Anfrage für einen bestimmten Benutzer-Hauptbenutzer an den Authentisierungs-Server, um den Authentisierungsprozeß zu starten. Diese Anfrage wird unverschlüsselt gesendet. Da keine sicherheitsrelevanten Informationen in der Anfrage enthalten sind, ist eine Verschlüsselung nicht notwendig.

  2. Wenn die Anfrage beim Authentisierungs-Service eingegangen ist, wird der Hauptbenutzername des Benutzers in der KDC-Datenbank überprüft. Wenn ein Hauptbenutzer übereinstimmt, erhält der Authentisierungs-Service den privaten Schlüssel für diesen Hauptbenutzer. Dann generiert der Authentisierungs-Service einen Sitzungsschlüssel (z. B. Sitzungsschlüssel 1, der vom Client und dem Ticket-granting-Service verwendet wird sowie ein Ticket für den Ticket-granting-Service (Ticket 1). Dieses Ticket wird auch als Ticket-granting Ticket (TGT) bezeichnet. Sowohl der Sitzungsschlüssel als auch das Ticket werden mit dem privaten Schlüssel des Benutzers verschlüsselt und die Informationen anschließend an den Client zurück gesendet.

  3. Der Client verwendet diese Informationen, um Sitzungschlüssel 1 und Ticket 1 zu entschlüsseln, wobei der private Schlüssel für den Benutzer-Hauptbenutzer verwendet wird. Da der private Schlüssel nur dem Benutzer und der KDC-Datenbank bekannt sein sollte, müssten die Informationen in dem Paket sicher sein. Der Client speichert die Informationen im Berechtigungsnachweis-Cache.

Normalerweise wird ein Benutzer während dieses Vorgangs nach seinem Paßwort gefragt. Wenn das eingegebene Paßwort mit dem zum Generieren des in der KDC-Datenbank gespeicherten privaten Schlüssels verwendeten Paßworts übereinstimmt, dann kann der Client die vom Authentisierungs-Service gesendeten Informationen erfolgreich entschlüsseln. Nun verfügt der Client über einen Berechtigungsnachweis, der mit dem Ticket-granting Service verwendet werden kann. Der Client ist nun dazu bereit, einen Berechtigungsnachweis für einen Server anzufordern.

Abbildung 7-2 Erhalten eines Berechtigungsnachweises für den Ticket-granting-Service

Graphic

Erhalten eines Berechtigungsnachweises für einen Server

  1. Damit ein Client den Zugriff auf einen bestimmten Server anfordern kann, muß er zuerst einen Berechtigungsnachweis für diesen Server vom Authentisierungs-Service erhalten haben (siehe "Erhalten eines Berechtigungsnachweises für den Ticket-granting-Service"). Der Client sendet dann eine Anfrage an den Ticket-granting-Service, die den Service-Hauptbenutzernamen (Ticket 1) sowie einen mit dem Sitzungsschlüssel 1 verschlüsselten Authentisierer einbezieht. Ticket 1 wurde ursprünglich vom Authentisierungs-Service mit dem Sitzungsschlüssel des Ticket-granting-Services verschlüsselt.

  2. Da der Sitzungsschlüssel des Ticket-granting-Services dem Ticket-granting-Service bekannt ist, kann Ticket 1 entschlüsselt werden. Die in Ticket 1 enthaltenen Informationen umfassen auch Sitzungsschlüssel 1, damit der Ticket-granting-Service den Authentisierer entschlüsseln kann. Zu diesem Zeitpunkt wird der Benutzer-Hauptbenutzer mit dem Ticket-granting-Service authentisiert.

  3. Nachdem die Authentisierung erfolgreich durchgeführt wurde, generiert der Ticket-granting-Service einen Sitzungschlüssel für den Benutzer-Hauptbenutzer und den Server (Sitzungsschlüssel 2) sowie ein Ticket für den Server (Ticket 2). Sitzungsschlüssel 2 und Ticket 2 werden dann mit Sitzungsschlüssel 1 verschlüsselt. Da Sitzungsschlüssel 1 nur dem Client und dem Ticket-granting-Service bekannt sind, ist diese Information sicher und kann problemlos über das Netzwerk gesendet werden.

  4. Wenn der Client dieses Informationspaket empfängt, wird es von ihm mit Sitzungsschlüssel 1 entschlüsselt, der im Berechtigungsnachweis-Cache gespeichert wurde. Der Client hat somit einen Berechtigungsnachweis erhalten, der für den Server eingesetzt werden kann. Nun kann der Client den Zugriff auf einen bestimmten Service auf diesem Server anfordern.

Abbildung 7-3 Erhalten eines Berechtigungsnachweises für einen Server

Graphic

Zugriff erhalten auf einen bestimmten Service

  1. Der Client muß zuerst einen Berechtigungsnachweis für den Ticket-granting-Service vom Authentisieruns-Server sowie einen Server-Berechtigungsnachweis vom Ticket-granting-Service erhalten, um Zugriff auf einen bestimmten Service anfordern zu können (siehe "Erhalten eines Berechtigungsnachweises für den Ticket-granting-Service" und "Erhalten eines Berechtigungsnachweises für einen Server"). Der Cient kann eine Anfrage an den Server senden, die Ticket 2 und einen weiteren Authentisierer einbezieht. Der Authentisierer wird mit Sitzungsschlüssel 2 verschlüsselt.

  2. Ticket 2 wurde vom Ticket-granting-Service mit dem Service-Schlüssel für diesen Service verschlüsselt. Da der Service-Schlüssel dem Service-Hauptbenutzer bekannt ist, kann der Service Ticket 2 entschlüsseln und Sitzungsschlüssel 2 abrufen. Sitzungsschlüssel 2 kann anschließend dazu verwendet werden, den Authentisierer zu entschlüsseln. Wenn der Authentisierer erfolgreich entschlüsselt wurde, wird dem Client der Zugriff auf den Service gewährt.

Abbildung 7-4 Zugriff erhalten auf einen bestimmten Service

Graphic