Techlab

Witamy w serwisie

Innowacyjne Rozwiązania Elektroniczne

Infrastruktura Klucza Publicznego  

Infrastruktura Klucza Publicznego (ang. PKI = Public Key Infrastructure) jest to system kryptograficzny który w zastosowaniu do informacji przetwarzanej lub przesyłanej elektronicznie umożliwia pewne zidentyfikowanie i uwierzytelnienie twórcy (nadawcy) tej informacji a także jej rozpowszechnianie tylko do wybranych osób, grup osób, urządzeń, czy instytucji. W IKP wbudowana jest także łatwa w użyciu technika dodawania nowych i usuwania „skompromitowanych” użytkowników systemu. IKP może też służyć do ustalania i uwierzytelniania kluczy szyfrujących.

IKP jest zbudowana na bazie kryptograficznych algorytmów asymetrycznych, tzn. takich w których do szyfrowania używany jest inny klucz niż do deszyfrowania. IKP nazywa jeden z tych kluczy kluczem prywatnym, a drugi kluczem publicznym. Tworzą one niepowtarzalną parę. Mamy zawsze pewność, że klucz prywatny ma tylko jeden odpowiadający mu klucz publiczny i vice versa. Klucza prywatnego może użyć tylko jego właściciel i powinien on być przez niego ściśle chroniony. Klucz publiczny jest rozpowszechniany w formie certyfikatu, który umożliwia powiązanie klucza publicznego z osobą, urządzeniem lub instytucją. Powiązania tego dokonuje Urząd Certyfikacji (dalej: UC, ang. Certification Authority) we współpracy z Punktem Rejestracji (dalej: PR, ang. Registration Authority).

Najbardziej spektakularnym zastosowaniem IKP jest podpis elektroniczny. Jego zasada działania jest prosta, choć wymaga użycia jeszcze jednej funkcji kryptograficznej tzw. funkcji skrótu (dalej: skrót, ang. Digest, Hash). Funkcja ta przetwarza dowolny ciąg symboli, na przykład znaków tekstu, we względnie krótką liczbę 50 – 80 cyfrową w taki sposób, że wytworzenie dwóch różnych ciągów symboli dających w wyniku ten sam skrót jest praktycznie niemożliwe.

Podpisanie wytworzonej informacji elektronicznej wymaga wykonania następujących kroków:

  1. wykonania skrótu informacji którą się chce podpisać,
  2. zaszyfrowania własnym kluczem prywatnym otrzymanego skrótu,
  3. dodania do informacji zaszyfrowanego skrótu wraz z własnym certyfikatem klucza publicznego, będącym rodzajem wizytówki autora.

Procedura weryfikacji podpisu ujawnia jego prostotę. Wymaga ona wykonania tylko trzech kroków:

  1. wykonania skrótu informacji którą się otrzymało,
  2. odszyfrowania otrzymanego wraz z informacją skrótu, przy użyciu klucza publicznego z certyfikatu załączonego do przesyłanej informacji,
  3. porównania obu skrótów.
Jeżeli oba skróty są takie same to mamy pewność, że posiadacz certyfikatu informację tę podpisał, ponadto nie może się wyprzeć jej autorstwa.

Wyjaśnienia wymaga też rola skrótu w IKP. Teoretycznie możliwe byłoby zaszyfrowanie samej informacji a nie jej skrótu. Odszyfrowanie zrozumiałego tekstu miałoby w tym przypadku walor potwierdzenia autorstwa, posługiwanie się skrótem także umożliwia potwierdzenie autorstwa. Rozwiązanie takie jest jednak niewygodne z wielu względów:

  1. algorytmy asymetryczne są bardzo wolne w realizacji – ok. 1000 razy wolniejsze od symetrycznych,
  2. często poufność przesłania jest zbędna, a nawet niepożądana, w przypadku konieczności zapewnienia poufności efektywniejsze jest zaszyfrowanie za pomocą algorytmu asymetrycznego wyłącznie klucza algorytmu symetrycznego do zaszyfrowania przesyłanego tekstu,
  3. skrót daje dodatkową pewność integralności przesłanych danych.
Jak jednak dowiedzieć się z całą pewnością z czyją tożsamością stowarzyszony jest załączony certyfikat? Na pytanie to odpowiada sam certyfikat. Niesie on bowiem wiele informacji z których najważniejsze to klucz publiczny oraz identyfikator właściciela. Identyfikatorem właściciela mogą być nazwisko, imię, data urodzenia, czy unikatowy numer PESEL w przypadku osób. Może też być numer NIP dla osób i instytucji. Lista informacji identyfikujących jest zestandaryzowany (w rozporządzeniu do ustawy o podpisie elektronicznym jest zdefiniowany profil certyfikatu, także pozostawiając pewną swobodę) i może zostać dowolnie wybrany przez zarządcę konkretnej implementacji systemu IKP. Cała informacja zawarta w certyfikacie jest podpisana w sposób opisany wyżej przez UC za pomocą jego własnego klucza prywatnego. Tak więc nasza pewność wynika z zaufania jakie mamy do UC. Aby jednak na to zaufanie zasłużyć UC musi spełnić wiele warunków:
  1. bardzo skutecznie strzec swojego klucza prywatnego, gdyby bowiem dostał się on w niepowołane ręce cały system stałby się niewiarygodny,
  2. wytwarzać i przekazywać w sposób bezpieczny klucze prywatne użytkowników dając im jednocześnie możliwość ich ochrony i bezpiecznego użycia,
  3. w sposób wiarygodny dystrybuować swój klucz publiczny, aby nikt inny nie mógł się podszyć pod UC,
  4. zapewnić identyfikację użytkowników podczas ich wprowadzania do systemu,
  5. zapewnić łatwe i szybkie usuwanie użytkowników z systemu, a także unieważnianie kluczy aby maksymalnie ograniczyć skutki utraty nośnika kluczy, a co za tym idzie możliwości ujawnienia, kluczy prywatnych.

Sposób spełnienia powyższych postulatów jest częściowo przewidziany w standardach, a częściowo wynika ze sprawdzonej praktyki. Tak więc najlepszą ochroną klucza prywatnego jest jego umieszczenie wyłącznie w pamięci maszyny odpowiednio zabezpieczonej przed możliwymi atakami i odseparowanej od świata zewnętrznego. Dystrybucja kluczy prywatnych powinna się odbywać za pomocą bezpiecznych nośników elektronicznych chronionych kodami PIN użytkowników. Klucz publiczny powinien być dystrybuowany albo poprzez wiarygodne kanały, albo z możliwością niezależnego potwierdzenia jego prawdziwości. Identyfikacja użytkowników powinna być zapewniona organizacyjnie za pomocą odpowiednich dokumentów identyfikacyjnych dostarczanym przy odbiorze nośników z kluczami prywatnymi. Usuwanie użytkownika z systemu polega na dołączeniu jego certyfikatu do Listy Unieważnionych Certyfikatów (dalej: LUC, ang. Certificate Revocation List) i niezwłocznym publikowaniu tych list. Oczywiście nie całe bezpieczeństwo jest zapewniane przez UC. Wiele zależy od prawidłowej realizacji całego systemu.