GPG – asymetryczne szyfrowanie

Szyfrowanie asymetryczne działa z wykorzystaniem klucza publicznego i prywatnego. Kluczem prywatnym możemy odszyfrować lub podpisać pliki, natomiast kluczem publicznym możemy zaszyfrować pliki dla odbiorcy lub zweryfikować sygnaturę podpisu. Dodatkowo na klucz prywatny może być nałożony passphrase, czyli hasło wymagane do jego użycia.

W tym artykule będziemy bazować na systemie operacyjnym Windows i opowiem, w jaki sposób można szyfrować, podpisywać i deszyfrować pliki. Opowiem też, w jaki sposób można weryfikować sygnaturę podpisu.

Spis treści

Pobieranie i instalacja programu

W celu pobrania aplikacji przewidzianej dla Windowsa trzeba udać się na tę stronę. Musimy oczywiście kliknąć, że chcemy pobrać program dla naszego systemu.

Powinno nam się ukazać okienko takie jak poniżej z informacją, czy chcemy przelać darowiznę na wsparcie tego oprogramowania.

Zaznaczając opcję “$0” możemy bez opłat pobrać program. Pobieramy i uruchamiamy pobrany plik. Powinno nam się ukazać okno, jak poniżej.

Wybieramy język, w którym chcemy posiadać nasz interfejs użytkownika, a następnie klikamy OK.

Powinno nam się ukazać takie okno, jak powyżej. Klikamy Next >.

Następnie wybieramy komponenty, których potrzebujemy. GnuPG (szyfrowanie, deszyfrowanie, itp.), Kleopatra(graficzny interfejs użytkownika) oraz GpgEX(na przykład możliwość używania komend w wierszu poleceń Windowsa) w zupełności wystarczą nam w celach, jakie przewiduję ten poradnik. Po wybraniu pasujących nam opcji klikamy Next >.

Teraz musimy wybrać ścieżkę zapisu, a dokładnie gdzie program ma się zainstalować. Postanowiłem, że na potrzeby tego poradnika, zainstaluję Gpg4win na pulpicie w katalogu GPG. Jednak w wersjach produkcyjnych, czyli takich, które nie są do celów testowych, nie zalecam instalacji na pulpicie. Po wybraniu ścieżki instalacji lub pozostawieniu domyślnej klikamy Install.

Kiedy instalacja zakończy się, zobaczymy takie okno, jak powyżej. Klikamy Next >.

Nie musimy zapoznawać się z plikiem README, jednak jest to zalecane. Tą decyzję pozostawiam Wam. Jeśli chcesz przeczytać plik README zaznacz checkboxa obok i naciśnij FINISH.

*Jeśli nie chcesz uruchamiać programu od razu, to odznacz “Run Kleopatra”.

Do pełnego wykorzystania programu musimy stworzyć jeszcze specjalną parę kluczy dla nas. Będzie to klucz prywatny i publiczny. Kluczem publicznym możemy dzielić się ze znajomymi, współpracownikami, i innymi osobami. Klucz prywatny jest przewidziany tylko dla nas.

Kluczem publicznym możemy szyfrować pliki dla osoby, która posiada klucz prywatny oraz możemy zweryfikować podpis, czyli potwierdzić czy dany plik faktycznie pochodził od tego wysyłającego. (Działa, jeśli do pliku/wiadomości zostanie dołączony podpis).

Kluczem prywatnym natomiast możemy podpisać plik i dzięki temu zapewnić odbiorcę, że plik, który pochodzi od nas, jest na pewno od nas i nie został zmieniony w trakcie wysyłki/dostarczania do odbiorcy. Kluczem prywatnym możemy też odszyfrować pliki, które zostały zaszyfrowane dla nas kluczem publicznym. Kluczem prywatnym nie powinniśmy się z nikim dzielić!

W celu stworzenia naszej pary kluczy (publicznego i prywatnego) przejdź kroki jak na zdjęciu poniżej.

Plik -> Nowa para kluczy…

Utwórz parę osobistych kluczy OpenPGP.

Tutaj możemy podać nasze imię i nazwisko w miejscu na nazwę oraz adres e-mail również w dedykowanym miejscu. Dodatkowo na nasz klucz prywatny możemy dodać hasło, dzięki temu, jeśli nawet ktoś go przechwyci, będzie musiał znać hasło, by go użyć. Przed kliknięciem przycisku Utwórz przejdź do ustawień rozszerzonych.

