Konsultant | Microsoft Kerberos udomowiony TOMASZ ONYSZKO Konsultant | Microsoft Start
Kontakt Blog: http://www.w2k.pl E-mail: t.onyszko@w2k.pl
(cc) Josh Mishell
Kerberos Protokół uwierzytelnienia Stworzony przez MIT (RFC 4120) Silne uwierzytelnienie oparte na współdzielonym „kluczu” Cross platform Pozwala na realizacje scenariuszy SSO
Kerberos a Windows … Zaimplementowany od Windows 2000 Każdy kontroler domeny to „Serwer” – Key Distribution Center (KDC) Udostępniony w systemie dla aplikacji przez Security Support Provider Interface (SSPI) Domyślny SSP dla Windows
SSPI (GSSAPI) RPC .NET Framework Internet Explorer SSPI Negotiated Kerberos NTLM Digest …
(cc) Rob Watling
Aktorzy Klient KDC Usługa Wymaga uwierzytelnienia Kerberos Authentication Service (AS) Ticket Granting Service (TGS) Usługa Wymaga uwierzytelnienia Kerberos
TGT == Ticket Granting Ticket #1 - Uwierzytelnienie KRB_AS_REQ KRB_AS_REP TGT == Ticket Granting Ticket
Dane autoryzacji (PAC) Ticket Kerberos ticket - RFC 1510 (version 5) Realm Nazwa serwera \ usługi Klucz sesji Flagi Nazwa klienta Realm klienta Czas wygaśnięcia Dane autoryzacji (PAC) (…)
Privilege Attribute Certificate Informacja autoryzacyjna PAC zawiera: SID użytkownika SID grup użytkownika (cross forest) Tworzony w chwili wystawienia TGT Duży PAC KRB5KRB_ERR_RESPONSE_TOO_BIG MaxTokenSize (KB 327825)
TGS == Ticket Granting Service #2 – Dostęp do usługi http://www.w2k.pl KRB_TGS_REQ KRB_TGS_REP TGS == Ticket Granting Service
#2 – Dostęp do usługi http://www.w2k.pl KRB_AP_REQ Skąd KDC wiedział do której usługi chce się dostać użytkownik i którego użyć klucza??
Service Principal Name Używane do zlokalizowania kont usługi Format: <przedrostek usługi>/<nazwa>[:port] Przechowywane w katalogu Atrybut servicePrincipalName Domyślnie dostępny dla Domain Admin Zdefiniowana delegacja w Windows 2008 R2
(cc) Now picnic
#3 – Delegacja (S4U2Proxy) http://www.w2k.pl KRB_AP_REQ KRB_TGS_REQ KRB_CRED KRB_TGS_REP
Wymagania Aby delegacja zadziałała Poprawne rozwiązywanie nazw DNS Konto usługi oznaczone jako „Trusted for delegation” Poprawna konfiguracja SPN dla wszystkich kont biorących udział w delegacji Konfiguracja przeglądarki !!! + opcje specyficzne dla aplikacji
Konfiguracja SPN #1 CN=WWW$: http/www.w2k.pl http/www CN=SQL$: MSSQLSvc/SQL.W2K.PL MSSQLSvc/SQL
Konfiguracja SPN #2 CN=WWW1$: http/www.w2k.pl http/www CN=WWW2$: CN=SQL$: MSSQLSvc/SQL.W2K.PL MSSQLSvc/SQL
Konfiguracja SPN #2 CN=AppPoolAccount CN=SQL$: http/www.w2k.pl MSSQLSvc/SQL.W2K.PL MSSQLSvc/SQL
(cc) Now picnic
(cc) r00pert
Internet Explorer 6 Żądanie dostępu do SPN bez numeru portu (KB 908209) Użycie CNAME przy dostępie do usługi (KB 908209)
KDC_ERR_PREAUTH_REQUIRED Przyczyna Żądanie nie zawiera danych pre-authentication Problem Występuje gdy żądanie nie jest ponawiane poprawnie Możliwe błędy uwierzytelnienia
KDC_ERR_PREAUTH_REQUIRED Rowiązanie Poprawna konfiguracja klienta Wyłączenie wymagania pre-authentication dla konta Narzędzia Network monitor
KRB_ERR_RESPONSE_TOO_BIG Przyczyna PAC jest zbyt duży dla transportu UDP Problem Występuje gdy nie jest możliwe przełączenie się na transport TCP Możliwe błędy uwierzytelnienia
KRB_ERR_RESPONSE_TOO_BIG Rozwiązanie Zmiana transportu na TCP (KB 244474) Zmniejszenie PAC (KB 327825) Narzędzia: Network monitor TokenSz.exe
KDC_ERR_ETYPE_NOTSUPP Przyczyna Niekompatybilność protokołów szyfrowania pomiędzy klientem a KDC Wprowadzenie AES w Vista \ Windows 2008 (RFC 3962) Problem Brak możliwości uzyskania biletów
KDC_ERR_ETYPE_NOTSUPP Rozwiązanie Konfiguracja zgodnych protokołów klient <-> KDC ms-DS-Supported-Encryption-Types Narzędzia Event Viewer (EventID: 27, KDC) REGEDIT.EXE (pre-Win7) Group Policy (Win7) Network Monitor
KDC_ERR_S_PRINCIPAL_UNKNOWN Przyczyna Brak lub duplikaty SPN dla kont usług Problem Nie działające mechanizmy uwierzytelnienia Kerberos Brak dostępu do usług
KDC_ERR_S_PRINCIPAL_UNKNOWN Rozwiązanie Poprawna konfiguracja SPN Narzędzia Setspn.exe (preferowane z Windows 2008 R2) Dowolny klient LDP (LDP.EXE, ADFIND.EXE) Event Viewer (EventID:11, KDC) Network Monitor
(cc) Now picnic
Rozwiązywanie problemów Network monitor prawdę Ci powie Setspn.exe lub dowolny klient LDAP pozwoli zdiagnozować problemy z SPN Klient pełni kluczową rolę w komunikacji związanej z Kerberos
Rozwiązywanie problemów (…) If there is a problem … it’s about SPNs If not … it’s about SPNs (…) Master Matjaz
(cc) bitzcelt
Dlaczego Kerberos Bezpieczny protokół uwierzytelnienia Interoperacyjność SSO Redukcja NTLM Windows 7 \ Windows 2008 R2
NTLM
(cc) massdistraction
Oceń moją sesję Ankieta dostępna na stronie www.mts2009.pl Wygraj wejściówki na następny MTS! Speakers: Please do not remove nor edit this slide! This is information about evaluation form.
Referencje How the Kerberos Version 5 Authentication Protocol Works S4U2proxy- http://msdn.microsoft.com/en-us/library/cc246079(PROT.10).aspx Kerberos Protocol Extensions: Service for User and Constrained Delegation Protocol Specification DelegConfig Internet Explorer and SPNs IE does not include port number in SPN http://support.microsoft.com/kb/908209 IE builds SPN based on A record not alias http://support.microsoft.com/kb/911149 S4U2proxy- http://msdn.microsoft.com/en-us/library/cc246079(PROT.10).aspx
Referencje Kerberos Technical Supplement for Windows How to troubleshoot Kerberos-related issues in IIS Troubleshooting Kerberos Errors Troubleshooting Kerberos Delegation NMCap: the easy way to Automate Capturing S4U2proxy- http://msdn.microsoft.com/en-us/library/cc246079(PROT.10).aspx