Bity Twojego podpisu
Marek Bartosiewicz
W lipcu bieżącego roku wejdzie w życie ustawa o podpisie elektronicznym. Od tego momentu podpis elektroniczny będzie miał taką samą moc prawną, jak jego "analogowy" (pisany) odpowiednik. Czy ten fakt zmieni coś w naszym codziennym życiu? Czym jest podpis elektroniczny?
Odpowiedź na pierwsze pytanie nasuwa się sama: na pewno tak, choć nie od razu. Podpis elektroniczny jeszcze długie lata będzie pełnił rolę uzupełniającą w stosunku do swojego odręcznego kolegi, chociażby dlatego, że jeszcze nie istnieje w Polsce rozwinięta infrastruktura związana z podpisem cyfrowym (tzw. infrastruktura klucza publicznego), a ta, która działa, należy do ZUS-u (a jak działa, każdy widzi). Ustawa o podpisie elektronicznym, przyjęta przez Sejm III RP ma za zadanie ułatwić życie osobom (lub firmom) chcącym w pełni korzystać ze zdobyczy nowych technologii informatycznych (choć sama idea podpisu cyfrowego nie jest taka znów świeża, bo pochodzi z 1976 roku) - zauważmy, że nawet gdyby taka ustawa nie została uchwalona, to nic by nie stało na przeszkodzie, aby np. zainteresowane firmy po prostu umówiły się między sobą, że honorują wszelką korespondencję elektroniczną zaopatrzoną w właściwy podpis cyfrowy.
Czym jest e-podpis?
Na podpis elektroniczny składa się kilka dobranych w specjalny sposób i przypisanych do jednej osoby niepowtarzalnych ciągów bitów (kluczy kryptograficznych) wraz z odpowiednim algorytmem pracującym na tych kluczach oraz podpisywanej wiadomości. Zanim jednak przejdziemy do opisu działania podpisu cyfrowego, krótko powiemy o podstawowych wymaganiach wobec usług kryptograficznych. Najważniejsze to:
poufność - ochrona informacji przed jej poznaniem przez osoby nieuprawnione; poufność wiadomości może zapewnić jej zaszyfrowanie;
integralność - ochrona przed wprowadzaniem zmian do wiadomości przez osoby do tego nieupoważnione; do tego celu używa się właśnie podpisów cyfrowych;
uwierzytelnianie - potwierdzenie tożsamości danego użytkownika i/lub potwierdzenie prawdziwości przesłanej wiadomości; do weryfikacji tożsamości służą certyfikaty nadawane przez specjalne instytucje;
niezaprzeczalność - uniemożliwia wyparcie się przez nadawcę faktu wysłania wiadomości o ustalonej treści.
Podpisy cyfrowe są dzieckiem jednej z gałęzi matematyki stosowanej - kryptografii. Podczas obliczeń związanych z tworzeniem podpisów elektronicznych używa się tzw. kryptografii klucza publicznego (patrz ramka "Słowniczek kryptologa", szyfr asymetryczny, a także ramka "Jądro kryptografii asymetrycznej") opartej na dwóch dużych liczbach: kluczach prywatnym i publicznym. Taką parę unikalnych kluczy przypisuje się każdemu użytkownikowi systemu; należy przy tym zagwarantować, że dostęp do klucza prywatnego posiada tylko i wyłącznie jego właściciel (oraz tylko on używa go do podpisywania dokumentów), natomiast odpowiadający mu klucz publiczny musi być osiągalny dla każdej zainteresowanej osoby (np. umieszczony na dedykowanym serwerze kluczy publicznych). W ten sposób odbiorca podpisanej wiadomości może zweryfikować otrzymany dokument wraz z podpisem.
Streszczenie = potwierdzenie
W procesie tworzenia podpisu cyfrowego korzysta się z jeszcze jednej funkcji o fundamentalnym znaczeniu dla kryptografii, a mianowicie jednokierunkowej funkcji skrótu. Stosując funkcję skrótu otrzymujemy cyfrowe "streszczenie" dokumentu i to streszczenie bardzo efektywne: skrót pliku o dowolnej długości zawsze ma stałą długość, najczęściej 16 lub 20 bajtów (i bynajmniej nie ma to nic wspólnego z kompresją). Dzięki temu, programowa implementacja algorytmu podpisu elektronicznego staje się znacznie szybsza. Zamiast obrabiać całą wiadomość, obliczamy podpis tylko dla kilkunastu bajtów skrótu dokumentu, z czym poradzą sobie w krótkim czasie nawet słabsze procesory. W praktyce okazuje się, że żadne dwie różne wiadomości nie mają tego samego skrótu, a dodatkowo funkcja skrótu gwarantuje wykrycie nieuprawnionych modyfikacji. W wypadku zmiany nawet pojedynczego bitu oryginalnej wiadomości, wartość funkcji skrótu zmienia się w sposób nieprzewidywalny. Podczas generacji podpisu cyfrowego, ta ostatnia cecha pozwala nam traktować skrót wiadomości na równi z pierwowzorem.
Jak to działa?
Wymiana wiadomości podpisanych elektronicznie zachodzi w kilku etapach (patrz rysunek):
Nadawca wprowadza wiadomość (dowolny plik) do specjalnego programu. Program używa jednego z istniejących już algorytmów (np. SHA-1 - Secure Hash Algorithm-1 lub MD5 - Message Digest 5) do wyznaczenia tzw. skrótu wiadomości (Uwaga: nie mylić z funkcją haszującą czy z funkcją mieszającą!). Uzyskujemy gwarancję integralności danych.
Podpis cyfrowy obliczany jest przez zaszyfrowanie skrótu wiadomości przy wykorzystaniu klucza prywatnego zapisanego na karcie mikroprocesorowej. Tu niezbędne będzie wsunięcie posiadanej karty do czytnika oraz podanie numeru PIN. Ponieważ każdy użytkownik ma przypisany unikalny klucz prywatny, zapewniamy tym samym uwierzytelnienie wiadomości.
Wiadomość wraz z podpisem cyfrowym transmitujemy przez dowolną sieć publiczną. Może to być jeden plik zawierający dokument wraz z "doklejonym" podpisem elektronicznym.
Adresat wiadomości rozszyfrowuje otrzymany podpis używając do tego celu klucza publicznego nadawcy, otrzymuje tym samym skrót wiadomości ustalony przez nadawcę.
Jednocześnie adresat oblicza we własnym zakresie, ale tym samym algorytmem co nadawca, skrót wiadomości na podstawie odebranego dokumentu.
Tylko w przypadku gdy obydwie wartości okażą się identyczne, można uznać zarówno sam dokument, jak i jego nadawcę za autentyczne.
Zaufanie do kluczy
Jak już wiemy, do weryfikacji podpisu cyfrowego adresat wiadomości musi posiadać klucz publiczny nadawcy. Lecz taki klucz to tylko duża liczba - i jako taka nie ma bezpośredniego związku z właścicielem, to po prostu długi ciąg bitów. Potrzebujemy więc do dyspozycji jakiegoś mechanizmu gwarantującego całkowicie pewne ustalenie tożsamości właściciela klucza. Jak zapewnić, że konkretny klucz, pobrany z ogólnie dostępnego serwera, naprawdę należy do J. Kowalskiego, a nie do jego podstępnego sąsiada? Gdyby wymiana dokumentów zachodziła tylko pomiędzy niewielką liczbą osób (instytucji), można by skorzystać np. z usług kurierskich i wymienić się nawzajem kluczami publicznymi zapisanymi na dyskietkach, przesłanych w odpowiednio zabezpieczonej paczce. Jednakże ten sposób nie ma sensu w przypadku, gdy zainteresowanych uzyskaniem własnego podpisu cyfrowego osób jest dużo. Rozwiązaniem problemu weryfikacji kluczy jest wprowadzenie do schematu tzw. zaufanej trzeciej strony (ang. Trusted Third Party). Organ Certyfikacji ma obowiązek zarejestrować w swojej bazie danych wszystkich użytkowników podpisu cyfrowego i wygenerować im klucze. Oczywiście generacja kluczy musi być poprzedzona fizyczną identyfikacją petenta, który wpierw okazuje swój dowód osobisty, a następnie dostaje spersonalizowaną kartę mikroprocesorową z zapisanymi na niej kluczami. Tym razem nie są to same klucze, ale klucze z dołączonymi do nich certyfikatami (rysunek). Certyfikat to... elektronicznie podpisany klucz! Teraz po otrzymaniu wiadomości podpisanej certyfikowanym kluczem, jej weryfikacja nieco się wydłuża: najpierw sprawdzamy poprawność wiadomości kluczem publicznym nadawcy, a następnie sprawdzamy certyfikat klucza, tym razem używając klucza publicznego Organu Certyfikacji. Oczywiście musimy ufać Organowi Certyfikacji, że nie pomylił się podczas ustalania tożsamości nadawcy.
Jeszcze nieprędko
Zanim podpis cyfrowy zacznie być szeroko stosowany, na rynek musi trafić wiele tysięcy specjalnych czytników kart mikroprocesorowych. Co więcej, aby ta technologia trafiła "pod strzechy", producenci tych czytników muszą tak je skonstruować, aby korzystanie z nich było bezpieczne (brak opcji "grzebania w środku") oraz aby ich cena nie działała odstraszająco dla domowych użytkowników (lub nawet małych, kilkuosobowych firm). Ciekawe, które z tych wymagań okaże się trudniejsze do zrealizowania...
Copyright by MK ENTER
opr. JU/PO