Authentication

From
Revision as of 17:24, 24 March 2006 by Jnielsen (talk | contribs)
Jump to navigation Jump to search

Authentication befasst sich mit der Bestätigung einer Identität und der Überprüfung dieser Bestätigung auf Korrektheit.
Authentication ist ein zentraler Bestandteil des Anmeldevorgangs in einem (P2P-)Netzwerk.

Allgemein

Die Authentifizierung, gegenüber eines Systems, kann auf verschiedene Weise erfolgen:

Methode Beispiel
man hat etwas Schlüssel
man weiß etwas Passwort
man ist etwas Biometrische Merkmale
man ist an einem Ort ein bestimmter Rechner
man kann etwas Unterschrift


Die Verwendung von mehr als einer Methode wird als n-Factor-Authentication bezeichnet, wobei n für die Anzahl der verwendeten Methoden steht.

Allgemein unterscheidet man zwei grundlegende Typen der Authentication. Zum Einen die Standard Authentication gegenüber eines einzelnen Systems, wie zum Beispiel die Anmeldung an dem Heimrechner. Zum Anderen das Single Sign On (SSO). Hierbei authentifiziert sich der Nutzer gegenbüber einer Menge von Systemen, was eine Reduzierung der administrativen Last zur Folge hat und außerdem die verlinkung von Applikationen untereinander ermöglicht. Beispielsweise könnte es eine Datenbank für Bilder von Mitarbeitern einer Organisation, sowie eine Datenbank für Mitarbeiter und deren Adresse auf verschiedenen Systemen geben. Dabei würde die Verlinkung ermöglichen, auf beide Datenbanken zuzugreifen, ohne sich jeweils neu anmelden zu müssen. Ein populäres Beispiel für SSO ist das Microsoft Passport Netzwerk.

Der Begriff Authorization wird häufig mit Authentication gleichgesetzt, bezeichnet allerdings die Zuweisung und Überprüfung von Zugriffsrechten auf Daten und Dienste an Nutzer nach einer erfolgreichen Authentication.

Kerberos

In einem offenen Netzwerk kann das Problem auftreten, dass eine Workstation, bzw. ein Server (Service), nicht eindeutig identifizieren kann. Dieses Problem versucht Kerberos zu beheben, indem es eine sichere und einheitliche Authentifizierung im ungesicherten TCP/IP-Netzwerk bietet. Kerberos setzt auf der Idee des SSO auf.

Geschichte von Kerberos

[wegen Streitigkeiten unter den Autoren noch nicht bearbeitet]

Funktionsweise

Zentraler Server

Das Kerberos-System besitzt einen zentralen Server mit optionalen Spares. Dieser Server führt eine Datenbank über alle Clients und deren Private Keys (z.B. ein verschlüsseltes Passwort). Weiterhin generiert der zentrale Server, als initialen Schritt bei der Authentifizierung, Tickets sowie Session Keys für den Ticket Granting Server(TGS).
Er bietet außerdem drei Sicherheitsstufen an:

  • einmalige Authentifizierung nur bei Anmeldung
  • Authentifizierung jeder Nachricht
  • Authentifizierung jeder Nachricht mit zusätzlicher Verschlüsselung

Ticket Granting Server

Der TGS ist dafür zuständig, dem Client, Tickets für Dienste, die er in Anspruch nehmen möchte, auszustellen. Um den TGS in Anspruch nehmen zu können, benötigt der Client vom zentralen Server ein Initialticket.
Zusätlich kennt der TGS die Private Keys aller Server.

Session Keys

Session Keys werden für die Verschlüsselung von Nachrichten zwischen zwei konkreten Parteien genutzt.

Ticket

Ein Ticket wird benötigt, um sich gegenüber eines Serices auszuweisen und seinen Dienst in Anspruch nehmen zu dürfen. Mit Hilfe des Tickets wird sichergestellt, dass der Client berechtigt ist, den geforderten Service zu nutzen. Jedes Ticket ist nur für einen begrenzten Zeitraum gültig und wie folgt aufgebaut:

  • Name des Service der in Anspruch genommen werden soll
  • Name des Clients
  • Adresse des Clients
  • einen Zeitstempel (timestamp)
  • Lebenszeit des Tickets
  • Session Key für Server (mit gefordertem Service) und Client

Das Ticket ist mit dem Privaten Schlüssel des Servers (mit gefordertem Service) kodiert.

