Bezpieczeństwo systemów komputerowych Złożone systemy kryptograficzne mgr Katarzyna Trybicka-Francik kasiat@zeus.polsl.gliwice.pl pok. 503 Protokół Kerberos Protokół Kerberos Usługa uwierzytelniania Projekt Atena Problem 1
Zagrożenia Podszywanie się za innego użytkownika Zmiana adresu sieciowego stacji roboczej Atak typu powtórka Cechy Centralny serwer uwierzytelniający Korzysta wyłącznie z szyfrowania konwencjonalnego (symetrycznego) Metody zapewniania bezpieczeństwa Architektura rozproszona składająca się ze stacji użytkowników i rozproszonych lub scentralizowanych serwerów W sprawie zapewnienia właściwej tożsamości użytkownika lub użytkowników polegać na poszczególnych stacjach roboczych i powierzyć serwerom realizację kontroli dostępu na podstawie identyfikacji użytkownika (ID). Wymagać od klientów uwierzytelniania się wobec serwerów, a w sprawie identyfikacji użytkownika polegać na klientach. Wymagać od użytkownika udowodnienia swojej tożsamości przy wywoływaniu każdej usługi. Wymagać również by serwer udowadniał swoją tożsamość klientom. 2
Wymagania Bezpieczny Pewny Przezroczysty Elastyczny System uwierzytelniania z zaufaną stroną trzecią (Needham i Schroeder) Proste uwierzytelnienie AS (serwer uwierzytelniający) (1) C -> AS: ID C, P C, ID V (2) AS -> C: Bilet (3) C -> V: ID C, Bilet C (klient) V (serwer) Bilet = E kv [ID C, AD C, ID V ] Problemy Nowe bilety na każdą usługę. Zminimalizowanie liczby sytuacji, gdy użytkownik musi podać hasło. Przesył hasła w formie jawnej. Bezpieczne uwierzytelnianie AS (serwer uwierzytelniający) C (klient) TGS (serwer przyznawania biletów) V (serwer) 3
Bezpieczne uwierzytelnianie Raz na sesję użytkownika: (1) C -> AS: ID C, ID tgs (2) AS -> C: E kc [Bilet tgs ] Raz na rodzaj usługi: (3) C -> TGS: ID C, ID V, Bilet tgs (4) TGS -> C: Bilet V Raz na sesję usługi: (5) C -> V: ID C, Bilet V Bilet tgs = E ktgs [ID C, AD C, ID tgs, TS 1, Czas-życia 1 ] Bilet V = E kv [ID C, AD C, ID V, TS 2, Czas-życia 2 ] Problemy Czas ważności biletu na przyznanie biletu Potrzeba uwierzytelniania serwerów wobec użytkowników Uwierzytelnienie Wymiana z serwerem uwierzytelniającym: uzyskanie biletu na przyznanie biletu (1) C -> AS: Opcje ID C Królestwo C ID tgs Czasy Identyfikator-jednorazowy 1 (2) AS -> C: Królestwo C ID C Bilet tgs E kc [K C,tgs Czasy Identyfikator-jednorazowy 1 Królestwo tgs ID tgs ] Bilet tgs = E ktgs [Flagi K C,tgs Królestwo C ID C AD C Czasy ] 4
Uwierzytelnienie Wymiana z TGS: uzyskanie biletu na usługę (3) C -> TGS: Opcje ID V Czasy Identyfikator-jednorazowy 2 Bilet tgs Wartość-wierzytelniająca C (4) TGS -> C: Królestwo C ID C Bilet V E kc,tgs [K C,V Czasy Identyfikator-jednorazowy 2 Królestwo V ID V ] Bilet tgs = E ktgs [Flagi K C,tgs Królestwo C ID C AD C Czasy] Bilet V = E kv [Flagi K C,V Królestwo C ID C AD C Czasy] Wartość-uwierzytelniająca C = E kc,v [ID C Królestwo C TS 1 ] Uwierzytelnienie Uwierzytelnienie klient/serwer: uzyskanie usługi (5) C -> TGS: Opcje Bilet V Wartość-uwierzytelniająca C (6) K -> C: E kc,v [TS 2 Podklucz # Kolejny] Bilet V = E kv [Flagi K C,V Królestwo C ID C AD C Czasy] Wartość-uwierzytelniająca C = = E kc,v [ID C Królestwo C TS 2 Podklucz #Kolejny] Żądanie biletu na przyznanie biletu KERBEROS Serwer uwierzytelniający (AS) Bilet + klucz sesji Żądanie biletu na usługę Serwer przyznający bilety TGS Bilet + klucz sesji Żądanie usługi Raz na sesję użytkownika Raz na typ usługi Raz na sesję usługi Dostarcza wartość uwierzytelniającą serwera 5
Królestwa Kerberosa & Kerberosy wielokrotne Serwer Kerberosa musi mieć identyfikatory i zaszyfrowane hasła wszystkich użytkowników w jego bazie danych. Wszyscy użytkownicy są zarejestrowani w serwerze Kerberosa. Serwer Kerberosa musi mieć wspólny tajny klucz z każdym serwerem. Wszystkie serwery są zarejestrowane w serwerze Kerberosa. Serwery Kerberosa w każdym królestwie muszą dzielić tajny klucz z serwerem drugiego królestwa. Oba serwery Kerberosa są u siebie nawzajem zarejestrowane. Klient 1. Żądanie biletu do lokalnego TGS 2. Bilet do lokalnego TGS 3. Żądanie biletu do odległego TGS 4. Biletu do odległego TGS Królestwo A KERBEROS AS TGS 7. Żądanie odległej usługi Klient 5. Żądanie bilet do odległego serwera KERBEROS AS 6. Bilet do odległego serwera TGS Królestwo B Żądanie usługi w innym królestwie (1) C -> AS: ID C ID tgs TS 1 (2) AS -> C: E kc [K C,tgs ID tgs TS 2 Czas_życia 2 Bilet tgs ] (3) C -> TGS: ID tgsrem Bilet tgs Wartość-uwierzytelniająca C (4) TGS -> C: E kc,tgs [K C,tgsrem ID tgsrem TS 4 Bilet tgsrem ] (5) C -> TGS rem : ID Vrem Bilet tgsrem Wartość-uwierzytelniająca C (6) TGS -> C: E kc,tgsrem [K C,Vrem ID Vrem TS 6 Bilet Vrem ] (7) C -> V rem : Bilet Vrem Wartość-uwierzytelniająca C 6
SSL Secure Soket Layer Realizacja szyfrowania Uwierzytelnienie serwera (ew. użytkownika) Zapewnienie integralności i poufności przesyłanych danych Połączenie kryptografii symetrycznej (transmisja) i niesymetrycznej (zestawienie połączenia) SSL - Secure Soket Layer Klient Przeglądarka WWW Serwer WWW 1 nawiązanie połączenia https:// klucz publiczny serwera 2 3 weryfikacja serwera 4 generacja klucza sesji 5 zaszyfrowany kluczsesji Płatności cyfrowe 7
Płatności internetowe Bank klienta Internetowa sieć płatnicza 3 4 8 9 Bank beneficjanta 5 10 2 7 1 1234 0000 0001 9876 Klient 6 Sprzedawca Sprawdzanie numeru karty ISO 2894 Sprawdzamy z ilu cyfr składa się numer karty. Jeżeli z parzystej liczby cyfr to pierwsza cyfra ma wagę 2, w przeciwnym wypadku 1. Wagi kolejnych cyfr zmieniają się cyklicznie (1, 2, 1, 2...) Jeśli ważona wartość cyfry jest większa od 9, odejmij 9 Wszystkie ważone sumujemy i dzielimy mod 10 Wynik operacji powinien być równy 0 Sprawdzanie numeru karty 4402 1000 7198 4003 (4x2),(4x1),(0x2),(2x1), (1x2),(0x1),(0x2),(0x1), (7x2),(1x1),(9x2),(8x1), (4x2),(0x1),(0x2),(3x1), (8),(4),(0),(2), (2),(0),(0),(0), (14),(1),(18),(8), (8),(0),(0),(3), Pamiętaj: 8+4+2+2+5+1+9+8+8+3=50 nie używaj numeru tej karty to 50 przestępstwo! mod 10 = 0 8
Kwit transakcji Nazwisko klienta Numer karty płatniczej klienta Adres klienta Data transakcji Kwota transakcji Opis zakupionego produktu lub usługi Numer identyfikacyjny Kod autoryzacji Nazwa sprzedawcy Karty kredytowe w Internecie Bez połączenia (offline) Połączenia szyfrowane Połączenia nieszyfrowane Internetowe systemy płatnicze Niższy koszt transakcji Anonimowość Szerszy rynek 9
Rodzaje systemów płatniczych Anonimowe Prywatne Identyfikujące DigiCash Rejestracja 4 Konto depozytowe w instytucji finansowej 5 Mennica 2 3 Cyfrowo Generacja podpisane monety 1 cyfrowych monet Elektroniczna portmonetka DigiCash Zakupy Sklep internetowy Sprzedawca Elektroniczna portmonetka 10
DigiCash Bezpieczeństwo i prywatność Virtual PIN Rejestracja 1 Wypełnić formularz rejestracyjny 3 2 4 Wirtualny PIN First Virtual Virtual PIN Zakupy Sprzedawca 1 Wirtualny PIN 2 4 5 3 First Virtual 11
Virtual PIN Bezpieczeństwo i prywatność CyberCash & CyberCoin Rejestracja 1 Ściągnąć CyberCash wallet 2 Klucze publiczny/prywatny 3 Formularz rejestracyjny CyberCash CyberCash & CyberCoin Zakupy Sprzedawca 1 Wybór karty i zatwierdzenie transakcji 6 2 5 4 Bank sprzedawcy 3 First Virtual 12
CyberCash & CyberCoin Bezpieczeństwo i prywatność SET Zagwarantowanie poufności transakcji Potwierdzenie tożsamości podmiotu transakcji Zapewnienie integralności danych dotyczących opłat za towar i usługi Wzajemne potwierdzenie tożsamości klientów i sprzedawców http://www.mastercard.com/set http://www.visa.com SET Szyfrowana kluczem sprzedawcy Szyfrowana kluczem banku Wiadomość klienta dla sprzedawcy Skrót wiadomości M1 Wiadomość klienta dla banku Skrót wiadomości M2 Podwójny podpis użytkownika M3 = skrót (M1 + M2) 13
Mondex Systemy płatnicze - ocena Simson Garfinkel WWW Bezpieczeństwo i handel Wydawnictwo Helion, Gliwice 1999 E-banki 14
E-banki Identyfikator i hasło (Citibank, LG Petro Bank) Hasła maskowane i klucz prywatny (Bank BPH, Bank Śląski) Lista haseł jednorazowych (mbank, Multibank, Inteligo, Nordea) Token (Lukas Bank, Volkwagen Bank, Nordea, BGŻ, BZ WBK, Pekao SA, PKO BP) Token autoryzacja metodą synchronizacji czasu 1 Generacja hasła na bazie czasu i kluczu użytkownika 2 Logowanie na bazie PIN u i hasła 5 Porównanie 3 PIN 4 Generacja klucza na bazie czasu i kluczu użytkownika Token autoryzacja metodą pytanie odpowiedź 1 PIN użytkownika 3 Użytkownik szyfruje liczbę swoim tajnym kluczem 2 Generacja liczby losowej 4 Serwer deszyfruje wiadomość 5 Porównanie 15
Dziękuję za uwagę 16