Kryptografia klucza publicznego

ITpedia

Nowa struktura zabezpieczeń
Nowa struktura zabezpieczeń

Wraz ze wzrostem znaczenia Internetu w przeprowadzaniu transakcji biznesowych rośnie potrzeba zapewnienia ochrony informacji i właściwej identyfikacji wszystkich stron uczestniczących w takich transakcjach. Kluczową rolę w tworzeniu usług dostępnych elektronicznie spełniają techniki kryptograficzne, stosowane do uwierzytelniania dokumentów i osób, jak również do standardowej wymiany informacji. Usługi udostępniane publicznie, gwarantujące poufność, a także często niezaprzeczalność transakcji, muszą opierać się na technikach łatwych do rozpowszechniania. Jedną z nich jest kryptografia kluczy publicznych, a system ich obsługi jest nazywany infrastrukturą kluczy publicznych – PKI (Public Key Infrastructure).

Model infrastruktury PKI
Model infrastruktury PKI

Tradycyjne systemy informatyczne przedsiębiorstw zazwyczaj są w znacznym stopniu scentralizowane: administrowane w ramach pojedynczej domeny zarządzania, ze stałymi relacjami i zależnościami pomiędzy poszczególnymi komponentami. Często też mechanizmy ochrony wspierające te systemy mają tendencję odzwierciedlania takiej struktury – są mało elastyczne i nieskalowalne, administrowane według sztywnych zasad przyjętej polityki ochrony.

Dynamiczny rozwój ośrodków handlu elektronicznego i decentralizacja zapoczątkowały zmiany w sposobie myślenia o ochronie. Coraz częściej mamy do czynienia z sytuacją, w której istnieje potrzeba bezpiecznej komunikacji między jednostkami przypisanymi do różnych domen zarządzania, a zależności między tymi jednostkami mogą zmieniać się dynamicznie. W takich przypadkach coraz częściej zachodzi konieczność ustanowienia poufnych dróg komunikacji pomiędzy systemami, które wcześniej nie wiedziały o swoim istnieniu. Do tego dochodzi personel mobilny, potrzebujący zdalnego dostępu do zasobów lokalnych, osiąganego często za pośrednictwem Internetu.

Kryptografia klucza publicznego

Podstawowe zastosowania szfrografii
Podstawowe zastosowania szfrografii

Wszystkie te wyzwania rodzą potrzebę tworzenia bardziej elastycznych modeli ochrony. Stosując metody kryptograficzne, każda organizacja może obecnie zapewnić sobie całkowitą poufność danych przechowywanych w sieci, to znaczy możliwość ich przeglądania tylko przez osoby upoważnione. W układach tradycyjnych, jeżeli dwie jednostki pragną się komunikować w sposób bezpieczny, trzeba ustalić wspólny sekret: np. hasło lub klucz do szyfrowania i deszyfrowania informacji. Oznacza to konieczność ustanowienia bezpiecznego sposobu wymiany informacji o tym wspólnym sekrecie. Klucz mógł być utworzony przez jedną ze stron i dostarczony stronie drugiej tradycyjną przesyłką poleconą lub osobiście; klucz mogła też utworzyć zaufana strona trzecia i dostarczyć obu zainteresowanym stronom – w tym przypadku może być utworzony bezpieczny kanał dostarczania klucza w postaci elektronicznej. Niezależnie jednak od przyjętego rozwiązania jest to przedsięwzięcie nie tylko czasochłonne i nieskalowalne, stwarzające także określone trudności dla wcześniej nie komunikujących się stron.

Punktem przełomowym był 1976 r., kiedy to Whitfield Diffie i Martin Hellman opublikowali artykuł Nowe kierunki w kryptografii. Opisali tam mechanizm pozwalający dwóm stronom ustanawiać bezpieczną komunikację bez potrzeby utrzymywania oddzielnego kanału wymiany informacji tajnej (klucz). System ten zakładał użycie dwóch asymetrycznych kluczy do szyfrowania i deszyfrowania informacji: jednego o statusie prywatnym (deszyfrowanie informacji) i drugiego dostępnego publicznie (szyfrowanie informacji). Wymieniając między sobą klucze publiczne i kojarząc je z kluczami prywatnymi, obie strony mogą wymieniać między sobą informacje poufne bez konieczności przekazywania klucza do deszyfrowania informacji, co eliminuje możliwości przechwycenia go drogą podsłuchu kanału komunikacyjnego. Mechanizm ten, pozwalający stronom na dynamiczne ustanawianie bezpiecznej komunikacji bez potrzeby wcześniejszych kontaktów, nazwano kryptografią klucza publicznego – PKC (Public Key Cryptography).

