pgp poradnik.doc

(143 KB) Pobierz

Szyfrowanie poczty pod Windows - OpenPGP/GPG

5 marca 2007

Paweł Krawczyk

Przedstawiamy krótki poradnik pozwalający na szybkie uruchomienie szyfrowanej poczty pod dwoma najpopularniejszymi aplikacjami pocztowymi.


Niedawno, podczas przygotowania instalacji serwera z kilkoma znajomymi, doszliśmy do momentu, w którym należało wymienić się hasłem roota i paroma innymi informacjami, które muszą być przesłane w sposób względnie bezpieczny. Przygotowałem więc krótki poradnik pozwalający na szybkie uruchomienie szyfrowanej poczty pod dwoma najpopularniejszymi aplikacjami pocztowymi.
Standard OpenPGP jest kontynuacją programu PGP, udostępnionego po raz pierwszy w 1991 roku, który zrewolucjonizował światową informatykę dając każdemu użytkownikowi sieci dostęp do nowoczesnych technologii kryptograficznych w przyjaznym i łatwym do użycia opakowaniu.

Można sobie zadać pytanie - czy OpenPGP ma rację bytu dzisiaj, gdy wiele mówi się o certyfikatach kwalifikowanych i elektronicznych deklaracjach? Z praktyki wynika, że zdecydowanie tak - pozycja OpenPGP nie jest zagrożona dopóki przy jego pomocy można wdrożyć szyfrowanie poczty praktycznie natychmiast, bez żadnych nakładów finansowych i czasochłonnych kontaktów z poważnymi instytucjami.
Podstawy OpenPGP

W systemie OpenPGP każdy użytkownik ma dwa klucze: prywatny i publiczny:

·       Klucz prywatny przechowujemy bezpiecznie i dodatkowo chronimy przed niepowołanym użyciem za pomocą hasła.

·       Klucz publiczny udostępniamy wszystkim swoim znajomym, można go też umieścić na jednym z publicznych serwerów kluczy.
Ktoś kto ma nasz klucz publiczny może wysyłać do nas zaszyfrowaną OpenPGP pocztę i pliki oraz weryfikować pocztę lub pliki przez nas podpisane.

Instalacja GPG pod Windows

Pakiet GPG4Windows zawiera komplet narzędzi potrzebnych do szyfrowania i podpisywania poczty elektronicznej oraz plików w formacie OpenPGP. Poniżej opisana jest procedura instalacji programów oraz generowania pary kluczy.

  1. Ze strony www.gpg4win.org/ pobieramy instalator i instalujemy program z domyślnymi ustawieniami. W komplecie dostaniemy:

 

  1. WinPT (Windows Privacy Tray) - aplikację umożliwiającą kontekstowe (po kliknięciu na pliku prawym przyciskiem myszy) szyfrowanie i podpisywanie kluczy, a także zarządzanie bazą kluczy oraz ich generowanie.
  2. GPG (GNU Privacy Guard) - darmowa, otwarta implementacja OpenPGP w postaci programu działającego w linii komend.
  3. GPA (GNU Privacy Assistant) - alternatywna aplikacja do zarządzania bazą kluczy OpenPGP i ich generowanie (uboższa w funkcje od WinPT).
  4. GPGol - wtyczka GPG do programu MS Outlook (nie Outlook Express),
  5. GPGee - rozszerzenia GPG do Windows Explorera (pozwalające np. szyfrować pliki prawym przyciskiem myszy).

 

 

 

 

 

 

 

  1. Uruchamiamy WinPT (Start->Wszystkie programy->GnuPG for Windows->WinPT). Przy pierwszym uruchomieniu program proponuje nam wygenerowanie pary kluczy.

 

  1. Podajemy swoje imię i nazwisko, które będzie umieszczone w kluczu. Nie należy używać polskich liter.
  2. Podajemy swój adres email. Bardzo praktyczną zaletą OpenPGP jest to, że do klucza można dodać wiele adresów email, dzięki czemu jednym kluczem możemy obsłużyć wiele kont.
  3. Zaznaczamy opcję "Prefer RSA keys".
  4. Podajemy hasło, które będzie chronić nasz klucz prywatny. W charakterze hasła można używać całych zdań, np. fragmentów prozy lub poezji, które są trudne do zgadnięcia ale łatwe do zapamiętania (nie używamy polskich liter). Hasła można nie podawać w ogóle, jednak wtedy każdy komu uda się skopiować (ukraść) nasz klucz prywatny będzie mógł czytać przeznaczone dla nas zaszyfrowane wiadomości i składać w naszym imieniu fałszywe podpisy cyfrowe.

 

 

 

 

 

 

  1. Klucz jest generowany, co może potrwać na współczesnym sprzęcie do minuty.
  2. Program pyta o wygenerowanie zapasowej kopii kluczy. W przypadku utraty klucza OpenPGP nie ma tragedii, bo po prostu generujemy nowy i wysyłamy znajomym ponownie. Jeśli jednak ich grono jest duże lub publikujemy nasz klucz na serwerze, to warto pilnować by nie zmieniać klucza za często - w praktyce duża liczba kluczy jednej osoby powoduje u nadawcy konfuzję, bo nie ma on pewności, który jest obecnie aktualny.

 

  1. W programie WinPT możemy podejrzeć nasz klucz - na razie jedyny w bazie kluczy. W miarę korzystania z OpenPGP nasza baza kluczy będzie rosnąć.

