Wszystko ma swój czas

Powoli, acz konsekwentnie w nasze życie publiczne wkracza elektroniczny obieg dokumentów i związany z nim podpis elektroniczny. Jego uzupełnieniem, gwarantującym niezaprzeczalność istnienia konkretnego dokumentu w konkretnym czasie, jest usługa znacznika czasu DTS (Digital Time-Stamping).

Powoli, acz konsekwentnie w nasze życie publiczne wkracza elektroniczny obieg dokumentów i związany z nim podpis elektroniczny. Jego uzupełnieniem, gwarantującym niezaprzeczalność istnienia konkretnego dokumentu w konkretnym czasie, jest usługa znacznika czasu DTS (Digital Time-Stamping).

Znaczniki czasu wystawiane przez wiarygodny urząd zwiększają bezpieczeństwo sporządzanych dokumentów, zabezpieczają je przed antydatowaniem lub postdatowaniem, dokonywaniem zmian po oznakowaniu czasem i ewentualnym zaprzeczaniem zawarcia umowy. Mogą być oznaczane nie tylko dokumenty, ale też dowolny zbiór binarny, np. logi systemowe, dane, kod źródłowy, nagrania wideo, zdjęcia itp.

Czas, którego nie można oszukać

Czy wysłaliśmy swoje zeznanie podatkowe w terminie? Zwykle o dacie jego wysłania świadczył stempel pocztowy na kopercie. Czy jednak dużym problemem jest namówienie urzędnika pocztowego do cofnięcia cyfry w stemplu? Dotychczas to on pełnił funkcję wiarygodnego źródła czasu. Student, który nie odda pracy zaliczeniowej lub sprawozdania w wyznaczonym terminie, zwykle tłumaczy się, że wysłał je pocztą elektroniczną, ale z nieznanych przyczyn wiadomość ta nie dotarła do adresata. O ile w powyższych przykładach możliwość antydatowania dokumentów (oznaczania nieprawdziwym czasem) nie jest szczególnie ważna, o tyle w przypadku podpisywania umów handlowych, transakcji giełdowych, poświadczeń notarialnych czy publikowania prac naukowych czas jest wartością krytyczną. Wiarygodne oznaczenie czasu powstania danego zbioru binarnego zwiększa bezpieczeństwo procesów biznesowych i ma istotne znaczenie przy rozstrzyganiu kwestii spornych, np. w procesie sądowym. Dotychczas o autentyczności datowania i zmianach treści dokumentów mogła świadczyć jedynie ekspertyza grafologiczna.

Podpis cyfrowy zaświadcza, kto podpisał plik, znacznik czasu natomiast wystawiony do podpisanej wiadomości informuje, że była ona podpisana przed momentem oznakowania czasem i od tego czasu nie dokonywano w nim jakichkolwiek zmian. Są to dwa elementy zapewniające bezpieczeństwo transakcji elektronicznych.

Znakowanie czasem

W roku 2001 IETF opublikowało standard protokołu oznaczania czasem TSP (Time Stamp Protocol)- RFC 3161. Zdefiniowano w nim również format zapytania przesyłanego do urzędu znacznika czasu TSA (Time Stamping Authority).

Wszystko ma swój czas

Schemat urzędu znacznika czasu (TSA)

