VIII. Wprowadzenie do kryptografii
1. Wprowadzenie
Jak pamiętamy bezpieczne oprogramowanie powinno zapewnić:
- uwierzytelnienie (authentication), czyli weryfikację tożsamości podmiotu żądającego dostępu do usługi;
- autoryzacji (authorization) – weryfikacja upoważnienia żądającego dostępu do usługi – autoryzacja pełni
rolę służebną wobec poufności;
- poufność (confidentiality) – dostęp do informacji jest ograniczony wyłącznie do grona podmiotów do tego
upoważnionych;
- spójność/integralność (integrity) – zagwarantowanie, że informacja nie zostanie zmodyfikowana w sposób
nieuprawniony, a wszelkie modyfikacje zostaną wykryte;
- dostępność (availability) – do informacji można uzyskać dostęp w każdych okolicznościach, które są
dopuszczone przez politykę bezpieczeństwa informacji;
- niezaprzeczalność (non-repudiation) – strona podejmująca jakieś działania przy użyciu oprogramowania nie
może wyprzeć się, że wykonywała określone operacje z wykorzystaniem oprogramowania.
Poza wymienionymi cechami od bezpiecznego oprogramowania wymaga się czasami również zapewnienia prywatności
(privacy), czyli możliwość sprawowania przez podmiot kontroli nad informacją dotyczącą jego samego.
2. Prymitywy kryptograficzne
Poufność, spójność, prywatność i niezaprzeczalność są w oprogramowaniu realizowana za pomocą mechanizmów
kryptograficznych. Podstawowym pojęciem występującym w kryptografii jest tzw. prymityw kryptograficzny.
Wyróżniamy trzy podstawowe rodzaje prymitywów kryptograficznych:
- algorytmy szyfrowania,
- jednokierunkowe funkcje skrótu,
- schematy podpisów cyfrowych.
Z kolei algorytmy szyfrowania dzielimy na:
- kryptosystemy symetryczne (ciphers) korzystające z tzw. klucza tajnego, oraz
- kryptosystemy asymetryczne (encryption algorithms) wykorzystujące parę kluczy: (1) prywatny i (2)
publiczny.
2.1 Algorytmy symetryczne
O algorytmie symetrycznym możemy w ogólności mówić, jeśli znając jeden z pary kluczy (zasadniczo chodzi tutaj
o klucz szyfrujący) można w sposób „łatwy” (ang. in a computionally feasible manner) ustalić odpowiadający mu
klucz wykorzystywany w trakcie operacji odwrotnej. Powyższy warunek implikuje konieczność utrzymywania obydwu
kluczy w tajemnicy – stąd nazwa klucz tajny (secret key). W wykorzystywanych praktycznie algorytmach klucz
szyfrujący jest tożsamy z kluczem deszyfrującym.
Istnieją dwa rodzaje algorytmów symetrycznych:
- szyfry blokowe (block ciphers),
- szyfry strumieniowe (stream ciphers).
2.1.1 Szyfry blokowe
Zasada działania szyfrów blokowych polega na podziale wiadomości na bloki o odpowiedniej długości, po czym
wykonaniu operacji kryptograficznych na każdym takiego bloku z osobna. Jeśli ostatni fragment wiadomości jest
zbyt krótki, by wypełnić cały blok jest odpowiednio uzupełniany (padded).
Do podstawowych (atomowych) operacji wykonywanych na bloku zaliczamy:
- podstawienie (substitution), czyli zastąpienie jednej grupy znaków (również o długości 1) inną grupą
znaków. Podstawienie jest operacją podatną na ataki statystyczne wykorzystujące fakt, iż częstość pojawiania
się grup znaków w szyfrogramie (ciphertext) odpowiada częstości, z jaką pojawiają się one w tekście otwartym.
- przestawianie (transposition), czyli wykonywanie permutacji grup znaków wewnątrz bloku.
Żaden z wymienionych typów operacji nie ma najmniejszych szans na efektywne praktyczne zastosowanie.
Powszechnie znane algorytmy blokowe stanowią kompozycję atomowych operacji zapewniając w ten sposób wysoki
poziom bezpieczeństwa – są to tzw. szyfry złożone. W szyfrach złożonych bardzo często operacje atomowe grupuje
się w pary: podstawienie + przestawianie tworząc tzw. rundę (round) – wykorzystywane współcześnie szyfry
blokowe wykorzystują wiele rund w celu zaszyfrowania bloku. Zadaniem podstawienia w każdej rundzie jest
utrudnienie wychwycenia związku między kluczem a wynikowym szyfrogramem, natomiast przestawianie powoduje
rozproszenie informacji statystycznej.
Do szyfrów blokowych zaliczają się najpowszechniej stosowane algorytmy szyfrowania symetrycznego: (1) Data
Encryption Standard (DES), (2) Triple DES, (3) Rijandel – Advanced Encryption Standard (AES) – następca DES,
(4) IDEA, (5) Blowfish, (6) RC2, i inne.
2.1.2 Szyfry strumieniowe
Szyfry strumieniowe to tak naprawdę szyfry blokowe o długości bloku równej jeden znak. Zasadnicza różnica, a
jednocześnie siła szyfrów strumieniowych polega na tym, że każdy kolejny znak może być poddany innemu
przekształceniu przy użyciu innego klucza. Wykorzystywane praktycznie szyfry strumieniowe stosują bardzo
proste przekstałcenia w oparciu o ciąg jednoznakowych kluczy – strumień kluczy (keystream).
Strumień kluczy może być generowany przez generator liczb losowych tworząc tym samym jedyny znany szyfr, o
którym wiadomo na pewno, że jest niemożliwy do złamania – tzw. szyfr jednokrotny (one-time pad). Prosta suma
modulo 2 (XOR) znaku wiadomości i klucza, czyli tzw. Vernam Cipher był z powodzeniem wykorzystywany w
komunikacji radzieckiej siatki szpiegowskiej działającej w Stanach Zjednoczonych w latach 40-tych ubiegłego
wieku.
2.2 Kryptosystemy asymetryczne
Koncepcja kryptosystemów asymetrycznych jest oparta na założeniu, że pełne wykorzystanie wszystkich
mechanizmów kryptograficznych jest możliwe przy utajnieniu klucza deszyfrującego oraz wszelkich informacji,
które mogłyby „ułatwić” jego ustalenie. W stosunku do wszystkich pozostałych elementów – zwłaszcza algorytmów
– wykorzystywanych w trakcie operacji kryptograficznych powinno być przyjęte założenie, że są one powszechnie
dostępne.
Praktyka stosowania kryptografii dowiodła, że utrzymanie informacji w tajemnicy jest zadaniem wyjątkowo
trudnym. Dlatego, aby w stopniu akceptowalnym być pewnym, że informacja pozostaje niedostępna dla osób do tego
niepowołanych należy:
- Dokonywać okresowej zmiany zabezpieczenia zmniejszając w ten sposób prawdopodobieństwo ewentualnego jego
złamania (compromising);
- Bezzwłocznie przeprowadzać zmianę zabezpieczenia w momencie wykrycia jego naruszenia;
- Ograniczyć informację decydującą o zapewnieniu poufności danych do niezbędnego minimum oraz przechowywać
ją w możliwie najmniejszej liczbie miejsc.
W ogólności o algorytmie asymetrycznym możemy mówić, jeśli dla każdej pary odpowiadających sobie kluczy
szyfrującego i deszyfrującego jest obliczeniowo „niewykonalne” (computionally unfeasible) ustalenie klucza
deszyfrującego w oparciu o klucz szyfrujący. Funkcja szyfrująca w kryptosystemie asymetrycznym to w języku
kryptografii „funkcja jednostronna z oknem wyłazowym” (trapdoor one-way function), w której wspomniane „okno
wyłazowe” stanowi klucz deszyfrujący.
Najpowszechniej wykorzystywanym w praktyce algorytmem asymetrycznym jest RSA, który wziął swoją nazwę od
pierwszych liter twórców: Ronalda Rivesta, Adiego Shamira oraz Leonarda Adlemana. Bezpieczeństwo algorytmu RSA
jest oparte o problem faktoryzacji (rozkładu na czynniki pierwsze).
2.3 Funkcje skrótu
Jednokierunkowe funkcje skrótu (one-way hash functions) to funkcje, które w wyniku otrzymania na wejściu
„długiego” ciągu znaków o dowolnej długości generują tzw. skrót (digest), zwany też cyfrowym podpisem palca
(digital fingerprint) – ciąg znaków o stałej długości. O bezpieczeństwie funkcji skrótu decyduje stopień
„niewykonalności” (unfeasibility) znalezienia wejściowego (oryginalnego, bądź dowolnego innego) ciągu znaków
dla danego message digest.
Najpowszechniej stosowanymi algorytmami skrótu są: Message Digest 5 (MD5), oraz Secure Hash Algorithm 1
(SHA-1). W obu wymienionych algorytmach znaleziono błędy, które powodują, że stopniowo odchodzi się od nich na
rzecz SHA-2 – następcy SHA-1.
2.4 Schematy podpisów cyfrowyvch
Schematy podpisów cyfrowych (digital signature schemes) są sposobem na weryfikację tożsamości (authentication)
informacji cyfrowej i pełnią rolę podpisu tradycyjnego. Działanie schematu podpisu elektronicznego polega na
wyliczeniu skrótu dla wiadomości, po czym zaszyfrowanie go kluczem prywatnym podmiotu podpisującego.
Najpowszechniej stosowanymi algorytmami w podpisach cyfrowych są: RSA, oraz Digital Signature Algorithm (DSA)
– zazwyczaj w połączeniu z SHA-1.
3. Kryptografia a efektywne bezpieczeństwo danych
Komunikacja dwustronna z wymianą kluczy przez kanał bezpieczny – jedyna możliwość jeśli korzystamy z
algorytmu, w którym klucz deszyfrujący może być „łatwo” uzyskany z klucza szyfrującego.
Rysunek 8.1:
Teoretycznie korzystanie z kryptografii klucza publicznego umożliwia transmisję klucza szyfrującego
(publicznego) kanałem niezabezpieczonym.
Rysunek 8.2:
Sam fakt korzystania z kryptografii klucza publicznego w trakcie komunikacji nie daje nam jednak
stuprocentowej gwarancji, że wymiana danych między stronami będzie odbywała się w sposób bezpieczny. Klucz
publiczny jest ciągiem bajtów (o określonych właściwościach), który nie dostarcza nam jednak żadnych
informacji nt. tożsamości właściciela. Aktywny przeciwnik (active adversary) może deszyfrować wiadomości
podszywając się pod odbiorcę – jest to tzw. impersonation attack, lub man in-the-middle attack.
Atak przebiegałby zgodnie z następującym scenariuszem:
- Złośnik przechwytuje klucz publiczny Alicji, który miał dotrzeć do Boba.
- Zamiast klucza publicznego Alicji Złośnik przekazuje Bobowi klucz publiczny wygenerowany przez siebie.
- Bob szyfruje wiadomość kluczem publicznym otrzymanym od Złośnika będąc przekonanym, że jest to klucz
publiczny Alicji.
- Złośnik przechwytuje wiadomość zaszyfrowaną przez Boba, dokonuje w niej zmian po czym szyfruje
zmodyfikowaną wiadomość kluczem publicznym Alicji przyczyniając się tym samym do jej dezinformacji.
Rysunek 8.3: Man-in-the-middle attack
Atak na opisany protokół dystrybucji kluczy nie wynika ze słabości kryptografii klucza publicznego, a faktu,
że projektanci protokołu zapomnieli zastosować w nim mechanizmów chroniących integralność klucza publicznego
(szyfrującego).
W celu uchronienia się przed man-in-the-middle attack strona wysyłająca wiadomość musi przeprowadzić
uwierzytelnienie klucza publicznego odbiorcy tej wiadomości. Zanim jednak nadawca będzie mógł uwierzytelnić
klucz odbiorcy wiadomości, sam odbiorca wiadomości musi certyfikować swój klucz publiczny u tzw. zaufanej
trzeciej strony (trusted third party), która cieszy się zaufaniem obu stron komunikacji (przede wszystkim
nadawcy). Certyfikacja w tym przypadku polega na:
- sprawdzeniu tożsamości odbiorcy;
- weryfikacji, czy właścicielem klucza publicznego, który ma podlegać certyfikacji jest rzeczywiście
podmiot, który go nadesłał.
Jeśli weryfikacja wypadnie pomyślnie trusted third party tworzy tzw. dane certyfikatu – informację
jednoznacznie identyfikującą podmiot (np. imię, nazwisko, data urodzenia, itp.) powiązaną z kluczem
publicznym. Proces certyfikacji zamyka złożenie przez zaufaną trzecią stronę podpisu na danych certyfikatu.
Z kolei podstawą do zaufania do strony wystawiającej certyfikat jest fakt posiadania przez nadawcę kopii
ważnego klucza publiczny trusted third party, który przykładowo otrzymał bezpieczną drogą (np. w pakiecie
dystrybucyjnym oprogramowania). W oparciu o klucz publiczny trusted third party strona wysyłająca może
przeprowadzić weryfikację, czy otrzymany klucz publiczny rzeczywiście pochodzi od odbiorcy wiadomości. Sam
certyfikat może być przesłany dowolnym kanałem: bezpiecznym, bądź niezabezpieczonym. Po otrzymaniu certyfikatu
nadawca wiadomości sprawdza jego autentyczność, następnie akceptuje klucz publiczny znajdujący się w
certyfikacie. Od tego momentu nadawca może szyfrować korespondencję do okaziciela certyfikatu mając pewność,
że nie zostanie ona odczytana, ani zmodyfikowana z pewnością taką, z jaką ufa trusted third party.
Rysunek 8.4: Proces certyfikacji klucza publicznego za pośrednictwem zaufanej trzeciej strony.
4. Public Key Infrastructure
W ogólności pod pojęciem Public Key Infrastructure (PKI) kryje się instytucjonalne rozwiązanie, którego celem
jest wkomponowanie kryptografii klucza publicznego w system informacyjny zgodnie z wymogami stawianymi przez
politykę bezpieczeństwa.
Na PKI składają się:
- zasady postępowania i procedury wspomagające wykorzystanie kryptografii klucza publicznego w organizacji;
- wykorzystywane zaplecze techniczne (sprzęt i oprogramowanie);
- oraz ludzie (pełnione przez nich role i związany z tym zakres odpowiedzialności) biorący udział w
wystawianiu, dystrybucji, oraz zarządzaniu elementami kryptografii publicznej.
PKI pełni w kontekście kryptografii klucza publicznego rolę analogiczną do roli jaką odgrywa polityka
bezpieczeństwa informacji w ramach instytucji. Sprawując kontrolę nad wystawianymi certyfikatami PKI określa
poziom zaufania pomiędzy (1) z jednej strony okazicielami certyfikatów, (2) z drugiej strony podmiotami
akceptującymi certyfikat.
Proces tworzenia PKI – podobnie jak polityki bezpieczeństwa informacji – zawsze powinno rozpoczynać
szczegółowe określenie wymagań. Punktem wyjściowym powinna być specyfika działalności organizacji oraz
operacje biznesowe, które mają być wspierane przez kryptografię publiczną. Dopiero na dalszym etapie powinna
być rozpatrywana wykorzystywana technologia.
Na świecie wypracowano dwie koncepcje rozwiązania problemów związanych z uwierzytelnianiem klucza szyfrującego
w oparciu o kryptografię klucza publicznego:
- wzajemna certyfikacja podmiotów biorących udział w komunikacji – rolę zaufanej trzeciej strony może
pełnić każdy z uczestników komunikacji;
- wyznaczenie specjalnego podmiotu, który dla wszystkich uczestników komunikacji będzie odgrywał rolę
trusted third party – na tym wyodrębnionym obiekcie będzie spoczywała cała odpowiedzialność za wiarygodność
certyfikatów.
By uniknąć konieczności wzajemnej certyfikacji każdego obiektu przez każdy inny, która uczyniłaby pierwsze
podejście zupełnie niepraktycznym, przyjęto założenie „propagacji zaufania” – w skrócie jeśli A ufa B, a B ufa
C to A jednocześnie ufa C.
Pierwsza z wymienionych metod zakłada solidarną odpowiedzialność użytkowników za wiarygodność certyfikatów. To
właśnie przesądziło, że pierwsze podejście nie znalazło uznania wśród organizacji, natomiast znakomicie
sprawdziło się w zastosowaniach prywatnych, na takim bowiem rozproszonym modelu PKI jest oparte Pretty Good
Privacy (PGP). Philip Zimmermann – twórca PGP – wyszedł z założenia, że każdy powinien świadomie chronić swoją
prywatność – nie zdając się w tym względzie na żadną instytucję. W rzeczywistości – mimo deklaracji –
większość ludzi nie dba o swoją prywatność, co wynika głównie z braku świadomości i lenistwa. Z tego pewnie
względu PGP lub GNU Privacy Guard (GPG) nie ma aż tak wielu użytkowników jak można by oczekiwać.
W zastosowaniach komercyjnych oraz w administracji publicznej znakomicie przyjął się z kolei scentralizowany
model PKI. Najpowszechniej stosowanym standardem zapisu certyfikatu w oparciu o centralny model PKI jest
X.509.
PKI jest odpowiedzialne za: (1) wystawianie certyfikatów, (2) unieważnianie certyfikatów, (3) uaktualnianie
oraz odnawianie certyfikatów, a także (4) rejestrację wszystkich powyższych zdarzeń. Z tego względu w praktyce
trudno raczej mówić o PKI innym niż zarządzane centralnie przez specjalnie wydesygnowaną instytucję trusted
third party, czyli tzw. Certificate Authority (CA). W niektórych implementacjach PKI obowiązki związane z:
- weryfikacją tożsamości podmiotów ubiegających się o certyfikat,
- generacją pary kluczy
spoczywają na barkach specjalnie w tym celu wyznaczonego ciała zwanego Registration Authority (RA). Zazwyczaj
jedno CA może wystawiać certyfikaty podmiotom zweryfikowanym przez wiele zaufanych RA. W takim modelu RA
przejmuje odpowiedzialność za wnioski certyfikacji (certificate signing requests) wysyłane do CA.
Certyfikat składa się z trzech zasadniczych elementów:
- nazwy jednostki dla której został on wystawiony – jest to tzw. podmiot (subject) certyfikatu;
- skojarzony z podmiotem certyfikatu klucz publiczny;
- podpis cyfrowy złożony przez CA, który stanowi podstawę dla weryfikacji informacji zawartych w
certyfikacie.
Istnieje wiele formatów zapisu certyfikatów klucza publicznego, jednak najpowszechniej stosowanym formatem
zapisu certyfikatu jest X.509 version 3. Chociaż istnieją inne standardy certyfikatów (np. PGP/GPG) – standard
X.509 version 3 jest dominujący.
Elementy składowe certyfikatu zapisanego w formacie X.509 version 3:
- Distinguished Name podmiotu, dla którego wystawiono certyfikat;
- Distinguished Name urzędu certyfikacji;
- data wystawienia oraz data ważności certyfikatu – certyfikat jest ważny wyłącznie w przedziale czasu
ograniczonym tymi datami;
- wersja – istnieją różne wersje standardu X.509 – ostatnią i jednocześnie najpowszechniej używaną jest
wersja 3.
- numer seryjny (serial number) – każdy certyfikat wydawany przez urząd certyfikacji posiada niepowtarzalny
numer seryjny, który jest unikalny dla danego CA – zatem kombinacja tego numeru i oraz DN urzędu certyfikacji
gwarantuje globalną niepowtarzalność;
- informację o algorytmach przy użyciu których został złożony podpis przez jednostkę certyfikującą (np.
sha1RSA);
- długość oraz rodzaj klucza publicznego zawartego w danych certyfikatu; informację o tym, jakie może być
przeznaczenie certyfikatu: (1) podpisywanie innych certyfikatów – dla CA, (2) podpisywanie Certificate
Revocation List, (3) podpisywanie i (4) szyfrowanie poczty elektronicznej, (5) uwierzytelnienie serwera –
witryny internetowej, bądź serwera poczty elektronicznej, (6) uwierzytelnienie strony klienckiej komunikacji
itp.
- informacja, skąd może być pobierany certificate revocation list – tzw. punkt pobierania CRL (CRL
distribution point), np. http://www.sun.com/pki/pkismica.crl
Distinguished Name (DN) stanowi pełną ścieżkę w drzewie X.500, jest to stosunkowo długi łańcuch znaków w
którym poszczególne węzły w ścieżce są oddzielone przecinkami.
W skład Distinguished Name wchodzą następujące pola:
- Common Name (CN) – pełna nazwa podmiotu dla którego wystawiono certyfikat: jednostki organizacyjnej,
osoby, bądź nazwa DNS hosta, na którym umieszczono witrynę, bądź działa serwer poczty;
- Organization Unit (OU) – jednostka organizacyjna, do której należy podmiot certyfikatu;
- Organization (O) – organizacja, do której należy podmiot State (S) – stan, bądź prowincja, z którą
związany jest podmiot – ma zastosowanie głównie w przypadku Stanów Zjednoczonych;
- Country (C) – państwo, z którym związany jest podmiot.
Format DN sprawia, że podmiot identyfikowany za pomocą danego CN (zazwyczaj osoba) może mieć wystawionych
wiele różnych certyfikatów – np. jeśli jest związany z wieloma organizacjami jednocześnie.
# exemplary DN --- from the keystore of Internet Explorer
# DN may not contain EOLs
CN = CC Signet – RootCA, OU = Centrum Certyfikacji Signet,
O = TP Internet Sp. z o.o., C = PL
Certyfikaty X.509 dzieli się na klasy w zależności od procesu weryfikacji, dokumentów wymaganych od aplikanta,
oraz oczywiście uiszczanej opłaty. Przyznanie certyfikatu wysokiego poziomu zaufania zazwyczaj wiąże się z
bardzo rygorystyczną (i kosztowną) weryfikacją tożsamości przez urząd certyfikacji. Z kolei utworzenie
wystawieniu certyfikatu osobistego towarzyszy co najwyżej sprawdzenie poprawności adresu poczty
elektronicznej. Zatem w podczas decydowania o tym, czy zaufać jednostce przedstawiającej certyfikat bardzo
istotnym elementem jest sprawdzenie klasy certyfikatu. Klasa certyfikatu określa obszary zastosowania
certyfikatu: popisywanie korespondencji, szyfrowanie korespondencji, itp.
PKI sprawuje pełną kontrolę nad wystawionymi przez siebie certyfikatami. Gdy istnieje niebezpieczeństwo
wykorzystania certyfikatu w celach innych, niż został on wystawiony tylko PKI jest w stanie unieważnić
certyfikat. Powiadomienie o unieważnieniu certyfikatu jest realizowane poprzez publikację Certificate
Revocation List (CRL). W najprostszym przypadku CRL może być zrealizowane w postaci listy numerów seryjnych
certyfikatów podpisanych przez dane CA, które zostały unieważnione. Tego rodzaju listę umieszcza się w
publicznie dostępnym repozytorium skąd może być ona skopiowana przez obiekty ufające danemu CA. Obiekt,
któremu przedstawiono certyfikat wystawiony przez dane CA powinien sprawdzić odpowiednie CRL – na podobnej
zasadzie jak sprzedawca weryfikuje kartę płatniczą u jej wystawcy.
Dla zminimalizowania czasu dzielącego unieważnienie certyfikatu od chwili, kiedy o fakcie tym zostaje
poinformowany obiekt ufający danemu CA czasami poza standardową metodą pull stosuje się również metodę push.
Przy zastosowaniu tzw. metody push CA rozsyła CRL do wszystkich obiektów, które mu ufają – oczywiście tego
rodzaju rozwiązanie ma ograniczone zastosowanie (np. w ramach jednej korporacji, czy departamentu).
Dla potrzeb systemów zabezpieczających wyjątkowo „wrażliwe” dane, w których wady CRL wykluczają jego efektywne
zastosowanie opracowano Online Certificate Status Protocol (OCSP) umożliwiający weryfikację statusu
certyfikatu w czasie rzeczywistym. Istota działania OCSP jest wyjątkowo nieskomplikowana – obiekt ufający
danemu CA zamiast pobierać całą CRL wysyła zapytanie o status przedstawianego mu w danym momencie certyfikatu.
Do dystrybucji certyfikatów przechowywanych w repozytorium certyfikatów można posłużyć się dowolnymi
protokołami komunikacji – w najprostszym przypadku można posłużyć się w tym celu zwykłą pocztą elektroniczną
(SMTP). Zostały opracowane standard dostępu do repozytorium certyfikatów przez FTP oraz HTTP. Samo PKIX
Working Group rekomenduje do tego celu usługi katalogowe z dostępem przez LDAP.
Duże implementacje PKI obsługujące wiele tysięcy użytkowników posiadają więcej niż jedno CA – poszczególne
certyfikaty są natomiast wystawiane tylko przez jedno z takich CA. By certyfikaty wystawione przez różne CA
mogły być wykorzystywane wśród użytkowników danej implementacji PKI istnieje konieczność stworzenia tzw.
architektury zaufania PKI.
Chyba najbardziej oczywistą architekturą zaufania PKI jest architektura hierarchiczna – na samym szczycie
hierarchii znajduje się główne ciało certyfikujące (root certificate authentication authority – root CA).
Wszystkie certyfikaty zarządzane przez dane PKI – w tym certyfikaty podległych CA – są podpisane
(bezpośrednio, bądź pośrednio) certyfikatem wystawionym przez CA główne. Jeśli obiekt ufa certyfikatowi root
CA ufa również wszystkim certyfikatom wystawionym przez dowolne z podległych CA. Ujawnienie klucza prywatnego
root CA powoduje załamanie całej architektury – czyli mamy w tym przypadku do czynienia z tzw. single
point-of-failure vulnerability.
Rysunek 8.5: Hierarchiczna architektura zaufania PKI
Drugim niespecjalnie skomplikowanym rodzajem architektury zaufania PKI jest tzw. architektura wzajemnego
zaufania jest opierająca się wzajemnym podpisywaniu certyfikatów przez CA. Tego rodzaju architektura znajduje
zastosowanie w momencie łączenia dwóch (lub więcej) dotychczas odrębnych PKI.
Rysunek 8.6: Architektura wzajemnego zaufania PKI
Ostatnim schematem łączenia drzew zaufania do certyfikatów CA jest tzw. hybrydowa architektura zaufania
posiadająca cechy dwóch wcześniej wymienionych metod i polegająca na stworzeniu wzajemnego zaufania na
dowolnym poziomie hierarchii.
Rysunek 8.7: Hybrydowa architektura zaufania PKI