1 / 38

Deep Dive : Kerberos, Protocol Transition und Constrained Delegation

Deep Dive : Kerberos, Protocol Transition und Constrained Delegation. Kai Wilke Consultant IT-Security MVP ISA Server und Security ( a.D .) ITaCS GmbH mailto:kw@itacs.de. Was ist überhaupt Kerberos?. In der Netzwerkwelt ist es ein de facto Standard

rebekkah
Download Presentation

Deep Dive : Kerberos, Protocol Transition und Constrained Delegation

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Deep Dive : Kerberos, Protocol Transition und Constrained Delegation Kai Wilke Consultant IT-Security MVP ISA Server und Security (a.D.) ITaCS GmbH mailto:kw@itacs.de

  2. Was ist überhaupt Kerberos? • In der Netzwerkwelt ist es ein de facto Standard • Entwickelt vom MIT und in RFC 1510 niedergeschrieben • Bietet leistungsfähige, sichere und hetrogene Authentifizierung • Kerberos V5 ermöglicht eine Federation und Delegation • Im AD ist Kerberos das primäre Anmeldeprotokoll • LM und NTLM (v1/v2) sind nur noch legacy Protokolle • Es ist einfach da und muss wenig beachtet werden... • „Cerberus“ war ein dreiköpfiger Wachhund vor den Toren Hades • 1. Kopf = Client Principal • 2. Kopf = Service Principal • 3. Kopf = Kerberos Dienste

  3. Wenn Entwickler mir Emails zusenden … • …, dann hinterfrage ich viele Details!

  4. Agenda • 1x1 der Authentifizierung und Authorisierung • Trusted Subsystem vs. Impersonation Model • Prozesskonten und Zugriffe auf Ressourcen • Deep Dive in das Kerberos Protokoll • Authentifizierung und Zugriffe auf Ressourcen • Kerberos Service Principal Names (SPNs) • Kerberos Delegation und W2K3 Extensions • Kerberos Constrained Delegation (A2D2) • Kerberos Protocol Transition (T2A4D) • Zusammenfassung und Ressourcen

  5. Authentifizierung und Authorisierung • Im Falle des „Trusted Subsystems“ • Die Anwendung steuert die Authorisierung der Benutzer. • Auf Ressourcen wird hierbei mit der Prozess-Identität der Anwendung zugegriffen. • Im Falle des „Impersonation Models“ • Die Anwendung impersoniert den Benutzer und die Ressource steuert eigenständig die Authorisierung. • Lokale Zugriffe (Impersonation) und Remote-Zugriffe (Delegation). Authentifizierung Authorisierung Wer bin ich? Was darfichtun?

  6. Trusted Subsystem vs. Impersonation Model • Trusted Subsystem • Anwendung verwendet eine feste Identität • Anwendung kann die Authentifizierung steuern • Anwendung muss die Authorisierung und das Auditing steuern • Hohe Performance durch Connection Pooling zu Backend-Servern • Verteilte Umgebungen benötigen keine AD-Mitgliedschaft • Impersonation Model (Identification / Impersonation / Delegation) • Anwendung verwendet für Aktionen die Benutzeridentität • Native Authorisierung und Auditing an der Ziel-Ressource • Skalierung wird durch eine Vielzahl von Identitäten und Connections zu der Ressource beeinträchtigt • Delegierung der Authentifzierungsdaten zu den Backend-Servern • Kerberos als Authentifizierungs-Protokoll hierbei erforderlich

  7. Prozesskonten und Zugriffe auf RessourcenTrusted Subsystem Anmeldungals Kai WP Mini’me Anwendungsidentität LokalerZugriff Remote Zugriff Network Service APP1$ Network Service Local Service Local Service ANONYMOUS Local System SYSTEM APP1$ Dom Account: WEB1 WEB1 WEB1 • Unbedingt den Domänennamenmitangeben (CONTOSO\WEB1) • Pre2008: Das Domänenkontosolltezurlokalen IIS Worker Process-Gruppehinzugefügtwerden (IIS_WPG) • Win2008: AutomatischeZuordnungüber IIS_IUSR Gruppe

  8. Prozesskonten und Zugriffe auf RessourcenImpersonation (ohneDelegation) Anmeldungals Kai WP Mini’me Anwendungsidentität LokalerZugriff Remote Zugriff Kai ANONYMOUS Network Service Local Service Kai ANONYMOUS Local System Kai ANONYMOUS Dom Account: WEB1 Kai ANONYMOUS • Lokal: Anwendungsidentität braucht „SeImpersonationPrivilege“ • Konfigurierbares Systemrecht ab Windows 2000 SP4 • Remote: Kerberos Delegation wird benötigt, bevor Remote-Zugriffe ebenfalls Kais Identität verwenden können...

  9. Demo Environment Fileserver Webserver Active Directory „contoso.de” Client PC Lokaler Dateizugriff Remote Dateizugriff AppPoolID „Network Service“ .NET 2.0 Web Anwendung (Dateizugriffs Demo)

  10. { .Net Impersonation } Demo Kai Wilke Consultant IT-Security MVP ISA Server und Security (a.D.) mailto:kw@itacs.de

  11. Agenda • 1x1 der Authentifizierung und Authorisierung • Trusted Subsystem vs. Impersonation Model • Prozesskonten und Zugriffe auf Ressourcen • Deep Dive in das Kerberos Protokoll • Authentifizierung und Zugriffe auf Ressourcen • Kerberos Service Principal Names (SPNs) • Kerberos Delegation und W2K3 Extensions • Kerberos Constrained Delegation (A2D2) • Kerberos Protocol Transition (T2A4D) • Zusammenfassung und Ressourcen

  12. Funktionsweise von KerberosDie drei Köpfe im Active Directory AuthentifizierungübersymmetrischeVerschlüsselung USER KDC (Key Distribution Center) BenutzerschlüsselwirdausdemPasswortgeneriert KDC-Schlüsselwirdausdemkbrtgt-Kontogeneriert kbrtgt ComputerschlüsselwirdausdemComputerkontogeneriert SERVER Alle Köpfe sind Security Principals in der Kerberos Realm Um symmetrische Verschlüsselung nutzen zu können, müssen gemeinsame Geheimnisse vorhanden sein

  13.  Kai möchteauthentifiziertwerden TGT • Wenn Kai ‘OK’ ist, wirdein Ticket-Granting-Ticket • ausgestellt, das ihmerlaubt, Service-Tickets zubeantragen. SR TGT • Kai beantragtein Service-Ticket fürDienstX auf Server1 • Erübermittelt das TGT, das ihnidentifiziert. ST  Ein Service-Ticket fürDienstXwirdausgestellt. ST Dienst-Anfrage Funktionsweise von KerberosAuthentifizierung im Überblick • KDC • (Key Distribution Center) Mini’me DienstX SERVER1

  14. Funktionsweise von KerberosKerberos Tickets • Identifiziert den Benutzer gegenüber den KDCs bei späteren Service-Ticket-Anfragen • Macht spätere Re-Authentifizierungen unnötig • Nur gültig zwischen einem Benutzer und Dienst • Bietet gegenseitige Authentifizierung zwischen den beiden Security Principals • Beschleunigt den Sitzungsaufbau, da der Dienst nicht den Benutzer erneut authentifizieren muss • Verschlüsselung stellt sicher, dass nur befugte Security Principals die Tickets lesen können • Ab Windows 2008 / Vista wird Suite-B verwendet! TGT ST

  15. AS_REQ client principal name timestamp krbtgt principal name requested lifetime Funktionsweise von KerberosKerberos Pre-Authentifizierung • KDC • (Key Distribution Center) Benutzerschlüssel (Passwort-basiert) timestamp kbrtgt • Der KDC kann eine Pre-Authentifizierung verlangen, um Brute-Force und Dictionary-Angriffe zu erschweren • Timestamp wird mit dem Benutzerschlüssel ver/entschlüsselt • Timestamps müssen innerhalb der Toleranzgrenze (5 Min) liegen • Pre-Authentifizierung ab W2000 Security Principals aktiviert

  16. AS_REP Funktionsweise von KerberosAuthentication Server Reply (AS_REP) • KDC • (Key Distribution Center) Benutzer-Schlüssel (Passwort-basiert) Benutzer-Schlüssel (User-TGS-basiert) user-TGS key user-TGS key krbtgt principal name krbtgt principal name ticket lifetime ticket lifetime TGT kbrtgt TGT user-TGS key user-TGS key user-TGS key client token client token client token ticket lifetime ticket lifetime TGT wirdimTicketcachegespeichert und fürweitereTransaktionenverwendet ticket lifetime KDC timestamp KDC timestamp Random Key Generation (User-TGS Session Key) KDC timestamp flags flags flags Das TGT hat eine Haltbarkeit von 10 Stunden (default) Ein Renewal ist innerhalb von 7 Tagen möglich (default)

  17. TGS_REQ Funktionsweise von KerberosService Ticket Request (TGS_REQ) • KDC • (Key Distribution Center) Benutzer-Schlüssel (User-TGS-basiert) service principal requestes lifetime TGT user-TGS key user-TGS key kbrtgt client token client token ticket lifetime ticket lifetime KDC timestamp KDC timestamp flags flags Authenticator client timestamp client timestamp KDC extrahiert den User-TGS Key aus dem TGT Uhrzeit im Authenticator dient zur Re-Authentifizierung

  18. TGS_REP Funktionsweise von KerberosService Ticket Request (TGS_REP) • KDC • (Key Distribution Center) Benutzer-Schlüssel (User-TGS-basiert) user-Service key user-Service key service principal service principal ticket lifetime ticket lifetime Service Ticket kbrtgt Service Ticket user-Service key user-Service key User-TGS Key (extrahiertaus TGS_REQ) user-Service key client token client token client token ticket lifetime ticket lifetime ST und Key wirdimTicketcachegespeichert und für den Service-Request verwendet ticket lifetime KDC timestamp KDC timestamp Random Key Generation (User-Service Session Key) KDC timestamp flags flags flags Das ST hat eine Haltbarkeit von 600 Minuten (default)

  19. Service Request Funktionsweise von KerberosZugriff auf den Service Benutzer-Schlüssel (User-Service Session Key) SERVER1 Service Ticket DienstX user-Service key user-Service key client token client token ticket lifetime ticket lifetime KDC timestamp KDC timestamp Computer-Schlüssel (Service Key) flags flags Authenticator client timestamp client timestamp • Uhrzeit im Authenticator dient erneut der Authentifizierung • User-Service Sessions Keys bieten Secure-Channels • z.B. IPSec und SSL-Verbindungen ohne Zertifikate

  20. Agenda • 1x1 der Authentifizierung und Authorisierung • Trusted Subsystem vs. Impersonation Model • Prozesskonten und Zugriffe auf Ressourcen • Deep Dive in das Kerberos Protokoll • Authentifizierung und Zugriffe auf Ressourcen • Kerberos Service Principal Names (SPNs) • Kerberos Delegation und W2K3 Extensions • Kerberos Constrained Delegation (A2D2) • Kerberos Protocol Transition (T2A4D) • Zusammenfassung und Ressourcen

  21. Service Principal Names (SPNs)Allgemeines • Bei der Service-Ticket-Anfrage wird der Service Principal Name (SPN) übergeben • Die Client Anwendung legt den verwendeten SPN fest • Der SPN wird vom KDC zur Lokalisierung des Active Directory-Kontos benötigt • Die SPNs werden im servicePrincipalName Attribut gespeichert • SPNs müssen in der Kerberos Realm eindeutig sein • Jedes Computerkonto hat bereits mehrere SPNs • HOST/computername.domain.de • Zusätzlich haben sie über 50 vordefinierte SPNs, die nicht im „servicePrincipalName“ Attribut aufgeführt sind • http/computername.domain.de • cifs/computername.domain.de • ...

  22. Service Principal Names (SPNs)Eigene SPNs registrieren • Um sich an einem Dienst zu authentifizieren, muss der verwendete SPN dem Security Principal zugeordnet sein, der den Dienst ausführt. • Bei Network Service, Local Service oder Local System • SPNs werden dem jeweiligen Computerkonto zugeordnet • Werden Active Directory-Benutzerkonten verwendet • SPNs werden dem jeweiligen Benutzerkonto zugeordnet • „SETSPN.EXE“ ist im Windows Server 2008 nun enthalten und • unterstützt neue CMD Switches. • -R = Resetet den HOST SPN • Q = Nach SPNs suchen. • -X = Duplicate Check für SPNs • -S = Add mit Duplicate Check

  23. Service Principal Names (SPNs)Bekannte Stolperfallen! • Internet Explorer fordet nicht eindeutige SPNs an • Verwendete URL in der Adressbar: http://srv:8000/ • Angefordert wird „http/srv“ anstelle von „http/srv:8000“ • Wenn Benutzerkonten verwenden werden, sollte nicht der Rechnername als SPN genutzt werden • Built-In SPNs existieren bereits und können kollidieren • Ports werden von den Anwendungen oft ignoriert • DNS-Aliase und HTTP Hostheader sind die Lösung! • IIS7 Feature: Kernel-Mode Authentication • HTTP.SYS übernimmt die Kerberos Authentifizierung • SPNs werden hierbei dem Computer Konto zugewiesen • Bei Bedarf über die IIS MMC oder CMD deaktivierbar

  24. { Kerberos Konfiguration } Demo Kai Wilke Consultant IT-Security MVP ISA Server und Security (a.D.) mailto:kw@itacs.de

  25. Agenda • 1x1 der Authentifizierung und Authorisierung • Trusted Subsystem vs. Impersonation Model • Prozesskonten und Zugriffe auf Ressourcen • Deep Dive in das Kerberos Protokoll • Authentifizierung und Zugriffe auf Ressourcen • Kerberos Service Principal Names (SPNs) • Kerberos Delegation und W2K3 Extensions • Kerberos Constrained Delegation (A2D2) • Kerberos Protocol Transition (T2A4D) • Zusammenfassung und Empfehlungen

  26. Kerberos Delagation und ExtensionsNutzen von Kerberos Delegation • Delegation ermöglicht einer Anwendung, Kerberos-Tickets an Back-End-Dienste weiterzuleiten. • Active Directory steuert, welche Security Principals Kerberos im welchem Umfang delegieren können. WP Zugriffals Kai Anmeldungals Kai Mini’me Anwendungsidentität LokalerZugriff Remote Zugriff Kai Kai Network Service Local Service Kai Kai Local System Kai Kai Dom Account: WEB1 Kai Kai

  27. Kerberos Delagation und ExtensionsKerberos Delegation flags • Active Directory Attribute steuern Kerberos Flags • Benutzer-Konto: Darf der Benutzer delegiert werden? • Service-Konto: Darf der Service Kerberos delegieren? • Beide Bedingungen müssen erfüllt sein • Service Account ist „OK as delegate” • Benutzer TGT ist „Forwardable”

  28. Service Request Funktionsweise von KerberosZugriff auf den Service Benutzer-Schlüssel (User-Service Session Key) SERVER1 Service Ticket DienstX user-Service key user-Service key client token client token ticket lifetime ticket lifetime KDC timestamp KDC timestamp Computer-Schlüssel (Service Key) flags flags TGT TGT user-TGS key user-TGS key client token client token ticket lifetime ticket lifetime TGT wird von derAnwendungzumBeantragen von weiteren ST verwendet. KDC timestamp KDC timestamp Authenticator client timestamp client timestamp

  29. Funktionsweise von KerberosConstrained Delegation Kerberos Delegation SERVER21 SERVER1 Anmeldung über Kerberos WP SERVER13 Mini’me SERVER37 Nachdem die Kerberos Delegation aktiviert wurde, kann das Service-Konto unter Verwendung von Kai‘s Identität auf das gesamte Netzwerk zugreifen. Windows 2003 ermöglicht die Einschränkung der Kerberos Delegation (constraining), in dem vom KDC gefiltert wird, zu welchen Zielen die Delegierung geschehen kann.

  30. Funktionsweise von KerberosConstrained Delegation (A2D2 Extension) • Constrained Delegation wird nur im Windows 2003/8-Modus unterstützt • „Use Kerberos only“ • Unterstützt nur Kerberos-Anmeldungen • „Use any authentication protocol“ • Ermöglicht „Protocol Transition“ • Die SPNs legen fest, welche Tickets vom Konto angefragt werden können • msDS-AllowedToDelegateTo Attribut

  31. Funktionsweise von KerberosProtocol Transition (T2A4D Extension) • Kerberos kommt fast nur im Intranet zum Einsatz • Internet und Extranets haben kein Zugriff auf die KDCs • Nicht jede Anwendung unterstützt Kerberos • Basic (Sonderfall: IIS reauthentifiziert via Kerberos) • WDigest • NTLM • Forms • Zertifikate • One Time Password (OTP) • T2A4D Extension erlaubt es einem Dienstkonto, Kerberos Tickets vom KDC ohne Benutzerinteraktion anzufragen • Anwendung steuert, wie/wann/ob ein Benutzer authentifiziert wird • Active Directory Credentials werden hierbei nicht benötigt • Anwendung sollte demnach sehr vertrauenswürdig sein! • Restriktionen über „Sensitiv“-Flag und „A2D2”-Einstellungen

  32. Funktionsweise von KerberosKonfiguration der Protocol Transition • Zugriff über .NET/WindowsIdentity oder W32/LsaLogonUser • Lokale Zugriffe: Services For User to Self (S4U2S) • Ermöglicht einem Dienst ein Benutzer Token zu erzeugen • Anwendung braucht „Act as Part of the Operating System“ • Ohne „SeTCBPrivilege“: Service erhält „Identification Token“ • Mit „SeTCBPrivilege“: Service erhält „Impersonation Token“ • Ein Impersonation Token ermöglichen eine lokale Impersonation • Systemrecht „SeImpersonationPrivilege“ wird hierfür benötigt • Kerberos Konfigurationen ist hierfür nicht notwendig • Remote Zugriffe: Services for User To Proxy (S4UTP) • Ermöglicht den Dienst eine Kerberos Delegation zu nutzen • Aktivieren der Contrained Delegation am Quell-Dienst • Die Option “Any Protocol” muss hierbei ausgewählt werden • SPNs auswählen die vom Dienst angefragt werden können • Je nach Anwendung ist eine lokale Impersonation notwendig

  33. { Kerberos Delegation } Demo Kai Wilke Consultant IT-Security MVP ISA Server und Security (a.D.) mailto:kw@itacs.de

  34. Agenda • 1x1 der Authentifizierung und Authorisierung • Trusted Subsystem vs. Impersonation Model • Prozesskonten und Zugriffe auf Ressourcen • Deep Dive in das Kerberos Protokoll • Authentifizierung und Zugriffe auf Ressourcen • Kerberos Service Principal Names (SPNs) • Kerberos Delegation und W2K3 Extensions • Kerberos Constrained Delegation (A2D2) • Kerberos Protocol Transition (T2A4D) • Zusammenfassung und Ressourcen

  35. Zusammenfassung • Sichere Kerberos Constrained Delegation und Protocol Transition benötigt etwas Know-How • Reden Sie mit den Entwicklern/Administratoren und bewerten sie den Nutzen und etwaige Sicherheitsrisiken • Wenn eine Kerberos Delegation benötigt wird, verwenden Sie unbedingt Constrained Delegation • Nutzen Sie die „T2A4D“ Erweiterung mit Vorsicht! • Markieren Sie ihre priviligierte Konten als „sensitiv“! • Verwenden Sie am besten dedizierte Dienstkonten • Computerkonten werden von vielen Diensten verwendet • SPNs werden werden nur bei der ST-Anfrage validiert • Konfigurieren Sie die verwendeten SPNs gründlich

  36. Windows Server 2008weitere Ressourcen • Windows Server 2008 Tech Centerhttp://www.microsoft.com/germany/technet/prodtechnol/windowsserver/2008/default.mspx • Windows Server 2008 Webcasts:http://www.microsoft.com/germany/technet/webcasts/windowsserver2008.mspx • Windows Server 2008 Produktseite:http://www.microsoft.com/germany/windowsserver2008/default.mspx • Microsoft Virtualization:http://www.microsoft.com/virtualization/default.mspx

  37. AsktheExperts Wir freuen uns auf Ihre Fragen: Technische Experten stehen Ihnen während der gesamten Veranstaltung in der Haupthalle zur Verfügung.

  38. © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

More Related