Podpis nieczytelny

Gdy elektroniczna poczta stała się faktem wszechobecnym, tym samym tradycja listów pisanych odręcznie odchodzi w zapomnienie. W niebyt odchodzi również weryfikowalność nadawcy wiadomości, bo o ile w poczcie tradycyjnej byliśmy w stanie rozpoznać nadawcę po charakterze pisma, sposobie klejenia znaczka, tudzież podpisie odręcznym kwalifikowanym, o tyle w poczcie elektronicznej otrzymujemy na skrzynkę zlepek bajtów, które mógł wysłać nawet i nasz sąsiad spod dwójki, podając się za sąsiadkę spod siódemki. Oczywiście istnieje obecnie sporo mechanizmów, by zapobiec takim prymitywnym fałszerstwom, ale po co przeglądać pełny nagłówek wiadomości, czy dokonywać innych machinacji, skoro list elektroniczny można najzwyczajniej… Podpisać. I nie chodzi bynajmniej o zwykłe doklejenie na końcu wiadomości sygnaturki z ‘Jan Brzęczyszczykiewicz”, lecz o podpisywaniu wiadomości za pomocą klucza osobistego PGP.

Na temat kluczy PGP wylano już morze znaków (*), ale rzadko kiedy podawane są informacje jak wykorzystać je w praktyce. Tzn. informacje może i są podawane, ale w niestrawnym dla większości użytkowników formacie komend tekstowych. A przecież mamy pod Linuksem doskonałe narzędzia pozwalające cieszyć się pełnym urokiem szyfrowania/podpisywania za pomocą kluczy. Za przykład praktyczny posłuży nam domyślnie instalowany w Ubuntu program Seahorse, oraz dowolny klient poczty (Thunderbird, Claws Mail, Sylpheed, Evolution). Dodać też należy, że dla Linuksa odpowiednikiem PGP jest otwarto-źródłowy GPG.

Na czym to wszystko polega. Zasady postępowania są proste:

– tworzymy parę kluczy (klucz publiczny i klucz prywatny),
– udostępniamy klucz publiczny szerokiemu gronu znajomych (serwery kluczy publicznych),
– program pocztowy ustawiamy tak, aby domyślnie podpisywał/szyfrował każdą naszą wiadomość za pomocą klucza prywatnego,
– klient pocztowy odbiorcy odbierając wiadomość zdeszyfruje nasz podpis za pomocą udostępnionego klucza publicznego

Całość operacji sprowadza się do paru kliknięć. Na sam początek otwieramy programy Seahorse (dla użytkowników KDE będzie to program Kgpg). Interesuje nas przede wszystkim zakładka Klucze Osobiste.

Piękno prostoty, Seahorse

Tworzymy swój klucz PGP (Pliki->Nowy->Klucz PGP). Będziemy musieli podać swoje imię i nazwisko (dobry zwyczaj), adres email (najlepiej jest stworzyć klucze dla każdej swojej skrzynki pocztowej) oraz ewentualny komentarz. W rozwijanym podmenu ‘Zaawansowane opcje klucza’ w zasadzie nie musimy nic ruszać – wystarczy upewnić się, że długość klucza to 2048 bity, ustawić okres po którym klucz wygaśnie. Gotowe. Tzn. za parę chwil, gdyż generowanie klucza może potrwać – dobrze jest w tym czasie robić coś na komputerze, gdyż jest to pożywka danych losowych dla procesu.

Następnym krokiem jest umieszczenie wygenerowane klucza publicznego na jakimś serwerze. Bez obaw, Seahorse zrobi to za nas. Na początek musimy jednak wybrać serwer, na którym będziemy chcieli umieść klucz (serwery wymieniają się informacjami między sobą, więc wystarczy, że podamy nasz klucz tylko jednemu z nich). W ‘Edycja->Preferencje->Publikowanie kluczy na’ wybieramy serwer. Kolejny ruch to ‘Zdalne->Zsynchronizuj i opublikuj klucze’. I to wszystko. Mamy swoje klucze i bez obaw możemy ich użyć.

Jedno z zadań do którego wykorzystamy rzeczone klucze, to podpis pod naszą korespondencją. Odpalamy klienta poczty i w zależności od program, znajdujemy w opcjach fragment dotyczący prywatności i szyfrowania/podpisywania wiadomości kluczem PGP.

Preferencje konta, Sylpheed

Najbardziej nas interesująca funkcja, to ‘PGP sign message by default’ (w innych programach będzie to stało po polsku, jak też może mieć inne brzmienie). Znaczy to ni mniej, ni więcej, jak dołączanie do wiadomości załącznika z naszym podpisem (chyba, że wybierzemy wstawianie podpisu wprost do wiadomości). Program odbiorcy sprawdzi autentyczność tego podpisu za pomocą naszego klucza publicznego. W ten sposób udowodnimy drugiej stronie, że my to naprawdę my.

Szyfrowanie całej wiadomości oznacza, że zakodujemy wiadomość kluczem publicznym odbiorcy. Brzmi skomplikowanie? Niekoniecznie, program Seahorse umożliwia przeszukiwanie baz kluczy publicznych – znajdujemy naszego odbiorcę, importujemy jego klucz, następnie przy wysyłaniu wiadomości wskazujemy, że ma ona być zaszyfrowana właśnie tym kluczem. Seahorse ma oczywiście kilka innych funkcji które dociekliwi sami sobie sprawdzą. Posiadanie kluczy umożliwia również szyfrowanie np. treści katalogów na dysku (Nautilus), dlatego jest to nie lada gratka dla osób dla spokoju sumienia wyznających spiskową teorię dziejów.

I tak oto w kilku prostych krokach ominęliśmy całe stosy dokumentacji i tony opcji używanych przy tekstowym generowanie kluczy PGP. A jak profesjonalnie będzie nasza poczta wyglądała. Co natomiast z naszymi kluczami, gdy zmieniamy komputer/system? Można jest skopiować i zaimportować w nowe miejsce. Kopiowanie wykonujemy przez archiwizację katalogu ~/.gnugp lub eksport klucza z programu Seahorse. Kopie trzymamy w Tajnym Miejscu i w odpowiednim momencie wykorzystujemy.

Czy ten sposób opieczętowywania listów elektronicznych niesie ze sobą jakieś zagrożenia? W zasadzie jedyny zgrzyt jaki do tej pory miałem z podpisami, to zwrócona kilka razy wiadomość z dopiskiem ‘Nie będziemy otwierali zawirusowanych załączników!’. Wiadomość pochodziła z klienta pocztowego wiadomej firmy i wiadomego systemu. Drugi mankament to systemy poczty via WWW. Co najmniej Gmail.com nie potrafi zrobić nic sensownego z załącznikiem zawierającym podpis.

Przy tym wszystkim nie należy powyższego traktować jako wywodu wyczerpującego temat szyfrowania w Linuksie – dla dociekliwych poniżej przedstawiam dokładniejsze przybliżenie tej tematyki. Ja podszedłem do sprawy od strony praktycznej.

* Literatura naukowa:

http://newbie.linux.pl/?id=article&show=317
http://porady-it.org/index.php/linux/jak-uzywac-bezpiecznego-szyfrowania-pgp-gpg-w-linuksie.html
http://www.gentoo.org/doc/pl/gnupg-user.xml
http://pl.wikibooks.org/wiki/GnuPG/Zarz%C4%85dzanie_kluczami
http://czytelnia.ubuntu.pl/index.php/2007/04/03/gnupg-straznik-prywatnosci/