Im Jahr 2022 wurde viel über das Privileged-Attribute-Zertifikat (PAC) gesprochen, nur leider ist vielen nicht bewusst, was das PAC ist und wie das mit dem Kerberos Ticket zusammenhängt.
Ein Privileged-Attribute-Zertifikat (PAC) ist ein Konzept aus der Computer- und Netzwerksicherheit, das insbesondere im Zusammenhang mit Authentifizierungs- und Autorisierungsprozessen verwendet wird. Um das Thema gründlich zu verstehen, ist es wichtig, die Rolle des PAC im Kontext von Microsofts Kerberos-Authentifizierungsprotokoll zu kennen.
Was ist ein Privileged-Attribute-Zertifikat (PAC)?
Das Privileged-Attribute-Zertifikat (PAC) ist ein spezielles Datenpaket, das im Rahmen der Kerberos-Authentifizierung verwendet wird, insbesondere in Microsoft-Umgebungen. Es enthält Informationen, die benötigt werden, um die Zugriffsrechte eines Benutzers innerhalb eines Active Directory (AD)-Netzwerks zu bestimmen.
Kontext: Kerberos-Authentifizierung
Kerberos ist ein Netzwerk-Authentifizierungsprotokoll, das sichere Kommunikation zwischen Benutzern und Diensten ermöglicht. Es verwendet “Tickets”, um Benutzer zu authentifizieren und deren Zugriffsrechte zu verifizieren, ohne Passwörter über das Netzwerk senden zu müssen.
- Ticket Granting Ticket (TGT): Ein Ticket, das einem Benutzer nach erfolgreicher Authentifizierung durch den Kerberos-Schlüsselverteilungscenter (KDC) ausgestellt wird. Es dient dazu, Zugang zu weiteren Diensten zu erhalten.
- Service Ticket: Ein Ticket, das der Benutzer von dem KDC erhält, um Zugriff auf einen bestimmten Dienst zu bekommen.
Die Rolle des PAC
Das PAC wird in das Service Ticket eingebettet und enthält umfangreiche Informationen über die Rechte und Gruppenmitgliedschaften des Benutzers, die für die Autorisierungsentscheidungen auf dem Zielsystem notwendig sind.
Inhalte eines PAC
Ein PAC enthält typischerweise folgende Informationen:
- Benutzer-Gruppenmitgliedschaften: Eine Liste der Gruppen, denen der Benutzer angehört. Dies ist entscheidend, da die Mitgliedschaft in bestimmten Gruppen oft bestimmt, welche Ressourcen ein Benutzer im Netzwerk zugreifen darf.
- Benutzerrechte (User Rights): Spezifische Berechtigungen, die dem Benutzer zugewiesen sind, wie zum Beispiel das Recht, sich lokal anzumelden oder Prozesse zu beenden.
- Logon Information: Daten wie das Datum und die Uhrzeit der letzten Anmeldung des Benutzers.
- Ticket Encryption: Das PAC ist verschlüsselt und signiert, um Manipulationen zu verhindern. Es enthält auch kryptografische Prüfsummen, um seine Integrität zu gewährleisten.
- Sicherheits-IDs (SIDs): Sicherheits-IDs sind eindeutige Bezeichner, die Benutzer, Gruppen oder Computer in einem Netzwerk identifizieren. Das PAC enthält sowohl die SID des Benutzers als auch die SIDs aller Gruppen, denen der Benutzer angehört.
Wie funktioniert das PAC in der Praxis?
Wenn ein Benutzer auf einen Dienst in einem Active Directory-Netzwerk zugreift, authentifiziert er sich zuerst beim KDC, das ihm ein TGT ausstellt. Wenn der Benutzer nun einen bestimmten Dienst aufruft (z. B. eine Datei oder eine Datenbank), verwendet er das TGT, um ein Service Ticket anzufordern. Das KDC fügt dem Service Ticket ein PAC hinzu, das dann an den Dienst gesendet wird.
Der Dienst entschlüsselt das PAC, um die Gruppenmitgliedschaften und Berechtigungen des Benutzers zu überprüfen, bevor er entscheidet, ob der Benutzer Zugriff auf die angeforderte Ressource erhalten soll.
Sicherheitsaspekte
Das PAC ist ein zentrales Element in der Sicherheitsinfrastruktur von Active Directory, da es die Informationen enthält, die bestimmen, auf welche Ressourcen ein Benutzer zugreifen kann. Da das PAC verschlüsselt ist und Signaturen enthält, ist es gegen Manipulationen geschützt. Eine unbefugte Änderung des PAC würde dazu führen, dass die Prüfsummen nicht mehr übereinstimmen, wodurch das Ticket ungültig wird.
PAC und Autorisierung
Autorisierung ist der Prozess, der bestimmt, ob ein authentifizierter Benutzer Zugriff auf eine bestimmte Ressource hat. Das PAC spielt hier eine entscheidende Rolle, indem es die Informationen liefert, die der angefragte Dienst benötigt, um diese Entscheidung zu treffen. Ein Dienst vergleicht die im PAC enthaltenen Gruppen und Berechtigungen mit den Zugriffsregeln der Ressource, um festzustellen, ob der Zugriff gewährt oder verweigert wird.
Wie wird das Privileged-Attribute-Zertifikat (PAC) dem Kerberos Ticket hinzugefügt?
Das Privileged-Attribute-Zertifikat (PAC) wird während des Kerberos-Authentifizierungsprozesses vom Key Distribution Center (KDC) dem Kerberos-Ticket hinzugefügt. Um den Prozess besser zu verstehen, betrachten wir die Kerberos-Authentifizierung in Microsoft Active Directory-Umgebungen Schritt für Schritt.
1. Initiale Authentifizierung (AS-REQ und AS-REP)
- Wenn ein Benutzer sich an einem Netzwerk anmeldet, sendet er eine Authentifizierungsanfrage (AS-REQ, Authentication Service Request) an das KDC.
- Das KDC überprüft die Identität des Benutzers, in der Regel durch Überprüfung des Passwort-Hashes.
- Nach erfolgreicher Authentifizierung stellt das KDC dem Benutzer ein Ticket-Granting Ticket (TGT) in einer AS-REP-Nachricht (Authentication Service Reply) aus.
Wichtig: Zu diesem Zeitpunkt enthält das TGT noch kein PAC.
2. Anforderung eines Service Tickets (TGS-REQ und TGS-REP)
- Der Benutzer möchte nun auf einen bestimmten Dienst im Netzwerk zugreifen, beispielsweise auf einen Dateiserver. Dazu muss er ein Service Ticket anfordern.
- Der Benutzer sendet eine Ticket Granting Service Request (TGS-REQ) an das KDC. Diese Anfrage enthält das TGT, das zuvor vom KDC ausgestellt wurde, und Details über den angeforderten Dienst.
3. Erstellung des Service Tickets
- Das KDC überprüft das TGT und die Berechtigungen des Benutzers.
- Hier kommt das PAC ins Spiel: Das KDC erstellt ein Privileged-Attribute-Zertifikat (PAC) für den Benutzer. Dieses PAC enthält Informationen über die Sicherheitskontext-Attribute des Benutzers, wie zum Beispiel Gruppenmitgliedschaften, Benutzerrechte, und SIDs.
- Das KDC fügt das PAC in das Service Ticket ein, das dem Benutzer ausgestellt wird. Dieses Ticket wird in der TGS-REP-Nachricht (Ticket Granting Service Reply) an den Benutzer gesendet.
4. Nutzung des Service Tickets
- Der Benutzer sendet das Service Ticket, das nun das PAC enthält, an den Dienst, auf den er zugreifen möchte.
- Der Dienst entschlüsselt das Ticket und extrahiert das PAC.
- Der Dienst überprüft das PAC, um die Berechtigungen des Benutzers zu verifizieren und entscheidet, ob der Benutzer auf die angeforderte Ressource zugreifen darf.
Detaillierte Betrachtung: Hinzufügen des PAC zum Ticket
- PAC-Erstellung: Das KDC erstellt das PAC basierend auf den im Active Directory gespeicherten Informationen über den Benutzer. Dies umfasst insbesondere die Gruppenmitgliedschaften und spezifische Berechtigungen, die der Benutzer in der Domäne hat.
- Einfügen in das Ticket: Das PAC wird als Datenstruktur in das Service Ticket eingebettet. Dies geschieht innerhalb des Ticket-Teils, der vom KDC signiert und verschlüsselt wird, um die Integrität und Vertraulichkeit des PAC sicherzustellen.
Sicherheitsaspekte
- Verschlüsselung und Signatur: Das gesamte Ticket, einschließlich des PAC, wird vom KDC mit einem Schlüssel verschlüsselt, der nur der Dienst, der das Ticket erhalten soll, entschlüsseln kann. Außerdem wird das PAC vom KDC signiert, um sicherzustellen, dass es nicht manipuliert wurde.
- Prüfsummen: Das PAC enthält Prüfsummen, die sicherstellen, dass keine unbefugten Änderungen daran vorgenommen wurden. Wenn eine Manipulation festgestellt wird, wird das Ticket ungültig.