PGP, GPG - bezpieczne szyfrowanie dla każdego
Obecnie na rynku kryptografia asymetryczna jest szeroko stosowana do komunikacji i przesyłania
danych poprzez kanały o bardzo niskiej poufności (np. Internet). Metoda ta jest również stosowana
w systemach elektronicznego uwierzytelniania, obsługi podpisów cyfrowych, szyfrowania poczty
(OpenPGP).
PGP zostało zapoczątkowane w 1991 roku przez Philipa Zimmermanna, a nad jego dalszym
rozwojem pracowało mnóstwo programistów z całego świata. Projekt PGP był rewolucyjnym
wydarzeniem na całym świecie. Po raz pierwszy zwykły użytkownik dostał do ręki narzędzie, które
zapewniało prywatność, wobec którego pozostawały bezradne nawet najlepiej wyposażone służby
wywiadowcze.
Program PGP był bardzo popularny z takiego względu, że działał on na wielu platformach (DOS,
Unix, MacOS i wiele innych). Dodatkowym atutem pierwszych wersji PGP był fakt, że program był
za darmo rozprowadzany wraz z kodem źródłowym. Pozwoliło to na szybki rozwój całego projektu.
Niestety od wersji 5.0, PGP stało się produktem komercyjnym, a w ostateczności zaprzestano
rozwijać jego wersje na platformy uniksowe. Na szczęście jednak powstał standard OpenPGP i
dzięki niemu niezależna implementacja pod nazwą GNU Privacy Guard (GPG).
Co to jest PGP/GPG?
PGP (Pretty Good Privacy) – co w wolnym tłumaczeniu z języka angielskiego oznacza Całkiem
Niezła Prywatność jest jednym z najpopularniejszych narzędzi do szyfrowania poczty
elektronicznej, różnego rodzaju danych, informacji i przechowywania ich w postaci
elektronicznej. Jest to bardzo zaawansowany system kryptograficzny przeznaczony dla wielu
systemów operacyjnych (MS-DOS, UNIX, VAX/VMS, Windows i wiele innych).
PGP pozwala na szyfrowanie, deszyfrowanie, podpisywanie cyfrowo, weryfikowanie autentyczności
nadawcy naszej poczty elektronicznej za pomocą technik podpisu cyfrowego. PGP pozwala nam
również na zarządzanie kluczami publicznymi oraz prywatnymi. Obecnie istnieje wiele nakładek na
PGP dodających programowi większe możliwości: szyfrowanie partycji na dysku. Powstało też
wiele dodatków i pluginów do programów pocztowych, aby w prosty sposób z klienta poczty
wysyłać i odbierać zaszyfrowane przy pomocy PGP wiadomości.
PGP może być wykorzystywane do celów darmowych jak i komercyjnych. PGP jest uznawane do
dziś za jeden z najbardziej trudnych do złamania szyfrów i praktycznie do dziś nie udało się
nikomu tego złamać Jest na tyle bezpiecznym systemem kryptograficznym, że do wymiany kluczy
nie potrzebne są żadne bezpieczne kanały łączności.
GPG (GNU Privacy Guard) – co z języka angielskiego oznacza Strażnik Prywatności GNU jest
wolnym odpowiednikiem udostępnianym na licencji GPL oprogramowania kryptograficznego PGP.
GPG dzięki standardowi OpenPGP może bez problemu współpracować z PGP. Niestety nie wszystkie
funkcje dodawane w nowszym oprogramowaniu są wspierane przez jego starsze wersje. GPG jest
bardzo stabilnym programem dodawanym do wielu dystrybucji Linuksa oraz systemów BSD
(FreeBSD, OpenBSD czy NetBSD).
GPG działa również na takich systemach jak Mac OS X (MacGPG oparty o interfejs OS X) i Microsoft
Windows. GPG działa jako program uruchamiany z linii poleceń. Dla użytkowników lubiących
graficzne interfejsy powstało wiele nakładek graficznych na przykład KGpg. GPG zostało także
zintegrowane z wieloma programami pocztowymi takimi jak KMail i Evolution. Dla produktów
Mozilli została stworzona wtyczka enigmail. Współpracuje ona z takimi programami jak
Thunderbird, Seamonkey i Mozilla / Netscape.
Standard OpenPGP nie uwzględnia mechanizmu wtyczek a przy tworzeniu enigmail nie brali
udziału twórcy GPG oraz OpenPGP, to istnieje możliwość utraty poziomu bezpieczeństwa jakie
zapewnia nam GPG czy PGP.
GPG wykorzystuje troszkę inne algorytmy niż te, które są w PGP. Dzieję się tak dlatego, że GPG
można dowolnie rozprowadzać zatem ze względów patentowych wykorzystanie algorytmu IDEA,
który jest praktycznie od samego początku w PGP, jest niemożliwe. W zamian za to wykorzystuje
się inne algorytmy takie jak 3DES. Istnieją wtyczki, które umożliwiają korzystanie z algorytmu
IDEA, ale mogą one wpłynąć na bezpieczeństwo GPG, gdyż nie są opisane w standardzie OpenPGP.
Niemniej jednak współczesne wersje programów przechodzą powoli na znacznie silniejszy i
pozbawiony problemów patentowych algorytm AES.
Obsługiwane algorytmy:
funkcje skrótu: MD5, SHA-1, RIPEMD160, TIGER, SHA256, SHA384, SHA512
asymetryczne: RSA, ElGamal, DSA, RSA-E, RSA-S
symetryczne: AES, AES192, AES256, 3DES, Blowfish, Twofish, CAST5, IDEA (opcjonalnie)
kompresji: ZIP, ZLIB, BZIP2
Jak to działa?
W klasycznych szyfrach do utajnienia wykorzystuje się jeden klucz – hasło. Klucz taki musi być
zatem znany obu stronom (osobie szyfrującej i deszyfrującej), aby umożliwić między nimi
komunikację. Taki klucz musi być zatem przesłany z użyciem kanału bezpiecznego
(zapewniającego poufność i integralność). W przeciwnym razie istnieje możliwość przechwycenia
klucza przez osoby niepowołane, co w gruncie rzeczy daje możliwość tym osobom do odczytywania
jak i podrabiania szyfrowanych wiadomości.
Metoda jaką wykorzystuje PGP / GPG jest zupełnie odmienna. Jeden klucz – hasło został
zastąpiony przez parę kluczy: publiczny i prywatny. Jeden z nich służy do szyfrowania a drugi do
deszyfracji. Znajomość klucza szyfrującego nie wystarczy do deszyfracji danych, ani do
odtworzenia klucza deszyfrującego i na odwrót. Efekt taki osiągnięto dzięki bardzo dużym liczbom
pierwszym. Klucz deszyfrujący bazuje na parze dużych liczb pierwszych, a klucz szyfrujący na ich
iloczynie. Znajomość iloczynu tych liczb jest zbyt małą informacją by wyszukać te liczby. Dla
najszybszych komputerów zajmuje to całe setki lat!
Klucz publiczny jest kluczem szyfrującym. Jego nazwa wzięła się z tytułu tego iż powinien być
dostępny dla wszystkich. Osoba chcąca wysłać zaszyfrowaną wiadomość do właściciela klucza
szyfruje ją kluczem publicznym. Wiadomość taką można rozszyfrować tylko odpowiednim kluczem
prywatnym. Klucz publiczny i prywatny danego użytkownika stanowią unikalną parę, tak że nawet
osoba szyfrująca list czyimś kluczem publicznym nie może go przeczytać.
Każda para kluczy jest unikalna, pasującą tylko do siebie. Dzięki temu możliwe jest również
cyfrowe podpisywanie listów. Kiedy w procesie szyfrowania wykorzystamy klucz prywatny to
wiadomość będzie można odszyfrować tylko kluczem publicznym pasującym do klucza prywatnego.
Dzięki temu odbiorca będzie pewien, że dostaje wiadomość od pożądanej przez niego osoby.
Oczywiście nic nie stoi na przeszkodzie, aby obie funkcje: szyfrowanie i podpisanie cyfrowe, nie
wykorzystać do jednej wiadomości. Najpierw list podpisuje się kluczem prywatnym nadawcy, a
potem szyfruje się kluczem publicznym odbiorcy. Odbiorca odwraca ten proces. Wszystkie kroki
wykonuje za nas program automatycznie.
Szyfrowanie kluczem publicznym mogłoby być bardzo wolną czynnością, dlatego dla zwiększenia
szybkości wolnego algorytmu szyfrowania kluczem publicznym wykorzystuje się małą sztuczkę.
Wiadomość jest szyfrowana znacznie szybszym szyfrem, który wykorzystuje jeden klucz. Losowana
jest 128-bitowa liczba, tworzona za każdym razem, kiedy szyfrujemy w ten sposób wiadomość.
Wiadomość jest szyfrowana na przykład za pomocą algorytmu IDEA. Następnie program szyfruje
sam klucz za pomocą klucza prywatnego i dołącza go do zaszyfrowanej wiadomości. Odbiorca
używając swojego klucza prywatnego odzyskuje losowy klucz, którym następnie może odszyfrować
wiadomość.
W pierwszym rzędzie mamy identyfikator użytkownika (userID). Najczęściej składa się on z
imienia, nazwiska oraz adresu e-maol. Następnie mamy datownik określający czas stworzenia
klucza, a na samym końcu właściwy klucz. Klucze prywatne mają taką samą budowę. Jedynie ze
względów bezpieczeństwa są one zaszyfrowane hasłem. Chroni to klucz w przypadku kiedy
dostanie się on w niepowołane ręce.
Klucze są przechowywane w dwóch bazach kluczy: publicznej i prywatnej. Możliwy jest eksport
kluczy do postaci pliku, na przykład w celu wymiany kluczami publicznymi. Klucz jest również
opisany za pomocą identyfikatora (liczby), która jest skrótem samego klucza (64 najmniej
znaczące bity klucza). Podczas pracy z kluczami wyświetlane są tylko 32 bity identyfikatora.
Często się zdarza, że różne klucze mogą mieć ten sam identyfikator (ponieważ widzimy tylko 32
bity identyfikatora), to w praktyce nie ma dwóch kluczy o tym samym identyfikatorze.
W przypadku tworzenia podpisów cyfrowych zwanych dalej sygnaturami PGP używa się algorytmu
skracania tekstu (MD5), który jest jego 128 bitową funkcją jednokierunkową. Jest ona analogiczna
w swoim działaniu do wszystkich algorytmów sum kontrolnych i CRC, jednoznacznie
odzwierciedlających zawartość tekstu.
Nie jest możliwe zmienienie zawartości tekstu bez wprowadzania zmian w sygnaturze. Sygnatura
jest szyfrowana tajnym kluczem autora tekstu. Taki dokument jest sygnowany przed dodanie na
początku userID, skrót tekstu oraz datownik. Przy sprawdzaniu wiadomości przez odbiorcę
program na podstawie identyfikatora klucza stwierdza autorstwo nadawcy. Każdy plik, który jest
zaszyfrowany przy pomocy PGP / GPG, na swoim początku zawiera identyfikator klucza
publicznego który został użyty do zaszyfrowania go. Dzięki temu program w łatwy i szybki sposób
może odnaleźć klucz prywatny służący do deszyfracji. Pamiętajmy, że nic nie stoi nam na
przeszkodzie, aby posiadać więcej niż jeden klucz prywatny
Zastosowanie
Aby zachować prywatność wysyłając listy do znajomych, dziewczyny, czy naszego pracownika. GGP
daje Ci prywatność jakiej nie może zapewnić żadne inne darmowe oprogramowanie. Nieważne co
wysyłasz pocztą. Czy są to kucharskie przepisy, czy tajne plany Twojej firmy, na pewno nie
chciałbyś, by Twoja prywatna poczta elektroniczna była czytana przez kogoś innego. I nie ma w
tym nic złego. Każdy chce zachować jakąś prywatność. Wysyłając list wkładamy go do koperty
szczelnie zamykając, aby nikt go nie przeczytał.
A co robimy z naszą pocztą elektroniczną? Wysyłamy nie dbając o zachowanie prywatności. A
przecież wystarczy sięgnąć po darmowe oprogramowanie, które w sposób bezpieczny gwarantuje,
że przeczyta je tylko wskazany odbiorca. Ale to nie wszystko co możesz zyskać.
Programy tego typu pozwalają również na szyfrowanie plików lub całych folderów bez względu jaki
one mają format. Dzięki temu możesz przesyłać zaszyfrowane załączniki, dokumenty lub trzymać
je na dysku nie martwiąc się o to, że ktoś wykradnie z nich jakieś informacje.
PGP oraz GPG zapewniają również potwierdzenie autentyczności osoby, z którą korespondujesz.
Czasem bardziej nam zależy, aby nasze informacje trafiły do danej osoby, niż zaszyfrowanie samej
treści przekazu. Programy te umożliwiają składanie elektronicznego podpisu zapewniając
wiarygodność rozmówcy.
Jak zacząć?
PGP zarówno jak i GPG jest dostępne na wielu serwerach zwierciadlanych oraz na stronach
domowych każdego projektu. Dostępne są wersje źródłowe jaki i gotowe pliki binarne. Na
serwerach znajdziemy wersje dla Uniksa oraz VMS w postaci wersji źródłowej napisanej w C oraz
wersje binarne dla MD-DOSa, czy Macintosha.
W niektórych dystrybucjach Linuksa, GPG jest dodawane domyślnie na płytach CD / DVD wraz z
innymi pakietami. W takich dystrybucjach jak Ubuntu, Fedora czy Mandriva mamy menadżerów
pakietów, którzy po wydaniu odpowiedniej komendy sami ściągną i zainstalują najnowszą wersję
GPG.
Instalacja PGP / GPG nie różni się niczym od instalacji innych programów. Jeżeli ściągniemy
wersję binarną musimy ją odpakować i skopiować do katalogu. Program jest gotowy do użycia. W
przypadku paczek instalujemy je za pomocą menadżerów pakietów. Wersje źródłowe najpierw
rozpakowujemy a potem należy je skompilować.
Bezpieczeństwo
Każdy użytkownik, który zdaje sobie sprawę z bezpieczeństwa wie, że nie ma idealnego systemu,
którego nie da się złamać. Tak samo jest z PGP czy GPG. Najsłabszym punktem całego systemu
jest jak zwykle głupota ludzka. Jeżeli użytkownik systemu nie dba we właściwy sposób o tajność
swojego klucza prywatnego, założył na nie zbyt proste hasło lub przechowuje klucz na
komputerze, do którego ma wiele osób dostęp to PGP / GPG nie zapewni mu prywatności.
Klucz prywatny możemy trzymać na zewnętrznych napędach takich jak dyskietka czy pendrive w
celu zminimalizowania wykradzenia tego klucza. Ujawnianie hasła lub samo publikowanie klucza
prywatnego jest poważnym błędem. Pamiętajmy, że przy każdej operacji przy pomocy klucza
prywatnego jesteśmy proszeni o hasło. Bez niego operacja się nie uda. I to właśnie hasło jest
jedyną rzeczą w całym systemie, której nie można zapisywać na kartkach papieru naklejonych na
monitor, czy zapisywać na dysku twardym. Powinno ono zostać w naszej głowie, która jest
ostateczną barierą chroniącą Twoją prywatność.
Potencjalnie najsłabszym punktem całego systemu są rzeczy, które nie są bezpośrednio związane z
programem. Różnego rodzaju czynniki zewnętrzne jak: wirusy, robaki, konie trojańskie,
keyloggery, sniffery i innego rodzaju złośliwe programy, które bez naszej wiedzy mogą zdobyć
hasło do klucza prywatnego lub sam klucz. Wszelkiego rodzaju zagrożenia jakie wynikają z pracy
na wielodostępowych maszynach, błędy zabezpieczenia sieci mogą przyczynić się do zmniejszenia
bezpieczeństwa korzystania z PGP / GPG.
Bezpieczeństwo PGP zależy również w dużej mierze od nas samych. W czasie tworzenia pary
kluczy mamy możliwość określenia ich wielkości od 768 do 4096 bitów. Wielkość ta określa z ilu
znaków ma się składać klucz. Im jest ona większa tym klucz jest bezpieczniejszy. Próba złamania
takiego klucza metodą brute force składa się na sprawdzeniu wszystkich możliwych kombinacji.
Oczywiście im większy jest klucz tym większa liczba kombinacji, obliczeń musi być wykonana do
złamania.
W większości przypadków może zniechęcić do podglądania naszych informacji. Posiadanie klucza
długości 1024 bitów lub większej praktycznie daje nam pewność, że nikt nie złamie naszej
prywatności. Ten system szyfrowania daje nam za darmo bardzo potężną i praktycznie nie do
złamania ochronę naszych informacji.
Metoda złamania szyfru RSA, która polega na odtworzeniu klucza prywatnego na podstawie klucza
publicznego (który jest łatwo dostępny), polega na faktoryzacji, czyli rozłożenia dużej liczby,
będącej iloczynem dwóch liczb pierwszych, na czynniki pierwsze. O ile w przypadku małych liczb
(kilku cyfrowych) zadanie jest proste to w przypadku rzędu 150 i więcej cyfr, zadanie staje się
matematycznie trudne.
Aktualnie znane metody matematyczne nie znają szybszej metody niż faktoryzacja. Również nie
zostało jeszcze udowodnione, że to działanie musi być działaniem trudnym, stąd teoretycznie jest
możliwe, że w dowolnej chwili możemy się przekonać, że istnieje metoda faktoryzacji znacznie
szybsza i mniej czasochłonna.
Gdyby tak się okazało szyfr RSA, PGP, GPG stały by się znacznie mniej bezpieczne. Obecnie
najszybszym algorytmem faktoryzacji jest algorytm GNFS (General Number Field Sieve), który
posłużył do złamania liczby RSA-567 (193 cyfry dziesiętne). Niektórzy twierdzą, że National
Security Agency (NSA) posiada metody szybszej faktoryzacji i stosuje je do własnych celów. Z
drugiej jednak strony możliwe jest, że jakiś geniusz matematyczny udowodni, że faktoryzacja jest
bardzo skomplikowanym działaniem, co praktycznie na zawsze pozwoli nam mówić, że szyfr RSA
jest szyfrem nie do złamania.
Ale po co to całe łamanie szyfru RSA, jeżeli do odkodowania wiadomości wystarczy nam znajomość
klucza. Wiadomość jest przecież szyfrowana klasycznym szyfrem z jednym tajnym kluczem. Na
szczęście jednak tradycyjne algorytmy osiągnęły tak wysoki poziom doskonałości, że praktycznie
nie poddają się żadnej znanej metodzie kryptoanalitycznej – na przykład porównywaniu tekstu
zaszyfrowanego z tekstem jawnym. Jedyną metodą, która daje jakieś efekty jest już wcześniej
wspomniana metoda Brute Force. Współczesne przeciętne komputery pozwalają na złamanie tych
szyfrów przy krótkiej długości klucza, jednak kto stosuje takie klucze? O złamaniu 128 bitowego
szyfru IDEA nie ma co marzyć, nie mówiąc już o 1024 bitowym kluczu RSA, dlatego do dziś PGP
pozostaje najbezpieczniejszym szyfrem na świecie.
Ale czy na pewno? 20 marca 2001 roku grupa kryptologów z czeskiej firmy Decros ogłosiła odkrycie
poważnego błędu w programie PGP. Błąd dotyczył możliwości ujawnienia klucza prywatnego, a
właściwie jego części służącej do podpisywania wiadomości, przy spełnieniu odpowiednich i dość
specyficznych warunków.
Błąd polega na fakcie, że program nie sprawdza integralności pliku z kluczem. Metoda odkrycia
klucza polega na podmienieniu oryginalnego klucza, kluczem odpowiednio spreparowanym a
następnie przechwycenie wiadomości, która użytkownik podpisał tym fałszywym kluczem. Na
podstawie wiadomości można w ciągu kilku sekund obliczyć prawdziwy klucz. Niemniej jednak
taka operacja jest trudna, gdyż wymaga szerokiego zakresu dostępu do komputera, na którym
znajduje się klucz prywatny w celu jego podmiany.
Kolejnym krokiem jest przechwycenie wiadomości. Zastanawia mnie jeden fakt. Skoro, aby
wyliczyć klucz prywatny należy mieć dostęp do komputera, gdzie on jest przetrzymywany, to czy
nie prościej jest założyć keylogger, który przechwyci jego hasło a następnie wykraść sam klucz?
Dobrą metodą zabezpieczenia się przed tego typu atakami jest przechowywanie klucza na
zabezpieczonym przed zapisem i schowanym w bezpiecznym miejscu pendrive. Taki sposób
przechowywania klucza jest zalecany w dokumentacji PGP od pierwszych wersji. Działanie
kryptologów z Decrosa ma na celu uświadomienie użytkowników, że klucze prywatne powinny być
przechowywane w bezpiecznym miejscu. Co prawda kolejne wersje programu wyeliminowały ten
problem, ale fakt bezpieczeństwa nadal zależy w głównej mierze od nas samych. Kryptolodzy
pokazali, że ich metoda może być wykorzystana w każdym programie, który wykorzystuje podpisy
elektroniczne oparte o algorytmy RSA i DSA.
W takim razie co robić kiedy doszło do ujawnienia naszego klucza prywatnego? W przypadku kiedy
mamy podejrzenia, że ktoś zna nasze hasło PGP posiada odpowiednie mechanizmy reagowania na
takie przypadki. Należy wygenerować odpowiednie zawiadomienie, które oznajmia, że dany klucz
został odtajniony. Służy do tego odpowiednie polecenie:
pgp -kd nazwa_uzytkownika
gpg --gen-revoke nazwa_uzytkownika
Zostaniemy spytani o powód generowania certyfikatu unieważnienia klucza. GPG podaje sam kilka
powodów:
0 = nie podano przyczyny
1 = klucz został skompromitowany
2 = klucz został zastąpiony
3 = klucz nie jest już używany
Q = Anuluj
Każdy kto otrzyma taki certyfikat zablokuje kopię Twojego klucza publicznego przed ewentualnym
użyciem. W przypadku odtajnienia klucza prywatnego dobrym posunięciem będzie wygenerowanie
nowej pary kluczy. Tej samej metody można użyć do unieważnienia starego klucza lub w
przypadku innych powodów. Jednak co robić w przypadku kiedy jedyna nasza kopia klucza
prywatnego została uszkodzona w wyniku błędów systemu plików, lub przypadkiem skasowana.
Wygenerowanie certyfikatu unieważniającego klucze publiczne będzie niemożliwa, gdyż
potrzebujemy do tego działającego klucza prywatnego. Pozostaje nam powiadomić słownie
znajomych, aby w swojej bazie unieważnili klucze publiczne. Każdy z nich musi ręcznie
zablokować kopię Twojego klucza publicznego. Taka operacja nie pozwoli już na odblokowanie
klucza publicznego. Ma to na celu zatrzymaniu rozpowszechniania nieważnego klucza publicznego.
Zawsze możemy jednak ochronić nasze klucze publiczne przed sfałszowaniem. System kryptografii
asymetrycznej cechuje się tym, że nie potrzeba chronić, czy szyfrować klucz publiczny a wręcz
przeciwnie. Należy je wszędzie rozpowszechniać. Jedynym problemem jest zapewnienie im
autentyczności i wiarygodności, że należy od rzeczywiście do osoby, której imię, nazwisko i mail
figurują w kluczu. Jest to jeden ze słabszych punktów całego systemu, przed którym można się
obronić dzięki Key Signing Party.
Ale nie wszystko jest tak niebezpieczne jak to malują. PGP bowiem samo potrafi sprawdzić
wiarygodność klucza. Program sam sprawdzi, każdy klucz pod względem wiarygodnych sygnatur.
Jedyne co należy do użytkownika to decydowanie, którym osobom chcemy i jak bardzo chcemy
ufać. Program do ustalenia, które klucze są wiarygodne kieruje się dwoma odrębnymi kryteriami:
1.
Czy klucz należy do osoby, której możesz zaufać jako sygnatorowi 2. nowych kluczy?
O ile na pierwsze kryterium program sam potrafi udzielić odpowiedzi to na drugie potrzebuje już
naszej pomocy. Na podstawie odpowiedzi jakie mu udzielimy, automatycznie zostaną uzupełnione
również odpowiedzi na pierwsze pytania co do innych kluczy podpisanych przez posiadacza akurat
sprawdzanego klucza. Klucz uznawany przez PGP/GPG za dobry i wiarygodny to taki, który został
poświadczony przez zaufaną osobę jej kluczem prywatnym. Klucze publiczne tych zaufanych osób
muszą być z koleji podpisane przez Ciebie lub inne zaufane osoby.
Zaufanie co do osoby świadczącej inne klucze nie ma na celu odzwierciedlać Twojej opinii na
temat osoby a na jej kompetencji i odpowiedzialności do zarządzania kluczami. Program rozróżnia
kilka typów zaufania:
Brak zaufania
Nieznane zaufanie
Marginalne
Pełne
Absolutne
Ponieważ poziom zaufania jest naszym prywatnym wyborem nie jest on kopiowany podczas
eksportu kluczy. Każdy stopień zaufania ma swoją wagę (możemy te wagi zmieniać) na podstawie,
których program wylicza wiarygodność klucza. Twój klucz prywatny ma zawsze status klucza w
pełni zaufanego i nie potrzebuje dodatkowych podpisów od osób trzecich. Z biegiem czasu każdy z
użytkowników zdobywa coraz większą liczbę kluczy publicznych oraz podpisów od innych osób. W
ten sposób klucz publiczny jednej osoby jest podpisany przez wiele osób stając się bardziej
zaufanym kluczem.
Podejście do poziomu zaufania jest zupełnie inne niż w przypadku Privacy Enhanced Mail, gdzie
poziom zaufania ustalają Urzędnicy Certyfikujący pokazując komu masz ufać. W PGP / GPG sam
możesz określać komu ufać a komu nie.
A co z kluczem prywatnym? Przecież to on jest najważniejszym punktem całego systemu a jego
ochrona stanowi podstawowy warunek bezpieczeństwa Twoich danych. Jeżeli zdarzy się, że klucz
prywatny zostanie ujawniony to ostatnią naszą barierą jest posiadanie trudnego hasła, które go
chroni. Ale co zrobić, aby nie doszło do wykradzenia klucza? Dobrym pomysłem jest trzymanie go
na własnym komputerze, do którego my mamy dostęp. Niebezpieczne jest przechowywanie klucza
na zdalnych serwerach lub innych komputerach wielodostępowych. Każdy klucz prywatny powinien
być zabezpieczony silnym hasłem, które trzeba zapamiętać i pod żadnym pozorem nie wolno
zapisywać. Pamiętaj także o robieniu kopii kluczy. W przypadku utraty klucza prywatnego,
wszystkie klucze publiczne stają się nieważne. Bezpieczeństwo zależy wyłącznie od Ciebie.
Szyfrowanie i deszyfrowanie
Głownym celem PGP oraz GPG było szyfrowanie wiadomości, w celu zachowania prywatności.
Domyślnie program będzie starał się skompresować plik lub wiadomość. Dzięki temu kryptogram
staje się mniejszy i trudniejszy do złamania. Szyfrowanie rozpoczynamy poprzez wydanie
polecenia:
pgp -e plik adresat@mail.pl
gpg -e plik -r adresat@mail.pl
W ten sposób zostanie wygenerowany plik z rozszerzeniem .pgp lub .gpg. Będzie to plik binarny,
który możemy przesłać jako załącznik w emailu. Natomiast jeżeli chcemy wysłać taką wiadomość
w postaci ASCII musimy użyć parametru -a.
Oczywiście nic nie stoji na przeszkodzie by dodać większą liczbą adresatów lub za jednym
zamachem podpisać wiadomość korzystając z parametru -s. Jako adresatów naszej wiadomości
możemy podać imiona lub nazwiska. Program sam wyszuka odpowiednich kluczy i zaszyfruje
wiadomość. Nie zawsze jednak nam zależy na szyfrowaniu asymetrycznym.
Przykładowo gdy chcemy zabezpieczyć plik, który nigdzie nie będziemy wysyłać, jednym hasłem,
tak aby osoby niepowołane nie miały do niego dostępu. Oba programy pozwalają nam szyfrować
pliki za pomocą konwencjonalnej kryptografi symetrycznej. Ponieważ szyfrować i deszyfrować
będzie ta sama osoba, użycie kryptografii publicznej nie jest potrzebne i jest niewygodne.
Oczywiście plik tak zaszyfrowany zostanie skompresowany w celu utrudnienia deszyfracji oraz
zmniejszenia objętości samego kryptogramu. Do szyfrowania tą metodą służą polecenia:
pgp -c plik
gpg -c plik
Program spyta Cię o hasło, którym chcesz zaszyfrować plik a następnie wygeneruje plik z
rozszerzeniem .pgp lub .gpg w zależności od tego, z którego programu korzystamy. Oczywiście nic
nie stoji na przeszkodze by zapisać plik w postaci ASCII przy pomocy parametru -a.
Deszyfrowanie jest bardzo proste. Tak naprawdę sprowadza się do wywołania programu z nazwą
pliku, który jest zaszyfrowany.
pgp zaszyftowane.txt.pgp [-o odszyfrowane.txt]
gpg zaszyfrowane.txt.gpg [-o odszyfrowane.txt]
Opcjonalny parametr -o definjuje nam plik, do którego ma być skopiowana rozszyfrowana
wiadomość. Domyślnie program utworzy plik o tej samej nazwie tylko już bez rozszerzenia .pgp
lub .gpg. W przypadku kiedy plik zaszyfrowany będzie posiadał sygnaturę nadawcy zostanie ona
automatycznie sprawdzona po czym ukaże się nam na ekranie pełny identyfikator osoby
podpisującej. Wszystkie czynności te są wykonywane automatycznie.
Program sam domyśla się co ma wykonać, czy będzie to rozszyfrowanie listu, czy sprawdzenie
sygnatury, czy obie rzeczy naraz. Program również sam wyszukuje odpowiednich do tego zadania
kluczy. Jedyne co leży w zadaniu użytkownika to podanie hasła w przypadku konieczności
skorzystania z klucza prywatnego lub w przypadku deszyfrowania pliku, który był szyfrowany
szyfrem symetrycznym.