Grzegorz PANKOWSKI Bezpieczeństwo w sieci
Transkrypt
Grzegorz PANKOWSKI Bezpieczeństwo w sieci
Grzegorz PANKOWSKI Politechnika KoszaliĔska BEZPIECZEēSTWO W SIECI 1. Problem uwierzytelnienia w Internecie Dlaczego stosuje siĊ certyfikaty autentycznoĞci w Internecie? W Internecie nie widzimy kto jest po drugiej stronie, do upewnienia siĊ Īe osoba z którą siĊ komunikujemy jest tą, za którą siĊ podaje. By zapobiec oszustwom, polegającym na podszyciu siĊ pod kogoĞ innego, wykorzystuje siĊ certyfikaty autentycznoĞci potwierdzające, Īe wáaĞcicielem serwera jest dana instytucja. Certyfikat autentycznoĞci w uproszczeniu jest kluczem publicznym (plus trochĊ innych informacji) elektronicznie podpisanym przez klucz prywatny. W celu umoĪliwienia uwierzytelniania uĪytkowników lub instytucji w sieci powstaáa Infrastruktura Klucza Publicznego (PKI – Public Key Infrastructure). Jest to sposób na zapewnienie posiadacza klucza publicznego (klucz publiczny z zaáoĪenia jest ogólno dostĊpny) Īe naleĪy on do konkretnej osoby i nie zostaá on wygenerowany przez kogoĞ innego. Istnieją dwa modele zaufania. Pierwszy to sieü zaufania, gdzie wierzymy w autentycznoĞü tylko tych kluczy które dostajemy bezpoĞrednio od znajomych, ewentualnie gdy przyjaciele którym ufamy poĞwiadczą wiarygodnoĞü kluczy ich znajomych (model stosowany w certyfikatach PGP). Jest to model równorzĊdny, gdzie kaĪdy uĪytkownik ma takie same prawa. Jest moĪliwy tylko w maáych grupach uĪytkowników. Drugie podejĞcie to hierarchiczny podziaá zaufanych urzĊdów certyfikacyjnych. Firmy zajmujące siĊ poĞwiadczaniem toĪsamoĞci uĪytkowników sieci, przyznają klientom certyfikaty. PKI jest zbiorem standardów, tworzonych wspólnie przez producentów oprogramowania oraz miĊdzynarodowe instytucje normalizacyjne i publikowanych obecnie przez ITU-T jako normy X.509. Innym przykáadem znormalizowanej PKI są dokumenty publikowane pod nazwą PKCS#12 przez firmĊ RSA Data Security. Weryfikacja autentycznoĞci certyfikatu jest dla uĪytkownika transparentna (w przypadku gdy zainstalowane jest Centrum Certyfikacji), caáą procedurĊ wykonuje za niego przeglądarka internetowa. Objawia siĊ to zamkniĊtą káódką na pasku statusu (IE, Mozilla Firefox) lub pasku adresowym (Opera), ponadto pasek adresowy zmienia kolor na Īóáty, jest to wynik poáączenia na porcie 443. Poáączenie z bezpieczną witryną wiąĪe siĊ przez HTTPS, by ukryü treĞü przesyáanych kluczy przesyáanych przy negocjacji przy poáączeniu. 130 Grzegorz Pankowski 2. Historia Standardów sieciowych X.500, opis poszczególnych standardów Standard X.509 naleĪy do rodziny standardów X.500, która to zostaáa rozwiniĊta przez organizacjĊ ITU-T (International Telecommunication Union – Telecommunications Sector), do 1992 znaną pod nazwą CCITT (International Telegraph and Telephone Consultative Committee – CCITT to skrót od francuskiej nazwy „Comité Consultatif International Téléphonique et Télégraphique”). Organizacja ITU-T publikuje serie rekomendacji, stosowane są oznaczenia skáadające siĊ z litery (litera X oznacza dane sieciowe i otwarty system komunikacji) i liczby (seria 500 dotyczy standardów sieci komputerowych i elektronicznych serwisów katalogowych (series of computer networking standards covering electronic directory services). 3. Specyfikacja certyfikatu X.509 (ISO/IEC 9594-8) jako standard wykorzystywany w systemie elektronicznych podpisów kwalifikowanych (prawnie niezaprzeczalnych). Struktura oraz procedury autoryzacji certyfikatów wersji 1, 2 i 3 – Sygnatariusz skáadający podpis jest gwarantem autentycznoĞci (wedle prawa, jeĞli jest to centrum kwalifikowane) danych posiadacza certyfikatu. – Numer seryjny certyfikatu jest unikalny wewnątrz jednostki wydającej certyfikaty (CA – Certification Authority). – Unikalne identyfikatory zostaáy dodane, by umoĪliwiü ponowne uĪycie nazwy podmiotu i/lub wystawcy. Te pola są rzadko uĪywane. – Kilka powszechnych rozszerzeĔ: KeyUsage (limituje uĪycie kluczy do szczególnego celu jak „tylko-do-podpisu”), AlternativeNames (umoĪliwia innym identyfikatorom byü równieĪ zrzeszanym za pomocą klucza publicznego, np. nazwy DNS, adresy Email, adresy IP). Rozszerzenie moĪe byü oznaczone jako critical by wskazaü, Īe rozszerzenie musi byü sprawdzone i wymuszone/uĪyte. Na przykáad, jeĞli certyfikat posiada rozszerzenie KeyUsage z oznaczeniem krytycznym i ustawionym na „keyCertSign” wtedy, jeĞli ten certyfikat jest przedstawiany poprzez komunikacje SSL, powinien byü odrzucony, jako Īe rozszerzenie certyfikatu wskazuje na to, Īe przypisany klucz prywatny moĪe byü uĪyty tylko do podpisywania certyfikatów, a nie do uĪycia SSL. 131 BezpieczeĔstwo w sieci Identyfikator algorytmu podpisu Wersja formatu certyfikatu Numer seryjny certyfikatu WaĪny od... do... Wersja 3 Okres waĪnoĞci Data uaktualnienia listy Wersja 1 Nazwa wystawcy (sygnotariusza) Nazwa wystawcy Wersja 2 Identyfikator algorytmu podpisu i jego paramentry Algorytm Paramerty Nazwa podmiotu NastĊpna data uaktualnienia listy UniewaĪniony certyfikat Numer seryjny certyfikatu Data uniewaznienia UniewaĪniony certyfikat Numer seryjny certyfikatu Data uniewaznienia Identyfikator algorytmu klucza i jego parametry Unikalny identyfikator wystawcy Unikalny identyfikator podmiotu Podpis certyfikatu Skrót wszystkich wartoĞci poprzednich pól certyfikatu uzyskany za pomocą klucza prywatnego sygnatariusza Wszystkie wersje MoĪliwe rozszerzenia (jedno lub wiĊcej) Podpis certyfikatu Certyfikat X.509 Algorytm Parametry Zaszyfrowane Lista certyfikatów uniewaĪnionych Rys. 1. Schemat struktury certyfikatów i listy certyfikatów uniewaĪnionych Sposoby zapisu certyfikatów do plików binarnych DziĞ najczĊĞciej uĪywany jest system Base64 sáuĪący do kodowania ciągu bajtów za pomocą ciągu znaków, stosowany takĪe do przesyáania zaáączników binarnych w poczcie elektronicznej, kodowania haseá przesyáanych w protokole SMTP podczas uwierzytelniania metodami AUTH i LOGIN. Plik posiada rozszerzenie .PEM. Wypará on wczeĞniejszy .BER (basic encoding rules) i .DER (lub .CER disguished encoding rules). TreĞü certyfikatu jest otoczona przez frazy: "-----BEGIN CERTIFICATE-----" i "-----END CERTIFICATE-----". 4. Procedury autoryzacji certyfikatów WĞród wystawców certyfikatów istnieje jasno okreĞlona hierarchia umoĪliwiająca egzystowanie w tak olbrzymiej sieci jaką jest Internet. Tak wiĊc istnieje gáówny wystawca certyfikatów zwany rootem, root z kolei oddelegowuje czĊĞü uprawnieĔ certyfikacyjnych podmiotom niĪszego szczebla. Takie swoiste dziedziczenie uprawnieĔ powoduje, Īe gdy korporacja chce wyposaĪyü w certyfikaty wszystkich swoich pracowników – wtedy nie ma potrzeby angaĪowania gáównego wystawcy certyfikatów, gdyĪ sama ma wystarczające uprawnienia. Klient musi posiadaü klucz publiczny urzĊdu, który podpisaá dany certyfikat, albo 132 Grzegorz Pankowski urzĊdu z wyĪszego szczebla. Klucz centrum certyfikacji potwierdza toĪsamoĞü wszystkich ogniw w hierarchii poniĪej. W chwili otrzymania certyfikatu (Certificate Discovery) przeglądarka sprawdza, przez jaki urząd zostaá on podpisany, jeĪeli odnajdzie go w swojej wewnĊtrznej bazie proces jest juĪ zakoĔczony, a witryna uwierzytelniona, w przeciwnym wypadku przeszukuje bazy zewnĊtrzne, tzw. Repozytoria kluczy (powszechnie katalogi LDAP). Certyfikat znaleziony w sieci nie jest jednak wiarygodny, gdyĪ katalog powszedni mógá zostaü zmodyfikowany przez osoby trzecie, które podmieniáy certyfikaty (Path Validation). W takim wypadku sprawdza siĊ nadrzĊdnego wystawcĊ certyfikatu z katalogu. JeĪeli nadrzĊdny wystawca jest znany przeglądarce, wtedy certyfikaty są akceptowane, w przeciwnym wypadku nastĊpuje kolejne odwoáanie do katalogów LDAP i procedura zostaje powtórzona. W tym przypadku istnieją dwie moĪliwoĞci, jedna to znalezienie podpisu CA, który jest w bazie czego wynikiem jest akceptacja, lub znalezienie takiego certyfikatu, który nie jest podpisany przez Īadne centrum nadrzĊdne (ostatni w áaĔcuchu certyfikacji) – wtedy przeglądarka informuje, Īe certyfikat witryny nie zostaá uznany za godny zaufania i decyzjĊ czy certyfikat zaakceptowaü, pozostawia uĪytkownikowi. Kolejnym krokiem przeglądarki po znalezieniu akceptowalnego certyfikatu jest sprawdzenie listy certyfikatów uniewaĪnionych (Revocation Checking). JeĪeli znaleziony certyfikat znajduje siĊ na liĞcie, nie moĪe on byü zaakceptowany. RozróĪnia siĊ trzy warianty procedury autoryzacji: – Jednostronna autoryzacja – angaĪuje pojedynczy transfer informacji od uĪytkownika A do uĪytkownika B. W tym przypadku sprawdzana jest tylko toĪsamoĞü strony inicjującej poáączenie, toĪsamoĞü strony odpowiadająca jest nie zostaáa zweryfikowana. WiadomoĞü musi zawieraü znacznik czasowy, losową wartoĞü i toĪsamoĞü B, podpisana jest kluczem publicznym A. Znacznik czasowy zawiera opcjonalnie czas generacji i czas wygaĞniĊcia waĪnoĞci wiadomoĞci. Losowa wartoĞü musi byü unikalna do tego czasu, w przypadku innej wiadomoĞci z tą samą wartoĞcią losowej wartoĞci jest ona odrzucana. Przy czystej autoryzacji, wiadomoĞü jest uĪyta jedynie w celu przedstawienia siĊ. WiadomoĞü moĪe teĪ zawieraü dane, są wtedy przekazane razem z podpisem, co gwarantuje ich integralnoĞü i to, Īe pochodzą od A. WiadomoĞü moĪe zawieraü takie wiadomoĞci, jak klucz sesyjny zaszyfrowany kluczem publicznym B. – Dwustronna autoryzacja – pozwala obu stronom na komunikacjĊ ze wzglĊdu na to Īe toĪsamoĞü obu stron zostaáa uprzednio zweryfikowana. OdpowiedĨ zawiera takĪe wartoĞü losową od A, by walidowaü odpowiedĨ. Zawiera takĪe znacznik czasowy i wartoĞü losową od B. Jak powyĪej wiadomoĞü moĪe zawieraü równieĪ podpisane informacje dodatkowe i klucz sesyjny podpisany przez klucz publiczny A. – Trójstronna autoryzacja – kolejna wiadomoĞü od A do B zostaje doáączona do poprzednich, zawiera ona podpisaną kopiĊ wartoĞci losowej od B. W in- BezpieczeĔstwo w sieci 133 tencji autorów autoryzacji trójstronnej leĪaáo wyeliminowanie uĪycia znacznika czasowego. KaĪda ze stron odesáaáa z powrotem odebraną wartoĞü losową, wiĊc są w stanie wykryü atak polegający na próbie podmiany. Takie rozwiązanie jest stosowane w przypadku kiedy synchronizacja zegarów nie jest moĪliwa. 5. Certyfikaty uwierzytelniające uĪytkownika a certyfikaty uwierzytelniające serwer Od strony technicznej certyfikaty uwierzytelniające ogromne serwery i zwykáych uĪytkowników nie róĪnią siĊ niczym, mają tĊ samą strukturĊ, klucze są szyfrowane tymi samymi algorytmami. Kosz wydania certyfikatu przez podmiot wydający certyfikaty kwalifikowane na osobĊ prawną oscyluje wokóá 200-250 PLN, certyfikat jest taki wydawany na rok (100-150 PLN kosztuje odnowienie certyfikatu na kolejny rok.). Klient dostaje mikroprocesorową kartĊ kryptograficzną z zainstalowanym systemem operacyjnym, która udostĊpnia certyfikat systemowi (jednakĪe klucz prywatny nigdy nie opuszcza karty). Urządzenia te są odpowiednio zabezpieczone przed ingerencją z zewnątrz. KoniecznoĞü noszenia przy sobie i kaĪdorazowego podáączania urządzenia do komputera zapobiega uĞpieniu czujnoĞci, jak przy jednorazowej instalacji w systemie. W przypadku zgubienia karty i tak przed uĪyciem jej przez osobĊ trzecią chroni system kodów (PIN i PUK). 6. Instytucje certyfikujące wystawców certyfikatów i podmioty wydające certyfikaty kwalifikowane w Polsce i na Ğwiecie Powoáano instytucje zaufania publicznego (centra autoryzacyjne). Instytucje takie wystawiając zainteresowanym certyfikaty, biorą w ten sposób na siebie odpowiedzialnoĞü za to, Īe osoba/instytucja jest tą, za którą siĊ podaje. Centra autoryzacyjne są zhierarchizowane, na samej górze jest gáówna instytucja, tzw. „Root”, która przyznaje certyfikaty kolejnym. WĞród miĊdzynarodowych urzĊdów certyfikacyjnych najczĊĞciej są wymieniane: CAcert.org, cybertrust, Globalsign, Thawte, VeriSign, GeoTrust… Krajowe urzĊdy certyfikacyjne: Krajowa Izba Rozliczeniowa, UniZeto, Sigillum, Signet. 7. Podsumowanie W Polsce Centra Certyfikujące zostają powoáane przez prezesa NBP. Mamy cztery gáówne, równowaĪne instytucje. Aby uzyskaü certyfikat, niezbĊdny jest dokument potwierdzający toĪsamoĞü w danym paĔstwie. ĩadna inna instytucja niĪ CA nie jest w stanie zmodyfikowaü certyfikatu bez pozostawienia Ğladu 134 Grzegorz Pankowski (niekonsekwencji w podpisie certyfikatu, czyli skrócie wszystkich pól certyfikatu). Niestety, firmy wprowadziáy wáasny format kart kryptograficznych, czytników oraz oprogramowania niekompatybilny z pozostaáymi, rozporządzenie wykonawcze do ustawy pozwala stosowaü róĪne formaty. Takie rozwiązanie jest niestety, nieoptymalne i bardzo drogie. Bibliografia: 1. Stalling W.: Cryptography and Network Security: Principles and Practice, 2nd Edition. 2. ITU-T Recommendation X.509. 3. ITU-T Recommendation X.509 (2000). Technical Corrigendum 1. 4. Horstmann C.S., Cornell G.: Core Java2: Techniki zaawansowane. 5. http://www.itu.int. 6. http://wikipedia.org. 7. http:/java.sun.com/j2se/1.5.0/docs/guide/security/cert3.html. 8. http://www.openssl.org/docs/apps/x509.html. 9. http://www.networld.pl/artykuly/9930_4.html.