460 likes | 766 Views
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”
E N D
Kerberos udomowiony TOMASZ ONYSZKO Konsultant | Microsoft Start
Kontakt • Blog: http://www.w2k.pl • E-mail: t.onyszko@w2k.pl
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 …
Aktorzy Klient KDC Authentication Service (AS) TicketGranting Service (TGS) Usługa Wymaga uwierzytelnienia Kerberos
#1 - Uwierzytelnienie KRB_AS_REQ KRB_AS_REP TGT == TicketGrantingTicket
Ticket Kerberosticket - RFC 1510 (version 5) Realm Nazwa serwera \ usługi Klucz sesji Flagi Nazwa klienta Realm klienta Czas wygaśnięcia Dane autoryzacji (PAC) (…)
PrivilegeAttributeCertificate • 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)
#2 – Dostęp do usługi http://www.w2k.pl KRB_TGS_REQ KRB_TGS_REP TGS == TicketGranting 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
#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$: http/www.w2k.pl http/www CN=SQL$: MSSQLSvc/SQL.W2K.PL MSSQLSvc/SQL
Konfiguracja SPN #2 CN=AppPoolAccount http/www.w2k.pl http/www CN=SQL$: MSSQLSvc/SQL.W2K.PL MSSQLSvc/SQL
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
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
Dlaczego Kerberos • Bezpieczny protokół uwierzytelnienia • Interoperacyjność • SSO • Redukcja NTLM • Windows 7 \ Windows 2008 R2
Oceń moją sesję • Ankieta dostępnana stronie www.mts2009.pl • Wygraj wejściówki na następny MTS!
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
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