Authenticator

Der Authenticator stellt sicher, dass der Client auch der ursprüngliche Empfänger des Tickets ist. Im Unterschied zum Ticket kann der Authenticator nur einmal verwendet werden. Dieser wird jedesmal vom Client erstellt, sobald er einen Service nutzen möchte.
Der Authenticator hat folgenden Aufbau:

  • Name des Clients
  • Adresse des Clients
  • einen Zeitstempel (timestamp)

Der Authenticator wird mit dem Session Key vom Client und dem jeweiligen Server verschlüsselt. Da der Authenticator vom Client erstellt wird und nur dieser, sowie der angesprochene Server, den Session Key besitzen, ist sichergestellt, dass der Client authorisiert ist.

Protokolle

Kerberos verwendet die folgenden drei Protokolle während der Authentifizierung.

Initial Ticket

Abb1.jpg

Zunächst muss der Nutzer seinen User-Namen eingeben, danach wird im Hintergrund automatisch eine Anfrage an den Zentralen Server(ZS) geschickt. Diese enthält den User-Namen und den den Service der in Anspruch genommen werden soll. In diesem ist das der Ticket Granting Service. Nach Erhalt dieser Anfrage wird geprüft ob der User-Name in der Datenbank vorkommt.

Abb2.jpg

Wenn das der FAll ist, schickt der ZS dem Client ein Session Key für ihn und den TGS, sowie ein Ticket für den TGS. Das ganze wird mit dem privaten Schlüssel des Clients kodiert. Der Client wird nun aufgefordert sein Passwort einzugeben. Mit Hilfe dieses Passwortes wird die Nachricht vom ZS dekodiert und gespeichert. Somit hat der Client die Möglichkeit mit dem TGS zu kommunizieren.

Server Ticket

Abb5.jpg

Um einen Service nutzen zu können, benötigt der Client ein Ticket vom TGS. Um dies zu erhalten, sendet der Client, wie in der Abbildung gezeigt, eine Anfrage an den TGS. Die Anfrage enthält:

  • den Namen des Servic, den der Client nutzen möchte
  • das Ticket
  • den Authenticator

Der TGS entschlüsselt das Ticket mit seinem Private Key und erhält den Session Key. Mit Hilfe dieses Session Key kann er nun, den Authenticator entschlüsseln, die User-Daten mit denen im Ticket vergleichen und somit den Client verifizieren.
Wenn kein Fehler aufgetreten ist, sendet der TGS eine mit dem Session Key verschlüsselte Nachricht an den Client:

Abb6.jpg

Die Nachricht enthält das angeforderte Ticket für den Service und einen Session Key für den entsprechenden Server und den Client. Wobei die Ticket-Lebenszeit das Minimum zwischen der verbleibenden TGS-Ticket-Lebenszeit und der Standard-Lebenszeit des Tickets für einen Service ist.
Der User ist nun in der Lage einen Service anzufordern.

Request Service

Um einen Service nutzen zu können, stellt der Client eine Anfrage an den entsprechenden Server:

Abb3.jpg

Die Anfrage besteht aus dem Authenticator und dem Ticket. Der Server entschlüsselt das Ticket mit seinem Private Key. Anschließend verifiziert er den Client mit Hilfe des Authenticator. Der Server vergleicht zusätzlich den Zeitstempel im Authenticator mit seiner aktuellen Zeit. Ist die Differenz zu groß, wird die Anfrage verworfen. Erfolgreiche Anfragen können außerdem gespeichert werden um Replay-Attacken zu verhindern. Damit der Server sich gegenüber dem Client authentifizieren kann, schickt dieser ebenfalls eine Nachricht.

Abb4.jpg

Diese Nachricht enthält den um eins erhöhten Zeitstempel des Authenticator, welcher mit dem Session Key verschlüsselt ist. Nun ist der Client in der Lage, die beiden Zeitstemple zu vergleichen. Ist der Empfangene um eins höher, ist der Server der Gewünschte.

Gesamtüberblick

Diese Abbildung beschreibt die komplette Kommunikation zwischen den einzelnen Parteien, die für die Nutzung eines Service nötig ist.

 ::Abb7.jpg
1 Anfrage für TGS-Ticket
2 Ticket für TGS
3 Anfrage für Server-Ticket
4 Ticket für Server
5 Anfrage nach Service
6 Verifizierung des Servers

CorSSO

Weblinks