Ghost in the Machines
On 23 września, 2021 by adminUżywam oprogramowania GPG (znanego również jako GnuPG) do szyfrowania plików zawierających poufne informacje (głównie hasła). Jako inżynier systemowy, większość mojej pracy wykonuję na zdalnych serwerach, dostępnych poprzez interfejs wiersza poleceń. Naturalnie, łatwiej jest mi używać GPG w wersji wiersza poleceń do bezpośredniego szyfrowania i deszyfrowania dokumentów.
GPG (GNU Privacy Guard) jest darmową, otwartoźródłową wersją oprogramowania szyfrującego PGP (Pretty Good Privacy). Koncepcyjnie, oba używają tego samego podejścia do kryptografii (tj. szyfrowania i deszyfrowania). Jednakże, każde z nich jest unikalnie różne w swojej implementacji.
To, co następuje, to szybki przewodnik po tym, jak zainstalować narzędzia wiersza poleceń GPG, jak również lista podstawowych poleceń, które najprawdopodobniej będą potrzebne.
Instalacja GPG
GPG może być zainstalowane na kilka różnych sposobów. Instrukcje tutaj zainstalują podstawowe narzędzia wiersza poleceń GPG, które są przeznaczone do użycia w terminalu.
Jeśli, z drugiej strony, wolisz graficzny interfejs użytkownika (lub GUI), aby uzyskać dostęp do funkcji GPG (np. szyfrowanie komunikacji e-mail lub szyfrowanie dokumentów w edytorze tekstu GUI), zapoznaj się z linkami na końcu tego artykułu.
Red Hat / CentOS
yum install gnupg
Ubuntu / Debian
apt-get install gnupg
Mac OS X
Najprostszym sposobem zainstalowania narzędzi wiersza poleceń GPG na Macu jest najpierw zainstalowanie Homebrew, systemu zarządzania pakietami, który udostępnia tysiące pakietów oprogramowania do zainstalowania na Macu.
Otwórz okno Terminala (menu Applications > Utilities), a następnie wprowadź następujące polecenie.
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew install gnupg
GPG Quick How To
To, co następuje, jest bardzo krótkim wprowadzeniem do używania GPG z wiersza poleceń. Pomyśl o tym jako o „szybkiej referencji” lub „arkuszu oszukania”. Z pewnością powinieneś dowiedzieć się więcej o GPG niż to co jest wyjaśnione w tym poście. Jest on przeznaczony tylko na początek. Jeśli spodziewasz się używać GPG bardziej intensywnie, radzę przeczytać więcej dokumentacji (zobacz sekcję Linki poniżej).
GPG jest potężnym oprogramowaniem szyfrującym, ale może być również łatwe do nauczenia się – gdy zrozumiesz kilka podstaw. GPG używa metody szyfrowania znanej jako kryptografia klucza publicznego, która zapewnia wiele zalet i korzyści. Jednakże, aby uzyskać te korzyści, wymagany jest minimalny poziom złożoności, aby to wszystko działało. Aby dowiedzieć się, jak działa kryptografia klucza publicznego, przeczytaj Wprowadzenie do kryptografii (link na dole tego posta).
Konwencje typograficzne używane w poleceniach:
We wszystkich przykładach poniżej, tekst, który będziesz musiał zastąpić własnymi wartościami (np. nazwy użytkowników, adresy e-mail, nazwy plików) jest pokazany „szarą kursywą”. Tekst, który wpiszesz dosłownie (bez zmian) jest oznaczony „czarną stałą szerokością”.
"gray italic""black constant width"
Utwórz swój klucz GPG:
Aby rozpocząć pracę z GPG, musisz najpierw wygenerować swoją parę kluczy. Oznacza to, że wygenerujesz zarówno klucz prywatny jak i publiczny za pomocą jednego polecenia. Wpisz swoje imię i adres e-mail, ale w przeciwnym razie zaakceptuj opcje domyślne.
gpg --gen-key
Pierwszy klucz jest twoim kluczem prywatnym (lub tajnym). Ten klucz prywatny należy zawsze przechowywać w bezpiecznym miejscu i nie wolno go nikomu udostępniać. Klucz prywatny jest chroniony hasłem. Postaraj się, aby hasło było jak najdłuższe, ale takie, którego nie zapomnisz. Jeśli zapomnisz hasła, nie ma sposobu na jego odzyskanie. Z tego samego powodu powinieneś również wykonać kopię zapasową swojego klucza prywatnego. (Rozważ użycie Time Machine do tworzenia kopii zapasowych na Mac OS X.)
Drugim kluczem jest Twój klucz publiczny, który możesz bezpiecznie udostępniać innym ludziom.
Zależność między kluczem prywatnym i publicznym jest właściwie bardzo prosta. Wszystko, co jest zaszyfrowane przy użyciu klucza publicznego, może być odszyfrowane tylko przy użyciu powiązanego klucza prywatnego. Dlatego podasz swój klucz publiczny innej osobie, a ona poda Ci swój klucz publiczny. Wszystko zaszyfrowane twoim kluczem publicznym może być odszyfrowane tylko przez ciebie. Wszystko zaszyfrowane kluczem publicznym drugiej osoby może być odszyfrowane tylko przez tę osobę.
Eksportuj swój klucz publiczny:
Następnym krokiem jest wyeksportowanie swojego klucza publicznego i podzielenie się nim z inną osobą. Ta osoba powinna zrobić to samo, i wyeksportować swój klucz publiczny.
gpg --export --armor [email protected] > mypubkey.asc
Importuj klucz publiczny innej osoby:
Gdy importujesz klucz publiczny, umieszczasz go w tym, co jest powszechnie określane jako twój GPG „keyring.”
gpg --import theirpubkey.asc
Listuj klucze publiczne w swoim pęku kluczy:
Możesz teraz wyświetlić listę kluczy publicznych w swoim pęku kluczy, a także nazwę i adres e-mail związane z każdym kluczem.
gpg --list-keys
Listuj klucze prywatne w swoim pęku kluczy:
Następujące polecenie wyświetli listę kluczy prywatnych w swoim pęku kluczy. To pokaże twój własny klucz prywatny, który utworzyłeś wcześniej.
gpg --list-secret-keys
Zaufaj kluczowi publicznemu:
Po zaimportowaniu klucza publicznego drugiej osoby, musisz teraz ustawić poziom zaufania klucza. Zapobiega to ostrzeganiu cię przez GPG za każdym razem, gdy szyfrujesz coś tym kluczem publicznym.
Podaj imię lub e-mail drugiej osoby w poleceniu.
gpg --edit-key glenntrust (invoke trust subcommand on the key)5 (ultimate trust)y (if prompted)quit
Użyteczne polecenia GPG
GPG ma wiele opcji, z których większość nigdy nie będzie potrzebna. Oto krótka lista najbardziej przydatnych poleceń, których prawdopodobnie będziesz potrzebował.
Szyfrowanie pliku:
Aby zaszyfrować plik o nazwie filename.txt dla pojedynczej osoby, określ ją jako odbiorcę.
gpg --encrypt --recipient glenn filename.txt
Tworzy to nowy zaszyfrowany plik o nazwie filename.txt.gpg.
Jeśli chcesz zaszyfrować plik tak, aby tylko ty sam mógł go odszyfrować, określ siebie jako odbiorcę.
gpg --encrypt --recipient 'my_name' filename.txt
Jeśli chcesz zaszyfrować plik tak, aby zarówno Ty jak i inna osoba mogła go odszyfrować, określ siebie i tę drugą osobę jako odbiorców.
gpg --encrypt --recipient glenn --recipient 'my_name' filename.txt
Jeśli chcesz zaszyfrować plik dla grupy osób, zdefiniuj grupę w pliku gpg.conf (patrz sekcja poniżej), a następnie określ grupę jako odbiorcę.
gpg --encrypt --recipient journalists filename.txt
Po pewnym czasie będziesz chciał być bardziej zwięzły i używać skróconej wersji opcji wiersza poleceń. Oto to samo polecenie.
gpg -e -r journalists filename.txt
Odszyfruj plik do terminala (standardowe wyjście):
Pierwsza wersja tego polecenia wyświetli zawartość pliku w samym oknie terminala.
gpg --decrypt filename.txt.gpg
Używaj opcji --decrypt
tylko jeśli plik jest plikiem tekstowym ASCII. Jeśli jest to plik binarny, to pomiń opcję --decrypt
, co spowoduje zapisanie odszyfrowanego pliku na dysk. W tym momencie, możesz otworzyć plik binarny w dowolnej aplikacji używanej do przeglądania pliku.
Decrypt a file to disk:
Czy plik jest ASCII czy binarny, jeśli chcesz dokonać zmian w zawartości zaszyfrowanego pliku, musisz go najpierw odszyfrować, dokonać zmian, a następnie ponownie zaszyfrować plik. Jak wspomniałem w poprzednim akapicie, odszyfrowaną wersję pliku można zapisać na dysku, pomijając opcję --decrypt
w poleceniu.
gpg filename.txt.gpg
Jeśli zaszyfrowany plik został nazwany filename.txt.gpg, powyższe polecenie utworzy odszyfrowaną wersję o nazwie filename.txt (z usuniętym rozszerzeniem .gpg).
Twórz grupy osób w swoim pliku konfiguracyjnym GPG
Dla wygody, możesz wstępnie zdefiniować grupę osób w swoim pliku konfiguracyjnym GPG. Ma to tę zaletę, że pozwala ci zaszyfrować plik do każdego członka grupy przez określenie tylko nazwy grupy jako odbiorcy, zamiast żmudnego określania każdego indywidualnego członka grupy.
Twoja konfiguracja oprogramowania GPG jest przechowywana w twoim katalogu domowym w pliku ~/.gnupg/gpg.conf
. Edytuj ten plik używając swojego ulubionego edytora tekstu w wierszu poleceń (vim, nano, pico, emacs, itp). Podczas gdy w pliku konfiguracyjnym dostępnych jest wiele ustawień, przejdź do sekcji związanej z definiowaniem grup.
Podczas definiowania grupy, wymieniasz członków grupy. Każdy członek jest określany przez jakiś atrybut jego klucza publicznego znajdującego się w twoim GPG keyring – zazwyczaj jest to imię osoby (lub częściowe imię, takie jak imię lub nazwisko) lub adres e-mail (lub częściowy adres e-mail).
Jeśli jesteś członkiem grupy, pamiętaj aby się w niej umieścić! Jeśli nie umieścisz siebie w grupie, nie będziesz w stanie odszyfrować żadnych plików, które zaszyfrujesz do grupy.
Tutaj jest przykład grupy o nazwie „dziennikarze”, z listą imion każdej osoby.
group journalists = glenn laura ewan barton
Where To Go From Here
Zachęcam do dowiedzenia się więcej o GPG. Zobacz linki poniżej.
Możesz również chcieć dowiedzieć się o bezpiecznych metodach usuwania plików z dysku twardego komputera. Mac OS X posiada opcję „Secure Empty Trash” w Finderze. Istnieje również wiele narzędzi innych firm, które możesz zainstalować.
Ponieważ jesteśmy przy temacie nauki używania GPG w wierszu poleceń, możesz spróbować „bcwipe” – programu do bezpiecznego usuwania plików w wierszu poleceń.
Na Mac OS X możesz zainstalować bcwipe przez Homebrew.
brew install bcwipe
Linki
Ogólne
- Wprowadzenie do kryptografii (PDF)
- Strona oprogramowania GnuPG
- GnuPG w Wikipedii
- Homebrew (menedżer pakietów dla Mac OS X)
Narzędzia GUI
.
- GPG Suite (GUI dla Mac OS X)
- Jak korzystać z GPG Suite na Mac OS X (Electronic Frontier Foundation)
- Gpg4win (GUI dla Windows)
- Jak korzystać z Gpg4Win na Windows (Electronic Frontier Foundation)
Dodaj komentarz