Po wygenerowaniu klucz pojawia się w okienku programu WinPT, gdzie możemy wprowadzić do niego następujące zmiany (każda z nich wymaga podania hasła):

·       dodać nowe adresy email: klikamy na kluczu prawym przyciskiem myszy, wybieramy Add i UserID i podajemy nowe imię, nazwisko, adres email i opcjonalny komentarz (pokaże się w nazwie klucza),

 

 

 

 

 

 

·      

·       dodać swoje zdjęcie (Add->PhotoID); zdjęcie powinno być w formacie JPEG; zalecane wymiary to 240x288 pikseli; warto jednak pamiętać że dodanie zdjęcia zwiększy rozmiar klucza; standardowy to ok. 1 KB, obniżając jakość JPEG do ok. 50% można osiągnąć jego rozmiar rzędu kilku kilobajtów;


Kompletną listę adresów emailowych w dowolnym kluczu można podejrzeć z poziomu WinPT klikając na klucz prawym przyciskiem i wybierając "List Signatures". Zdjęcie można podejrzeć wybierając Properties.

 

 

 

 

 

 


Po zainstalowaniu GPG4Win baza kluczy będzie przechowywana w katalogu "C:\Documents and Settings\Administrator\Dane aplikacji\gnupg" (lub "C:\Documents and Settings\Administrator\Application Data\gnupg"). Jeśli robimy backup, to warto objąć nim i ten katalog. Binaria programów będą zainstalowane w katalogu "C:\Program Files\GNU\GnuPG" - niektóre aplikacje mogą prosić o podanie tej ścieżki.
Instalacja GPG w Thunderbirdzie

Korzystanie z GPG w popularnym programie pocztowym Thunderbird jest dziecinnie proste dzięki rozszerzeniu Enigmail. Moduł ten zapewnia praktycznie transparentną obsługę zaszyfrowanych wiadomości, włącznie z importem kluczy z otrzymywanych listów i zarządzaniem nimi.

·       Ze strony www.mozilla-europe.org/pl/products/thunderbird/ pobieramy instalator Thunderbirda i instalujemy program. Konfigurujemy konto do ściągania i wysyłania poczty.

