PGP - Pretty Good Privacy - poradnik dla początkujących

Olek Pawlak 29-05-2014, 16:36

W świetle wydarzeń z zakresu m.in. działalności NSA i innych tego typu podmiotów przeciętni użytkownicy internetu zaczęli coraz bardziej dbać o swoją prywatność w sieci. Dobrym sposobem zapewnienia sobie poufności przesyłu danych jest ich szyfrowanie. Zamierzam w tym artykule przedstawić podstawy kryptografii asymetrycznej, jak również jej praktyczne zastosowanie za pomocą kluczy PGP. Zaszyfrowany tekst jest nie do odczytania bez posiadania odpowiedniego klucza odszyfrowującego. PGP – Pretty Good Privacy – pozwala na szyfrowanie danych i ich sprawdzanie za pomocą podpisów cyfrowych. Całość działa w oparciu o kryptografię asymetryczną.

Kryptografia asymetryczna 

Aby zrozumieć dalszą część artykułu, niezbędny jest ogólny wstęp do kryptografii asymetrycznej. Jest ona powszechnie stosowana w bezpieczeństwie informatycznym, chociażby podczas szyfrowanego połączenia ze stroną internetową (np. bankiem).

W kryptografii asymetrycznej należy wyróżnić następujące pojęcia:

Klucz prywatny

Jest to klucz służący do odszyfrowywania danych i podpisywania ich. Osoba, która się posługuje takim kluczem, musi szczególnie dbać o jego bezpieczeństwo – klucz prywatny stanowi podstawę do uwierzytelnienia wiadomości, jego utrata (przez włamanie czy udostępnienie) jest jak utrata hasła.

Klucz publiczny

Klucz publiczny z kolei to klucz służący do szyfrowania danych i sprawdzania poprawności podpisu. Ten klucz może być udostępniony publicznie bez obaw, że prywatność danych zostanie naruszona.

Dla użytkowników niezaznajomionych z pojęciem klucza w informatyce – klucz jest to unikatowy ciąg znaków, który służy do przeprowadzania operacji kryptograficznych, tak aby operacje te mogły być przeprowadzone tylko i wyłącznie za pomocą danego ciągu znaków (nie powinny istnieć dwa różne klucze, których zastosowanie daje ten sam efekt).

