GPG – szyfrujemy co się da

Od czasu do czasu poruszamy zagadnienia związane z szeroko rozumianym bezpieczeństwem komputerów, ale samo szyfrowanie nieczęsto pojawia się na naszym Blogu – postanowiłem więc przedstawić mój przepis na bezpieczne przesyłanie danych w Internecie. Nie od dziś bowiem wiadomo, że każdy chciałby aby jego poczta, czy też dokumenty, nie były przeglądana przez osoby trzecie. To samo tyczy się przesyłanych dokumentów, danych, zdjęć. Czy możemy to sobie zagwarantować i do tego zupełnie za darmo? Oczywiście! Co więcej można z takiego rozwiązaniach korzystać także w systemach Windows. Mowa tu oczywiście o GPG (GnuPG – Gnu Privacy Guard), z którym w świetle wiadomości docierających do nas z całego świata (#PRISM, #Snowden), warto się zainteresować. Jest to darmowy odpowiednik (darmowy głównie dzięki wsparciu – uwaga paranoicy – rządu niemieckiego) oprogramowania PGP używanego – a to checa! – do szyfrowania poczty elektronicznej.

W sieci można znaleźć wiele (a właściwie nawet wiele więcej 😉 ) materiałów dotyczących teorii i wykorzystania GPG. Wspomnę tutaj choćby o rzetelnym artykule tutaj: http://osworld.pl/pgp-gpg-bezpieczne-szyfrowanie-dla-kazdego/ a także instrukcji jak okiełznać GPG w programie Thunderbird: http://sekurak.pl/szyfrowanie-poczty-w-thunderbird/. Jednak co zrobić, gdy potrzebujemy zaszyfrować plik, lub dokument?

Jak napisano w w/w artykułach potrzebne będą nam dwa narzędzia: gpg4win, oraz gpgshell, do pobrania z: http://www.gpg4win.org/ oraz: http://www.jumaros.de/rsoft/index.html

Wielką zaletą GPG jest jego dostępność na wszelkie znane mi platformy (Windows, Linuks [na pohybel purystom językowym], Mac OS, Android) co wyczerpuje dość mocno zakres platform z których korzystam na co dzień. Oczywiście są subtelne różnice w korzystaniu, ale zasada pozostaje ta sama.

GPG – pierwsze kroki

Po instalacji w systemie Windows, należy przede wszystkim sprawdzić poprawność instalacji (zupełnie nie wiem dlaczego nigdy nie musiałem sprawdzać tego w żadnej z dystrybucji Linuksa ani na Mac OS), aby to zrobić wystarczy wpisać polecenie:

gpg -h

Wynik polecenia powinien przedstawiać się mniej więcej następująco:
gpg version
Sprawdźmy na początku, czy przypadkiem mamy już jakieś klucze z których możemy korzystać (tu warto nadmienić, że w GPG mamy dwa rodzaje kluczy – publiczny i prywatny, i tak jak w przytoczonych wyżej artykułach: klucz publiczny przekazujemy odbiorcy wiadomości, podczas gdy kluczem prywatnym podpisujemy wiadomości lub pliki)
UWAGA: klucze generowane są parami, więc do klucza prywatnego jest przypisany klucz publiczny!

Dostępne klucze sprawdzamy poleceniami:

gpg –k //listuje klucze publiczne
gpg –K //listuje klucze prywatne

Jeśli listy są puste klucze należy oczywiście wygenerować poleceniem:

gpg –gen-key

Całość powinna wyglądać następująco:
gpg - generowanie kluczy

GPG – szyfrujemy pliki

Choć pierwotnym założeniem narzędzia gpg jest szyfrowanie poczty (stąd jako identyfikator wymagany jest adres e-mail), śmiało można to wykorzystać do szyfrowania plików. Załóżmy, że mamy plik tekstowy (to tylko przykład, narzędzia do szyfrowania możemy używać do wszystkich typów plików).
gpg - przed szyfrowaniem
Jak widać plik jest czytelny i bez najmniejszego trudu możemy odczytać jego zawartość. Jeśli chcemy aby był czytelny jedynie dla naszego odbiorcy, musimy go zaszyfrować jego (odbiorcy) kluczem publicznym. Całą operację wykonamy poleceniem:

gpg -e tajny.txt

Narzędzie zapyta nas o odbiorcę/odbiorców naszej zaszyfrowanej wiadomości i „wypluje” plik z rozszerzeniem .gpg. Całość powinna przebiegać następująco:
gpg encrypt file
W wyniku tego w folderze utworzył się plik: tajny.txt.gpg, którego zawartość w chwili obecnej prezentuje się następująco:

Jak widać, czytelność pliku zmalała do absolutnego zera 🙂 Nasz odbiorca aby odczytać wiadomość będzie musiał odszyfrować ją swoim kluczem prywatnym. Jeśli chodzi o odczytywanie małych plików tekstowych, można je odczytywać bezpośrednio w konsoli systemu używając polecenia:

gpg -d tajny.txt.gpg //umożliwia odczytanie bezpośrednio w konsoli
gpg -d tajny.txt.gpg > rozszyfrowany.txt //umożliwia odszyfrowanie pliku i zapisanie go jako: rozszyfrowany.txt

Powinno to prezentować się dla obydwu opcji jakoś tak:
gpg decrypt file
Nasz plik rozszyfrowany.txt znowu jest „human readable” 😉
gpg decrypt_file
Oczywiście jeśli chcemy aby komunikacja mogła być szyfrowana w dwie strony, tzn. zarówno do odbiorcy (który wcześniej przekazał nam swój klucz publiczny) jak i do nas, musimy wyeksportować nasz klucz publiczny do pliku tekstowego. Możemy tego dokonać używając następującej składni:

gpg –armor –export piotr.berent@spece.it > klucz_publiczny.asc

Sam plik wyeksportowanego klucza publicznego powinien być bardzo zbliżony do tego poniżej:
gpg odcisk klucza
Mam nadzieję, że wystarczająco przybliżyłem wam zasadę działania darmowego szyfrowania GnuPG – Gnu Privacy Guard. I dzięki wskazówkom tutaj zawartym przynajmniej raz spróbujecie się pobawić tym sposobem utajniania danych. Gorąco zachęcam was do korzystania z tej formy szyfrowania waszych wiadomości, bo w dzisiejszych czasach nie wiadomo kto czyta i podgląda 🙂 W razie pytań i komentarzy… wiecie co robić.

Piotr Berent

Piotr Berent od 2002 w pocie czoła pracujący w środowisku IT, obecnie freelancer - Inżynier Systemowy. Entuzjasta wirtualizacji, automatyzacji i rozwiązań opartych o narzędzia open-source.

Przeczytaj także...

6 komentarzy

  1. ciekawy_swiata napisał(a):

    A jak zweryfikować w programie Gpg4win podpis??
    Chodzi mniej więcej o to:
    —–BEGIN PGP SIGNED MESSAGE—–
    Hash: SHA256
    Jakiś tam tekst…

    —–BEGIN PGP SIGNATURE—–
    Version: GnuPG v1.4.12 (MingW32)

    dużo literek

    —–END PGP SIGNATURE—–

    Skąd mam mieć pewność, że ten tekst napisała dana osoba?

  2. Anonim napisał(a):

    Bardzo dobry, zwięzły opis, ale jest i pomyłka 🙂
    jest: „Nasz odbiorca aby odczytać wiadomość będzie musiał odszyfrować ją swoim kluczem publicznym.”
    powinno być: „…kluczem prywatnym”

    Pozdrawiam

  3. zbyszek napisał(a):

    polecam do szyfrowania poczty klienta „claws mail”, a do szyfrowania rozmów na gg i jabberze komunikatora „gajim”

  4. artur napisał(a):

    wpisuję komende gpg -gen-key oraz gpg –gen–key <— te dwie formy nie działają, wyskakuje komunikat gpg błędna opcja "-gen-key"

Dodaj komentarz