·       Ze strony enigmail.mozdev.org/ pobieramy aktualną wersję rozszerzenia Enigmail dla programu Thunderbird. Rozszerzenie, w przeciwieństwie do Firefoxa, nie instaluje się automatycznie - należy pobrać plik XPI i zapisać go na dysk (plik "enigmail-0.94.2-tb15-win+lin+mac.xpi" lub podobnie).

 

 

 

 

 

 

·       Z menu Thunderbirda wybieramy Narzędzia->Rozszerzenia.

·       Wybieramy przycisk Instaluj. Wskazujemy ścieżkę do zapisanego pliku XPI.

 

 

 

 

 

 

·       Czekamy kilka sekund i wciskamy Zainstaluj teraz. Okno rozszerzeń powinno wyglądać tak jak poniżej. Restartujemy program.

·       Po ponownym uruchomieniu w programie pojawi się nowa pozycja w menu - OpenPGP. Jest to menu dodane przez rozszerzenie Enigmail.

 

 

 

 

 

 

·       W menu OpenPGP wybieramy Preferences i w polu "GnuPG Executable Path" wpisujemy "C:\Program Files\GNU\GnuPG\gpg.exe". Jest to ścieżka do głównego programu GPG.

W tym momencie Enigmail jest gotowy do użytku. Od razu możemy zacząć wysyłać pocztę podpisaną cyfrowo:

  1. Tworzymy nowy email (Napisz), podając temat i adres odbiorcy.

 

 

 

 

 

  1. Z ikony OpenPGP rozwijamy menu, w którym wybieramy "Sign Message" oraz "Use PGP/MIME for this message".

 

 

 

 

 

  1. Gdy za pierwszym razem program poprosi nas jeszcze o włączenie obsługi OpenPGP, wystarczy że zaznaczymy "Enable OpenPGP support (Enigmail) for this identity" i klikniemy OK.


Aby móc wysłać zaszyfrowany list do kogoś innego musimy mieć jego klucz publiczny. I w drugą stronę, ta osoba musi mieć nasz klucz by wysłać do nas zaszyfrowaną pocztę. Na początku musimy więc wymienić się kluczami:

 

 

 

 

 

 

  1. W Thunderbirdzie tworzymy nowy email (Napisz). Podajemy adres nadawcy w polu Do, temat, a następnie z górnego menu OpenPGP wybieramy "Attach My Public Key". Do maila zostanie dołączony nasz klucz publiczny.
  2. W analogiczny sposób odbiorca wysyła nam swój klucz publiczny. Po tej operacji w ikonie OpenPGP możemy zaznaczyć opcję "Encrypt".
  3. Z opcji PGP/MIME należy korzystać zawsze wtedy gdy wysyłamy pocztę w formacie HTML. Ma ona tę wadę, że nie rozumieją jej bardzo stare programy korzystające z PGP - dlatego można ją włączać lub wyłączać dla każdego maila oddzielnie.



OpenPGP w Outlook Express

Obsługa OpenPGP w programie Outlook Express jest realizowana za pomocą aplikacji GPGoe, dostępnej do pobrania pod adresem wald.intevation.org/projects/gpgoe . Aplikacja jest bardzo prosta w instalacji - na leży go rozpakować i uruchomić program "GPGOEInit.exe". Aplikacja instaluje się w pasku stanu Windows i nie wymaga żadnej dodatkowej konfiguracji po stronie Outlook Express.
Podczas tworzenia nowego maila w OE należy zaznaczyć flagi Szyfruj i/lub "Podpisz cyfrowo" w menu Narzędzia. Normalnie aktywują one mechanizmy S/MIME wykorzystujące certyfikaty X.509, ale przy włączonym programie GPGoe będą korzystać z kluczy OpenPGP. Oczywiście OpenPGP musi być wcześniej zainstalowane zgodnie z opisaną wyżej procedurą.

Jeszcze o zaufaniu w OpenPGP

Jednym z podstawowych problemów w kryptografii jest problem autentyczności klucza - skąd mamy mieć pewność, czy otrzymaliśmy mailem prawdziwy, a nie podrobiony klucz?

