Wprowadzenie do
kryptografii
Cyfrowy podpis elektroniczny w praktyce
© Andrzej J. Majewski, 2009
Rozpowszechnianie dozwolone w ramach platformy
2
Kilka słów wyjaśnienia zamiast wstępu
Informacje podane poniżej ledwo dotykają całego bogactwa pojęć i wiedzy, związanych z kryptograficzna
ochrona informacji, utajnianiem przekazywanych różnymi metodami danych i metodami potwierdzania ich
wiarygodności.
Moją intencją było pokazanie pewnych mechanizmów, z którymi ma do czynienia każdy użytkownik Internetu
i abonent poczty elektronicznej. Brak ich zrozumienia, lub co gorsze, błędna interpretacja sposobu ich działania
powoduje zupełnie niepotrzebne zagrożenia dla cennych i z reguły bardzo istotnych dla nas informacji.
Wszystkie pokazane poniżej mechanizmy, są wbudowane w nasze systemy komputerowe, którymi surfujemy
po Internecie lub sięgamy do poczty elektronicznej. Musimy rozumieć ich działanie i chcieć ich używać.
Musimy nauczyć się w rozsądny sposób obdarzać zaufaniem zabezpieczenia, z którymi się spotykamy, tak żeby
wiedzieć i umieć rozróżniać prawdziwą i wiarygodną informację od bełkotu i spamu.
Wyjaśnienie przeznaczenia certyfikatów kluczy publicznych powinno ostatecznie rozwiać wątpliwości
rozsiewane przez różne media – czy ktoś może za nas podpisywać cyfrowo korespondencję i dokumenty?
Kryptografia - podstawy stosowania
W poniższym opisie będziemy używać postaci Alicji i Bartka, jako uosobienie Użytkowników A i B. Osoby
Alicja i Bartek występują jako strony w realizowanym protokole kryptograficznym, obejmującym np. wymianę
poczty, w którym niektóre (lub wszystkie) komunikaty zawierają elementy danych przekształcone przez
algorytmy kryptograficznie. Alicja i Bartek znajdują się w rozłącznych miejscach, połączonych siecią. Sieć nie
jest zabezpieczona przed podsłuchem lub zniekształceniem przesyłanej informacji. Sprawcą tych niecnych
występków jest Ewa. Terminem sieć (network) objęty jest dowolny typ medium transmisji danych.
Dane
wrażliwe
Alicja
Bartek
Ewa
Odczyt
poufnych
danych
Zmiana
krytycznych
danych
Alicja, Bartek i Ewa (1)
Znając zagrożenia, wprowadzane przez Ewę, Alicja i Bartek oczekują możliwości bezpiecznego komunikowania
się poprzez sieć. Bezpieczeństwo jest przez nich postrzegane jako:
1.
Możliwość przesłania przez Alicję poufnej informacji, adresowanej do Bartka, której Ewa nie
będzie mogła poznać, chociaż może ja przechwycić,
2.
Alicja chce mieć możliwość przesłania informacji do Bartka w taki sposób, aby Bartek był
przekonany o tym, że informacja nie została zmieniona po drodze,
3.
Alicja chce mieć możliwość przesłania informacji do Bartka w taki sposób, że Bartek będzie
mógł później udowodnić dowolnej trzeciej stronie (przed sądem lub audytorowi), że to Alicja
jest jej autorką i że informacja nie uległa zniekształceniu.
Atrybuty kryptograficznej ochrony informacji, wymienione w punktach 1
÷3 mają swoje przyjęte nazwy, takie
jak poufność (confidentiality), nienaruszalność treści lub autentyczność (integrity), niezaprzeczalność autorstwa
(non-repudiation with proof of origin).
Kryptografia - podstawowe technologie
Mechanizmy kryptograficznej ochrony informacji opierają się na dwóch zasadniczych elementach: kluczach
(key) i metodach (algorithm). Klucz jest specjalnym elementem informacji, używanym do zabezpieczenia
3
wrażliwych danych, metoda to ciąg następujących po sobie, powiązanych czynności, przekształcających
chronione dane w sposób zależny od treści klucza.
Dla przykładu algorytm szyfrujący (encryption algorithm) może być użyty dla zapewnienia tajności
przekazywanych danych. Alicja może swoje chronione informacje przekształcić za pomocą algorytmu
szyfrującego i klucza szyfrowania do postaci szyfrogramu.
Bartek, po otrzymaniu szyfrogramu od Alicji zastosuje komplementarny (odwrotny) algorytm łącznie z kluczem
deszyfrującym, po to, aby odtworzyć pierwotną postać informacji nadanej przez Alicję. Jeżeli Ewa (intruz w
sieci) nie zna klucza deszyfrującego, nie będzie mogła odtworzyć jawnego tekstu z przechwyconego
szyfrogramu.
Szyfrowanie
Deszyfrowanie
Klucz
Klucz
Dane
wrażliwe
Dane
wrażliwe
Dane zabezpieczone
Sieć niezapezpieczona
Alicja
Bartek
Alicja i Bartek używają szyfrowania danych (2)
Systemy kryptograficzne z kluczem publicznym i z kluczem tajnym
W praktycznym użyciu są aktualnie dwa podstawowe systemy kryptograficzne: używające kluczy
asymetrycznych, zwane także systemami z kluczem publicznym (public key cryptosystems) oraz systemy
używające kluczy symetrycznych, zwane także systemami z kluczem tajnym (symmetric cryptosystems).
Popularnym przedstawicielem pierwszego rodzaju jest „RSA”, drugi schemat klasycznie reprezentuje „AES”.
W obu systemach klucz deszyfrujący musi być zachowany w tajemnicy przed osobami postronnymi. Istnieje
jednak istotna różnica w sposobie posługiwaniem się i ochroną klucza szyfrującego.
W systemie symetrycznym klucz deszyfrujący może być odtworzony na podstawie klucza szyfrującego;
zazwyczaj jest to ten sam klucz. Przyjmuje się, że Ewa zna algorytm przekształcenia informacji - szyfrowania.
Klucze, używane przez strony przekazu, muszą jednak pozostać w tajemnicy przed Ewą. Generalnie, jest regułą,
że Alicja i Bartek muszą używać tego samego sekretnego klucza, do szyfrowania i deszyfrowania informacji
przesyłanej w obu kierunkach -w relacji Alicja —> Bartek oraz Bartek —> Alicja. Do uzgodnienia lub wymiany
klucza Alicja i Bartek muszą użyć innego, bezpiecznego kanału przesyłania danych np.: poczty papierowej,
SMS, wymiany bezpośredniej w kontakcie osobistym. Od poziomu bezpieczeństwa kanału wymiany kluczy
zależy bezpieczeństwo całego kryptosystemu. Wybór zależy od poziomu dopuszczalnego ryzyka ujawnienia.
4
Szyfrowanie
Deszyfrowanie
Klucz
Klucz
Dane
wrażliwe
Dane zabezpieczone
Sieć niezabezpieczona
Alicja
Bartek
Bezpieczny kanał
Dane
wrażliwe
Wspólnie używany sekretny klucz musi być bezpiecznie wymieniany (3)
W systemie asymetrycznym występuje niejawne powiązanie pomiędzy kluczem szyfrującym i deszyfrującym.
Oznacza to, że nie jest obliczeniowo możliwe lub jest całkowicie nieopłacalne, ze względu na koszt lub czas
obliczeń, wyznaczenie klucza deszyfrującego na podstawie klucza szyfrującego. Klucz szyfrujący może być
użyty tylko w jednej relacji - do zaszyfrowania danych.
Do ich odszyfrowania konieczny jest drugi klucz od pary - klucz deszyfrujący. Dodatkowo, specyfika związku
występującego pomiędzy kluczami asymetrycznymi, pozwala na ujawnienie klucza publicznego wszelkim
osobom, w tym także Ewie, bez ryzyka narażenia systemu na kompromitację.
Generalnie, jest regułą, że Alicja musi użyć publicznego klucza szyfrującego Bartka, aby zaszyfrować dane
w relacji Alicja —> Bartek. Bartek musi użyć publicznego klucza szyfrującego Alicji, aby zaszyfrować dane
w relacji Bartek —> Alicja .
Szyfrowanie odbywa się przy użyciu publicznego klucza odbiorcy, podczas gdy do deszyfrowania konieczne jest
użycie prywatnego klucza adresata. Brak konieczności utrzymywania klucza szyfrującego w tajemnicy istotnie
upraszcza dystrybucję kluczy, pozwala wręcz na umieszczenie kluczy "publicznych" w ogólnie dostępnych
katalogach. System kryptograficzny z kluczem publicznym rozwiązał najistotniejszy problem w dużych sieciach
- problem dystrybucji i zarządzania kluczami.
Dane zabezpieczone
Sieć niezabezpieczona
Alicja
Bartek
Klucz publiczny Bartka
Klucz prywatny Bartka
Klucz publiczny Bartka
Szyfrowanie
Deszyfrowanie
Dane
wrażliwe
Dane
wrażliwe
Publiczny klucz Bartka nie musi pozostawać w tajemnicy ... (4)
Nie jest to jednak rozwiązaniem wszystkich problemów. Dla przykładu, Ewa może podstawić Alicji swój klucz
publiczny, w miejsce klucza Bartka (attack with man in the middle). W ten sposób Ewa będzie mogła
deszyfrować całą informację przeznaczoną dla Bartka, przepływającą w relacji Alicja —> Bartek, w sposób
niedostrzegalny dla adresata. Koniecznym jest zapewnienie integralności i autentyczności kluczy publicznych.
5
Dane zabezpieczone
Sieć niezabezpieczona
Alicja
Bartek
Klucz publiczny Ewy
Klucz prywatny Ewy
“Klucz publiczny Bartka”
Klucz publiczny Ewy
Ewa
Dane
wrażliwe
Szyfrowanie
Deszyfrowanie
Dane
wrażliwe
...ale musi być ‘autentyczny’ (5)
Cyfrowy podpis elektroniczny w systemie z kluczem publicznym
Podpis cyfrowy jest tworzony poprzez odwrócone użycie systemu z kluczem publicznym. Bartek może cyfrowo
podpisać informację, używając własnego klucza prywatnego. Ponieważ, w myśl założeń systemu, jest on
jedynym posiadaczem tego klucza, jest także jedynym możliwym autorem podpisu. Po podpisaniu, Bartek
przesyła informację wraz z cyfrową sygnaturą do Alicji, która może sprawdzić podpis Bartka, używając jego
klucza publicznego. W rzeczywistości, każda osoba, posiadająca ważną kopię publicznego klucza Bartka, może
sprawdzić jego cyfrowy podpis pod informacją. Proces ten, na wzór podpisu odręcznego, służy do potwierdzenia
autorstwa cyfrowego dokumentu i dodatkowo może służyć do stwierdzenia autentyczności jego treści.
Podpis
Weryfikacja
Dane
zweryfikowane
Dane
wrażliwe
Dane podpisane
Sieć niezabezpieczona
Alicja
Bartek
Klucz publiczny Bartka
Klucz prywatny Bartka
Klucz publiczny Bartka
Cyfrowa sygnatura sporządzona prywatnym kluczem Bartka (6)
Podobnie jak poprzednio, Ewa może podstawić Alicji swój klucz publiczny, w miejsce klucza Bartka
(attack with man in the middle). W ten sposób Ewa będzie mogła fałszować podpis Bartka.
6
Weryfikacja
Podpis
Dane
„zweryfikowane”
Dane sfałszowane
Sieć niezabiezpieczona
Alicja
Bartek
Klucz publiczny Ewy
Klucz prywatny Ewy
“Klucz publiczny Bartka”
Klucz publiczny Ewy
Ewa
Dane
wrażliwe
Wiadomość sfałszowana przez Ewę; publiczny klucz Bartka nie jest ‘autentyczny’ (7)
Centrum Certyfikacji Kluczy Publicznych (Certification Authority)
Rozwiązaniem problemu autentyczności kluczy, jest ich bezpośrednia wymiana, pomiędzy zainteresowanymi
stronami. W ten sposób działa system zaufania bezpośredniego. Rozwiązanie tego typu jest jednak całkowicie
niepraktyczne, wręcz bezużyteczne w przypadku dużych sieci np. Internetu. Osobisty kontakt pomiędzy
partnerami zostaje zastąpiony zaufaniem do tzw. Trzeciej Strony, czyli „sieciowego notariusza”.
Zaufana Trzecia Strona (CA - Certification Authority) wydaje certyfikaty, stwierdzające autentyczność kluczy
publicznych, czyli istnienie jednoznacznej relacji pomiędzy kluczem publicznym i jego deklarowanym
właścicielem. CA generuje swoją cyfrową sygnaturę na certyfikacie klucza publicznego Bartka. Dokument
elektroniczny (certyfikat) zawiera: unikalny identyfikator właściciela (Bartka), publiczny klucz Bartka, datę
ważności certyfikatu oraz inne informacje, użyteczne dla systemów, które będą korzystać z tego certyfikatu.
Cyfrowy podpis CA bezpieczne „wiąże w całość” te wszystkie informacje.
Certyfikat
klucza publicznego
Bartka
Urząd
Certyfikacji
Bartka
Operacja
z kluczem
publicznym
Dane
wrażliwe
Dane zabezpieczone
Sieć niezabezpieczona
Alicja
Bartek
Klucz publiczny Bartka
Klucz prywatny Bartka
Klucz publiczny Bartka
Dane
wrażliwe
Operacja
z kluczem
prywatnym
Publiczny klucz Bartka przekazany Alicji w formie certyfikatu (8)
W tym rozwiązaniu, Alicja może zaufać kluczowi publicznemu Bartka, dopóki posiada wiarygodną kopię
certyfikatu klucza publicznego CA. „Zaufany” klucz publiczny CA umożliwia sprawdzenie autentyczności
certyfikatu klucza publicznego Bartka, a tym samym pozwala obdarzyć zaufaniem klucz publiczny Bartka.
System jest w dalszym ciągu narażony na ataki, ale w tym przypadku bezwzględnie musimy ufać tylko jednemu
kluczowi publicznemu.
7
Osiągamy to poprzez właściwy wybór Zaufanej Trzeciej Strony, która może zagwarantować wiarygodność
swojego klucza i bezterminową, skuteczną jego ochronę oraz właściwy poziom bezpieczeństwa usługi
wydawania certyfikatów kluczy .
W tym miejscu potrzebny jest krótki komentarz do obiegowych opinii i nieprawdziwych informacji
powtarzanych przez różne media. Certyfikat nie służy do składania podpisu elektronicznego, niezależnie od
tego, czy jest kwalifikowany czy zwykły i przez kogo był wydany! Podpisujemy dokumenty elektroniczne
i korespondencję kluczem prywatnym! Jeżeli właściwie przechowujemy swój klucz prywatny i używamy go
w sposób świadomy, nikt niczego za nas i w naszym imieniu nie podpisze.
Certyfikat, zależnie od rangi wystawcy, stanowi bardziej lub mniej wiarygodne lub uznawane przez prawo,
poświadczenie, do kogo należy klucz prywatny, którym podpisano wiadomość. Klucz prywatny od tej pary
kluczy, od której klucz publiczny zawarty jest w certyfikacie.
Odtwarzanie kluczy (Key Recovery)
Zasadę odtwarzania kluczy pokazuje kolejny rysunek. Alicja i Bartek używają symetrycznego systemu
kryptograficznego do ukrywania informacji, która może stanowić potencjalny dowód ich przestępczej
działalności. Z punktu widzenia organów ochrony praworządności, odtworzenie zaszyfrowanych danych
pozwoli poznać dowody przestępstwa.
Tak jak pokazano na rysunku 3, Alicja i Bartek potrzebują zaufanego, bezpiecznego kanału, do wymiany kluczy.
W wielu praktycznych zastosowaniach (rysunek 10), szyfrowanie kluczem publicznym jest zbyt powolne dla
masowych danych, dlatego stanowi wyłącznie sposób do wytworzenia bezpiecznego kanału dla wymiany
sesyjnego klucza symetrycznego.
Mechanizm odtwarzania kluczy pozwala agentom ochrony prawa i służbom specjalnym, na odtworzenie klucza
sesyjnego, a tym samym na deszyfrowanie potencjalnych dowodów przestępstwa.
Wiele dostępnych dla nas kryptosystemów, wbrew intencjom różnych Agencji, nie ma wbudowanych
mechanizmów odzyskiwania kluczy. Ich złamanie może być prawdziwym wyzwaniem.
Niestety, jakość implementacji metod szyfrujących często jest niewystarczająca, żeby uczynić ochronę
informacji tak silną, jak to wynika z matematycznych założeń zastosowanych algorytmów. Potrzeba jednak
potężnego budżetu i bardzo zaawansowanej technologii, żeby złamać zabezpieczenia będące powszechnie
w użyciu. Użytkownik musi jednak dbać o to, żeby używać aktualnego oprogramowania; instalować łaty
i poprawki natychmiast po tym, jak zostały opublikowane. W dobrze pojętym, własnym interesie!
Potencjalny
dowód
Potencjalny
dowód
„Alicja”
„Bartek”
Deszyfrowanie
Klucz
Szyfrowanie
Klucz
Klucz
Dane zabezpieczone
Sieć niezabezpieczona
Bezpieczny kanał
Deszyfrowanie
Potencjalny
dowód
Odtwarzanie zaszyfrowanych ‘dowodów przestępstwa’ Alicji i Bartka (9)
Rzeczywista implementacja systemu z kluczem publicznym
Występujące w praktyce systemy kryptograficzne, stosujące klucze asymetryczne, nie wykorzystują algorytmu
asymetrycznego do szyfrowania masowych danych. Rozwiązanie takie jest zbyt powolne. W rzeczywistych
implementacjach, algorytm szyfrowania kluczem publicznym jest wykorzystywany do utworzenia bezpiecznego
kanału, którym przekazywany jest losowo wygenerowany klucz symetryczny, służący do zaszyfrowania danych,
zawartych w komunikacie.
8
Rysunek 10 pokazuje praktyczną realizację tej metody. Informacja, przygotowana przez nadawcę (Alicja) na
komputerze A zostaje przetworzona przez jednokierunkową funkcję skrótu (1). Skrót informacji zaszyfrowany
prywatnym kluczem nadawcy (2) stanowi cyfrowy podpis informacji nadawanej. Informacja, jej cyfrowy podpis
oraz certyfikat klucza publicznego nadawcy, połączone razem, stanowią jawną treść nadawanego komunikatu.
Wygenerowany w sposób losowy klucz sesyjny (3) służy do zaszyfrowania treści nadawanego komunikatu.
Następnie klucz sesyjny jest szyfrowany (4) kluczem publicznym odbiorcy (Bartka), wydobytym z jego
certyfikatu. Zaszyfrowany klucz sesyjny, zamknięty w „cyfrowej kopercie”, połączony z zaszyfrowaną treścią,
jako komunikat, przesyłany jest do odbiorcy. Adresat „otwiera” cyfrową kopertę, odszyfrowując ją własnym
kluczem prywatnym (6). W ten sposób odzyskuje klucz sesyjny, którym rozszyfrowuje treść komunikatu (7).
Następnie, przy pomocy klucza publicznego nadawcy, wydobytego z jego certyfikatu, deszyfruje podpis
cyfrowy (8), odtwarzając skrót. W kolejnym kroku (9), używając tego samego algorytmu, co nadawca, adresat
wylicza nowy skrót informacji. Po czym porównuje (10) oba skróty. Jeżeli są identyczne, to adresat uzyskuje
potwierdzenie autentyczności treści informacji i niezaprzeczalne potwierdzenie autorstwa nadawcy.
System z kluczem publicznym, stosowany w praktyce (10)
Krótki komentarz na zakończenie
Schematy ochrony przekazu informacji, opisane powyżej, są powszechnie wykorzystywane w programach
pocztowych, masowo dostępnych na rynku. Także wiele programów darmowych ma zaimplementowany ten
mechanizm.
Dziwić może jedynie to, że o ile w tradycyjnej korespondencji papierowej powszechne jest używanie kopert,
to w przypadku korespondencji elektronicznej dominują czytelne dla wszystkich po drodze, przekazy
na „cyfrowych pocztówkach”.
Listy elektroniczne (e-mail), w domyślnie stosowanej przez większość użytkowników formie, nie zapewniają
żadnego z opisanych powyżej atrybutów bezpiecznej korespondencji! Otrzymując niezabezpieczony e-mail
nie możemy być pewni treści listu ani intencji i osoby nadawcy. Powszechny spam to nie tylko znak naszych
czasów. To także dowód na to, jak bardzo masowo dostępna, nowoczesna technika oraz wynikająca z niej
powszechna łatwość komunikowania uśpiły naszą czujność i naturalną potrzebę prywatności.