Klucze te są ze sobą matematycznie związane, niemniej jednak – przy obecnej mocy obliczeniowej komputerów – wydobycie klucza prywatnego na podstawie klucza publicznego jest niemal niemożliwe. Opiera się to o problem logarytmu dyskretnego, który dotychczas nie został wydajnie rozwiązany (http://pl.wikipedia.org/wiki/Logarytm_dyskretny). Z tego względu kryptografia asymetryczna stosowana jest tam, gdzie istnieje potrzeba silnego szyfrowania danych.

Czym jest PGP?

PGP (ang. Pretty Good Privacy – „całkiem niezła prywatność”) to oryginalnie własnościowe oprogramowanie służące do bezpiecznego szyfrowania danych. Zostało ono jednak po pewnym czasie upublicznione i ustanowione jako standard OpenPGP przez IETF (Internet Engineering Task Force, organizacja zajmująca się wyznaczaniem standardów technicznych związanych z IT). W PGP użytkownik generuje własną parę kluczy (publiczny i prywatny), które służą mu do przeprowadzania operacji kryptograficznych. Za ich pomocą można tworzyć certyfikaty i podpisy cyfrowe.

Warto tu wspomnieć o zasadniczej różnicy pomiędzy bezpieczeństwem w zastosowaniu infrastruktury klucza publicznego przez CA (Certificate Authority) a PGP. Lista CA CA wydaje certyfikaty poświadczające tożsamość użytkownika i ma w obowiązku sprawdzić, czy rzeczywiście strona wnioskująca o certyfikat jest podmiotem, który powinien ten certyfikat otrzymać. Można łatwo sprawdzić, jaka firma wydała certyfikat, klikając choćby w symbol kłódki w pasku adresu.

W przypadku PGP nie ma jednak odgórnie narzuconej listy CA; użytkownicy sieci muszą zaufać sobie nawzajem, tworząc tzw. sieć zaufania. Taka sieć jest zdecentralizowana i niezależna od wielkich podmiotów. Nagła utrata zaufania do jednego CA spowoduje utratę zaufania do wszystkich serwisów, które przez ten CA zostały zaufane. W przypadku PGP jest inaczej – brak zaufania do jednego podmiotu nie wpłynie na zaufanie wobec innych podmiotów. Przypomina to sieć P2P dla certyfikatów – odbiorca i nadawca uwierzytelniają się wzajemnie, bez pośrednictwa Trusted Third Party. Istnieją również bazy danych kluczy publicznych, w których można spróbować wyszukać klucz osoby/instytucji, która nas interesuje – o ile oczywiście ta osoba udostępniła tam swój klucz publiczny.

Dla przykładu, aby osoba A chciała w bezpieczny sposób przesłać osobie B plik, musi posiadać klucz publiczny osoby B. Następnie szyfruje ten plik za pomocą klucza publicznego i zaszyfrowany już przesyła do B. B odbiera plik i korzysta z własnego klucza prywatnego, aby go odszyfrować – nikt inny nie jest w stanie użyć swojego klucza do odszyfrowywania pliku – operacja taka się nie uda.

Poniżej efekt zastosowania szyfrowania pliku tekstowego moim kluczem. Zaszyfrowany plik to „Pozdrowienia.txt” zawierający krótkie pozdrowienia dla DI („Pozdrowienia dla Dziennika Internautow! ”).

przykład szyfrowanego tekstu

Jak widać, nie można w żaden sposób wywnioskować, co jest treścią pliku.

Innym przykładem są podpisy cyfrowe: załóżmy, że osoba B chce wysłać do osoby A plik podpisany – w tym celu osoba B korzysta z własnego klucza prywatnego i nadaje podpis cyfrowy dla pliku. Przesyła podpisany plik do osoby A. Osoba A za pomocą klucza publicznego osoby B weryfikuje to, czy rzeczywiście plik pochodzi od tej osoby i czy nie został zmieniony (np. przez atakującego).

Poniżej zrzut ekranu zawierający poprawnie podpisany plik:

Poprawnie podpisany plik

Jeśli jednak zmieni się cokolwiek w samym pliku, podpis będzie nieważny. Usunąłem spację z pliku „Pozdrowienia.txt” i wynik sprawdzania podpisu jest negatywny:

wynik negatywny

 

Aby spawdzić, czy dany plik jest dobrze podpisany, należy najpierw dodać klucz publiczny do kluczy zaufanych – inaczej sprawdzenie podpisu wygeneruje ostrzeżenie (nie błąd!).

Powyżej korzystałem z darmowego programu GPG4Win. Narzędzie posiada przyjazny interfejs użytkownika, z którym powinniście sobie bez trudu poradzić (RTFM! ☺)

Zapewne nieczęsto zdarzy się Wam korzystać z PGP – obecne metody szyfrowania są całkiem dobre – jednak warto wiedzieć o tym, że PGP istnieje, w razie gdybyście się znaleźli w takiej sytuacji jak dziennikarz Glenn Greenwald, z którym chciał skontaktować się Snowden, lub też jesteście wystarczająco świadomi zagrożeń w sieci.

GPG a PGP

Niektórym osobom, które dopiero zaczynają poznawać tę metodę szyfrowania, często mylą się dwie nazwy – GPG i PGP. GPG (GNU Privacy Guard) to darmowe oprogramowanie wykorzystujące standard OpenPGP, o którym była mowa wyżej. Istnieją programy dostarczające interfejs użytkownika oparty o GPG, umożliwiające proste i wygodne zarządzanie kluczami i certyfikatami.

Olek Pawlak

 

Chciał(a)byś podzielić się swoją wiedzą z Czytelnikami DI? Napisz do nas: redakcja@di24.pl


Przepisy na coś słodkiego z kremem Nutella
  
znajdź w serwisie

RSS  

RSS - Wywiad
Wywiad  
RSS - Interwencje
RSS - Porady
Porady  
RSS - Listy
Listy  
« Czerwiec 2021»
PoWtŚrCzwPtSbNd
 123456
78910111213
14151617181920
21222324252627
282930