GNU Privacy Assistant (GPA) for Linux
11.02.2015 | aktual.: 11.02.2015 22:03
Każdy techniczny zdaje sobie sprawę z tego, jak ważne jest szyfrowanie poufnych i prywatnych danych przesyłanych przez Internet. Dane wrażliwe mogą być jednak łatwo podsłuchane przez niepowołane osoby, dlatego w tym mini poradniku pokażę w jaki sposób wykorzystać GPG do szyfrowania plików.
Dlaczego GPA? Ano dlatego, że każdy program ma swoje wady. Np. miniLock nie obsługuje dużych plików. Nie zaszyfrujemy nim pliku wielkości np. 3,5 GB.
Szyfrowanie asymetryczne
Jako że korzystanie z GPG z poziomu konsoli dla niektórych może być niewygodne, przedstawię menadżer graficzny spokojnie zastępujący praktycznie wszystkie komendy umożliwiające w szerokim stopniu wykorzystywanie szyfrowania GPG .
Na początek ściągamy program:
[code=plain text]sudo aptitude install gpa[/code]
UWAGA: Obowiązkowo powinniśmy wyrazić zgodę na zrobienie kopii bezpieczeństwa naszej pary kluczy (prywatnego oraz publicznego).
Po otwarciu programu generujemy klucz RSA 2048 bit do szyfrowania asymetrycznego:
Następnie wpisujemy swoją nazwę:
Oraz e-mail:
I na sam koniec wpisujemy mocne hasło:
Szczegóły naszego klucza są dostępne po kliku na nim. U nas będzie to wyglądało tak:
Po tych zabiegach można sobie wybrać plik do zaszyfrowania naszym wygenerowanym kluczem. W tym celu klikamy na Pliki, ukaże nam się Menadżer Plików.
Klikamy na Open i wybieramy plik do zaszyfrowania. Możemy pliki szyfrować oraz podpisywać. Podpis jest o tyle ważny, że mamy pewność, że plik otrzymany od kogoś będzie tym, który naprawdę został wysłany przez naszego zaufanego nadawcę.
Dodatkowymi opcjami programu GPA, jest możliwość eksportu i importu kluczy. Nic nie stoi na przeszkodzie, żeby klucze zapisać na nośniku USB lub karcie SD i z nich ładować do programu klucze. Podnosi to zdecydowanie bezpieczeństwo całego procesu szyfrowania.
Bezpiecznym posunięciem będzie również tworzenie certyfikatów, które mają ograniczony czas ważności. W razie utaty (skompromitowania) takiego certyfikatu, nie będziemy zmuszeni go odwoływać. Procedura unieważniania nie jest prosta i nie zawsze uda się taki certyfikat w 100% wycofać.
Szyfrowanie symetryczne (szybsze)
Żeby nie wchodzić za bardzo w szczegóły i nie komplikować sprawy, napiszę jak najprościej zaszyfrować plik algorytmem symetrycznym AES256.
Otwieramy konsolę i wpisujemy do niej komendę:
gpg --cipher-algo AES256 --symmetric
Po spacji przeciągamy plik do konsoli, który chcemy zaszyfrować i kolejny raz spacja oraz enter. Jeśli wszystko poszło zgodnie z planem, zaszyfrowany plik powinien znaleźć się obok tego bazowego (niezaszyfrowanego). Aby go odszyfrować wystarczy postąpić analogicznie - wpisać do konsoli "gpg" oraz przeciągnąć zakodowany plik i po spacji nacisnąć enter. Podać hasło użyte do szyfrowania i powinnismy otrzymać wynik w postaci odszyfrowanego pliku.
Celowo nie komplikowałem sprawy certyfikatami i innymi rzeczami (solenie, kompresowanie). Można oczywiście zmienić siłę algorytmu szyfowania (pierwszego i drugiego), ale wymaga to trochę więcej zachodu.
Można też zaszyfrować plik algorytmem domyślnym (CAST5), ale jest on o wiele słabszy od AES256. Wtedy nie potrzeba dodawać opcji "–cipher-algo".
Podsumowanie
Na zakończenie ciekawostka dla wszystkich. Poważany przez wszystkich Bruce Schneier zmienił długość (siłę) swojego klucza PGP. A dlaczego to zrobił? Odsyłam do artykułu, który daje odpowiedź na moje pytanie.
Silne szyfrowanie jest ostatnią możliwością obrony przed tym, żeby Internet był nadal wolny. Dlatego staram się zawsze szyfrować wszystko co jest możliwe do zaszyfrowania. Wolność jest ważniejsza od wygody* :)
*Oczywiście są granice tej wolności. Nic nam nie da szyfrowanie bardzo skomplikowanymi algo, kiedy nikt nie będzie w stanie naszej komunikacji i plików rozszyfrować oprócz nas (ze względu na brak obsługi algo przez urządzenie). Oczywiście w sytuacji, gdy chcemy postronnym ludziom udostępnić nasze pliki np. w "chmurze". W innym przypadku najlepsze jest szyfrowanie jak najmocniejsze. Taka mała dygresja na marginesie odnośnie szyfrów powyżej 8 tys. bit.