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
KDC
ist die zentrale Komponente vonKerberos
und besteht aus zwei Hauptdiensten:- Authentication Server (AS): Der
AS
authentifiziert 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
TGS
stelltService Tickets
aus, 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 vomAS
ausgestellt wird und es dem Client ermöglicht, weitere Tickets vom TGS zu erhalten. - Service Ticket: Ein Ticket, das vom
TGS
ausgestellt 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
PAC
enthä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
PAC
wird vom Domain Controller generiert und in das Kerberos-Ticket integriert, das dem Benutzer ausgestellt wird. Dies bedeutet, dass dasPAC
zusammen 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
PAC
zu gewährleisten, wird es digital signiert. Anhand dieser Signaturen kann der Empfänger des Tickets überprüfen, ob dasPAC
nicht manipuliert wurde und tatsächlich vom vertrauenswürdigenKDC
stammt. - Effiziente Zugriffskontrolle: Durch die Einbettung des
PAC
in 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 Key
wird aus dem Passwort des Benutzers oder einem speziellen Schlüssel des Dienstes abgeleitet und ist nur dem Benutzer oder Dienst und demKDC
bekannt. - 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 Keys
werden verwendet, um die Vertraulichkeit und Integrität der Kommunikation während einer Sitzung zu gewährleisten. Sie werden in der Regel vomKDC
generiert 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-Key
ist 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
TGS
und dem angeforderten Dienst ausgetauscht wird. DerService Key
wird verwendet, um das vomTGS
an den Client ausgegebeneService Ticket
zu verschlüsseln. DerService Key
stellt 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):
DerAS
antwortet auf dieAS_REQ
des Clients und sendet dasTGT
zusammen mit einemSession Key
. DasTGT
ist verschlüsselt mit demkrbtgt-Schlüssel
desKDC
und enthält Informationen über den Benutzer und die Gültigkeitsdauer des Tickets. DerSession Key
ist 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 Ticket
für einen bestimmten Dienst zu erhalten. DerTGS_REQ
enthält dasTGT
und eine Anfrage für den gewünschten Dienst.
- KRB_TGS_REP (Ticket Granting Service Reply):
DerTGS
antwortet auf denTGS_REQ
des Clients und stellt einService Ticket
aus. Dieses Ticket ist verschlüsselt mit dem Schlüssel des angeforderten Dienstes. Zusätzlich erhält der Client einenService Session Key
fü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 Ticket
und einen aus Usernamen und Timestamp bestehendenAuthenticator
, der mit demService Session Key
verschlüsselt ist. DerAuthenticator
enthä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_REQ
des Clients und eine Bestätigung zurück, die mit demService Session Key
verschlü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
Kerberos
undActive Directory
, die verwendet wird, um dasPrivilege Attribute Certificate (PAC)
zu überprüfen. Diese Überprüfung erfolgt typischerweise zwischen einem Server, der dasPAC
erhalten hat, und demKey Distribution Center (KDC)
. DasKDC
antwortet darauf mit einemSTATUS_SUCCESS
bzw. 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.