Kerberos ist ein Netzwerk-Authentifizierungsprotokoll, das entwickelt wurde, um eine sichere Authentifizierung zwischen Client und Server zu ermöglichen. Es basiert auf symmetrischer Kryptographie und der Verwendung einer vertrauenswürdigen dritten Partei, dem Key Distribution Center (KDC).
Bestandteile
- Client: Der Client ist die Entität (z.B. ein Benutzer oder ein Gerät), die auf Netzwerkdienste zugreifen möchte. Der Client kommuniziert mit dem
KDC,um Authentifizierungstickets zu erhalten. - Application Server (AP): Der Server stellt die gewünschten Dienste bereit, auf die der Client zugreifen möchte. Der Server überprüft die vom Client bereitgestellten Tickets, um sicherzustellen, dass der Zugriff autorisiert ist.
- KDC (Key Distribution Center): Das
KDCist die zentrale Komponente vonKerberosund besteht aus zwei Hauptdiensten:- Authentication Server (AS): Der
ASauthentifiziert Benutzer und stellt ein Ticket Granting Ticket (TGT) aus, das der Benutzer für den Zugriff auf andere Dienste verwenden kann. - Ticket Granting Service (TGS): Der
TGSstelltService Ticketsaus, die es Benutzern ermöglichen, auf bestimmte Netzwerkdienste zuzugreifen.
- Authentication Server (AS): Der
Tickets
Tickets sind kryptografische Datenstrukturen, die vom KDC ausgegeben werden und die Identität des Clients sowie die Berechtigung zum Zugriff auf Netzwerkressourcen nachweisen. Es gibt zwei Arten von Tickets:
- Ticket Granting Ticket
(TGT): Ein Ticket, das vomASausgestellt wird und es dem Client ermöglicht, weitere Tickets vom TGS zu erhalten. - Service Ticket: Ein Ticket, das vom
TGSausgestellt wird und dem Client den Zugriff auf einen bestimmten Dienst erlaubt.
PAC
Das Privilege Attribute Certificate (PAC) ist eine Komponente der Kerberos-Authentifizierung, die insbesondere in Umgebungen mit Microsoft Active Directory verwendet wird. Das PAC enthält zusätzliche Informationen über Benutzerberechtigungen und Gruppenmitgliedschaften, die von Kerberos-Servern zur Durchsetzung von Zugriffskontrollen verwendet werden.
Hauptmerkmale des PAC:
- Zusätzliche Autorisierungsinformationen: Das
PACenthält Informationen wie Benutzer-SIDs (Security Identifiers), Gruppen-SIDs und Berechtigungen, die für die Durchsetzung von Zugriffskontrollen auf Ressourcen erforderlich sind. Diese Informationen helfen den Diensten zu bestimmen, welche Aktionen ein Benutzer durchführen darf. - Integrierter Teil des Kerberos-Tickets: Das
PACwird vom Domain Controller generiert und in das Kerberos-Ticket integriert, das dem Benutzer ausgestellt wird. Dies bedeutet, dass dasPACzusammen mit dem Ticket übertragen wird und die Autorisierungsinformationen immer verfügbar sind, wenn das Ticket in Verwendung ist. - Digitale Signaturen: Um die Integrität und Authentizität des
PACzu gewährleisten, wird es digital signiert. Anhand dieser Signaturen kann der Empfänger des Tickets überprüfen, ob dasPACnicht manipuliert wurde und tatsächlich vom vertrauenswürdigenKDCstammt. - Effiziente Zugriffskontrolle: Durch die Einbettung des
PACin das Kerberos-Ticket können Dienste sofortige Autorisierungsentscheidungen treffen, ohne dass zusätzliche Anfragen an den Domain Controller erforderlich sind. Dies verbessert die Effizienz und Geschwindigkeit der Zugriffskontrolle.
Encryption Keys
Kerberos verwendet verschiedene kryptographische Schlüssel, um die Sicherheit der Authentifizierung und Kommunikation zu gewährleisten. Die wichtigsten Schlüsseltypen sind:
- Master Key (Principal Key): Dies ist ein langfristiger Schlüssel, der für jeden Benutzer (
Principal) und Dienst individuell ist. DerMaster Keywird aus dem Passwort des Benutzers oder einem speziellen Schlüssel des Dienstes abgeleitet und ist nur dem Benutzer oder Dienst und demKDCbekannt. - Session Key: Ein temporärer Schlüssel, der zwischen Client und Server (oder zwischen Client und
KDC) für die Dauer einer Sitzung verwendet wird.Session Keyswerden verwendet, um die Vertraulichkeit und Integrität der Kommunikation während einer Sitzung zu gewährleisten. Sie werden in der Regel vomKDCgeneriert und sicher an die beteiligten Parteien übermittelt. - Ticket Granting Ticket (TGT) Key: Dieser Schlüssel wird vom Authentication Server (
AS) verwendet, um das Ticket Granting Ticket (TGT) zu verschlüsseln. DerTGT-Keyist ein speziellerSession Key, der es dem Client ermöglicht, sich später beim Ticket Granting Service (TGS) zu authentifizieren und weitere Service Tickets zu erhalten. - Service Key: Ein Schlüssel, der zwischen dem
TGSund dem angeforderten Dienst ausgetauscht wird. DerService Keywird verwendet, um das vomTGSan den Client ausgegebeneService Ticketzu verschlüsseln. DerService Keystellt sicher, dass nur der angeforderte Dienst das Ticket entschlüsseln und die Authentizität des Clients überprüfen kann.
Messages
Der Kerberos-Authentifizierungsprozess umfasst mehrere Nachrichten (Messages), die zwischen dem Client, dem Key Distribution Center (KDC), und dem Server ausgetauscht werden. Nachfolgend sind die wichtigsten Nachrichten und ihre Rolle im Prozess aufgeführt:
- KRB_AS_REQ (Authentication Service Request):
Der Client sendet eine Anfrage an den Authentication Server (AS) desKDC, um ein Ticket Granting Ticket (TGT) zu erhalten. Diese Nachricht enthält typischerweise den Benutzernamen und einen Zeitstempel, der verschlüsselt mit dem Passwort des Benutzers ist.

