Szyfrowanie plików z użyciem GPG (cz. 1 – instalacja i konfiguracja)

W poprzednich odcinkach serii (Szyfrowanie plików Word, Excel, Writer i Calc oraz Szyfrowane pliki ZIP) wspominałem o prostych metodach szyfrowania hasłem symetrycznym. Teraz czas na omówienie szyfrowania kluczem publicznym.

Ta metoda wymaga już o wiele więcej zachodu w zakresie instalacji i konfiguracji oprogramowania. Warto żeby przeprowadził to wprawny informatyk, choć podam poniżej opis, jak to można zrobić samodzielnie.

Po co nowa metoda, w dodatku bardziej skomplikowana we wdrożeniu?  Ma ona bowiem swoje zalety, a późniejsze używanie, po przejściu procesu instalacji, jest równie proste, jak w przypadku szyfrowanych plików ZIP.

Dlaczego i kiedy GPG, a kiedy ZIP?

Zaletą szyfrowanych ZIPów jest niewątpliwie to, że da się je odczytać bez żadnego dodatkowego oprogramowania. Wystarczy spakować szyfrowanego ZIPa, wysłać mejlem i zapomnieć o sprawie. Jednak ma to też swoje wady. Za każdym razem trzeba nadać bezpieczne hasło i przekazać je w bezpieczny sposób do odbiorcy. Jeżeli to będzie telefon, ktoś może podsłuchać. Jeżeli za każdym razem nadamy inne hasło, odbiorca może się pogubić w hasłach. Jeżeli hasło będzie zawsze takie samo, to kradzież hasła oznacza wyciek wszystkich danych.

Nie ma też pewności, że plik pochodzi z zaufanego źródła. Ktoś, kto podsłuchał telefoniczne hasło, nawet jeżeli nie włamie się do skrzynki pocztowej, może wysłać swój list ze złośliwym oprogramowaniem i podszyć się pod nadawcę. Hasło do pliku ZIP zadziała, a odbiorca pomyśli, że to zaufane, właściwe dane.

Inną wadą jest to, że gdy np. szef odbiera dane od 100 pracowników, musi panować nad hasłami od każdego z nich.

Tych wad nie ma wykorzystanie infrastruktury klucza publicznego. Jak ona działa? Otóż każda ze stron posiada 2 klucze. Jeden klucz prywatny (chroniony hasłem, który należy pilnie strzec) oraz drugi klucz publiczny, który można rozdawać wszystkim bez żadnych konsekwencji.

Klucz publiczny zamyka skrzynkę z danymi, ale nie pozwala jej otworzyć. Dlatego każdy, kto ma publiczny klucz np. Dyrektora, może wysłać zaszyfrowane pliki do Dyrektora, i nikt inny, nawet sam nadawca, nie będzie w stanie odszyfrować danych bez posiadania klucza prywatnego Dyrektora. I odwrotnie, jeżeli Dyrektor swoim kluczem prywatnym podpisze jakąś wiadomość (nie musi być ona szyfrowana), każdy posiadacz klucza publicznego, może sprawdzić czy to faktycznie Dyrektor jest nadawcą tej wiadomości.

Odpowiadając więc na tytułowe pytanie: Kiedy GPG a kiedy ZIP? można zaryzykować takie stwierdzenia:

  1. Jeżeli chcesz wysłać jednorazowo zaszyfrowane dane do kogoś, wybierz szyfrowany ZIP.
  2. Jeżeli chcesz wysyłać dane do kogoś nieobeznanego informatycznie, komu nie ma kto zainstalować GPG oraz pomóc w wymianie kluczy, wybierz szyfrowany ZIP.
  3. Jeżeli wysyłasz często dane pomiędzy komputerami w szkole, przedszkolu, firmie, zastanów się, która z metod będzie bezpieczniejsza. Może warto zadać sobie trud instalacji GPG albo poprosić informatyka o pomoc.
  4. Jeżeli jesteś Dyrektorem, kierownikiem lub po prostu odbierasz dużo szyfrowanych wiadomości od ludzi, zdecydowanie bezpieczniej i wygodniej będzie użyć GPG, o ile tylko przejdzie się przez pierwszy etap wdrożenia.

Czemu GPG a nie inna podobna metoda?

Część osób w firmie ma zapewne tzw. podpis kwalifikowany, wydany przez Certum, KIR, PWPW czy inną firmę. Zapisany na karcie chipowej klucz publiczny i prywatny działa właśnie tak, jak opisywane przeze mnie GPG. Można nim podpisywać wiadomości (np. druki PIT czy dane z Płatnika do ZUS), ale można nim też szyfrować wiadomości. Problem jest w tym, że taki certyfikat kosztuje i nie wszyscy pracownicy firmy go mają. Księgowa, Dyrektor, ale na tym może być koniec. A GPG pozwala samodzielnie i za darmo wygenerować własne klucze szyfrujące.

Nie mają one mocy urzędowej i do podpisywania dokumentów urzędowych się nie nadają, ale dobrze wdrożone, zapewniają bezpieczeństwo w obiegu danych wewnątrz placówki, firmy, organizacji.

No to instalujemy

GPG to skrót do GNU Privacy Guard, który dostępny jest na różne systemy operacyjne całkowicie za darmo. Ja skupię się na wersji dla systemu Windows, którą można pobrać ze strony https://www.gpg4win.org/. Ważne, żeby pobierać oprogramowanie bezpośrednio od producenta, gdyż wersja z innych źródeł może zawierać niebezpieczne dodatki.