Szyfrowanie kluczem publicznym
Szyfrowanie kluczem publicznym

Kryptografia klucza publicznego jest niezastąpiona zwłaszcza dla systemów implementowanych jako rozwiązania e-commerce, w których organizacje angażują się w transakcje z osobami dotychczas jej nie znanymi i z którymi mogą już nie mieć żadnego kontaktu w przyszłości. Koszty zastosowania dla takich transakcji kluczy tajnych są niewyobrażalnie wysokie – zarówno w kategoriach czysto finansowych, jak i potencjalnej utraty dużej liczby klientów z powodu braku efektywnej metody dystrybucji takich kluczy.

Systemy klucza publicznego umożliwiają bezpieczną komunikację z daną organizacją wielu osobom – przy użyciu kluczy, które mogą być swobodnie rozpowszechniane i publikowane. Idea ta może być rozszerzona o certyfikaty cyfrowe, wiążące klucze publiczne z osobą lub organizacją i potwierdzane podpisem zaufanych wydawców certyfikatów (CA – Certification Authority), i tym samym potwierdzające tożsamość tej osoby czy organizacji.

Rozwój kryptografii kluczy publicznych doprowadził do możliwości używania samej idei kluczy publicznych i prywatnych w innych obszarach ochrony informacji. Jedną z pierwszych takich implementacji jest system RSA (od nazwisk twórców: Rivest, Shamir i Adelman), pozwalający nie tylko na wymianę informacji tajnych, ale również na tworzenie podpisów cyfrowych, czyli metody uwierzytelniania nadawcy informacji czy też samej informacji.

Klucze publiczne są stosowane w szeroko rozpowszechnionych protokołach:

  • SSL (Secure Socket Layer),
  • S/MIME (Secure MIME),
  • SET (Secure Electronic Transaction)
  • w podpisywaniu apletów Javy czy ActiveX, co stawia na pierwszym planie problem zarządzania zarówno tymi kluczami, jak i ich certyfikatami.

Zarządzanie kluczami oraz certyfikatami niezbędnymi dla tych protokołów zapewnia infrastruktura klucza publicznego – PKI (Public Key Infrastructure). Wiele protokołów zapewniających poufność, integralność danych, uwierzytelnianie źródła danych oraz niezaprzeczalność wykorzystuje kryptografię z kluczem publicznym.

Protokoły wykorzystujące kryptografię
Aplikacje Protokoły Asymetryczna Symetryczna Funkcja haszująca
Poczta elektroniczna (Store & Forward) DMS (MSP) RSA DES, 3DES, IDEA MD5
MOSS RSA DES MD5
PEM RSA DES MD5
PGP RSA, DH IDEA, CAST, 3DES MD5, SHA-1
PGP/MIME RSA, DH IDEA, CAST, 3DES MD5, SHA-1
S/MIME RSA RC2, RC4, 3DES MD5, SHA-1
Transport sieciowy (przeglądarka) TLS (SSl) RSA, SHA 3DES, RC2, RC4, DES MD5, DH
PCT RSA DES, RC2, RC4, IDEA MD5, SHA
SHTP RSA DES, 3DES, DES-CBC MD2, MD5
Głos Clipper RSA Skipjack
PGPfone DH Blowfish, CAST, 3DES
Zarządzanie kluczami IKE RSA RC2, DES, 3DES MD5, SHA-1
SKIP RSA DES, IDEA, RC4 MD5
Uwierzytelnianie w sieci (login) Kerberos DES-CBC, DES MD4, MD5, CRC32
PAP MD5
CHAP MD5
TACACS
RADIUS
CAT RSA DES MD5, SHA-1
OTP MD4, MD5, SHA
-
-