Kerberos

Lesedauer: 7 Minuten

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 von Kerberos 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 stellt Service Tickets aus, die es Benutzern ermöglichen, auf bestimmte Netzwerkdienste zuzugreifen.

In einer Microsoft Active Directory-Umgebung gibt es ein spezielles Konto namens KRBTGT. Dieses Konto stellt im Microsoft AD das Key Distribution Center (KDC) dar und ist für die Ausgabe von Ticket Granting Tickets (TGT) zuständig. Der diesem Konto zugeordnete Schlüssel wird als KDC-Schlüssel oder krbtgt-Schlüssel bezeichnet. Mit diesem Schlüssel werden die an die Benutzer ausgegebenen TGTs verschlüsselt.

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 vom AS 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 das PAC 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 das PAC nicht manipuliert wurde und tatsächlich vom vertrauenswürdigen KDC 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. Der Master Key wird aus dem Passwort des Benutzers oder einem speziellen Schlüssel des Dienstes abgeleitet und ist nur dem Benutzer oder Dienst und dem KDC 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 vom KDC 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. Der TGT-Key ist ein spezieller Session 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. Der Service Key wird verwendet, um das vom TGS an den Client ausgegebene Service Ticket zu verschlüsseln. Der Service 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) des KDC, 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.

Nonce: In der Kryptographie ist eine Nonce eine Zahl, die verwendet wird, um private Kommunikation zu schützen, indem sie Wiederholungsangriffe verhindert. Nonces sind Zufalls- oder Pseudozufallszahlen, die von Authentifizierungsprotokollen an die Kommunikation angehängt werden. Manchmal enthalten diese Zahlen auch einen Zeitstempel, um die Flüchtigkeit der Kommunikation zu verdeutlichen. Wenn nachfolgende Anfragen an einen Server, z.B. bei der Digest-Zugangsauthentifizierung über Benutzername und Passwort, die falsche Nonce und/oder den falschen Zeitstempel enthalten, werden sie abgewiesen. Auf diese Weise verhindern Nonces wiederholte Angriffe, die auf der Nachahmung früherer Kommunikationen beruhen, um Zugang zu erlangen.

  • KRB_AS_REP (Authentication Service Reply):
    Der AS antwortet auf die AS_REQ des Clients und sendet das TGT zusammen mit einem Session Key. Das TGT ist verschlüsselt mit dem krbtgt-Schlüssel des KDC und enthält Informationen über den Benutzer und die Gültigkeitsdauer des Tickets. Der Session Key ist verschlüsselt mit dem Passwort des Benutzers.
  • KRB_TGS_REQ (Ticket Granting Service Request):
    Der Client verwendet das TGT, um vom Ticket Granting Service (TGS) ein Service Ticket für einen bestimmten Dienst zu erhalten. Der TGS_REQ enthält das TGT und eine Anfrage für den gewünschten Dienst.
  • KRB_TGS_REP (Ticket Granting Service Reply):
    Der TGS antwortet auf den TGS_REQ des Clients und stellt ein Service Ticket aus. Dieses Ticket ist verschlüsselt mit dem Schlüssel des angeforderten Dienstes. Zusätzlich erhält der Client einen Service 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 das Service Ticket und einen aus Usernamen und Timestamp bestehenden Authenticator, der mit dem Service Session Key verschlüsselt ist. Der Authenticator 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 den AP_REQ des Clients und eine Bestätigung zurück, die mit dem Service 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 und Active Directory, die verwendet wird, um das Privilege Attribute Certificate (PAC) zu überprüfen. Diese Überprüfung erfolgt typischerweise zwischen einem Server, der das PAC erhalten hat, und dem Key Distribution Center (KDC). Das KDC antwortet darauf mit einem STATUS_SUCCESS bzw. einem STATUS_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.

Loading

Updated on 21. Juli 2024
Was this article helpful?

Related Articles