W OpenPGP nie ma żadnej centralnej instytucji weryfikującej tożsamość właściciela klucza (jak w X.509). W OpenPGP funkcjonuje za to mechanizm podpisywania klucza przez naszych znajomych czy współpracowników. Poniżej widać klucz mojego kolegi z moim podpisem (i jego własnym):

Tym podpisem daję innym komunikat: "tak, znam tego Adama, i wiem na pewno że ten klucz należy właśnie do niego". Każdy klucz może mieć dowolną ilość takich podpisów. Z kolei klucze tych, którzy go podpisali też mają podpisy od jeszcze innych osób.

W ten sposób, przypominający nieco "sieci społeczne" znane np. z serwisów w stylu LinkedIn tworzy się "sieć zaufania" (web of trust), pozwalająca na stwierdzenie autentyczności klucza przez łańcuszek kluczy bardziej lub mniej znajomych nam osób.

Cudzy klucz możemy podpisać w WinPT klikając na nim prawym przyciskiem myszy i wybierając opcję Sign. Musimy podać hasło do swojego klucza prywatnego, bo to nim podpisujemy cudzy klucz. Domyślnie zaznaczona opcja "Sign local only" spowoduje, że podpis będzie miał znaczenie tylko dla naszej lokalnej bazy kluczy - spowoduje, że ten klucz będzie zaufany.
Jeśli odznaczymy opcję "Sign local only" podczas podpisywania to taki klucz możemy potem wysłać na serwer lub bezpośrednio do właściciela mailem - nasz podpis będzie widoczny dla wszystkich, którzy zaimportują ten klucz po nas.

Wielu autorów oprogramowania open-source podpisuje opublikowane przez siebie archiwa z kodem źródłowym przy pomocy OpenPGP. W takim przypadku warto udostępnić swój klucz jak najszerszemu gronu odbiorców -opublikować na stronie WWW i wysłać na publiczne serwery kluczy. Serwerów takich jest na świecie kilkadziesiąt i synchronizują one między sobą nowododane klucze.
Z poziomu WinPT klucze można wyeksportować na domyślny serwer subkeys.pgp.net/ klikając na kluczu prawym przyciskiem myszy i wybierając "Sent to Keyserver" i wybierając adres serwera. Dodany klucz pojawi się na wszystkich serwerach sieci pgp.net w ciągu około doby. Formularz do "ręcznego" wyszukiwania, importowania i eksportowania kluczy można znaleźć pod adresem www.pgp.net/ .
Drugi katalog na który warto wysłać klucz to PGP Global Directory ( https://keyserver.pgp.com/ ). Nie jest on zsynchronizowany z siecią pgp.net. Serwer ten dodatkowo prowadzi usługę automatycznego podpisywania kluczy po zweryfikowaniu poprawności adresu email przypisanego do klucza. Aby wysłać klucz na serwer PGP musimy najpierw wyeksportować go do pliku:

  1. w WinPT klikamy na klucz
  2. z menu na górze wybieramy Key->Export, wybieramy nazwę pliku do którego klucz zostanie wyeksportowany

 

 

 

 

 

 

  1. gotowy plik (.ASC) podajemy w formularzu na stronie PGP Global Directory

 

 

 

 

 

 

  1. serwer kluczy wyśle email na podany w kluczu adres (lub adresy), by zweryfikować jego poprawność - klucz zostanie dodany do bazy dopiero po kliknięciu na podany w mailu link



Dodatkowo serwer odeśle nasz klucz podpisany swoim kluczem; plik ten importujemy do WinPT, dodając w ten sposób kolejny podpis do naszego klucza. Przy kolejnym eksporcie nasz klucz zostanie zapisany z tym nowym podpisem. W ten sam sposób możemy dodawać do naszego klucza podpisy złożone przez znajomych.

...
Zgłoś jeśli naruszono regulamin