SZK (Teacup)
Stacja zarządzania kluczami (dalej SZK) realizuje funkcje Urzędu Certyfikacji (UC), najważniejszego elementu Infrastruktury Klucza Publicznego (IKP), oraz Punktu Rejestracji (PR). Powiązanie w jednym elemencie systemu zarówno UC jaki i PR jest optymalne ekonomicznie w przypadku małych i średnich sieci (do kilkuset, pojedynczych tysięcy użytkowników).
Sercem SZK jest Bezpieczny Moduł Kryptograficzny (dalej: BMK) będący specjalizowanym wieloprocesorowym komputerem pracującym pod kontrolą niejawnego systemu operacyjnego czasu rzeczywistego. BMK jest zabezpieczony elektronicznie i mechanicznie przed penetracją i innymi atakami. BMK wyposażony jest w 4 czytniki kart elektronicznych. Dwa z nich służą kartom będącym nośnikami klucza prywatnego UC, który przechowywany jest na nich w taki sposób, że do odtworzenia klucza wewnątrz urządzenia potrzebne są dwie karty włożone jednocześnie do dwóch czytników BMK. Trzeci czytnik jest przeznaczony do współpracy z kartami personelu, w celu jego uwierzytelnienia przed systemem. Zadaniem czwartego czytnika jest personalizacja kart użytkowników systemu. Czytniki skonstruowane i sterowane są w taki sposób, że zabezpieczają karty przed wydaniem osobom nieuprawnionym. Wszystkie operacje istotne z punktu widzenia bezpieczeństwa wykonywane są wewnątrz BMK. Urządzenie prowadzi dwa dobrze strzeżone logi: bezpieczeństwa i aktywności zapewniające rozliczalność działania SZK.
Z BMK współpracuje aplikacja ASZK będąca wygodnym interfejsem użytkownika oraz baza danych BSZK przechowująca wszystkie niezbędne informacje związane z IKP. Obie działają na standardowym komputerze PC, którego interakcje z otoczeniem powinny być ściśle kontrolowane. Bezpieczeństwo obu tych elementów jest zapewniane przez BMK. Przede wszystkim ASZK i BMK wzajemnie się uwierzytelniają przed sobą. Co więcej kluczowy element ASZK jest pobierany z BMK. Dodatkowo wszystkie polecenia istotne z punktu widzenia bezpieczeństwa systemu potwierdzane są na interfejsie użytkownika (wyświetlacz graficzny + klawiatura) wbudowanym w BMK. Wszystkie rekordy BSZK są podpisane przez BMK. Dodatkowo wrażliwe rekordy są przechowywane wyłącznie w postaci zaszyfrowanej przez BMK i nigdy nie są wydawane w postaci jawnej na zewnątrz. SZK pozwala zdefiniować politykę funkcjonowania UC a także ułatwia i wymusza jej stosowanie, odciążając realizatorów systemu od tworzenia wielu procedur oraz wspomagając operatorów w codziennych działaniach.
Istotną cechą SZK jest możliwość utworzenia wielu sieci przy wykorzystaniu jednego stanowiska SZK, gdyż jedna SZK może kreować dowolnie wiele niezależnych UC z możliwością utworzenia hierarchii pomiędzy nimi. Ograniczeniem jest tu jedynie wielkość pamięci dyskowej współpracującego komputera PC.
Względy bezpieczeństwa, czyli zasada wielu par oczu, oraz wymaganie zapewnienia ciągłości pracy wymagają aby personel obsługujący BMK był dosyć liczny, choć poza operatorami niezbyt obciążony pracą. W jego skład wchodzi kilka osób (od 4 do 8) dysponujących nośnikami zawierającymi elementy składowe klucza prywatnego UC, operator lub operatorzy wykonujący codzienne czynności obsługowe, administrator odpowiedzialny za prawidłowe skonfigurowanie systemu i nadzór nad jego pracą od strony informatycznej oraz inspektor bezpieczeństwa i audytor, których zadaniem jest nadzór nad zachowaniem procedur bezpieczeństwa.
Karta katalogowa SZK dostępna jest tutaj.
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:
- wykonania skrótu informacji którą się chce podpisać,
- zaszyfrowania własnym kluczem prywatnym otrzymanego skrótu,
- 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:
- wykonania skrótu informacji którą się otrzymało,
- odszyfrowania otrzymanego wraz z informacją skrótu, przy użyciu klucza publicznego z certyfikatu załączonego do przesyłanej informacji,
- 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:
- algorytmy asymetryczne są bardzo wolne w realizacji – ok. 1000 razy wolniejsze od symetrycznych,
- 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,
- 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:
- bardzo skutecznie strzec swojego klucza prywatnego, gdyby bowiem dostał się on w niepowołane ręce cały system stałby się niewiarygodny,
- 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,
- w sposób wiarygodny dystrybuować swój klucz publiczny, aby nikt inny nie mógł się podszyć pod UC,
- zapewnić identyfikację użytkowników podczas ich wprowadzania do systemu,
- 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.
Zrozumienie sposobu funkcjonowania systemu Sylan nie jest możliwe bez pobieżnego choćby zapoznania się z infrastrukturą klucza publicznego. Dzięki niej możliwe jest bezpieczne użycie podpisu cyfrowego w systemie.
Jak już wyżej wspomniano system Sylan wykorzystuje IKP do uwierzytelnienia użytkowników w przypadku transmitowania informacji na poziomie co najmniej „poufne”. W tym celu wykorzystuje urządzenie TeaCup oraz współpracujące z nią i z urządzeniami telekomunikacyjnymi nośniki kluczy prywatnych i certyfikatów w postaci kart elektronicznych lub nośników USB (dalej: nośniki).
Poziom „zastrzeżone” nie wymaga IKP. Z kolei poziom „tajne” korzysta z IKP i dodatkowych niejawnych protokołów i algorytmów.
Przyjęto zasadę, że uprawnienia do korzystania z sieci związane są z posiadaniem nośnika z odpowiednimi uprawnieniami, a nie z konkretnym terminalem. Dzięki temu użytkownik systemu nie musi ze sobą wozić aparatu telefonicznego. Wystarczy, że ma kartę dzięki której może skorzystać z aparatu znajdującego się w instytucji w której akurat przebywa.
Wprowadzenie terminala do systemu wymaga jego inicjalizacji, której najważniejszym, z punktu widzenia IKP, elementem jest zainstalowanie przez administratora autocertyfikatu UC w urządzeniu. Ze względu na fakt, że terminal może jednocześnie pracować w trzech sieciach możliwe jest zainstalowanie do trzech autocertyfikatów w jednym urządzeniu.
Działanie systemu pokażemy na przykładzie aparatu telefonicznego.
Nawiązanie połączenia niejawnego na poziomie powyżej „zastrzeżone” wymaga włożenia do czytnika aparatu posiadanej karty i podaniu poprawnego kodu PIN do niej. Następnie należy nawiązać połączenie jawne z żądanym numerem. Po upewnieniu się co do tożsamości rozmówcy przejście w tryb niejawny wymaga naciśnięcia przycisku „szyfruj”, co wywołuje proces nawiązywania połączenia niejawnego na który składają się:
- przejście w tryb transmisji danych,
- ustalenie poziomu połączenia (w przypadku braku właściwych uprawnień nawiązane zostanie połączenie na poziomie zastrzeżone chyba, że konfiguracja aparatów na to nie zezwala) z podaniem odpowiedniego komunikatu dla użytkowników,
- ustalenie elementów klucza sesyjnego za pomocą algorytmu Diffie-Hellmana,
- utworzenie klucza sesyjnego z uzgodnionego materiału kryptograficznego,
- rozpoczęcie szyfrowania dalszej części transmitowanych danych (powyżej warstwy łącza danych) z wykorzystaniem tego klucza,
- porównanie posiadanych przez aparaty list LUC i pobranie przez jeden z aparatów nowszej jeżeli drugi taką dysponuje,
- sprawdzenie czy żaden z użytkowników nie znajduje się na LUC, a następnie uwierzytelnienie wzajemne użytkowników z podaniem ich identyfikatorów na wyświetlaczach aparatów, uwierzytelnienie dokonywane jest za pomocą IKP bazującej na asymetrycznym algorytmie RSA,
- rozpoczęcie przekazywania informacji.
Brak powodzenia którejś z operacji spowoduje rozłączenie połączenia z jednoczesnym wyświetleniem odpowiedniego komunikatu.
W systemie Sylan rozwiązano w sposób maksymalnie elastyczny problem unieważnionych certyfikatów. Wszystkie dane o certyfikatach, w tym unieważnionych, gromadzone są w bazie danych urządzenia TeaCup. Administrator IKP konfigurując system ustala maksymalny odstęp czasu pomiędzy generacjami LUC. Listy te mogą być przenoszone w postaci plików na dowolnych nośnikach elektronicznych w tym także na kartach i aplikowane do terminali za ich pośrednictwem lub automatycznie podczas połączeń między terminalami.
Dobrym rozwiązaniem jest więc postawienie w sieci jednego terminala „technicznego” do celów propagacji LUC. W momencie, gdy standardowy terminal „uzna” zgodnie ze swoimi ustawieniami, że posiadana przez niego LUC wymaga odświeżenia dzwoni do terminala „technicznego” w trybie automatycznym w celu uzyskania nowej listy. Jak łatwo zauważyć każde następne połączenie z telefonem posiadającym najnowszą LUC spowoduje jej propagację w sieci.


