Laboratorium nr 5 Podpis elektroniczny i certyfikaty Wprowadzenie W roku 2001 Prezydent RP podpisał ustawę o podpisie elektronicznym, w która stanowi że podpis elektroniczny jest równoprawny podpisowi własnoręcznemu: Dane w postaci elektronicznej opatrzone bezpiecznym podpisem elektronicznym weryfikowanym przy pomocy ważnego kwalifikowanego certyfikatu są równoważne pod względem skutków prawnych dokumentom opatrzonym podpisami własnoręcznymi, chyba że przepisy odrębne stanowią inaczej. Art. 5 Ustawy o podpisie elektronicznym. Konstrukcja podpisu elektronicznego opiera się na szyfrowaniu danych za pomocą kryptografii asymetrycznej. Ponieważ klucz prywatny stanowi własność konkretnej osoby to szyfrując dokument (lub jego skrót) kluczem prywatnym, jednoznacznie potwierdzamy tożsamość podpisującego. Jeśli dane zostały zaszyfrowane kluczem prywatnym, wiadomo że mógł to zrobić jedynie jego posiadacz. "Podpis elektroniczny - dane w postaci elektronicznej, które wraz z innymi danymi, do których zostały dołączone lub z którymi są logicznie powiązane, służą do identyfikacji osoby składającej podpis elektroniczny." Art. 3 Ustawy o podpisie elektronicznym. Podstawowe własności podpisu elektronicznego: Unikalność - każdy dokument elektroniczny posiada unikalny podpis cyfrowy ściśle związany z dokumentem. Integralność - jakakolwiek zmiana w treści dokumentu podpisanego cyfrowo unieważnia podpis. Niezaprzeczalność - tylko osoba posiadająca klucz prywatny może wygenerować podpis pod dokumentem. Ponieważ podpis elektroniczny to zaszyfrowane dane za pomocą klucza prywatnego, jego weryfikacja to proces deszyfrowania za pomocą klucza publicznego. Istotną sprawą jest wykorzystanie w tym procesie właściwego klucza publicznego właściciela dokumentu. Skąd można mieć pewność że używa się właściwego klucza?
Przynależność klucza publicznego do danego użytkownika zapewnia certyfikat klucza publicznego. Certyfikat to najczęściej informacja podpisana cyfrowo przez podmiot świadczący usługi certyfikacyjne. Certyfikat zawiera dane dotyczące właściciela, jego klucz publiczny i informacje o tym kto wystawił certyfikat. "Certyfikat - elektroniczne zaświadczenie, za pomocą którego dane służące do weryfikacji podpisu elektronicznego są przyporządkowane do osoby składającej podpis elektroniczny i które umożliwiają identyfikację tej osoby." Art. 3 Ustawy o podpisie elektronicznym. Do podmiotów świadczących usługi certyfikacyjne można mieć zaufanie jeśli są to podmioty zapisane w rejestrze Narodowego Centrum Certyfikacji. Narodowe Centrum Certyfikacji pełni funkcję głównego urzędu certyfikacji dla infrastruktury bezpiecznego podpisu elektronicznego w Polsce. Dodatkowo podpis elektroniczny można oznakować czasem. Znacznik czasu wskazuje jednoznacznie że dany dokument istniał i nie był modyfikowany od czasu zapisanego w tym znaczniku. Znakowanie czasem [nazywamy] usługę polegającą na dołączaniu do danych w postaci elektronicznej logicznie powiązanych z danymi opatrzonymi podpisem lub poświadczeniem elektronicznym, oznaczenia czasu w chwili wykonania tej usługi oraz poświadczenia elektronicznego tak powstałych danych przez podmiot świadczący tę usługę. Art. 3 Ustawy o podpisie elektronicznym Podczas laboratorium będziemy używać środowiska GPG i niekwalifikowanych certyfikatów w formacie OpenPGP. GPG (GNU Privacy Guard) jest następcą oprogramowania PGP (Pretty Good Privacy) stworzonego w roku 1991 przez Phila Zimmermanna. Ten system kryptograficzny umożliwia uwierzytelnianie, generowanie podpisów cyfrowych i zapewnia poufność transmitowanych danych. Na zajęciach będziemy używać najnowszej wersji darmowego środowiska GPG (www.gpg4win.org). Aplikacja za pomocą której będziemy zarządzać kluczami nazywa się Kleopatra. Szyfrowanie danych w środowisku GPG opiera się zarówno na kryptografii symetrycznej i asymetrycznej. Siłą szyfrowania symetrycznego jest jego duża szybkość, natomiast największa zaleta kryptografii asymetrycznej to brak problemów z bezpieczną dystrybucją kluczy (klucz przeznaczony do szyfrowania danych jest jawny). Dane przesyłane między użytkownikami są szyfrowane za pomocą algorytmu symetrycznego, używając w tym celu pewnego klucza sesyjnego. Klucz sesyjny musi być tajny, ponieważ służy on zarówno do szyfrowania jak i do odszyfrowywania danych. Aby zapewnić tajność klucza sesyjnego, szyfruje się go za pomocą kryptografii
asymetrycznej, a więc klucz sesyjny szyfrujemy za pomocą klucza publicznego odbiorcy. Następnie oba szyfrogramy (dane zaszyfrowane kluczem sesyjnym i klucz sesyjny zaszyfrowany kluczem publicznym), zostają przesłane do odbiorcy. Schemat szyfrowania pokazany jest na rysunku. Odszyfrowywanie danych przebiega następująco: na początku odszyfrowujemy klucz sesyjny za pomocą swojego klucza prywatnego (kryptografia asymetryczna), a następnie za pomocą otrzymanego klucza sesyjnego odszyfrowujemy odebraną wiadomość (kryptografia symetryczna). Opisany schemat przedstawiono na poniższym rysunku.
Przygotowanie 1. Proszę uruchomić komputer w systemie Windows i na pulpicie stworzyć nowy katalog bezpieczenstwo. W tym katalogu proszę przechowywać wszystkie pliki, które będą wykorzystywane podczas zajęć. Po zakończeniu zajęć proszę usunąć katalog wraz z całą zawartością. 2. Proszę ściągnąć instalkę programu GPG4win (www.gpg4win.org) i zainstalować aplikację z domyślnymi ustawieniami. Jeśli program jest już zainstalowany, proszę wykasować wszystkie klucze i certyfikaty w programie Kleopatra. Klucze kryptograficzne i certyfikaty OpenPGP 3. Proszę wygenerować parę kluczy (prywatny i publiczny) w aplikacji Kleopatra opcja New certificate. Tworzymy certyfikaty w formacie OpenPGP. Warto włączyć opcję Ustawienia zaawansowane, gdzie można wybrać różne algorytmy i długości kluczy. Zapoznaj się algorytmami i długościami kluczy kryptograficznych, które są wspierane w środowisku GPG? Przed wygenerowaniem kluczy należy wypełnić wymagane pola: nazwę i adres e-mailowy oraz hasło dostępu (hasło należy zapamiętać, bo będzie potrzebne w dalszej części laboratorium). Wygenerowana para będzie używanym przez nas kluczem publicznym i prywatnym. Czy można wygenerować tylko jeden klucz asymetryczny (np. klucz prywatny)? Czy miałoby to sens? 4. Wyeksportować swój klucz publiczny i klucz prywatny do pliku (wyeksportować w formacie ASCI). Zapoznać się z zawartością, otwierając plik w edytorze tekstowym. Jaką postać ma klucz wygenerowany w GPG? Czym różni się certyfikat w formacie X.509 od certyfikatu OpenPGP? 5. Wymienić się swoimi kluczami publicznymi z inną osobą w grupie (za pomocą maila, pamięci przenośnej, itp.). Czy wymiana kluczy prywatnych miałaby sens? 6. Po zaimportowaniu klucza publicznego innej osoby do aplikacji Kleopatra, należy go podpisać przy użyciu swojego klucza prywatnego (certyfikować). Po tej operacji znajdzie się on wśród zaufanych certyfikatów.
7. Zweryfikować otrzymany i zapisany klucz publiczny porównując fingerprint (postać postać heksadecymalna). Jeśli właściciel potwierdzi prawidłową wartość skrótu nazwanego fingerprint zmienić poziom zaufania tego klucza na najwyższy. Czym jest fingerprint? Dlaczego warto różnicować poziom zaufania rożnych kluczy? Szyfrowanie i podpis cyfrowy 8. Proszę podpisać dowolny dokument tekstowy, a następnie wysłać go do osoby posiadającej nasz klucz publiczny, w celu jego weryfikacji. Jednocześnie proszę zweryfikować podpis elektroniczny dokumentu otrzymanego od innej osoby. Po skutecznym zweryfikowaniu podpisu, proszę zmodyfikować treść oryginalnego dokumentu i znów zweryfikować podpis cyfrowy. Co się zmieniło? Dlaczego? 9. Stworzyć nowy plik tekstowy (wpisać do niego jakąś treść) i zaszyfrować go za pomocą klucza publicznego innej osoby. Następnie wysłać zaszyfrowany plik do właściciela klucza. Właściciel ma za zadanie odszyfrować otrzymany dokument. Jeśli deszyfrowanie pliku powiedzie się, proszę nieznacznie zmodyfikować szyfrogram (np. zmienić jeden znak) i powtórzyć proces deszyfrowania. Czy znów się udało? Czy udało się odszyfrować chociaż fragment pliku? 10. Na stronie programu GPG4win (www.gpg4win.org), oprócz instalek programu, znajdują się tam również podpisy cyfrowe tych plików. Zweryfikuj czy ściągnięty przez Ciebie plik jest poprawny. Dla ambitnych (część nieobowiązkowa) Certyfikaty kwalifikowane są niestety płatne. Można jednak korzystać z darmowych certyfikatów niekwalifikowanych jest to mniej bezpieczna opcja i nie pozwala na generowanie podpisów elektronicznych zgodnych z ustawą, ale warto choćby przetestować taką możliwość. Polecam strony znanych centrów np.: Thawte (http://www.thawte.com), VeriSign (http://www.verisign.com/), itp. Sprawozdanie W sprawozdaniu z laboratorium nr 5 należy opisać wykonane ćwiczenia i ich wyniki. W szczególności należy odpowiedzieć na zadane pytania. Dodatkowo we wnioskach należy napisać, na czym polega podpis elektroniczny i do czego służą certyfikaty.