Kerberos: Wie funktioniert das Authentifizierungsprotokoll

Kerberos

This page is also available in English.


Kerberos funktioniert ähnlich wie ein Reisepass: Eine Passbehörde stellt den Pass aus, nachdem sich die Person identifiziert hat. Mit diesem Pass kann man dann zur Grenze gehen und sich dort ausweisen.

Kerberos und die Reisepass-Analogie

Zwei zentrale Prinzipien dieser Analogie treffen auch auf Kerberos zu:

  1. Die Grenzbeamten können den Pass unabhängig überprüfen, ohne mit der Passbehörde sprechen zu müssen.
  2. Der Pass dient nur zur Identifikation, ob man reisen darf entscheiden die Grenzbeamten.

Der Ablauf der Authentifizierung mit Kerberos

  1. Authentifizierung beim Domain Controller Der User authentifiziert sich beim Domain Controller. Der Domain Controller stellt ein Ticket-Granting Ticket (TGT) aus, das mit dem geheimen KRBTGT-Hash signiert ist. Einem Schlüssel, den nur der Domain Controller kennt.

  2. Sicherer Austausch des Session Keys Zusätzlich sendet der Domain Controller einen Session Key, der mit dem NT-Hash (bzw. dem verschlüsselten Passwort-Derivat) des Users verschlüsselt ist. Nur der User kann diesen Schlüssel entschlüsseln und damit weiterarbeiten.

  3. Wichtige Sicherheitsaspekte

    • Kerberos authentifiziert den User durch den Besitz eines gültigen TGT, überprüft jedoch nicht explizit das Passwort bei jeder Anfrage.
    • Die verschlüsselte Information basiert auf dem Userpasswort, was bedeutet, dass ein Angreifer das Ticket abfangen und durch Offline-Brute-Force-Angriffe versuchen kann, das KlartextPassword zu knacken. Das ist besonders problematisch, wenn das Flag: Do not require Kerberos preauthentication gesetzt ist. Das bedeutet, dass jeder User im Active Directory ein Ticket für einen gewissen User ausstellen kann. Um das Ticket zu benutzen wird aber das Passwort dieses Users gebraucht. Dieser Angriff nennt sich AS-REP Roasting.
  4. Golden Ticket Attack Ein besonders problematischer Angriff ist der Golden Ticket Attack: Falls ein Angreifer den KRBTGT-Hash kennt, kann er sich selbst beliebige TGTs generieren und so uneingeschränkten Zugriff erhalten.

Zugriff auf Dienste mit Kerberos

Nachdem sich der User authentifiziert hat, kann er auf einen Service zugreifen:

  1. Der User fordert beim Domain Controller ein Service Ticket (TGS) für den gewünschten Service an.
  2. Der Domain Controller stellt das Service Ticket aus, das mit dem Passwort-Hash des Service-Kontos verschlüsselt ist.
  3. Der User sendet dieses Ticket an den Service Server (das System auf dem er sich einloggen will), um Zugriff zu erhalten.
  4. Der Service Server überprüft das Ticket, indem er es mit seinem eigenen Passwort-Hash entschlüsselt. Ist das Ticket gültig, gewährt der Service den Zugriff.

Sicherheitsempfehlungen

  • Starke Service-Konto-Passwörter verwenden: Da Service-Tickets mit dem Passwort-Hash des Service-Kontos verschlüsselt sind, sollten Service-Accounts sichere, lange Passwörter haben. Ein schwaches Passwort könnte mit Kerberoasting-Angriffen geknackt werden.

  • KRBTGT-Hash regelmäßig rotieren: Falls der KRBTGT-Hash kompromittiert wurde, müssen Administratoren ihn zweimal rotieren, um Golden-Ticket-Angriffe zu verhindern.

  • Kerberos Pre-Authentication aktivieren: Dadurch wird verhindert, dass ein Angreifer AS-REP Roasting durchführen kann, indem er unverschlüsselte Ticket-Daten sammelt.

Kerberos ist ein leistungsfähiges Authentifizierungsprotokoll, aber es muss sicher konfiguriert und überwacht werden, um Angriffe zu verhindern.

Diese Informationen finden sich auch in diesem Video:

Fragen und Kontakt

Bei weiteren Fragen zur Sicherheit von Windows und Active Directory wende dich gerne an VidraSec.

+43 720 971425

martin@vidrasec.com

Termin auswählen

Zugehörige Dienstleistungen