background image

 

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 

background image

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.  

background image

 

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. 
 
 

background image

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. 

background image

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.