Zaleta mechanizmu oznaczania czasem polega na tym, że dokumenty nigdy nie opuszczają komputera klienta i nie są przesyłane w formie jawnej. Do serwera TSA jest przesyłany jedynie skrót kryptograficzny oznaczanego pliku lub jego podpis cyfrowy, który już zawiera ten skrót. Wartość funkcji skrótu może być wyliczana przez użytkownika samodzielnie (np. w OpenSSL, z użyciem funkcji PHP "SHA1" itp.) lub za pomocą dostarczonego programu klienckiego TSA (przykład tworzenia funkcji skrótu, zapytań do TSA i weryfikacji znaczników w OpenSSL-http://www.signet.pl/instrukcje/tsa_openssl.pdf ).

Zgodnie ze specyfikacją techniczną, opublikowaną przez ETSI (TS 101 861) także w 2001 r., urząd znacznika czasu powinien zapewniać obsługę algorytmów haszujących (hash algorithm): SHA-1 (Secure Hash Algorithm), RIPEMD-160 i MD5 (Message Digest 5 Algorithm), z czego zalecane jest używanie dwóch pierwszych. Nie zaleca się algorytmu MD5, ponieważ w 1996 r. stwierdzono jego kolizyjność. Wymienione funkcje, zwane również jednokierunkową funkcją skrótu, wyliczają skrót kryptograficzny pliku binarnego (np. dokumentu lub podpisu elektronicznego), tworząc tzw. unikalny odcisk palca (fingerprint). W przyszłości powinna być dodana także obsługa algorytmów SHA-256 i SHA-512.

Jednokierunkowe funkcje haszujące zapewniają integralność oznaczanych danych. Dodatkową zaletą jest fakt, że skrót dowolnego pliku ma stałą długość, tj. 16 bajtów (MD5) lub 20 bajtów (SHA-1 oraz RIPEMD-160). Aby było możliwe wyliczenie funkcji skrótu SHA-1, wartość pliku nie może przekraczać 264 bitów, czyli 4 x 109 GB.

Następnie tworzone jest odpowiednio sformatowane żądanie znacznika czasu TSQ (Time Stamp Request), zawierające numer wersji TSQ, rodzaj zastosowanej funkcji skrótu oraz otrzymaną wartość w postaci ciągu bitów, którego długość musi być zgodna z zastosowanym algorytmem haszującym. TSQ może zawierać również liczbę losową, numer polityki, zgodnie z którą ma być wystawiona odpowiedź, oraz żądanie dołączenia do niej klucza publicznego TSA.

Tak utworzone żądanie jest przesyłane do wskazanego TSA. Według standardu TSA powinien zapewniać co najmniej obsługę Time Stamp Protocol przez HTTP. Dobrze, gdy możliwe są również inne sposoby komunikacji, np. na poziomie SSL, TCP, FTP czy e-mail.

Po otrzymaniu zgłoszenia serwer TSA sprawdza, czy jego format jest poprawny. Jeżeli weryfikacja przebiegła pozytywnie, TSA pobiera aktualną wartość czasu z zaufanego źródła czasu i generuje znacznik czasu (token) dla danego obiektu. Do klienta jest zwracana podpisana wiadomość w postaci paczki CMS (Cryptographic Message Syntax). Jej format jest zgodny ze standardem PKCS#7 (Public-Key Cryptography Standards) - RFC 2630, zaproponowanym przez RSA Labs. Zawiera ona informację o realizacji żądania TSQ. Może ona informować, czy znacznik czasu został: przyznany, przyznany z modyfikacjami, odrzucony, oczekuje na realizację, niedługo nastąpi jego unieważnienie lub już nastąpiło (np. z powodu utraty ważności certyfikatu wystawcy). Token znacznika czasu zawiera unikatowy identyfikator, wartość czasu oznaczenia, dopuszczalny błąd czasu, numer seryjny, wartość funkcji skrótu oznaczanego dokumentu, nazwę TSA oraz numer polityki certyfikacji, zgodnie z którą został wystawiony. Czas wykorzystywany do oznaczania nie może różnić się od wzorcowego źródła czasu o więcej niż 1 s.

Token jest podpisywany przy użyciu klucza prywatnego TSA, wygenerowanego specjalnie dla usługi znakowania czasem. Klucze te muszą być przechowywane z zachowaniem najsurowszych zasad bezpieczeństwa. Ich kompromitacja powoduje utratę ważności wystawianych znaczników. TSA może stosować odmienne klucze, w zależności od numeru polityki, stosowanych algorytmów lub oferty handlowej. Cała operacja jest rejestrowana w bazie danych i w każdej chwili użytkownik może z niej pobrać kopie wystawionych znaczników.

Weryfikacja znacznika czasu

Wszystko ma swój czas

Odbiornik częstotliwości GPS i kodu czasu MarkV

Po otrzymaniu znacznika czasu, należy przeprowadzić jego weryfikację. Pomyślny jej wynik gwarantuje, że otrzymany znacznik dotyczy właściwego pliku, ma poprawny format, jest podpisany za pomocą ważnego klucza, zawarty w nim format daty jest poprawny, został wystawiony wg właściwej polityki i podczas transmisji nie nastąpiło przekłamanie. Jeżeli którykolwiek z wymienionych elementów jest błędny, taki znacznik należy odrzucić. Sprawdzenia można dokonać albo w programie klienckim TSA, albo przy użyciu ogólnie dostępnego oprogramowania (OpenSSL).

Klient powinien także sprawdzać aktualność otrzymanej daty. Jeżeli dysponuje lokalnym zaufanym źródłem czasu, może porównać wartość otrzymaną w znaczniku z czasem bieżącym.

Aby ustrzec się przed opóźnieniami powodowanymi m.in. atakami typu man-in-the-middle, można umieszczać w zapytaniu TSQ wygenerowaną liczbę losową (nonce). Musi ona być na tyle duża, aby istniało wysokie prawdopodobieństwo, iż została wygenerowana tylko raz. Wartość nonce otrzymana w odpowiedzi musi być identyczna z wygenerowaną. Określając maksymalny czas odpowiedzi, należy uwzględnić opóźnienia związane ze stosowanymi metodami komunikacji.

Znacznik czasu ma skończony okres ważności, związany z czasem ważności certyfikatu, służącego do jego wystawienia. Przed utratą ważności danego znacznika należy uzyskać dla niego znacznik czasu poświadczony nowym certyfikatem, ważnym dłużej niż poprzedni. Tak wystawiony znacznik potwierdza istnienie w danym momencie znacznika czasu i jego podpisu elektronicznego.

W celu komercyjnej reprodukcji treści Computerworld należy zakupić licencję. Skontaktuj się z naszym partnerem, YGS Group, pod adresem [email protected]

TOP 200