Ochrona danych i bezpieczeństwo informacji Elementarne operacje systemu bezpieczeństwa (2) UWIERZYTELNIANIE DWUSTRONNE Bezpieczenstwo informacyjne w 5 1
Procedury uwierzytelniania Procedury uwierzytelniania Przykład: protokół uzgadniania SSLSSL klient wysyła do serwera komunikat ClientHello (wersja protokołu, identyfikator sesji, listę obsługiwanych szyfrów i metod kompresji, dane losowe) serwer odsyła komunikat ServerHello (wersja protokołu, identyfikator sesji, wybrany szyfr i metodę kompresji, dane losowe oraz swój certyfikat X.509) oraz opcjonalnie żądanie certyfikatu klienta (wraz z losowym zawołaniem) klient uwierzytelnia serwer na podstawie odebranego certyfikatu i w razie niepowodzenia przerywa połączenie po pomyślnym uwierzytelnieniu klient tworzy pierwotny sekret główny (premaster secret), który szyfruje kluczem publicznym serwera i wysyła do serwera jeśli serwer żądał uwierzytelnienia klienta, to klient wysyła też swój certyfikat oraz podpisane zawołanie odebrane wcześniej od serwera po ewentualnym uwierzytelnieniu klienta serwer deszyfruje itd.. Bezpieczenstwo informacyjne w 5 2
UWIERZYTELNIANIE Z UDZIAŁEM ZAUFANEJ STRONY TRZECIEJ Uwierzytelnianie z udziałem zaufanej strony trzeciej 3 strony komunikacji klient (C), serwer aplikacji (V) i zaufana strona trzecia (TTP), TTP współdzieli sekret z każdą z pozostałych stron, C i V nie współdzielą żadnego sekretu, TTP umożliwia: autentykację A wobec B i odwrotnie, ustalenie klucza sesji. Bezpieczenstwo informacyjne w 5 3
Uwierzytelnianie z udziałem strony trzeciej Once per user logon session: (1) C AS: ID C ID tgs (2) AS C: E(K c, Ticket tgs ) Ticket tgs = E(K tgs, [ID C AD C ID tgs TS 1 Lifetime 1 ]) C = client AS = authentication server TGS = Ticket granting server ID C = identifier of user on C ID tgs = identifier of TGS AD C = network address of C K tgs = secret encryption key shared by AS and TGS Uwierzytelnianie z udziałem strony trzeciej Once per type of service: (3) C TGS: ID C ID V Ticket tgs (4) TGS C: Ticket v Ticket tgs = E(K tgs, [ID C AD C ID tgs TS 1 Lifetime 1 ]) Ticket v = E(K v, [ID C AD C ID v TS 2 Lifetime 2 ]) C = client AS = authentication server TGS = Ticket granting server V = application server ID C = identifier of user on C ID V = identifier of V P C = password of user on C AD C = network address of C K v = secret encryption key shared by AS and V Bezpieczenstwo informacyjne w 5 4
Uwierzytelnianie z udziałem strony trzeciej Once per service session: (5) C V: ID C Ticket v C = client AS = authentication server TGS = Ticket granting server V = application server ID C = identifier of user on C ID V = identifier of V P C = password of user on C AD C = network address of C K v = secret encryption key shared by AS and V Ticket tgs = E(K tgs, [ID C AD C ID tgs TS 1 Lifetime 1 ]) Ticket v = E(K v, [ID C AD C ID v TS 2 Lifetime 2 ]) Uwierzytelnianie z udziałem strony trzeciej Authentication Service Exchange to obtain ticket-granting ticket (1) C AS ID c ID tgs TS 1 (2) AS C E(K c,[k c, tgs ID tgs TS 2 Lifetime 2 Ticket tgs ]) Ticket tgs = E(K tgs, [K c,tgs ID c AD c ID tgs TS 2 Lifetime 2 ]) Bezpieczenstwo informacyjne w 5 5
Uwierzytelnianie z udziałem strony trzeciej Ticket-Granting Service Exchange to obtain service-granting ticket (3) C TGS ID v Ticket tgs Authenticator c (4) TGS C E(K c,tgs, [K c,v ID v TS 4 Ticket v ]) Ticket tgs = E(K tgs, [K c,tgs ID C AD C ID tgs TS 2 Lifetime 2 ]) Ticket v = E(Kv, [K c,v ID C AD C ID v TS 4 Lifetime 4 ]) Authenticator c = E(K c,tgs, [ID C AD C TS 3 ]) Uwierzytelnianie z udziałem strony trzeciej Client/Server Authentication Exchange to obtain service (5) C V Ticket v Authenticator c (6) V C E(K c,v, [TS 5 + 1]) (for mutual authentication) Ticket v = E(K v, [K c,v ID c AD c ID v TS 4 Lifetime 4 ]) Authenticatorc = E(K c,v,[id c AD C TS 5 ]) Bezpieczenstwo informacyjne w 5 6
UWIERZYTELNIANIE ZA POMOCĄ KLUCZA PUBLICZNEGO Uwierzytelnianie za pomocą klucza publicznego D K a [ E K A K A [ M ]] M Ka M jest tekstem jawnym, D operacją deszyfrowania, E operacją szyfrowania a K A i K B kluczami. Bezpieczenstwo informacyjne w 5 7
Uwierzytelnianie za pomocą klucza publicznego Szyfrowanie Symetryczne Oba klucze są identyczne, K A = K B Asymetryczne Klucze K A i K B są różne Uwierzytelnianie za pomocą klucza publicznego Szyfrowanie symetryczne klucz K K Tekst jawny M C=E(K[M]) szyfrogram C M=D(K[C]) Tekst jawny M ALICJA BOB Bezpieczenstwo informacyjne w 5 8
Uwierzytelnianie za pomocą klucza publicznego Szyfrowanie asymetryczne K B klucz k b Tekst jawny M C=E(K B [M]) szyfrogram C M=D(k b [C]) Tekst jawny M ALICJA BOB klucz K A k a Tekst jawny M C=E(K B [M]) szyfrogram C M=D(k b [C]) Tekst jawny M ALICJA BOB Uwierzytelnianie za pomocą klucza publicznego Utajnienie wiadomości za pomocą klucza publicznego Bezpieczenstwo informacyjne w 5 9
Uwierzytelnianie za pomocą klucza publicznego User A User B Uwierzytelnienie metodą klucza publicznego Uwierzytelnianie za pomocą klucza publicznego Utajnienie i uwierzytelnienie (obustronne) za pomocą klucza publicznego Bezpieczenstwo informacyjne w 5 10
KONTROLA DOSTEPU Kontrola dostepu Kontrola dostępu bazuje na 3 podstawowych elementach Zasób (obiekt) jest jednostką, do której dostęp podlega kontroli (np: programy, pliki, relacje bazy danych, całe bazy danych; obiekty o wysokiej granulacji: poszczególne krotki bazy danych). Podmiot ma dostęp do zasobu (przykłady: użytkownik, grupa użytkowników, terminal, komputer,aplikacja, proces). Prawa dostępu określają dopuszczalne sposoby wykorzystania zasobu przez podmiot. Bezpieczenstwo informacyjne w 5 11
Kontrola dostepu Dwie podstawowe metody: uznaniowa (DAC -Discretionary access control) scisła (MAC - Mandatory access control) warianty np. kontrola oparta o role (RBAC) powszechnie spotykana np. systemach baz danych. Discretionary access control DAC (ang. Discretionary access control - uznaniowa kontrola dostępu). Pojęcie to zostało zdefiniowane w TCSEC jako sposób kontroli dostępu do obiektów systemu komputerowego takich jak: pliki, foldery, urządzenia, klucze rejestru, itp. Dostęp jest ograniczany na podstawie tożsamości użytkownika/procesu oraz grup do których on należy. W odróżnieniu od MAC, użytkownik posiadający określone prawa dostępu do obiektów może nadawać je innym użytkownikom. DAC pozwala użytkownikowi na całkowite ustalenie uprawnień dostępu do własnych zasobów. Uprawnienia są najczęściej zapisywane w postaci ACL przypisywanych do poszczególnych obiektów. Podstawowy model bezpieczeństwa w większości systemów operacyjnych. Obiekty użytkownika i procesu domyślnie dziedziczą po nim prawa dostępu DAC oferuje użytkownikom dużą elastyczność i swobodę współdzielenia zasobów; Bezpieczenstwo informacyjne w 5 12
Discretionary access control powszechnym zagrożeniem jest niefrasobliwość przydziału uprawnieni (najczęściej wynikająca z nieświadomości lub zaniedbań) i niewystarczającą ochrona zasobów Mandatory Access Control MAC (ang. Mandatory Access Control - obowiązkowa kontrola dostępu) pojęcie to zostało zdefiniowane w TCSEC jako sposób kontroli dostępu w systemie komputerowym, wymagany w klasie B1 W MAC wyróżnia się podmioty (ang. subject) oraz obiekty (ang. object). Podmiot to użytkownik lub proces. Obiektami mogą być przykładowo: pliki, katalogi, urządzenia, klucze rejestru. Zarówno podmioty jak i obiekty posiadają określone atrybuty bezpieczeństwa. System posiada również zestaw reguł (ang. rule) określających zasady dostępu, zwany polityką (ang. policy). System operacyjny na podstawie atrybutów bezpieczeństwa i polityki udziela bądź odmawia podmiotowi dostępu do obiektu. utrzymanie poufności i integralności danych ma priorytetowe znaczenie użytkownik otrzymuje przyznany typ dostępu i nie może decydować o uprawnieniach do obiektu istnieje globalnie zdefiniowana polityka bezpieczeństwa systemu operacyjnego określająca uprawnienia Zarówno atrybuty bezpieczeństwa jak i polityka są ustalane wyłącznie przez administratora systemu. W odróżnieniu od DAC, użytkownik nie ma wpływu na działanie mechanizmów kontroli dostępu. MAC może (?) być stosowany równolegle z DAC. Bezpieczenstwo informacyjne w 5 13
Mandatory access control MAC operuje na tzw. poziomach zaufania wprowadzając etykiety poziomu zaufania (ang. Sensitivity labels) przydzielane w zależności np. od stopnia poufności. Oprócz poziomu zaufania, każdy zasób posiada kategorie przynależności danych. Kategorie te nie sa hierarchiczne i reprezentują jedynie rodzaj wykorzystania danych. W celu określenia uprawnień w systemach MAC są konstruowane etykiety ochrony danych. Składają się one z 2 parametrów: poziomu zaufania i kategorii informacji. Na zbiorze etykiet ochrony danych określona jest relacja wrażliwości. Jest to relacja częściowego porządku, nie wszystkie etykiety do niej należą. Mandatory access control Przykład Etykiety poziomu zaufania jawne < poufne < tajne < ściśle tajne kategorie przynależności FINANSOWE, OSOBOWE, KRYPTO, MILITARNE etykiety ochrony danych (tajne, {KRYPTO}) (ściśle tajne, {KRYPTO,MILITARNE}) Relacja wrażliwości (ściśle tajne, {KRYPTO,MILITARNE}) -> (tajne, {KRYPTO}) Bezpieczenstwo informacyjne w 5 14
Mandatory access control System MAC wymusza stosowanie reguł Użytkownik może uruchomić tylko taki proces, który posiada etykietę nie wyższą od aktualnej etykiety użytkownika. Proces może czytać dane o etykiecie nie wyższej niż aktualna etykieta procesu. Proces może zapisać dane o etykiecie nie niższej niż aktualna etykieta procesu. Stosowany w systemach wojskowych i rządowych przechowujących wrażliwe dane. Mandatory Access Control Projekt RSBAC (1997) znacznie rozszerzył bezpieczeństwo systemu Linux, rozszerzył obowiązkową kontrolę dostępu, istnieje kilkanaście modułów, które zapewniaj rożną funkcjonalność, Popularną implementacją MAC w systemach Linux jest SELinux. Microsoft począwszy od Visty i Server 2008 stosuje tzw. Mandatory Integrity Control który jest implementacją MAC Bezpieczenstwo informacyjne w 5 15
Mandatory Access Control tworzeniem polityki bezpieczeństwa zajmuje się specjalny użytkownik - oficer bezpieczeństwa; Konfiguracja jest przeważnie bardzo skomplikowana; co za tym idzie wymaga dużo czasu i wielu testów. Role-based Access Control RBAC (ang. Role-based Access Control - kontrola dostępu oparta o role). Dla podkreślenia różnicy w stosunku do DAC nazywany również nondiscretionary access control RBAC polega na zdefiniowaniu tzw. ról (ang. role) dla różnych funkcji w organizacji z którymi wiąże się określony zakres obowiązków. Poszczególnym rolom są centralnie przydzielane stosowne uprawnienia w systemie informatycznym. Role są przypisywane użytkownikom przez co uzyskują oni uprawnienia do wykonywania określonych dla tych ról czynności. Użytkownik może posiadać wiele przypisanych ról. Rola może być przypisana wielu użytkownikom. W odróżnieniu od DAC i MAC nie przypisuje się uprawnień bezpośrednio użytkownikom. Cechą charakterystyczną RBAC jest określanie ról i uprawnień w taki sposób aby odzwierciedlały one rzeczywiste funkcje w organizacji. RBAC sprawdza się szczególnie dobrze tam, gdzie ważne jest stosowanie zasady rozdziału obowiązków (ang. separation of duties). Przykładowo, gdy w celu zapobiegania nadużyciom niektóre operacje wymagają akceptacji dwu niezależnych użytkowników. Bezpieczenstwo informacyjne w 5 16
Role-based Access Control Zalety: Administracja systemem bazującym na RBAC jest prosta i niezwykle wydajna po inicjalnym utworzeniu wymaganych ról. Np. zmiany uprawnień dotyczą tylko ról, a nie tysięcy użytkowników. Użytkownicy mają tylko takie uprawnienia, jakich wymaga ich rola minimalizacja przydziału zasobów. Przejrzystość, zrozumiałość i zgodność ze strukturą zarządzania organizacji. Minimalne koszty utrzymania już istniejących rozwiązań bazujących na RBAC Wady: Znaczne koszty początkowe przy wdrożeniu Brak jednolitego i kompletnego standardu. Dostępne produkty pochodzą w większości z mało znanych źródeł, co może dyskredytować je jeśli chodzi o rozwój i ewentualne usterki. Co więcej, rozwiązania te są oparte na założeniach ich twórców, które nigdy w pełni nie pokrywają się ze standardami. Role-based Access Control RBAC w systemach baz danych Oracle Database Server 9i oferuje olbrzymią ilość udogodnień używanych w polityce bezpieczeństwa, jak również wspiera opcjonalną (a w niektórych aspektach nawet wymaganą) kontrolę uprawnień na poziomie ról. Istnieją również mechanizmy do audytu używanych uprawnień oraz ról, co jest niezwykle przydatne dla administratora. MS SQL Server 2005 - w porównaniu do wersji 2000 został w znacznym stopniu zmodyfikowany w zakresie podejścia do ról, a nawet samego pojęcia schematu. Wiele mechanizmów wręcz wymusza przydzielanie uprawnień na poziomie ról do działań związanych z administracją bazą danych Bezpieczenstwo informacyjne w 5 17