- KRB_AS_REP (Authentication Service Reply):
DerASantwortet auf dieAS_REQdes Clients und sendet dasTGTzusammen mit einemSession Key. DasTGTist verschlüsselt mit demkrbtgt-SchlüsseldesKDCund enthält Informationen über den Benutzer und die Gültigkeitsdauer des Tickets. DerSession Keyist verschlüsselt mit dem Passwort des Benutzers.

- KRB_TGS_REQ (Ticket Granting Service Request):
Der Client verwendet dasTGT, um vom Ticket Granting Service (TGS) einService Ticketfür einen bestimmten Dienst zu erhalten. DerTGS_REQenthält dasTGTund eine Anfrage für den gewünschten Dienst.

- KRB_TGS_REP (Ticket Granting Service Reply):
DerTGSantwortet auf denTGS_REQdes Clients und stellt einService Ticketaus. Dieses Ticket ist verschlüsselt mit dem Schlüssel des angeforderten Dienstes. Zusätzlich erhält der Client einenService Session Keyfür die Kommunikation mit dem Dienst.

- KRB_AP_REQ (Application Request):
Der Client sendet eine Anfrage an den Dienst (AP), den er nutzen möchte. Diese Nachricht enthält dasService Ticketund einen aus Usernamen und Timestamp bestehendenAuthenticator, der mit demService Session Keyverschlüsselt ist. DerAuthenticatorenthält eine Reihe von Informationen, einschließlich eines Zeitstempels, um Replay-Angriffe zu verhindern.

- KRB_AP_REP (Optional):
Optional sendet der Dienst (AP) auf denAP_REQdes Clients und eine Bestätigung zurück, die mit demService Session Keyverschlüsselt ist. Diese Bestätigung stellt sicher, dass der Dienst den Client erfolgreich authentifiziert hat.
PAC Messages
- KRB_VERIFY_PAC_REQUEST (Optional): Bezieht sich auf eine spezifische Nachricht oder Anforderung im Kontext von
KerberosundActive Directory, die verwendet wird, um dasPrivilege Attribute Certificate (PAC)zu überprüfen. Diese Überprüfung erfolgt typischerweise zwischen einem Server, der dasPACerhalten hat, und demKey Distribution Center (KDC). DasKDCantwortet darauf mit einemSTATUS_SUCCESSbzw. einemSTATUS_FAILURE.
Ablauf der Kerberos Authentifizierung

Fazit
Kerberos ist ein robustes Netzwerk-Authentifizierungsprotokoll, das speziell entwickelt wurde, um die Sicherheit und Integrität der Kommunikation in vernetzten Umgebungen zu gewährleisten. Durch die Verwendung symmetrischer Kryptographie und eines vertrauenswürdigen Partners, dem Key Distribution Center (KDC), bietet Kerberos eine sichere Methode zur Authentifizierung von Benutzern und Diensten.
![]()