Możemy tutaj ustawić długość naszego klucza w bitach, algorytm, możliwości naszego klucza oraz datę ważności klucza. Do celów tego poradnika nie będę zaznaczał uwierzytelnienia jako jednego z przeznaczeń mojego certyfikatu i przejdę dalej z ustawieniami, jakimi widać na zdjęciu powyżej. W celu zapisania wprowadzonych tu zmian klikamy OK i utwórz.

Jeśli zaznaczyliśmy checkboxa podczas konfigurowania naszej pary klucza publicznego i prywatnego to musimy podać hasło, które będzie służyło np. do odszyfrowania dokumentów. Hasło należy potwierdzić, wpisując je jeszcze raz w miejscu oznaczonym etykietą “Powtórzenie”.

Jeśli wszystko przebiegnie pomyślnie naszym oczom pojawi się o to takie okno, jak powyżej. Klikamy zakończ i w liście dostępnych kluczy widzimy już naszą parę kluczy.

Szyfrowanie

W celu zaszyfrowania plików musimy sobie przygotować jakiś plik. Ja do tego celu przygotowałem prosty dokument tekstowy.

Będziemy szyfrować plik razem z opcją podpisywania dzięki czemu odbiorca będzie mógł zweryfikować, czy plik pochodził od nas.

Teraz, gdy mamy już nasz plik klikamy prawym przyciskiem myszy > Podpisz i zaszyfruj.

Powinno pojawić się takie okno jak poniżej.

W opcji Zaszyfruj dla innych moglibyśmy dodać jakieś inne osoby, a dokładnie oznaczyć ich klucze publiczne. Jednak w tym przykładzie adresatem będę ja sam, czyli osoba, która ten plik zaszyfrowała.

Po wybraniu adresatów klikamy Podpisz / zaszyfruj i podajemy hasło (jeśli takowe ustawiliśmy). Po wszystkim na pulpicie (lub w innej lokalizacji, jeśli ścieżka wynikowa była inna) powinniśmy mieć zaszyfrowany plik z rozszerzeniem .gpg.

Poniżej podobny przykład szyfrowania:

Deszyfrowanie

Jeśli chcemy deszyfrować plik, musimy kliknąć na niego prawym przyciskiem myszy > Deszyfruj i zweryfikuj. Potem, jeśli podpis jest prawidłowy to możemy zachować plik naciskając zachowaj wszystko.

Tworzenie podpisu

Jeśli chcemy utworzyć podpis do pliku, to musimy kliknąć prawym przyciskiem myszy na plik, do którego chcemy wygenerować podpis > Więcej opcji GpgEX > Podpisz.

Wybieramy certyfikat, za pomocą jakiego chcemy stworzyć podpis i klikamy przycisk podpisz.

Jeśli na nasz klucz prywatny mamy nałożone hasło to musimy je teraz podać.

Klikamy zakończ i w miejscu, gdzie mieliśmy nasz plik (jeśli ścieżka z podpisem nie została zmieniona w trakcie tworzenia podpisu) mamy też nasz podpis z rozszerzeniem .sig.

Weryfikacja podpisu

W celu zweryfikowania, czy dany plik pochodził faktycznie od danego wysyłającego, możemy zweryfikować podpis. Klikamy na plik, który nie jest podpisem, następnie klikamy prawym przyciskiem myszy > Więcej opcji GpgEX > Weryfikuj.

Eksportowanie klucza publicznego

Eksportowanie klucza publicznego jest konieczne, jeśli chcemy, by ktoś mógł szyfrować dla nas dane i weryfikować podpisy, które złożyliśmy.

Plik ten zapisujemy i możemy wysłać znajomemu.

Eksportowanie klucza prywatnego

Uwaga! Ten klucz powinien zostać tylko w obrębie naszych rąk. To znaczy, że żadne osoby trzecie nie powinny mieć dostępu do tego pliku lub wartości w nim zapisanych. Na klucz prywatny warto założyć passphrase.

Plik ten zapisujemy tylko w bezpiecznym miejscu. Nie udostępniaj go nikomu!

Być może to dla Ciebie za mało. Może potrzebujesz zobaczyć to na nagraniu z prowadzącym, który to wszystko tłumaczy. Ja to rozumiem. Jestem w trakcie przygotowywania szkolenia online właśnie z asymetrycznego szyfrowania, które będzie opierało się o GPG. W kursie poruszę dodatkowo takie zagadnienie, jak generowanie sum kontrolnych. Wielką zaletą na pewno jest to, że możesz zobaczyć sekunda, po sekundzie co się dzieje plus lektor, który wszystko opowiada i tłumaczy. Więcej informacji powinno pojawić się wkrótce.