BEZPIECZEOSTWO SYSTEMÓW INFORMACYJNYCH - laboratorium
Temat ćwiczenia: SZYFROWANIE, PODPIS ELEKTRONICZNY I CERTYFIKATY
Skład grupy:
1. Łukasz Szałas
2. Kamil Bogacz
3. Piotr Kasprzyk
4. Natalia Nieścior
5. Ewelina Skoczylas
6. Tomasz Truty
EAIiE, EiT
Data i godzina
wykonania
ćwiczenia:
5.04.2011, 17
00
Celem dwiczenia jest zapoznanie się z metodami szyfrowania (kryptografia symetryczna i asymetryczna),
konstrukcją podpisu elektronicznego oraz certyfikatów. Kryptografia umożliwia przechowywanie poufnych
informacji, transmitowanie danych w taki sposób by odczyt był możliwy tylko dla właściwego odbiorcy, oraz
tworzenie cyfrowych podpisów dokumentów.
Do tworzenia oraz podpisywania certyfikatów wykorzystywaliśmy kryptosystem PGP (Pretty Good Privacy).
PGP charakteryzuje się tym że łączy zarówno szyfrowanie kluczami asymetrycznymi i symetrycznymi. W
pierwszej fazie pobieramy klucz publiczny stacji z którą chcemy nawiązad bezpieczne połączenie. Musimy jej
przekazad klucz sesyjny, który jest kluczem symetrycznym. Wykorzystuje się do tego szyfrowanie asymetryczne,
czyli klucz prywatny i publiczny tej stacji. Dane szyfrujemy kluczem sesyjnym, następnie zaszyfrowane dane i
klucz sesyjny szyfrujemy kluczem publicznym tej stacji. Stacja odbiera zaszyfrowaną paczkę i przy użyciu
swojego klucza prywatnego jest w stanie odczytad klucz sesyjny. Następnie odszyfrowuje dane kluczem
sesyjnym. Od tej pory transmisja odbywa się w trybie szyfrowania symetrycznego z wykorzystaniem klucza
sesyjnego.
KLUCZE KRYPTOGRAFICZNE
1. W pierwszym dwiczeniu utworzone zostały pary kluczy prywatny-publiczny z wykorzystaniem algorytmu RSA
o długości klucza 2048.
Rys1. Wygenerowana para kluczy w systemie PGP.
Czy można wygenerowad tylko jeden klucz asymetryczny (np. klucz prywatny)? Czy miałoby to sens?
Nie można wygenerowad tylko jednego klucza asymetrycznego, ponieważ niemożliwe byłoby odszyfrowanie
wiadomości zaszyfrowanej tym kluczem. W przypadku wygenerowania jedynie klucza publicznego, aby
odszyfrowad wiadomośd zaszyfrowaną tym kluczem publicznym właściciel musiałby posiadad skojarzony z nim
klucz prywatny. W przypadku wygenerowania jedynie klucza prywatnego również nie miałoby to sensu
ponieważ nikt nie mógłby zaszyfrowad danych skierowanych do nas.
2.
Jaką postad ma klucz wygenerowany w PGP?
Przykładowa postad klucza wygenerowanego przez PGP w pliku tekstowym:
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: PGP 8.0.2 - not licensed for commercial use: www.pgp.com
mQGiBE2bHzsRBADJMScNYQ87KD0XjmIgYCVdMTAxz623uExBSzRn4DYNyA4Giket
0X5RA9roXUVxOmKeO/6UQEQXj53Y8QLdIRwuEz5VtKYJwn0TbnKDlAkBO1gl4inL
ay+Jy/ypjfT/VQQgcNgiDefCCmhhl+hyTPF4AF/MOuPzoHRaSqprg6n/0QCg/8+j
W0JfE6OLw+Asd67rZt1praMD/2tok9W26PuUpw97ICoOH5HKsgcWMFAATfwanzr0
LvtyUo+bdciTdbXM8Amhv1zvy2Pnq7wAxFS5wAmJtszYqdIGumZ7905adzrWqMxM
k0h40mUZzY+lkxLIbLKJJqPMBgMVlqNwWT0TQn3S9xMiwKzUzsj1mWmwIxxW3M7S
ZhNJBACT6LwxUOLhLxSjC1e2BKi/5DBdamWzExQedHm3BPMe3KJlIXnUg8VjYzOl
k1Z+N55mUeQ330xrwY6WBxCEde6sqqAQcDPa1OW2Oz4LwbtZMVHClQyVOdXq99rz
zuVIMO5P7V69cWVCGLabSkgbubtbjq/P2vhMpwUCA1Zo3ENHALQaTmF0YWxpYSA8
bmF0cGxrQGdtYWlsLmNvbT6JAFcEEBECABcFAk2bHzsHCwkIBwMCCgIZAQUbAwAA
AAAKCRDsXAPhADGrTqojAJoDz3TKO5acuuB2CwYY86a0o06weACcDbngHmeWhxo8
2W46sAXluBn/4my5Ag0ETZsfOxAIAPZCV7cIfwgXcqK61qlC8wXo+VMROU+28W65
Szgg2gGnVqMU6Y9AVfPQB8bLQ6mUrfdMZIZJ+AyDvWXpF9Sh01D49Vlf3HZSTz09
jdvOmeFXklnN/biudE/F/Ha8g8VHMGHOfMlm/xX5u/2RXscBqtNbno2gpXI61Brw
v0YAWCvl9Ij9WE5J280gtJ3kkQc2azNsOA1FHQ98iLMcfFstjvbzySPAQ/ClWxiN
jrtVjLhdONM0/XwXV0OjHRhs3jMhLLUq/zzhsSlAGBGNfISnCnLWhsQDGcgHKXrK
lQzZlp+r0ApQmwJG0wg9ZqRdQZ+cfL2JSyIZJrqrol7DVekyCzsAAgIH/jpn5ZaP
+r1WZVFtmXtizvNI/MR3FjaDcp1tb4bErqtgKpU8m0yIC1N6DpUtldMYWhi+57ft
FL/mNSueoN9NQzoxo/IIyUPz1jOYT4ZdtbXp+kosb5MyDuBpH8NLl1v6vaQNuWEb
7SefRa6KGBo6sZt5M4YXE6GPck/Vza7b4ckuL5Gm1BOS8ehsRy/sj3JIBdEPxrfD
tkAyNp1DdAJXalFybs3TpmJ9659Lo2CdHsIB+JwaoM39yvMyYNWbBsNRTarsBfn7
34a/EENPNNJ/wiyJwwqOOy0coeT2+jW76Xlk2AJOdF1Snlq9qwCuMdpfajDygXxR
nOeiS7n9kWnlksiJAEwEGBECAAwFAk2bHzsFGwwAAAAACgkQ7FwD4QAxq05tYgCg
8qUejAzacjVkC0byCAm2LPUIFl8AoIx7S7w9/g6maThb7EuN4lIMBAj3
=uRAv
-----END PGP PUBLIC KEY BLOCK-----
Publiczny klucz wygenerowany do pliku jest ciągiem 1533 znaków (wiersz - 64 znaków, ostatni - 5 znaków).
Klucz ten jest 2048 bitowy. Jest tak na tyle nieprzewidywalny i na tyle długi że trudno jest sprawdzid czy dwa
klucze są takie same. Tym bardziej praktycznie niemożliwym jest zapamiętanie kombinacji znaków klucza
publicznego.
3.
Czy wymiana kluczy prywatnych miałaby sens?
Wymiana kluczy prywatnych nie miałaby sensu. Idea szyfrowania asymetrycznego polega właśnie na tym, że
każda stacja posiada swój własny klucz prywatny, którego nie ujawnia. Kluczem tym, jest w stanie odczytad
wiadomości zaszyfrowane swoim kluczem publicznym. Klucz ten nie może byd znany innym stacjom, gdyż dane
skierowane do nas mogłyby byd odczytane przez każdą stacje posiadającą nasz klucz prywatny. Kolejnym
zagrożeniem jest to że osoba posiadająca nasz klucz prywatny jest w stanie podpisad dokument podszywając
się pod nas.
4. Zaimportowano klucz z innej stacji do programu PGP. W kolumnie Description widzimy opis algorytmu
szyfrowania oraz „Public key” oznacza to że otrzymaliśmy jedynie klucz publiczny. Dla porównania dla kluczy
które stworzyliśmy na tej stacji opis mówi o parze kluczy prywatnym i publicznym („key pair”). Przed
podpisaniem zaimportowanego klucza niemożliwe było zwiększenie poziomu zaufania w jego właściwościach.
Pojawiał się komunikat który mówił o niepoprawności (braku zaufania). Po podpisaniu zaimportowanego klucza
swoim kluczem prywatnym, status w kolumnie Validity dla klucza zaimportowanego zmienił się na zielony co
oznacza że uznajemy ten klucz za poprawny (ufamy mu). Teraz możliwe było zwiększenie poziomu zaufania.
Dlaczego warto różnicowad poziom zaufania dla rożnych kluczy?
Poprzez poziom zaufania ustalamy wiarygodnośd klucza publicznego. Podpisując klucz swoim kluczem
prywatnym deklarujemy zaufanie do tego klucza publicznego, jak również zaufanie do osoby która ten klucz
udostępnia. Należy zachowad ostrożnośd przy zbyt pochopnym podpisywaniu gdyż może to wpłynąd nie tylko
na nasze bezpieczeostwo ale także na bezpieczeostwo osób które nam ufają, przez co ufają kluczą publicznym
podpisanym przez nas. Klucze o niskich poziomach zaufania mogą wymagad większych ilości podpisów od osób
nam zaufanych. W ogólnym przypadku Im więcej podpisów ma klucz publiczny przez osoby nam zaufane tym
większy powinien byd jego stopieo zaufania. Dzięki zróżnicowaniu poziomów zaufania możemy umożliwid
pewne możliwości jedynie dla użytkowników o dużym stopniu zaufania, a ograniczad je dla osób o niższym
poziomie zaufania.
5.
Postad z wyrazami jak i postad heksadecymalna są identyczne zarówno na stacji która stworzyła klucz
publiczny jak i stacji która go odebrała.
Czym jest fingerprint? Czym różni się weryfikacja klucza publicznego za pomocą fingerprint od poznanej
wcześniej weryfikacji za pomocą certyfikatów?
Fingerprint jest jedną z możliwości sprawdzenia autentyczności klucza. W momencie dodawania nowego klucza
lub w trakcie jego podpisywania program PGP tworzy tzw. „odcisk palca”. Odcisku tego można użyd do
weryfikacji klucza innym kanałem, niekoniecznie bezpiecznym z punktu widzenia kryptografii, ale dającym nam
pewnośd, że po drugiej stronie jest osoba, której się spodziewamy. Jeśli znamy właściciela klucza osobiście,
może to byd np. sprawdzenie "odcisku klucza" przez telefon, lub jak robiliśmy to w trakcie laboratorium u
kolegi/koleżanki siedzących obok. W innych wypadkach pozostaje nam spotkanie z właścicielem klucza, albo
zaufanie do sygnatur znajdujących się w tym kluczu. Postad klucza to 40 znaków heksadecymalnych, lub w
trybie tekstowym 20 słów.
Certyfikat mówi o „zaufaniu” osoby/urzędu który certyfikuje dany klucz publiczny do tego klucza. Fingerprint
jest metodą do upewnienia się o oryginalności danego klucza publicznego innym kanałem komunikacyjnym. W
ogólnym przypadku fingerprint stosowany jest bardziej między osobami które posiadają kontakt ze sobą,
trudno jest sprawdzid np. fingerprint serwera bankowego.
SZYFROWANIE I PODPIS CYFROWY
1. Za pomocą klucza publicznego prowadzącego zweryfikowaliśmy podane 2 podpisy cyfrowe pliku tekstowego.
Weryfikacja za pomocą drugiego podanego podpisu cyfrowego plik_podpisany_cyfrowo2.txt.sig zakooczyła się
pomyślnie, dla pierwszego program łączył się z serwerami w celu poszukiwania kluczy co oznacza
niepowodzenie.
Rys2. Pomyślna weryfikacja podpisu cyfrowego
2. W drugim zadaniu za pomocą opcji Share Split stworzyliśmy klucz dzielony. Idea klucza dzielonego polega na
tym że klucz prywatny dzielony jest na kilka części pomiędzy „wspólnikami” czy „udziałowcami” (z ang.
shareholders
). Do odszyfrowania wiadomości zaszyfrowanych naszym kluczem publicznym wymagane jest
połączenie ustalonej ilości części klucza. W naszym przypadku podzieliliśmy klucz między 3 użytkowników
(a,b,c) z założeniem że korzystanie z tego prywatnego wymaga co najmniej dwóch jego części.
Rys3. Podział klucza prywatnego *natalia+ na 3 użytkowników a, b, c, oraz proces podpisywania kluczem
dzielonym.
Otrzymaliśmy 3 pliki:
User#1 – 1 Share.shf
User#2 – 1 Share.shf
User#3 – 1 Share.shf
Podpisanie przykładowego pliku za pomocą klucza dzielonego wymagało weryfikacji haseł ustalanych przy
dodawaniu „wspólników” klucza.
W jakich przypadkach są użyteczne operacje przy użyciu klucza współdzielonego?
Podział klucza odbywa się za pomocą kryptograficznego procesu zwanego Blakely-Shamir key splitting.
Technika klucza dzielonego zalecana jest w przypadku zachowania wysokiego zabezpieczenia klucza. Części
klucza są łączone tymczasowo, jedynie w celu wymaganego podpisu lub odszyfrowywania. Klucz dzielony
zapewnia duże bezpieczeostwo, ponieważ nawet przechwycenie części klucza nie zawsze skutkuje możliwością
odczytania zaszyfrowanych danych.
Przykładem użycia mogą byd wyjątkowo ważne dokumenty cyfrowe
wymagające podpisu przez co najmniej kilka osób (np. przez zarząd firmy) w celach bezpieczeostwa.
3. Po otrzymaniu zaszyfrowanej wiadomości naszym kluczem publicznym udało się ją odszyfrowad za pomocą
klucza prywatnego. Plik był podpisany przez nadawcę jednak PGP po próbie połączenia się z serwerem
europe.keys.pgp.com uznał podpis za nieznany.
Rys4. Szyfrowanie kluczem publicznym innej grupy laboratoryjnej (kluczem publicznym o nazwie tomek)
BEZPIECZNE USUWANIE PLIKÓW
Czym różni się takie usuwanie plików z dysku od zwykłego usuwania za pomocą systemowego polecenia
‘Usuo’?
Usuwanie za pomocą funkcji Wipe w systemie PGP, umożliwia bezpieczne trwałe usunięcie pliku oraz jego
zawartości z dysku komputera. Usuwanie za pomocą systemowego polecenie „Usuo”, przenosi usuwany plik
najpierw do kosza. Nazwa pliku zostaje usunięta z katalogu, ale dane pozostają na dysku. Wipe usuwa wszystkie
ślady pliku tak aby nikt nie mógł go odzyskad.
Podczas edycji treści dokumentów wiele programów tworzy tymczasowe pliki, które są usuwane po zamknięciu
dokumentu. Należy jednak zwrócid uwagę że dane nie pozostają porozrzucane na dysku. Aby zmniejszyd szanse
odzyskania treści poufnych dokumentów zaleca się wyczyszczenie wolnego miejsca na dysku za pomocą funkcji
Free Space Wipe, jak również bezpieczne usuwanie poufnych dokumentów poleceniem Wipe. Niektóre
aplikacje przez zaszyfrowaniem zapisują plik co może powodowad pozostawienie fragmentów pliku na dysku
twardym po szyfrowaniu w miejscach które nie są już uważane za części tego pliku. Pojawia się przez to luka w
bezpieczeostwie i te fragmenty pliku mogą zostad odczytane przez osoby trzecie. PGP Free Space Wiper czyści,
(wipe z ang. „wyciera”) całe wolne miejsce na dysku tak aby usunąd wszystkie fragmenty plików. Należy
również mied na uwadze fakt że wiele programów automatycznie tworzy kopie zapasowe plików (np.
openOffice) tak aby można było je później odzyskad. W przypadku wrażliwych i cennych danych działanie takie
może byd nieporządne, dlatego należy wtedy korzystad z możliwości Free Space Wiper’a
.
NARODOWE CENTRUM CERTYFIKACJI
Jakie jednostki kwalifikowane są wpisane do rejestru i jakie usługi mogą obecnie świadczyd?
Podmioty kwalifikowane, które są upoważnione do wydawania kwalifikowanych certyfikatów w Polsce to w
większości spółki akcyjne różnych firm informatycznych świadczących usługi związane z certyfikacją. Przykłady:
SAFE TECHNOLOGIES, UNIZETO TECHNOLOGIES, POLSKA WYTWÓRNIA PAPIERÓW WARTOŚCIOWYCH.
Usługi, które świadczą dane podmioty to:
wydawanie kwalifikowanych certyfikatów
wydawanie kwalifikowanych certyfikatów atrybutów
poświadczanie ważności certyfikatów
znakowanie czasem
weryfikowanie statusu certyfikatów w trybie on-line
walidacja danych
WNIOSKI
Konstrukcja podpisu cyfrowego opiera się na kryptografii asymetrycznej, która wykorzystuje dwa klucze:
publiczny i prywatny. Szyfrując dane kluczem prywatnym, potwierdzamy swoją tożsamośd (klucz prywatny zna
tylko jego właściciel). Klucz publiczny służy do odczytu zaszyfrowanych danych. Poszczególne etapy wyglądają
następująco:
W pierwszym etapie na podstawie zawartości pliku obliczana jest funkcja haszująca, która generuje jedną
wartośd na podstawie całej zawartości pliku. dana wartośd jest szyfrowana kluczem publicznym. Weryfikacja
podpisu przez adresata wymaga uruchomienia specjalnego oprogramowania, które odszyfrowuje zahaszowaną
wartośd podpisu za pomocą publicznego klucza nadawcy. Następnie obliczana jest dla pliku wartośd tej samej
funkcji haszującej, która została użyta przez nadawcę.
Certyfikaty mają za zadanie ustalid czy dany klucz publiczny należą do rzekomego właściciela, pełnią rolę
poświadczenia. Certyfikat to plik podpisany cyfrowo przez podmiot świadczący usługi certyfikacyjne. Certyfikat
składa się z trzech rzeczy: klucz publiczny, dane dotyczące właściciela, jeden lub więcej cyfrowy podpis .
Dla większych grup (współpracowników, partnerów biznesowych) korzystne jest korzystanie z systemu
zwanego PKI (Public Key Infrastructure), które oprócz mechanizmów wymiany, czy przechowywania
certyfikatów, zapewniają dodatkowo zarządzanie kluczami (możliwośd wydania, cofnięcia, pobrania). Główną
cechą PKI jest wprowadzenie urzędów certyfikacyjnych CA (Certification Authority). CA zajmują się
wystawiania, wycofywaniem certyfikatów, oraz certyfikacją innych CA. CA tworzy certyfikaty oraz podpisy
elektroniczne przy użyciu klucza prywatnego CA. Innym składnikiem PKI są urzędy rejestracji RA (Registration
Authority), które zbiera wnioski o wydanie certyfikatu, weryfikuje tożsamośd. Infrastruktura klucza publicznego
tworzy hierarchiczną strukturę zaufania, której podstawowym dokumentem jest certyfikat klucza publicznego.