|
Podstawy kryptografii
W poniższym opisie będziemy używać postaci Alicji i Bartka jako uosobienie Użytkowników A i B. Osoby Alicji i Bartka 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.
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:
- Możliwość przesłania przez Alicję poufnej informacji, adresowanej do Bartka, której Ewa nie będzie mogła przeczytać,
- 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,
- Alicja chce mieć możliwość przesłania informacji do Bartka w taki sposób, że Bartek będzie miał pewność, że informacja pochodzi od nie i że 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,2 i 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 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.
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). Przedstawicielem pierwszego rodzaju jest “RSA”, drugi schemat klasycznie reprezentuje “DES”. 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. 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. 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. ...ale musi być ‘autentyczny’ (5)
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. 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. 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 "cyfrowego notariusza". Zaufana Trzecia Strona (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 (certyfikat) zawiera: publiczny klucz Bartka, unikalny identyfikator właściciela (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" te wszystkie informacje. Publiczny klucz Bartka przekazany 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.
Osiągamy to poprzez właściwy dobór Zaufanej Trzeciej Strony, która może zagwarantować wiarygodność swojego klucza i bezterminową, skuteczną jego ochronę. Odtwarzanie kluczy (Key Recovery). Z "rządowego punktu widzenia", 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. 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. Odtwarzanie potencjalnych, zaszyfrowanych ‘dowodów przestępstwa’ Alicji i Bartka (9) Praktycznie występujące 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. 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 cyfrową sygnaturę informacji nadawanej. Informacja, jej cyfrowa sygnatura 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 sygnaturę cyfrową (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)
|