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.