Authentication
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.