Chroń swoją prywatność za pomocą polecenia gpg systemu Linux. Użyj światowej klasy szyfrowania, aby chronić swoje sekrety. Pokażemy Ci, jak używać gpg do pracy z kluczami, szyfrowania plików i ich odszyfrowywania.
GnuPrivacy Guard (GPG) pozwala na bezpieczne szyfrowanie plików, tak aby tylko zamierzony odbiorca mógł je odszyfrować. W szczególności GPG jest zgodny z OpenPGP standard. Jest wzorowany na programie o nazwie Pretty Good Privacy (PGP). PGP zostało napisane w 1991 roku przez Phil Zimmerman.
GPG opiera się na pomyśle dwóch kluczy szyfrujących na osobę. Każda osoba ma klucz prywatny i klucz publiczny. Klucz publiczny może odszyfrować coś, co zostało zaszyfrowane przy użyciu klucza prywatnego.
Aby bezpiecznie wysłać plik, zaszyfrujesz go swoim kluczem prywatnym i kluczem publicznym odbiorcy. Aby odszyfrować plik, potrzebują swojego klucza prywatnego i Twojego klucza publicznego.
Zobaczysz z tego, że klucze publiczne muszą być udostępniane. Musisz mieć klucz publiczny odbiorcy, aby zaszyfrować plik, a odbiorca potrzebuje Twojego klucza publicznego, aby go odszyfrować. Nie ma niebezpieczeństwa, że klucze publiczne będą tylko takie – publiczne. W rzeczywistości istnieją serwery klucza publicznego do tego właśnie celu, jak zobaczymy. Klucze prywatne muszą pozostać prywatne. Jeśli Twój klucz publiczny znajduje się w domenie publicznej, Twój klucz prywatny musi być utrzymywany w tajemnicy i bezpieczny.
Konfiguracja GPG wymaga więcej kroków niż korzystania z niej. Na szczęście zwykle wystarczy go skonfigurować tylko raz.
Spis treści:
Generowanie kluczy
Polecenie gpg zostało zainstalowane we wszystkich sprawdzonych dystrybucjach Linuksa, w tym Ubuntu, Fedora i Manjaro.
Nie musisz używać GPG z pocztą e-mail. Możesz zaszyfrować pliki i udostępnić je do pobrania lub przekazać je fizycznie odbiorcy. Musisz jednak powiązać adres e-mail z generowanymi kluczami, więc wybierz adres e-mail, którego będziesz używać.
Oto polecenie generowania kluczy. Opcja –full-generation-key generuje klucze w interaktywnej sesji w oknie terminala. Zostaniesz również poproszony o podanie hasła. Upewnij się, że pamiętasz, jakie jest hasło. Trzy lub cztery proste słowa połączone ze znakami interpunkcyjnymi to dobre i solidny model haseł i fraz haseł.
gpg --full-generate-key
Zostaniesz poproszony o wybranie typu szyfrowania z menu. Jeśli nie masz dobrego powodu, aby tego nie robić, wpisz 1 i naciśnij Enter.
Musisz wybrać długość w bitach dla kluczy szyfrowania. Naciśnij klawisz Enter, aby zaakceptować wartość domyślną.
Musisz określić, jak długo ma trwać klucz. Jeśli testujesz system, wprowadź krótki okres, na przykład 5, na pięć dni. Jeśli zamierzasz zachować ten klucz, wprowadź dłuższy okres, na przykład 1 rok przez rok. Klucz będzie trwał 12 miesięcy, a więc będzie wymagał odnowienia po roku. Potwierdź swój wybór literą Y.
Musisz podać swoje imię i nazwisko oraz adres e-mail. Jeśli chcesz, możesz dodać komentarz.
Zostaniesz poproszony o podanie hasła. Będziesz potrzebować hasła za każdym razem, gdy będziesz pracować z kluczami, więc upewnij się, że wiesz, co to jest.
Kliknij przycisk OK po wprowadzeniu hasła. Zobaczysz to okno podczas pracy z gpg, więc upewnij się, że pamiętasz swoje hasło.
Nastąpi wygenerowanie klucza i nastąpi powrót do wiersza poleceń.
Generowanie certyfikatu unieważnienia
Jeśli Twój klucz prywatny stanie się znany innym, będziesz musiał odłączyć stare klucze od swojej tożsamości, aby móc wygenerować nowe. Aby to zrobić, będziesz potrzebować certyfikatu unieważnienia. Zrobimy to teraz i przechowamy w bezpiecznym miejscu.
Po opcji –output należy podać nazwę pliku certyfikatu, który chcesz utworzyć. Opcja –gen-revoke powoduje, że gpg generuje certyfikat unieważnienia. Musisz podać adres e-mail użyty podczas generowania kluczy.
gpg --output ~/revocation.crt --gen-revoke [email protected]
Zostaniesz poproszony o potwierdzenie, że chcesz wygenerować certyfikat. Naciśnij Y i naciśnij Enter. Zostaniesz poproszony o podanie powodu generowania certyfikatu. Ponieważ robimy to z wyprzedzeniem, nie wiemy na pewno. Naciśnij 1 jako prawdopodobną odpowiedź i naciśnij Enter.
Jeśli chcesz, możesz wpisać opis. Naciśnij dwukrotnie klawisz Enter, aby zakończyć opis.
Zostaniesz poproszony o potwierdzenie ustawień, naciśnij Y i naciśnij Enter.
Certyfikat zostanie wygenerowany. Pojawi się komunikat podkreślający potrzebę zabezpieczenia tego certyfikatu.
Wspomina o kimś o imieniu Mallory. Dyskusje o kryptografii są używane od dawna Bob i Alice jak dwie komunikujące się osoby. Istnieją inne postacie drugoplanowe. Ewa to podsłuchiwacz, Mallory to złośliwy napastnik. Musimy tylko wiedzieć, że musimy dbać o bezpieczeństwo certyfikatu.
Jako minimum usuńmy z certyfikatu wszystkie uprawnienia oprócz naszych.
chmod 600 ~/revocation.crt
Sprawdźmy z ls, aby zobaczyć, jakie są teraz uprawnienia:
ls -l
To idealne. Nikt poza właścicielem pliku – nami – nie może nic zrobić z certyfikatem.
Importowanie klucza publicznego innej osoby
Aby zaszyfrować wiadomość, którą może odszyfrować inna osoba, musimy mieć jej klucz publiczny.
Jeśli otrzymałeś klucz w pliku, możesz zaimportować go za pomocą następującego polecenia. W tym przykładzie plik klucza nosi nazwę „mary-geek.key”.
gpg --import mary-geek.key
Klucz zostanie zaimportowany i zostanie wyświetlona nazwa i adres e-mail powiązany z tym kluczem. Oczywiście powinno to pasować do osoby, od której ją otrzymałeś.
Istnieje również możliwość, że osoba, od której potrzebujesz klucza, przesłała swój klucz na publiczny serwer kluczy. Te serwery przechowują klucze publiczne ludzi z całego świata. Serwery kluczy synchronizują się ze sobą okresowo, dzięki czemu klucze są powszechnie dostępne.
Serwer kluczy publicznych MIT jest popularnym serwerem kluczy, który jest regularnie synchronizowany, więc wyszukiwanie na nim powinno przebiegać pomyślnie. Jeśli ktoś niedawno przesłał klucz, może to zająć kilka dni.
Po opcji –keyserver musi następować nazwa serwera kluczy, który chcesz przeszukać. Po opcji –search-keys musi następować imię i nazwisko osoby, której szukasz, lub jej adres e-mail. Użyjemy adresu e-mail:
gpg --keyserver pgp.mit.edu --search-keys [email protected]
Mecze są wymienione i ponumerowane. Aby zaimportować, wpisz numer i naciśnij Enter. W tym przypadku jest jedno dopasowanie, więc wpisujemy 1 i wciskamy Enter.
Klucz zostanie zaimportowany i zostanie wyświetlona nazwa i adres e-mail powiązany z tym kluczem.
Weryfikacja i podpisywanie klucza
Jeśli ktoś Ci przekazał plik klucza publicznego, możesz śmiało powiedzieć, że należy on do tej osoby. Jeśli pobrałeś go z publicznego serwera kluczy, możesz poczuć potrzebę sprawdzenia, czy klucz należy do osoby, dla której jest przeznaczony.
Opcja –fingerprint powoduje, że gpg tworzy krótką sekwencję dziesięciu zestawów czterech znaków szesnastkowych. Możesz poprosić osobę o przesłanie odcisku palca jej klucza.
Następnie można użyć opcji –fingerprint, aby wygenerować tę samą sekwencję znaków szesnastkowych odcisków palców i porównać je. Jeśli pasują, wiesz, że klucz należy do tej osoby.
gpg --fingerprint [email protected]
Generowany jest odcisk palca.
Kiedy upewnisz się, że klucz jest oryginalny i należy do osoby, z którą ma być powiązany, możesz podpisać jej klucz.
Jeśli tego nie zrobisz, nadal możesz go używać do szyfrowania i odszyfrowywania wiadomości od i do tej osoby. Ale gpg zapyta cię za każdym razem, czy chcesz kontynuować, ponieważ klucz jest niepodpisany. Użyjemy trafnie nazwanej opcji –sign-key i podamy adres e-mail osoby, aby gpg wiedział, który klucz podpisać.
gpg --sign-key [email protected]
Zobaczysz informacje o kluczu i osobie, a także zostaniesz poproszony o potwierdzenie, że naprawdę chcesz podpisać klucz. Naciśnij Y i naciśnij Enter, aby podpisać klucz.
Jak udostępnić swój klucz publiczny
Aby udostępnić klucz jako plik, musimy wyeksportować go z lokalnego magazynu kluczy gpg. Aby to zrobić, użyjemy opcji –export, po której musi nastąpić adres e-mail użyty do wygenerowania klucza. Po opcji –output należy podać nazwę pliku, do którego ma zostać wyeksportowany klucz. Opcja –armor mówi gpg, aby generował dane wyjściowe zbroi ASCII zamiast pliku binarnego.
gpg --output ~/dave-geek.key --armor --export [email protected]
Możemy zajrzeć do pliku klucza za pomocą mniejszego.
less dave-geek.key
Klucz jest pokazany w całej okazałości:
Możesz również udostępnić swój klucz publiczny na serwerze kluczy publicznych. Opcja –send-keys wysyła klucz do serwera kluczy. Po opcji –keyserver należy podać adres internetowy serwera kluczy publicznych. Aby określić, który klucz ma zostać wysłany, w wierszu poleceń należy podać odcisk palca klucza. Zauważ, że między zestawami czterech znaków nie ma spacji.
(Możesz zobaczyć odcisk palca swojego klucza, używając opcji –fingerprint).
gpg --send-keys --keyserver pgp.mit.edu 31A4E3BE6C022830A804DA0EE9E4D6D0F64EEED4
Otrzymasz potwierdzenie, że klucz został wysłany.
Szyfrowanie plików
W końcu jesteśmy gotowi do zaszyfrowania pliku i wysłania go do Mary. Plik nosi nazwę Raven.txt.
Opcja –encrypt mówi gpg, aby zaszyfrować plik, a opcja –sign mówi mu, aby podpisał plik twoimi danymi. Opcja –armor mówi gpg, aby utworzył plik ASCII. Po opcji -r (adresat) należy podać adres e-mail osoby, do której wysyłasz plik.
gpg --encrypt --sign --armor -r [email protected]
Plik jest tworzony z tą samą nazwą co oryginał, ale z dołączonym „.asc” do nazwy pliku. Zajrzyjmy do środka.
less Raven.txt.asc
Plik jest całkowicie nieczytelny i może go odszyfrować tylko ktoś, kto ma Twój klucz publiczny i prywatny klucz Marii. Jedyną osobą, która ma oba te elementy, powinna być Mary.
Możemy teraz wysłać plik do Mary, mając pewność, że nikt inny nie może go odszyfrować.
Odszyfrowywanie plików
Mary wysłała odpowiedź. Znajduje się w zaszyfrowanym pliku o nazwie coded.asc. Możemy go bardzo łatwo odszyfrować za pomocą opcji –decrypt. Zamierzamy przekierować dane wyjściowe do innego pliku o nazwie plain.txt.
Pamiętaj, że nie musimy mówić gpg, od kogo pochodzi plik. Może to wywnioskować z zaszyfrowanej zawartości pliku.
gpg --decrypt coded.asc > plain.txt
Plik został pomyślnie odszyfrowany.
Odświeżanie kluczy
Okresowo możesz poprosić gpg o sprawdzenie posiadanych kluczy względem publicznego serwera kluczy i odświeżenie tych, które uległy zmianie. Możesz to robić co kilka miesięcy lub gdy otrzymasz klucz od nowego kontaktu.
Opcja –refresh-keys powoduje, że gpg wykonuje sprawdzenie. Po opcji –keyserver musi następować wybrany serwer kluczy. Po zsynchronizowaniu kluczy między publicznymi serwerami kluczy nie powinno mieć znaczenia, który wybierzesz.
gpg --keyserver pgp.mit.edu --refresh-keys
gpg odpowiada, wymieniając sprawdzane klucze i informując Cię, czy któryś z nich został zmieniony i zaktualizowany.
Prywatność to gorący temat
Prywatność nigdy nie jest daleko od wiadomości w dzisiejszych czasach. Bez względu na powody, dla których chcesz zachować bezpieczeństwo i prywatność swoich informacji, gpg zapewnia prosty sposób na zastosowanie niesamowicie silnego szyfrowania do plików i komunikacji.
Istnieją inne sposoby korzystania z gpg. Możesz pobrać wtyczkę dla Thunderbird nazywa Enigmail. Podłącza się bezpośrednio do konfiguracji gpg, aby umożliwić szyfrowanie wiadomości e-mail z poziomu Thunderbirda.