Klucze GPG – z czym się to je?

Szacunkowy czas czytania: 3 minut

 

Pracując w IT, chociażby z GitHubem, spotkacie się na pewno z kluczami GPG. GPG czyli GNU Privacy Guard to oprogramowanie kryptograficzne, pozwalające na bezpieczne przekazywanie informacji (maili, plików) pomiędzy dwoma stronami. Szyfrowanie polega na użyciu asymetrycznych par kluczy (publiczny, prywatny) generowanych dla użytkowników. Klucz publiczny umożliwia szyfrowanie danych, a klucz prywatny – ich deszyfrowanie.

To darmowe rozwiązanie można z powodzeniem stosować także do użytku domowego/prywatnego. Wyobraźcie sobie sytuację, gdy chcecie przyjacielowi lub komuś z rodziny przesłać jakieś wrażliwe dane (np. dane logowania, dane osobowe). Czy użyjecie do tego zwykłego maila? Wiem z doświadczenia, że nawet w komunikacji firmowej czasem zdarza się przesył niezabezpieczonych danych. Jednakże to, że wiele osób tak robi, nie znaczy, że Wy też musicie 🙂

Jakie jest zagrożenie? W momencie przesyłania możliwe, że żadne. Ale za jakiś czas znajomemu może wyciec hasło do maila lub dostanie się do niego niepowołana osoba, a on np. zapomniał skasować wiadomości z poufnymi danymi… Scenariuszy może być wiele. Myśląc o bezpieczeństwie nie możemy myśleć tylko o „tu i teraz”.

Z GPG można korzystać z poziomu terminala, ale ma również interfejsy graficzne na Windowsa i MacOS. Sama korzystam z GPG Suite (https://gpgtools.org) na MacOS. Narzędzie jest darmowe w zakresie zarządzania kluczami (GPG Keychain) oraz szyfrowania oraz deszyfrowania plików (GPG Services). Opcja z szyfrowaniem e-maili jest dodatkowo płatna. Dostępny jest 30-dniowy trial.

Swoją parę kluczy możemy wygenerować w terminalu, wpisując

gpg --full-generate-key

lub po instalacji GPG Suite, w GPG Keychain.

Można tu ustawić datę ważności oraz rodzaj klucza (domyślny to RSA 4096).

Zawsze możemy sprawdzić stan swoich kluczy wpisując w terminalu

gpg --list-secret-keys

lub otwierając GPG Keychain.

Wysyłamy zaszyfrowany plik drugiej osobie

To, że zaszyfrujemy plik u siebie na komputerze to za mało. Musimy wskazać kto jest odbiorcą, a aby odbiorca mógł odszyfrować plik, to my musimy posiadać najpierw jego klucz publiczny. Dzięki temu, odbiorca odszyfruje dane używając swojego klucza prywatnego.

A więc, gdy chcemy wysłać „tajne dane” np. kuzynowi Markowi, musimy najpierw uzyskać od niego jego klucz publiczny (pub) i dodać go do naszego menadżera GPG Keychain. Niestety oznacza to tyle, że Marek też musi mieć oprogramowanie GPG na swoim komputerze i wygenerować sobie parę kluczy. Może to być utrudnienie dla osób wyjątkowo opornych technicznie.

Klucz publiczny eksportujemy z GPG Keychain –> Export (absolutnie nie zaznaczamy opcji Include secret key in exported file). Klucz publiczny można skopiować także z terminala (więcej informacji jak to zrobić w linku poniżej – do instrukcji GitHuba).

Gdy już mamy w swoim pęku kluczy, klucz osoby, do której mamy zamiar wysłać plik(i), klikamy na wybrane pliki i w menu kontekstowym wybieramy Services –> OpenPGP: Encrypt Files. Następnie z listy wybieramy odbiorcę i klikamy Encrypt.

Gotowe!

Teraz można swobodnie wysłać zaszyfrowany plik do odbiorcy – mailem lub komunikatorem.

 

Jak odszyfrować zaszyfrowany plik?

Zaszyfrowany plik będzie miał rozszerzenie .gpg. Wystarczy w menu kontekstowym wybrać OpenPGP: Decrypt File. Mając w systemie swój klucz prywatny z wcześniej wygenerowanej pary, odbiorca bez kłopotu odszyfruje zaszyfrowane dane.

 

Co z Windowsem?

Przedstawiony tu GPG Suite jest przeznaczony dla Mac’ów. Natomiast, analogicznie zachowujące się narzędzie, jest dostępne dla Windowsa. Link poniżej.

 

Linki zewnętrzne: