CERTYFIKATY I INFRSTRUKTURA KLUCZY PUBLICZNYCH Autor : Robert Chodacz
INFRASTRUKTURA KLUCZY PUBLICZNYCH ORAZ MODELE DYSTRYBUCJI Wiele protokołów zabezpieczających w celu zapewnienia usług takich jak poufność , integralność danych, uwierzytelnianie źródła danych oraz uniemożliwienie wyparcia się czegoś polega na kryptografii z kluczem publicznym . Uwierzytelnianie - ustala tożsamość zarówno nadawcy jak i odbiorcy informacji. Integralność - gwarantuje, że dane nie zostały zmienione. Poufność - zapewnia, że nikt poza nadawcą oraz odbiorcą danych nie jest w stanie ich zrozumieć.
Cel PKI ( Public Key Infrastrukture - infrastruktura kluczy Cel PKI ( Public Key Infrastrukture - infrastruktura kluczy publicznych) zapewnienie zaufanego i wydajnego zarządzania kluczami oraz certyfikatami niezbędnymi dla tych protokołów. PKI jest zdefiniowana w dokumencie Internet X.509 Public Key Infrastructure PKIX Roadmap „work in progress” w następujący sposób : „zbiór sprzętu, oprogramowania, ludzi, polityki oraz procedur niezbędnych do tworzenia, zarządzania, przechowywania, dystrybucji oraz odbierania certyfikatów opartych na kryptografii z kluczem publicznym „
PKI składa się z poniższych pięciu typów komponentów (wg PKI składa się z poniższych pięciu typów komponentów (wg. NIST Special Publication 800 - 15, Minimum Interoperablity Specyfiaktion for PKI Components, Version1 ,wrzesień 1997 autorstwa Williama Bura, Donny Dodson, Noela Nazario oraz W.Timothy’ego Polka): CA ( Certyficat Authories - wydawcy certyfikatów), przydzielających i odbierających certyfikaty ORA(Organizational Registration Authories - autorytet organizacyjnej rejestracji), poręczających za powiązania pomiędzy kluczami publicznymi, tożsamością posiadaczy certyfikatów oraz innymi atrybutami . Posiadaczy certyfikatów którym wydawane są certyfikaty i którzy mogą podpisywać cyfrowe dokumenty Klientów, którzy zatwierdzają cyfrowe podpisy oraz ich ścieżki certyfikowania prowadzące do znanych publicznych kluczy zaufanych CA Magazynów, które przechowują i udostępniają certyfikaty oraz CRL(Certyfiacte Revocation List - lista unieważnienia certyfikatu)
Funkcje PKI Rejestracja. Proces , za pomocą którego dana jednostka przedstawia się CA - bezpośrednio lub za pośrednictwem zarządu rejestracji (ang. registration authority - RA ) - zanim CA wyda jej certyfikat lub certyfikaty. Inicjacja - Moment, w którym użytkownik lub system kliencki otrzymuje wartości, potrzebne do rozpoczęcia komunikacji z PKI. Inicjacja może przykładowo obejmować dostarczenia klientowi systemu z kluczem publicznym ( (np. PGP) lub certyfikatem CA albo wygenerowanie pary kluczy publiczny/prywatny klienta. Certyfikowanie - Proces, w którym CA wydaje certyfikat dla klucza publicznego danej jednostki, a następnie zwraca ów jednostce ( albo upublicznia ów certyfikat w magazynie ) Odzyskiwanie par kluczy - Jeśli CA wygenerował i wydał parę kluczy, kopia zapasowa prywatnego klucza użytkownika może być przechowywana albo przez CA, albo przez osobny system przechowujący kopie zapasowe . Jeśli użytkownik lub jego pracodawca chce odzyskać te klucze z kopii zapasowych, PKI musi zapewnić system umożliwiający odzyskanie kluczy bez powodowania niedopuszczalnego ryzyka ujawnienia klucza prywatnego .
Generowanie kluczy. W zależności od polityki CA , para kluczy prywatny/publiczny może być generowana albo lokalnie przez użytkownika, albo przez CA . W tym drugim przypadku klucze mogą zostać dostarczone użytkownikowi w zaszyfrowanym pliku albo w postaci fizycznej(inteligentna karta albo karta PCMCIA) Uaktualnienie kluczy. Wszystkie pary kluczy muszą być regularnie uaktualniane ( to znaczy zastępowane nową parą kluczy), a także wydawane muszą być nowe certyfikaty. Dzieje się tak w dwóch przypadkach: normalnym( po przekroczeniu przez klucz swojego terminu ważności) oraz wyjątkowym ( jeśli klucz został ujawniony i musi zostać zmieniony). Certyfikowanie przechodnie(ang. cross - certyfication) . Certyfikat jest wydawany przez jeden CA drugiemu CA; certyfikat zawiera publiczny klucz CA związany z prywatnym kluczem CA służącym do podpisywania wydanych certyfikatów. Zwykle certyfiakat przechodni używany jest w celu umożliwienia systemom klienckim oraz jednostkom końcowym jednej domeny administracyjnej bezpiecznego komunikowania się z systemom klienckim oraz użytkownikami końcowymi innej domeny administracyjnej.
Unieważnienie (ang. revocation) Unieważnienie (ang. revocation). W momencie wydania certyfikatu zakładane jest jego wykorzystanie przez cały okres ważności tzn. do daty która określa kiedy wygasa ważność certyfikatu . Może się zdarzyć potrzeba unieważnienia przed tym okresem ze względu na zmianę nazwy jednostki certyfikowanej , zmianę powiązania pomiędzy daną jednostką a CA (np. pracownik przestaje pracować w danej organizacji ) oraz ujawnienie lub podejrzenie ujawnienia odpowiadającego certyfikatowi klucza prywatnego w takich okolicznościach CA musi unieważnić certyfikat .
Certyfikat - jest potwierdzeniem tożsamości użytkownika wystawionym przez wystawcę certyfikatów CA. Certyfikat może zawierać informacje służące do ochrony danych lub do ustanowienia bezpiecznych połączeń ( tak jak to jest w naszej szkole - serwer ten posługuje się certyfikatami autoryzowanymi przez siebie.)
Certyfikat należy do Certyfikat wydany przez
CERTYFIKATY C.D. - są strukturami danych łączących wartości kluczy publicznych z danymi jednostkami . Celem CA jest zatem powiązanie klucza publicznego publiczną nazwą certyfikatu i tym samym zapewnienie strony trzeciej , że zostały podjęte odpowiednie środki ostrożności służące zapewnieniu poprawności powiązania. Certyfikaty są używane w procesie poświadczania podpisanych danych .Szczegóły zmieniają się w zależności od zastosowanego algorytmu , ale ogólny proces działa w następujący sposób : 1.Odbiorca podpisanych danych sprawdza, czy podana tożsamość użytkownika jest zgodna z tożsamością zawartą w certyfikacie. 2.Odbiorca sprawdza, czy żaden certyfikat na ścieżce nie został unieważniony na przykład poprzez uzyskanie wystarczająco aktualnej CRL listy unieważnienia certyfikatu albo włączonego w sieć sygnalizatora statusu certyfikatu ) c.d.
3. Odbiorca sprawdza, czy dane mają atrybuty, do których według certyfikatu podpisujący nie jest upoważniony . 4.Odbiorca za pomocą klucza publicznego z certyfikatu sprawdza , czy dane nie zostały zmienione od momentu ich podpisania .
Standard X.509 Standard X.509 stanowi powszechną podstawę infrastruktury PKI , definiującą format danych oraz związane z dystrybucją za pomocą certyfikatów cyfrowo podpisanych przez CA. Certyfikat X.509 V3 Aktualnie proponowany standard mający na celu zapewnienie wspólnej podstawowej linii do zastosowań internetowych używa formatu certyfikatów x. 509 V3 .
Korpus certyfikatu Format certyfikatu X.509 V3 Korpus certyfikatu zawiera numer wersji,numer seryjny, nazwę wydawcy oraz jednostki, której certyfikat dotyczy, klucz publiczny związany z tą jednostką oraz termin ważności ( ani przed ani po podanym czasie ) . Niekiedy korpus certyfikatu zawiera rozszerzenia, które są opcjonalnymi unikalnymi polami identyfikującymi, wiążącymi dodatkowe atrybuty z użytkownikami lub kluczami publicznymi .Algorytm podpisu to algorytm używany przez CA do podpisania certyfikatu. Podpis jest tworzony na podstawie podania korpusu certyfikatu na wejście funkcji mieszającej . Wartość wyjściowa w celu uzyskanie podpisu jest szyfrowana za pomocą klucza prywatnego CA.
Tworzenie cyfrowego podpisu dla certyfikatu X.509 V3
CRL X509 V2 X509 definiuje jedną z metod unieważniania certyfikatu metoda ta wymaga od każdego CA aby okresowo wydawał podpisaną strukturę danych określaną mianem listy unieważnienia certyfikatu CRL .CRL jest podpisywana przez CA i udostępniana w publicznym miejscu . Każdy unieważniony certyfikat w CRL jest identyfikowany na podstawie numeru seryjnego . CA wydaje CRL ( np. co godzinę ) . System wykorzystujący certyfikaty (np. w celu zweryfikowania cyfrowego podpisu zdalnego użytkownika ) sprawdza podpis certyfikatu jak i jego ważność a ponadto zdobywa aktualną CRL i sprawdza czy numer seryjny certyfikatu nie znajduje się na tej liście .
ZARZĄDZANIE KLUCZAMI Dystrybucja kluczy jawnych : Publiczne ogłoszenie . Ogólnie dostępny katalog Organ zarządzający kluczami jawnymi ( public key authority) Certyfikaty kluczy jawnych
Publiczne ogłaszanie kluczy jawnych Jeżeli mamy powszechnie akceptowany algorytm szyfrowania z kluczem jawnym, np. RSA, każdy uczestnik może wysłać swój klucz jawny innemu uczestnikowi albo przekazać klucz całej społeczności . KUa KUb A KUa B KUb KUa KUb KUa KUb Klucz taki dołączany jest np. do komunikatów wysyłanych do publicznych forum, taki jak grupy lub listy dyskusyjne.
Wady publicznego ogłaszania kluczy jawnych : każdy może być autorem takiego publicznego ogłoszenia tzn. ,że jakis użytkownik może podszyć się pod użytkownika A i wysyłać klucz jawny innemu użytkownikowi, lub ogłosić go. Zanim użytkownik A odkryje fałszerstwo i ostrzeże innych , fałszerz może czytać komunikaty przeznaczone dla A i może stosować fałszywe klucze do uwierzytelnienia .
Ogólnie dostępny dynamiczny katalog kluczy jawnych KUb KUa B A
System taki zawiera następujące elementy : Zarządzanie i dystrybucja należy do zaufanej jednostki lub organizacji. System taki zawiera następujące elementy : 1) Organ zarządzający utrzymuje katalog, w którym znajdują się pozycje postaci {nazwa , klucz jawny} dla każdego uczestnika. 2) Każdy uczestnik rejestruje klucz jawny u zarządzającego katalogiem. Rejestracja musi odbywać się osobiście lub w formie uwierzytelnionego przekazu . 3)Uczestnik może zastąpić istniejący klucz nowym, albo z powodu potrzeby klucza jawnego, który był używany do szyfrowania dużej ilości danych, lub dlatego, że bezpieczeństwo odpowiadającego mu klucza prywatnego zostało naruszone . 4) Okresowo zarządzający publikuje cały katalog lub go uaktualnia. Np. można publikować katalog w postaci oprawionej (coś w rodzaju książki telefonicznej) lub też publikować zmiany w popularnym piśmie . 5) Uczestnicy mają dostęp do katalogu drogą elektroniczną. Do tego celu potrzebna jest bezpieczna, uwierzytelniona forma komunikacji zarządzającego z uczestnikami .
Wady : Jeśli przeciwnikowi uda się uzyskać lub obliczyć klucz prywatny zarządzającego katalogiem, może on „legalnie” publikować fałszywe klucze jawne, podszywać się pod jakiegokolwiek uczestnika i podsłuchiwać wysłane komunikaty ponieważ klucz prywatny służy zarządzającemu do deszyfrowania zaszyfrowanej informacji , intruz może odczytywać wiadomości które są wysy - łane do zarządcy katalogiem . Innym sposobem jest włamanie się do archiwów zarządzającego .
Organ zarządzający kluczami jawnymi . Wyższy poziom bezpieczeństwa dystrybucji kluczy jawnych można osiągnąć przez dokładniejszą kontrolę dystrybucji kluczy jawnych z katalogu. Zakłada się, że centralny organ zarządzający utrzymuje dynamiczny katalog kluczy jawnych wszystkich uczestników. Ponadto każdy uczestnik zna klucz jawny zarządzającego, a wyłącznie zarządzający zna odpowiadający mu klucz prywatny.
Scenariusz dystrybucji klucza jawnego .
1. A wysyła do organu zarządzającego kluczami jawnymi datowany komunikat zawierający prośbę o obecny klucz jawny B. 2. Zarządzający odpowiada komunikatem zaszyfrowanym za pomocą własnego klucza prywatnego zarządzającego,Krauth . A może więc odszyfrować komunikat za pomocą klucza jawnego zarządzającego. A może więc być pewien, że komunikat pochodzi od zarządzającego . Komunikat ten zawiera : Klucz jawny B, KUb , którego A może używać do szyfrowania komunikatów przeznaczonych dla B Oryginalne żądanie, co umożliwi A porównanie go z wcześniej wysłanym i stwierdzeni czy nie zostało podmienione przed dotarciem do zarządzającego . Oryginalny datownik( znacznik czasu), aby umożliwić A stwierdzenie, że nie jest to stary komunikat od zarządzającego, zawierający inny kluczu jawny niż aktualny klucz B. C.d.
3. A przechowuje klucz jawny B i używa go do zaszyfrowania komunikatu do B, zawierającego identyfikator A(IDA) i identyfikator jednorazowy ( N1 ), stosowane jednoznacznej identyfikacji tej transakcji . 4,5. B uzyskuje klucz jawny A od zarządzającego w ten sam sposób , w jaki A uzyskał klucz B od zarządzającego. W tym czasie zostały bezpiecznie wymienione klucze publiczne ( jawne ) użytkowników i mogą oni rozpocząć chronioną wymianę komunikatów . Pożądane są jeszcze dodatkowe czynności . 6. B wysyła do A komunikat zaszyfrowany za pomocą Kua, zawiera - jący identyfikator jednorazowy A(N1) oraz nowy identyfikator jednora - zowy wygenerowany prze B(N2). Ponieważ tylko B mógł odszyfrować komunikat (3), obecność (N1) w komunikacie (6) upewnia A , A że koresponduje z B . 7. A zwraca N2 zaszyfrowany za pomocą klucza jawnego B, co upewnia że koresponduje z A.
Certyfikaty kluczy jawnych Poprzednia metoda ma pewne niedogodności a mianowicie : Zarządzający kluczami jawnymi może stanowić coś w rodzaju wąskiego gardła systemu, ponieważ użytkownik musi zwracać się do niego o klucz jawny każdego użytkownika, z którym chce się skontaktować . Katalog nazw i kluczy jawnych będący pod opieką zarządzającego jest również narażony na włamania . Metoda po raz pierwszy zaproponowana przez Kohnfeldera . Polega na tworzeniu certyfikatów, których uczestnicy mogą używać do wymiany kluczy bez kontaktowania się z zarządzającym kluczami jawnymi w sposób tak samo wiarygodny jak otrzymanie klucza jawnego od zarządzającego kluczami jawnymi. Każdy certyfikat zawiera klucz jawny i inne informacje , tworzy go organ zarządzający certyfikatami (CA) i otrzymuje go uczestnik posiadający odpowiedni klucz prywatny. Uczestnik przekazuje informacje o swoich kluczach innemu przez wysłanie mu swojego certyfikatu. Inni mogą sprawdzić czy certyfikat został wystawiony przez zarządzającego . C.d.
System oparty na certyfikatach kluczy jawnych powinien spełniać określone wymagania : 1. Każdy uczestnik może odczytać certyfikat, aby uzyskać nazwę i klucz jawny jego właściciela. 2. Każdy uczestnik może sprawdzić, czy certyfikat pochodzi od zarządzającego certyfikatami i czy nie jest fałszywy. 3.Wyłącznie zarządca certyfikatami może tworzyć i uaktualniać certyfikaty . 4.Każdy użytkownik może sprawdzić aktualność certyfikatu .
Wymiana certyfikatów kluczy jawnych
Każdy uczestnik zwraca się do zarządcy o wystawieni certyfikatu , dostarczając mu swój klucz jawny i prosząc o certyfikat. Należy to zrobić osobiście lub w formie bezpiecznej , uwierzytelnionej wymiany informacji . Dla użytkownika A zarządca przygotowuje certyfikat postaci : CA = EKRauth[T,IDA,KUA] EKRauth - jest kluczem prywatnym używanym przez zarządzającego. A może teraz przesłać certyfiakt innemu uczestnikowi, który odczytuje i weryfikuje go następująco : DKUauth[CA] = DKUauth[EKRauth[T,IDA,KUA]] = (T,IDA,KUA) Odbiorca używa klucza klucza jawnego zarządzającego, do odszyfrowania certyfikatu . Certyfikat może być odczytany za pomocą klucza jawnego co upewnia że certyfikat pochodzi od zarządzającego . Elementy IDA i KUA dostarczają odbiorcy nazwę i klucz jawny właściciela certyfikatu. Wreszcie datownik T potwierdza aktualność certyfikatu . C.d.
Datownik zapobiega następującym wydarzeniom : przeciwnik poznaje klucz prywatny A . A tworzy nową parę klucz prywatny/publiczny i zwraca się do zarządzającego o nowy certyfikat. Tymczasem przeciwnik wysyła do B stary certyfikat . Jeśli B będzie szyfrować komunikaty za pomocą starego klucza jawnego A , przeciwnik może odczytać te komunikaty. Naruszenie bezpieczeństwa klucza prywatnego można porównać do zgubienia karty kredytowej. Właściciel zastrzega numer karty, ale pozostaje zagrożony dopóty, dopóki wszyscy starzy partnerzy nie zostaną powiadomieni o nieważności karty. Datownik pełni coś w stylu daty ważności . Jeśli certyfikat jest dostatecznie stary uważa się go za nieważny.
Jak Robert może zdobyć publiczny klucz Alicji w sposób zapewniający zaufanie o CA.
1. Robert żąda od CA przysłania cyfrowego certyfikatu Alicji. 2.CA wysyła certyfikat Alicji, podpisany prywatnym kluczem CA. 3.Robert odbiera certyfikat i weryfikuje podpis CA. 4.Ponieważ certyfikat Alicji zawiera jej klucz publiczny, Robert ma teraz ‘notarialnie uwierzytelnioną’ wersję publicznego klucza Alicji.
PGP - PGP (Pretty Good Privacy - Całkiem Niezła Prywatność) jest kryptosystemem (tzn. systemem szyfrująco-deszyfrującym) autorstwa Phila Zimmermanna <prz@acm.org> wykorzystującym ideę klucza publicznego. Podstawowym zastosowaniem PGP jest szyfrowanie poczty elektronicznej, transmitowanej przez kanały nie dające gwarancji poufności ani integralności poczty. PGP pozwala nie tylko szyfrować listy, aby uniemożliwić ich podglądanie, ale także sygnować (podpisywać) listy zaszyfrowane lub niezaszyfrowane w sposób umożliwiający adresatowi (adresatom) stwierdzenie, czy list pochodzi rzeczywiście od nadawcy, oraz czy jego treść nie była po podpisaniu modyfikowana przez osoby trzecie. Szczególnie istotny z punktu widzenia użytkownika poczty elektronicznej jest fakt, że techniki szyfrowania oparte o metodę klucza publicznego nie wymagają wcześniejszego przekazania klucza szyfrowania/deszyfrowania kanałem bezpiecznym (tzn. gwarantującym poufność). Dzięki temu, używając PGP, mogą ze sobą korespondować osoby, dla których poczta elektroniczna (kanał niepoufny) jest jedyną formą kontaktu. W metodzie klucza publicznego, pojedynczy klucz zastąpiony jest parą kluczy: jeden z nich służy do zaszyfrowania listu, drugi do odszyfrowania. Znajomość klucza szyfrowania nie wystarczy do deszyfracji listu, ani do odtworzenia klucza deszyfrowania.
Szyfrowanie z wykorzystaniem klucza publicznego
Przykład podpisu cyfrowego pod wiadomością ( e-mail) . -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Treść wiadomości .................. ............. ................. -----BEGIN PGP SIGNATURE----- Version: PGP 6.5.2 Comment: PJWSTK iQA/AwUBOhjrlfzVPp10xzLREQJ0EACfdnatLqEUdZ56GGlRIk2oRhdmE5AAoJ6f 0OoqmhpqYCKuq1MyA4PS1+qp =0SQ8 -----END PGP SIGNATURE----- Podpis jest jednoznaczny nie tylko dla nadawcy, ale również dla podpisanej wiadomości. Podpis weryfikowany jest kryptografia asymetryczna.
Przykład klucza publicznego wygenerowanego z pomocą PGP