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/
 

10 komentarzy

  1. Hmm a jak to jest z wysłaną zaszyfrowaną wiadomością do osoby która nie ma zielonego pojęcia o szyfrowaniu wiadomości? Odczyta ją, nie odczyta, czy inaczej?

    ps. Wybaczcie newbie pytanie ale pgp do emaili nie miałem okazji używać 🙂

  2. @Pakos

    Jeżeli zaszyfrujesz komuś wiadomość wg. jego klucza publicznego, to raczej ta osoba ma jakieś pojęcie o szyfrowaniu, skoro taki klucz udostępniła. Aby taką wiadomość otworzyć, będzie ta osoba musiała:

    – znać hasło do swojego klucza,
    – mieć klucz prywatny w bazie (~/.gnugp)

    Bez tego nie odczyta. Oczywiście to się tyczy tylko szyfrowania, podpisana wiadomość będzie zawsze odczytywalna, co najwyżej pojawi się dopisek, że podpis jest zły, albo niezaufany, czy coś w ten deseń.

  3. Czyli źle zrozumiałem, podpisuje swoim kluczem a szyfruje kluczem osoby do której piszę?

    Jeszcze jedno pytanie odnośnie własnego klucza, export zapisuje go jakos nazwa.asc, to wystarczy do dalszego używania go po reinstalacji systemu (bo w środku pisze public key) i nie wiem czy dobrze robię 🙂

  4. @pakos:
    szyfrujesz para kluczy (twoj prywatny+jej publiczny).
    podpisujesz tylko swoim (na poczatku ikoncu wiadomosci bedzie cos w stylu —GPG SIGNED MESSAGE— a na koncu suma kontrolna)

  5. podpisuje swoim publicznym tak? to ten który wyexportowałem przez seahorse? a gdzie znajdę swój prywatny (abym mógł go gdzieś ukryć bo jak rozumiem ten jest potrzebny w razie reinstalacji)?

  6. Dla tych co zaczynają lub chcieli by zacząć. Nie wiem jak w innych dystrybucjach, w Ubuntu Seahorse jest ukryte pod nazwą Hasła i klucze szyfrujące w Akcesoriach.
    I tutaj ostrzeżenie jak wspomniałem dla zaczynających.

    Ostrożnie z eksportem klucza w celu stworzenia jego kopii zapasowej.
    Można się nabrać, zwłaszcza gdy po zainstalowaniu seahorse-plugins zaszyfrowaliśmy na dysku jakieś istotne dane w sposób niezwykle wygodny klikając na dokument PPM i wybierając opcję Zaszyfruj…. (Nautilus)

    Po uruchomieniu Seahorse i kliknięciu PPM na wybranym kluczu pojawi się opcja Wyeksportuj…. I Seahorse wyeksportuje, ale tylko klucz publiczny. Tak więc jeżeli skasujemy tenże, to nie uda się odszyfrować danych i listów zaszyfrowanych tym kluczem, tych które już przeczytaliśmy i tych które odbierzemy w przyszłości.

    Przy tworzeniu kopii zapasowej klucza koniecznie trzeba wybrać zamiast Wyeksportuj… opcję:
    Osobiste klucze, klik prawy przycisk myszy na wybranym kluczu i
    Właściwości =>Szczegóły => Wyeksportuj -obok napisu Eksport całego klucza.
    Szkoda, że przy pierwszej “bezpośredniej” możliwości eksportowania brak napisu, że chodzi tylko o eksport klucza publicznego.

    Znacznie lepiej rozwiązano ten problem w OpenPGP (Enigmail dodatek dla Thunderbird’a) przy zarządzaniu kluczami. Pod PPM jest opcja eksportu i tu jednoznacznie można zdecydować czy do zbioru dołączyć klucz prywatny. A Thunderbird 3.1.2 jest rewelacyjny.

    Pozdrawiam

  7. Ostatnie pytanie, po wygaśnięciu trzeba wykonać jakieś konkretne procedury (powiedzmy że dałem sobie na 2 lata)? Czy tworzenie kolejnego certyfikatu po wygaśnięciu?

  8. Dokładnie. Możesz wygenerować sobie certyfikat ważny przez 999 lat – wtedy raczej nie trzeba powtarzać manewru z powtórnym jego generowaniem 🙂

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Post comment

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.