GnuPG, czyli zabawa kluczami i szyfrowaniem

Ostatnio mój znajomy miał problem z używaniem gpg pod Linuxem. Oto co znalazłem w Sieci na ten temat…

Ciekawe zajęcia praktyczne z AGH, a poniżej howto.

GnuPG – howto
2005.12.25
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

1. WSTĘP

Za nic nie odpowiadam…
Autor: Rutecki Maciej <maciejrutecki(przy serwerze).poczta.onet.pl>

==================================

2. GENERACJA KLUCZY

– uruchom: gpg –gen-key
– postępuj zgodnie z poleceniami

Zalecana para kluczy DSA >=1024 bitowych o określonej ważności.
Powstaną dwa klucze: publiczny: "pubring.gpg" oraz prywatny "secring.gpg", tego ostatniego nikomu nie udostępniaj. Zrób ich kopie.
Kopię klucza publicznego możesz przekazywać znajomym.

==================================
3. DODAWANIE KLUCZY PUBLICZNYCH

Pamiętaj, że po tej operacji nastąpi zmodyfikowanie pliku "~/.gnupg/pubring.gpg", który zawiera Twój klucz publiczny. Zatem przed dodaniem osoby zrób kopię pliku.

– stwórz  katalog, w którym będziesz przechowywał cudze klucze publiczne (dla bezpieczeństwa swój też – "gumis.gpg" z punktu 
– wykonaj polecenie: gpg –import johny_killer.gpg
gdzie: "johny_killer.gpg" – klucz zaimportowany

==================================
4. SPRAWDZANIE LISTY KLUCZY PUBLICZNYCH

– polecenie: gpg –list-keys
lub: gpg –list-public-keys

==================================
5. USUWANIE KLUCZY PUBLICZNYCH

– polecenie gpg –delete-keys identyfikator_klucza

==================================
6. PODPISYWANIE DOKUMENTU Z UMIESZCZENIEM PODPISU W OSOBNYM PLIKU

Plik podpisujemy własnym kluczem prywatnym, a adresat weryfikuje go za pomocą naszego klucza publicznego. Podpis daje gwarancję, że plik nie został zmodyfikowany, ale nie zabezpiecza jego zawartości przed "obcym".

Załóżmy, że podpisujemy plik "wiadomosc.txt".
polecenie: gpg –detach-sign wiadomosc.txt
Powstanie plik "wiadomosc.txt.sig", jest to podpis. Wszelkie modyfikacje pliku "wiadomosc.txt" unieważnia podpis. Przesyłamy obydwa pliki.
Adresat sprawdza podpis (musi być w tym samym katalogu co "wiadomosc.txt") poleceniem:
gpg –verify wiadomosc.txt.sig
Oczywiście nasz klucz publiczny musi być dodany przez adresata poleceniem "–import".

==================================
7. SZYFROWANIE DOKUMENTÓW

Dokumenty szyfrujemy za pomocą klucza publicznego adresata, a adresat deszyfruje go za pomocą własnego klucza prywatnego

Załóżmy, że szyfrujemy plik "wiadomosc.txt".
Wydajemy polecenie:
gpg –encrypt-files wiadomosc.txt
Powstanie plik "wiadomosc.txt.gpg" (bądź "wiadomosc.gpg") i tylko ten wysyłamy do adresata.
Adresat wydaje polecenie:
gpg –decrypt-files wiadomosc.txt.gpg
Po czym odzyskuje dane.

==================================
8. EKSPORTOWANIE DOWOLNEGO KLUCZA PUBLICZNEGO DO PLIKU

Załóżmy, że eksportujemy własny podpis publiczny do pliku w celu przekazania go innej osobie.
Nasz identyfikator to "jasio", a eksportujemy do pliku "gumis.gpg".

gpg –export -o gumis.gpg jasio

==================================
9. WYŚWIETLENIE LISTY KLUCZY PRYWATNYCH

– polecenie: gpg –list-secret-keys

==================================
10. SZYFROWANIE KATALOGÓW

Tworzymy zaszyfrowany plik *tar.gpg zawierający katalog o nazwie "nazwa_katalogu":

tar cf – nazwa_katalogu | gpg -e > plik.tar.gpg

Aby zaszyfrować każdy plik osobno:

find nazwa_katalogu -type f exec gpg -e '{}' ;