Na głównej stronie projektu znajduje się przycisk DOWNLOAD Gpg4win (w momencie pisania artykułu 3.1.1.). Po jego wybraniu potencjalnego chętnego trochę straszy plansza z opłatami.

Nie są one obowiązkowe, jednak zachęcam, aby wesprzeć autorów, gdy okaże się, że program służy dobrze i realizuje swoje zadania. Na razie, przy pierwszych testach można śmiało wybrać $0 i pobrać program legalnie za darmo.

Dalszego etapu instalacji nie będę pokazywał na ilustracjach, gdyż polega on na naciskaniu DALEJ w instalatorze. W ostatecznym rozrachunku, program zostanie zainstalowany, a na pulpicie Windows pojawi się ikonka podpisana KLEOPATRA. Przy pomocy tego programu generuje się klucze oraz przeprowadza szyfrowanie i deszyfrowanie danych.

Generowanie kluczy

Teraz nastąpi najtrudniejsza część instalacji, konieczne będzie wygenerowanie kluczy i wymiana pomiędzy użytkownikami.

Po uruchomieniu Kleopatry okno główne sugeruje stworzenie nowych kluczy lub importowanie zapisanych w kopii. Sama Kleopatra jest częściowo przetłumaczona i część komunikatów ma po angielsku. Niestety jest to oprogramowanie typu Open Source, tworzone za pieniądze z dotacji (o których wspominałem przy instalacji) i najwyraźniej funduszy na tłumaczy brakuje. Nie powinno to być jednak problemem, bo sformułowania językowe są proste i krótkie.

Zacznę od naciśnięcia przycisku New Key Pair, czyli Nowa para kluczy, który utworzy dla mnie dwa wspomniane już klucze: prywatny i publiczny.

Przy tworzeniu pary kluczy można (choć nie jest to obowiązkowe) wpisać swoje dane w postaci imienia i nazwiska oraz adresu e-mail. Jeżeli klucz będzie wykorzystywany do automatycznego szyfrowania poczty elektronicznej (o czym powstanie za jakiś czas artykuł), to podanie poprawnego adresu e-mail znacznie ułatwi ten proces. Również podanie jakiegoś nazwiska lub pseudonimu pozwoli nie pogubić się w posiadanych kluczach. Aczkolwiek można przyjąć zasadę nazywania kluczy stanowiskami służbowymi (np. Dyrektor, Główna Księgowa) i też będzie dobrze.

Następnym krokiem jest konieczność zabezpieczenia klucza prywatnego hasłem. Można to pominąć, jednak klucz prywatny otwiera wszystkie zamknięte dane i jego wykradzenie, np. z dysku komputera, może złamać cały system bezpieczeństwa, jeżeli nie jest dodatkowo chroniony przez bezpieczne hasło. Dlatego ja polecam zabezpieczenie klucza prywatnego porządnym, bezpiecznym, ale i łatwym do zapamiętania hasłem.

W przeciwieństwie do szyfrowanych plików ZIP, to hasło będzie służyło wyłącznie przy odszyfrowywaniu i nie musi, a wręcz nie może, być nikomu przekazywane.

Na sam koniec etapu tworzenia warto odpisać lub wykopiować odcisk palca (fingerprint) nowo stworzonej pary kluczy. Na etapie początkowym nie będzie on potrzebny, jednak to ciąg znaków, który jednoznacznie określa wygenerowaną parę kluczy. Nie będzie się on powtarzał dla żadnej innej pary.

Klucze wygenerowane pojawiły się na liście kluczy. Na razie jest ona bardzo pusta i uboga, ale z czasem pojawią się tam może kolejne klucze. Część z nich będzie wytłuszczona, a część nie. Wytłuszczone klucze zawierają w sobie tajny klucz prywatny. A te pisane zwykłymi czcionkami, tylko klucze publiczne.

Na ilustracji powyżej pojawił się kolejny mój wpis. Nie ma bowiem problemu posiadania kilku par kluczy do różnych celów.

Można też wczytać klucze innych osób, nawet takich, które noszą dość nietypowe nazwiska lub pseudonimy 🙂

Wymieniamy się kluczami

Klucze zostały wygenerowane, ale aby można je było wykorzystać, konieczne jest wymienienie się stron korespondencji kluczami prywatnymi. Kleopatra pozwoli na zrobienie tego w sposób łatwy i przyjemny.

 

Najpierw zaznaczam wybrany klucz na liście, a następnie wybieram polecenie Export z paska narzędzi. Pozwoli to zapisać klucz publiczny do pliku.

Nazwa tego klucza będzie na pierwszy rzut oka dość dziwna, ale to nazwa zbudowana z odcisku palca (fingerprint) mojego klucza. Mogę ją zmienić na bardziej przyjazną, zwłaszcza jeżeli zestaw kluczy publicznych wielu pracowników będzie wrzucany gdzieś do sieci firmowej albo internetu.

 

Analogicznie postępują wszyscy, którzy będą brali udział w przesyłaniu danych z użyciem GPG. Teraz wystarczy wczytać ich klucze publiczne przez polecenie Import i instalacja oraz wymiana kluczy zakończona.

Author: Przemysław Adam Śmiejek

#wieśniak 👨🏻‍🌾, #dziaders 👴🏻, #aktor 📺/🎭, #żeglarz ⛵