kerberos.mit.edu).
Transkrypt
kerberos.mit.edu).
Wykład 4 135 Uwierzytelnianie jako element procesu projektowania bezpieczeństwa • Microsoft w Windows 2003 Server położył szczególny nacisk na bezpieczeństwo, które w najnowszej wersji Windows było najważniejszym celem, jaki przyświecał projektantom i programistom tego systemu; • Wysoki stopień bezpieczeństwa został osiągnięty na wiele sposobów. Oprócz zmian w samej konstrukcji systemu (przebudowanych zostało wiele składników w Windows), zmieniono np:„domyślny” poziom bezpieczeństwa, ustawiany w momencie instalowania systemu operacyjnego. 136 Uwierzytelnianie jako element procesu projektowania bezpieczeństwa Autoryzacja jest procesem weryfikacji obiektu – czy rzeczywiście jest tym, za kogo się podaje. Najpowszechniejszym przykładem autoryzacji jest logowanie się użytkownika do systemu. W najprostszym przypadku – podaje swój identyfikator oraz hasło. Windows 2003/2008/8 Server obsługują mechanizmy smart card oraz inne mechanizmy przekazywania informacji do autoryzacji. 137 Uwierzytelnianie jako element procesu projektowania bezpieczeństwa • W Windows 2000+ dostępnych jest wiele różnych protokołów uwierzytelniających; • Niektóre z nich przeznaczone są np. tylko dla aplikacji WWW i służą np. ochronie poufności informacji umieszczanych na stronach interlub intranetowych; • Istnieją równie takie służą do logowania się do Windows 2003 Server i np. pozwalają przeglądać zasoby sieciowe Active Directory. 138 Uwierzytelnianie jednokierunkowe 139 Praca dyplomowa pt: „Centralne systemy zarządzania zasobami i uwierzytelniania”, Przemysław Jagieła, 2010 Uwierzytelnianie dwukierunkowe 140 Praca dyplomowa pt: „Centralne systemy zarządzania zasobami i uwierzytelniania”, Przemysław Jagieła, 2010 Uwierzytelnianie z pośrednikiem 141 Praca dyplomowa pt: „Centralne systemy zarządzania zasobami i uwierzytelniania”, Przemysław Jagieła, 2010 Typy uwierzytelniania w OS MS Typ uwierzytelniania Anonimowe Przeznaczenie Lokalne i w domenie Lokalne logowanie Kerberos Lokalne W domenie, interaktywne, w sieci LM, NTLM, NTLMv2 W domenie, interaktywne, w sieci (starsze wersje klientów) Podstawowe, zintegrowane Windows, szyfrowane, usługi Passport.NET Uwierzytelnianie na serwerze WWW 142 Typy uwierzytelniania Typ uwierzytelniania SST/TLS Przeznaczenie Uwierzytelnianie na serwerze WWW PAP, CHAP, MS-CHAP i MSCHAPv2 802.1x, PEAP, WPA Zdalny dostęp, VPN Certyfikaty Karty inteligentne Sieci bezprzewodowe oraz tradycyjne IPSec, uwierzytelnianie klientów i komputerów, SSL/TLS i karty inteligentne W domenie przy protokole Kerberos i certyfikatach 143 Kiedy stosowany jest dany protokół? • Windows 2000+ w domenie – Kerberos • Windows 2000+ poza domeną – NTLM • Windows 9x w domenie – LM • Windows NT 4.0 w domenie – NTLM • przy dostępie do zasobu gdy adres serwera jest podany jako nr IP – NTLM • przy dostępie do zasobu gdy adres serwera jest podany za pomocą nazwy - Kerberos 144 Typy logowania do sieci •Interaktywne •Sieciowe •Anonimowe •Inne typy np. zdalne, wsadowe 145 Logowanie interaktywne • Zainicjowanie logowania – np. Ctrl-Alt-Del. • Usługa Winlogon wywołuje bibliotekę DLL GINA (Graphical Identyfication and Authentication) lub inną w zależności od sposobu uwierzytelniania. • Użytkownik wprowadza dane uwierzytelniające. • Centrum (Urząd) Zabezpieczeń Lokalnych – LSA (Local Security Auhtority) przetwarza dane uwierzytelniające. • Sprawdzane są ograniczenia zdefiniowane dla konta. • Sprawdzane są prawa logowania. • Weryfikowane są dane uwierzytelniające. 146 Protokoły LM, NTLM, NTLMv2 • LM został stworzony do obsługi w systemach MS-DOS, Windows 3.1, Windows 9x, Windows ME. • NTLM zastosowano w Windows NT, wyeliminował słabe punkty LM. • NTLMv2 dołączono do SP3 dla Windows NT 4.0, wyeliminował słabe punkty NTLM i zwiększył poziom ochrony przesyłanych danych. 147 Uwierzytelnianie z LM, NTLM i NTLMv2 148 Praca dyplomowa pt: „Centralne systemy zarządzania zasobami i uwierzytelniania”, Przemysław Jagieła, 2010 Protokół Kerberos • Otwarty standard organizacji IETF • Opisany w RFC 1510 (1980r, MIT) • Funkcje zabezpieczeń: • Bezpieczna transmisja – szyfrowane komunikaty. • Wzajemne uwierzytelnianie – klient - serwer, i serwer - klient. • Ochrona przed atakiem ponawianym – identyfikator uwierzytelniania, którym jest zaszyfrowany znacznik czasu. 149 Protokół Kerberos • W systemie Kerberos używa się jednego komputera wyposażonego w niezwykle sprawne zabezpieczenia, który może być umieszczony w pokoju chronionym przez 24 godziny na dobę; • Na komputerze tym znajdują się informacje o hasłach i prawach dostępu każdego użytkownika w systemie (w MIT komputer ten nosi nazwę kerberos.mit.edu). • Wszystkie komputery i użytkownicy sieci działają na podstawie danych dostarczanych przez ten serwer; 150 Protokół Kerberos • W systemie Kerberos ten zabezpieczony serwer, zwany bezpiecznym serwerem, jest jedynym serwerem w sieci, który może dostarczać programom sieciowym informacje związane z dostępem; • Dla serwerów działających w systemie Kerberos oraz pracujących w nim użytkowników wszystkie pozostałe elementy sieci są niepewne. Innymi słowy, system Kerberos działa na podstawie zasady upraszczania — łatwo jest w niej utrzymać jeden całkowicie bezpieczny serwer, co jest sytuacją odwrotną do zabezpieczania wszystkich serwerów w sieci; 151 Elementy protokołu Kerberos • Centrum dystrybucji kluczy KDC (ang. Key Distribution Center) • znajduje się na każdym kontrolerze domeny • zarządza kluczami udostępnionymi klientom i serwerów • wydaje TGT (ang. Ticket GranTing Service) -> bilety 152 Elementy protokołu Kerberos • Bilety: • Bilet przyznający przekazywany uwierzytelnionemu użytkownikowi przy pierwszym logowaniu. Służy do uzyskania następnego biletu dla usługi. • Bilet usługi wymagany jest rzy dostępie do usługi lub zasobu. • Bilet odwołania -> jeśli usługa znajduje się w domenie w której użytkownik się nie logował KDC wygeneruje ten bilet i przekaże do innej domeny. • Identyfikator uwierzytelniania • znacznik czasu -> bezpieczeństwo systemu Kereberos 153 Kerberos – ogólne funkcjonowanie • Jeśli użytkownik sieci obsługiwanej przez system Kerberos chce uzyskać dostęp do pliku lub innego serwera sieciowego udostępniającego zasoby, to musi najpierw uzyskać pozwolenie od bezpiecznego serwera. Przykład Użytkownik (komputer-klient) chce uzyskać dostęp do pliku faktury_2011 na serwerze plików (serwerze niepewnym). Zakładając, że użytkownik już się zalogował w sieci, oprogramowanie sieciowe wykona kolejno kilka operacji. 154 Kerberos - funkcjonowanie 1. Użytkownik żąda dostępu do pliku faktury_2011 za pośrednictwem wiadomości z podpisem cyfrowym, utworzonej za pomocą swojego klucza prywatnego, i szyfruje ją za pomocą klucza publicznego serwera. 155 Kerberos - funkcjonowanie Są dwa powody, dla których żądanie dostępu jest realizowane za pomocą zaszyfrowanej wiadomości opatrzonej podpisem cyfrowym: 1. szyfrowanie z użyciem klucza sesji gwarantuje (w większym stopniu), że tylko bezpieczny serwer będzie mógł odczytać żądanie; 2. bezpieczny serwer za pomocą podpisu cyfrowego określa, czy wiadomość została wysłana przez uprawnionego użytkownika (a nie hakera …). 156 Kerberos - funkcjonowanie • Oprogramowanie sieciowe wysyła zaszyfrowaną wiadomość do bezpiecznego serwera: Klucz prywatny klienta Klucz publiczny serwera Żądanie z podpisem uwiarygodniającym klient Serwer uwiarygadniający Kerberos 157 Kerberos - funkcjonowanie • Bezpieczny serwer z kolei analizuje wiadomość z żądaniem komputera-klienta. • Serwer używa podpisu cyfrowego użytkownika do zweryfikowania jego tożsamości oraz sprawdzenia, czy użytkownik znajduje się na liście użytkowników uprawnionych do uzyskania dostępu do pliku faktury_2011. Kerberos - funkcjonowanie Jeśli użytkownik ma prawa dostępu do pliku faktury_2011 na serwerze plików, to bezpieczny serwer Kerberos połączy użytkownika z serwerem plików i wyśle do tego serwera wiadomość, że użytkownik ma prawo dostępu do pliku. Kerberos - komunikacja Aby rozpocząć komunikowanie się użytkownika i serwera plików serwer Kerberos wykonuje kilka operacji: • Serwer Kerberos wysyła do użytkownika unikatowy klucz zwany biletem (TGT). Aby zagwarantować bezpieczeństwo, kopia tego biletu jest szyfrowana przez bezpieczny serwer za pomocą klucza publicznego użytkownika. • Bilet zawiera informacje o dostępie oraz klucz sesji. Klucz sesji jest to nieskomplikowany klucz do szyfrowania służący do połączenia się z serwerem plików. 160 Kerberos - komunikacja Klucz publiczny klienta klient Bilet Klucz sesji Serwer uwiarygadniający Kerberos Serwer szyfruje, a następnie wysyła bilet do komputera-klienta 161161 Kerberos - komunikacja Bezpieczny serwer wysyła także kopię biletu komputera-klienta do serwera plików. Aby zagwarantować bezpieczeństwo, druga kopia biletu jest szyfrowana przez bezpieczny serwer za pomocą publicznego klucza serwera plików (druga kopia biletu zawiera te same informacje, co kopia pierwsza, czyli informacje o bilecie oraz klucz sesji). Bilet Serwer uwiarygadniający Kerberos Klucz publiczny serwera plików Klucz sesji Serwer plików 162162 Kerberos – ścieżka zaufania Komputer użytkownika i serwer zawierający plik faktury_2011 łączą się i porównują kopie biletów, aby potwierdzić swoją tożsamość: • Oprogramowanie sieciowe na komputerze klienta szyfruje kopię swojego biletu za pomocą publicznego klucza serwera plików, po czym wysyła go do serwera plików; • Serwer plików odszyfrowuje bilet za pomocą prywatnego klucza. Jeśli przesłana przez klienta kopia klucza sesji jest taka sama, jak kopia wysłana przez serwer, to serwer plików uwiarygodnia bilet. • W przeciwnym wypadku serwer plików nie połączy się z użytkownikiem. 163 Kerberos – delegacja Jeśli bilety są jednakowe, to bezpieczny serwer kończy działanie, a użytkownik komunikuje się odtąd z serwerem plików za pośrednictwem bezpiecznego kanału i uzyskuje dostęp do pliku faktury_2011. Serwer plików, w zależności od swoich ustawień, wyśle ten plik zaszyfrowany: 1. za pomocą klucza publicznego użytkownika (przechowywanego na bezpiecznym serwerze) (SFTP); 2. klucza sesji (SFTP); 3. w postaci zwykłego pliku tekstowego (FTP). 164 Kerberos – zakończenie • Po zakończeniu przesyłania pliku do użytkownika serwer plików wysyła do serwera Kerberos wiadomość z informacją o zakończeniu połączenia będącą dla bezpiecznego serwera sygnałem, aby zlikwidować bilet dostępu. • Jeśli komputer-klient spróbuje użyć tego samego biletu dostępu, aby znowu uzyskać dostęp do tego pliku, to bezpieczny serwer uniemożliwi komputerowi-klientowi uzyskanie ponownego nieautoryzowanego dostępu. 165 Kerberos – słabe punkty • Uwiarygodnienie na podstawie identyfikatora logowania użytkownika i wspólnego klucza tajnego. Z takim rozwiązaniem wiąże się niebezpieczeństwo oszukania serwera przez hakera -> włamywacz może sprawić, że bezpieczny serwer będzie go traktował jak uprawnionego użytkownika 166 Kerberos – słabe punkty Na przykład: • Można wysłać do bezpiecznego serwera wiadomość z prośbą o przyznanie prawa dostępu do serwera plików. • Haker może przechwycić taką wiadomość i przesłać ją następnie do bezpiecznego serwera, który uzna, że to uprawniony użytkownik zażądał uwiarygodnienia. 167 Kerberos – słabe punkty 1 • Aby wyeliminować taką możliwość, programiści projektu Athena wprowadzili do niego mechanizm znaczników czasu; • Mechanizm ten gwarantuje, że wszystkie wiadomości otrzymywane przez bezpieczny serwer zawierają datę i bezpieczny serwer odrzuca wszystkie te wiadomości, które są przestarzałe o co najmniej 5 minut; • Mechanizm znaczników czasu pomaga zapobiec działaniom osób nieuprawnionych. 168 Kerberos – słabe punkty 2 System Kerberos nie oferuje możliwości obrony przed atakami ze strony usług. W systemie tym włamywacz może z łatwością uniemożliwić aplikacji wzięcie udziału we właściwym przeprowadzeniu operacji uwiarygodniania. Wykrywanie ataków tego typu (z których kilka może się wydawać normalnymi sytuacjami awaryjnymi w systemie) i zapobieganie im należy do obowiązków administratorów i użytkowników. 169 Kerberos – słabe punkty 3 • Ponieważ serwer Kerberos zakłada, że wspólny klucz tajny jest rzeczywiście tajny, użytkownicy w tym systemie muszą bezwzględnie chronić ten klucz; • W wypadku kradzieży klucza użytkownika może on posłużyć do podszycia się pod użytkownika lub dowolny serwer; 170 Kerberos – słabe punkty 4 • System Kerberos nie chroni przed atakami polegającymi na odgadywaniu hasła; • Jeśli użytkownik wybierze sobie łatwe hasło, to haker może z łatwością zastosować metodę poza sieciowego ataku przy użyciu słownika i wypróbowywać kolejne zawarte w nim słowa; • W tej metodzie skopiowane przez hakera wiadomości są poddawane kolejnym próbom odszyfrowania; 171 Protokoły uwierzytelniające zdalny dostęp • PAP (Password Authentication Protocol) • Przesyłane jest niezaszyfrowane hasło. • SPAP (Shiva Password Authentication Protocol) • Korzysta z niestandardowego algorytmu szyfrowania odwrotnego, obsługiwane przez serwery zdalnego dostępu firmy Shiva. Nie można zastosować MPPE (Microsoft Point-to-Point Encryption). 172 Protokoły uwierzytelniające zdalny dostęp • CHAP (Challenge Handshake Authentication Protocol) • Szyfruje sekwencję wezwania używając funkcji MD5. Serwer musi przechowywać hasło w postaci niezaszyfrowanej. 173 Protokoły uwierzytelniające zdalny dostęp • MS-CHAP • Szyfruje sekwencję wezwania używając funkcji MD4. Serwer może przechowywać hash hasła. Obsługuje bardziej zaawansowane komunikaty o błędach. • MS-CHAPv2 • Występuje wzajemne uwierzytelnianie. Zawiera dodatkowe ulepszenia względem MS-CHAP. 174 Protokoły uwierzytelniające zdalny dostęp • EAP – (Extensible Auhtentication Protocol) • Jest rozszerzeniem protokołu PPP i posiada budowę modularną. Obecnie dostępne w systemach Windows: • EAP-TLS – Wykorzystuje wzajemne uwierzytelnianie i certyfikaty (certyfikat klienta jest opcjonalny). Może być stosowany z PPTP i L2TP/IPSec • EAP-MD5 – Mniej bezpieczny od EAP-TLS. Używa MD5 oraz szyfrowania odwracalnego przy przechowywaniu hasła w bazie. Nie obsługuje bezprzewodowych połączeń VPN oraz protokołu PPTP. 175 RADIUS • Remote Authentication Dial In User Service; • Protokół zapewniający uwierzytelnianie, autoryzację oraz monitorowanie (AAA); • Pracuje w architekturze klient-serwer; • RADIUS Server – NAS/RAS (Network/Remote Access Server); • Serwer może działać jako PROXY; • Przy przesyłaniu hasła wykorzystuje algorytm MD5; • Opisany w RFC 2865 i RFC 2866; 176 RADIUS – Authorization & Authentication 177 RADIUS - Accounting 178 Uwierzytelniane z użyciem certyfikatów 179 Praca dyplomowa pt: „Centralne systemy zarządzania zasobami i uwierzytelniania”, Przemysław Jagieła, 2010 Koniec Wykładu 4 180