Jak wykonać kopię zapasową i przywrócić klucze GPG w systemie Linux?
Opublikowany: 2022-08-18
Prywatność to coraz bardziej gorący temat. W systemie Linux polecenie gpg
umożliwia użytkownikom szyfrowanie plików przy użyciu kryptografii klucza publicznego, w takim przypadku utrata kluczy szyfrowania byłaby katastrofalna. Oto jak wykonać ich kopię zapasową.
Ochrona prywatności OpenPGP i GNU
Jedną z zalet plików elektronicznych nad papierowymi kopiami papierowymi jest możliwość szyfrowania plików elektronicznych tak, aby były dostępne tylko dla upoważnionych osób. Jeśli wpadną w niepowołane ręce, to nie ma znaczenia. Tylko Ty i zamierzony odbiorca macie dostęp do zawartości plików.
Standard OpenPGP opisuje system szyfrowania zwany szyfrowaniem kluczem publicznym. Implementacja GNU Privacy Guard tego standardu zaowocowała gpg
, narzędziem wiersza poleceń do szyfrowania i deszyfrowania zgodnie ze standardem.
Standard określa schemat szyfrowania kluczem publicznym. Chociaż nazywa się to „kluczem publicznym”, w grę wchodzą dwa klucze. Każda osoba ma klucz publiczny i klucz prywatny. Klucze prywatne, jak sama nazwa wskazuje, nigdy nie są ujawniane ani przekazywane nikomu innemu. Klucze publiczne można bezpiecznie udostępniać. w rzeczywistości klucze publiczne muszą być współużytkowane, aby schemat działał.
Gdy plik jest zaszyfrowany, w procesie kodowania używany jest klucz prywatny nadawcy i klucz publiczny odbiorcy. Plik może być następnie dostarczony do odbiorcy. Używają swojego klucza prywatnego i klucza publicznego nadawcy do odszyfrowania pliku.
Klucze publiczne i prywatne są generowane jako dopasowane pary i powiązane z określoną tożsamością. Nawet jeśli nie przekazujesz poufnych materiałów innym osobom, możesz użyć ich na własnym komputerze, aby dodać dodatkową warstwę ochrony do prywatnych dokumentów.
Szyfrowanie wykorzystuje światowej klasy algorytmy i funkcje kryptograficzne. Bez odpowiednich kluczy publicznych i prywatnych po prostu nie możesz dostać się do zaszyfrowanych plików. A jeśli zgubisz klucze, to również dotyczy ciebie. Generowanie nowych kluczy nie pomoże. Aby odszyfrować pliki, potrzebujesz kluczy, które zostały użyte w procesie szyfrowania.
Nie trzeba dodawać, że tworzenie kopii zapasowych kluczy ma ogromne znaczenie, podobnie jak wiedza, jak je przywrócić. Oto jak wykonać te zadania.
Katalog .gnupg
Twoje klucze są przechowywane w katalogu o nazwie „.gnupg” w twoim katalogu domowym. W tym katalogu będą również przechowywane klucze publiczne każdego, kto wysłał do Ciebie zaszyfrowane pliki. Podczas importowania ich kluczy publicznych są one dodawane do pliku indeksowanej bazy danych w tym katalogu.
Nic w tym katalogu nie jest oczywiście przechowywane w postaci zwykłego tekstu. Po wygenerowaniu kluczy GPG zostaniesz poproszony o podanie hasła. Mam nadzieję, że pamiętasz, co to za hasło. Będziesz tego potrzebować. Wpisy w katalogu „.gnugp” nie mogą być odszyfrowane bez tego.
Jeśli użyjemy narzędzia tree
do przeglądania katalogu, zobaczymy taką strukturę podkatalogów i plików. tree
znajdziesz w repozytoriach swojej dystrybucji, jeśli nie masz go jeszcze na swoim komputerze.
drzewo .gnupg
Zawartość drzewa katalogów to:
- openpgp-revocs.d : Ten podkatalog zawiera certyfikat unieważnienia. Będziesz tego potrzebować, jeśli Twój klucz prywatny kiedykolwiek stanie się powszechnie znany lub w inny sposób naruszony. Twój certyfikat unieważnienia jest używany w procesie wycofywania starych kluczy i przyjmowania nowych kluczy.
- private-keys-v1.d : Ten podkatalog przechowuje twoje klucze prywatne.
- pubring.kbx : zaszyfrowany plik. Zawiera klucze publiczne, w tym twoje, i niektóre metadane na ich temat.
- pubring.kbx~ : To jest kopia zapasowa „pubring.kbx”. Jest aktualizowany tuż przed wprowadzeniem zmian w „pubring.kbx”.
- trustdb.gpg : Zawiera relacje zaufania, które ustanowiłeś dla własnych kluczy i dla wszelkich zaakceptowanych kluczy publicznych należących do innych osób.
Powinieneś robić regularne, częste kopie zapasowe swojego katalogu domowego, w tym ukrytych plików i folderów. To oczywiście utworzy kopię zapasową katalogu „.gnupg”.
Ale możesz pomyśleć, że twoje klucze GPG są wystarczająco ważne, aby uzasadnić okresowe tworzenie kopii zapasowych, a może chcesz skopiować klucze z komputera stacjonarnego na laptopa, aby mieć je na obu komputerach. W końcu jesteś na obu maszynach.
Określanie, które klucze należy wykonać kopię zapasową
Możemy poprosić gpg
o informację, które klucze znajdują się w Twoim systemie GPG. Użyjemy opcji --list-secret-keys
oraz opcji --keyid-format LONG
.
gpg --list-secret-keys --keyid-format LONG
Powiedziano nam, że GPG zagląda do pliku „/home/dave/.gnupg/pubring.kbx”.
Nic, co pojawia się na ekranie, nie jest twoim rzeczywistym tajnym kluczem.
- Wiersz „sec” (sekret) pokazuje liczbę bitów szyfrowania (w tym przykładzie 4096), identyfikator klucza, datę utworzenia klucza i „[SC]”. Litera „S” oznacza, że klucz może być używany do podpisów cyfrowych, a „C” oznacza, że może być używany do certyfikacji.
- Następna linia to kluczowy odcisk palca.
- Wiersz „uid” zawiera identyfikator właściciela klucza.
- Wiersz „ssb” pokazuje tajny podklucz, kiedy został utworzony, oraz „E”. Litera „E” oznacza, że można go używać do szyfrowania.
Jeśli utworzyłeś wiele par kluczy do użytku z różnymi tożsamościami, również zostaną wyświetlone. Dla tego użytkownika istnieje tylko jedna para kluczy do utworzenia kopii zapasowej. Kopia zapasowa będzie zawierać wszystkie klucze publiczne należące do innych osób, które właściciel tego klucza zebrał i któremu zaufał.

Tworzenie kopii zapasowej
Możemy poprosić gpg
o utworzenie kopii zapasowej wszystkich kluczy dla wszystkich tożsamości lub o utworzenie kopii zapasowej kluczy powiązanych z pojedynczą tożsamością. Utworzymy kopię zapasową klucza prywatnego, klucza tajnego i pliku zaufanej bazy danych.
Aby wykonać kopię zapasową kluczy publicznych, użyj opcji --export
. Zamierzamy również użyć --export-options backup
options. Zapewnia to uwzględnienie wszystkich metadanych specyficznych dla GPG, aby umożliwić prawidłowe importowanie plików na innym komputerze.
Określimy plik wyjściowy z opcją --output
. Gdybyśmy tego nie zrobili, dane wyjściowe zostałyby wysłane do okna terminala.
gpg --export --opcje-eksportu kopia zapasowa --output public.gpg
Jeśli chcesz utworzyć kopię zapasową kluczy tylko dla jednej tożsamości, dodaj adres e-mail powiązany z kluczami w wierszu polecenia. Jeśli nie pamiętasz, który to adres e-mail, użyj opcji --list-secret-keys
, jak opisano powyżej.
gpg --export --opcje-eksportu kopia zapasowa --output public.gpg [email protected]
Aby wykonać kopię zapasową naszych kluczy prywatnych, musimy użyć opcji --export-secret-keys
zamiast opcji --export
. Upewnij się, że zapisałeś to w innym pliku.
gpg --export-secret-keys --export-options backup --output private.gpg
Ponieważ jest to Twój klucz prywatny, przed kontynuowaniem musisz uwierzytelnić się za pomocą GPG.
Pamiętaj, że nie zostaniesz poproszony o podanie hasła . Musisz wprowadzić hasło , które podałeś podczas tworzenia kluczy GPG. Dobre menedżery haseł pozwalają przechowywać takie informacje jako bezpieczne notatki. To dobre miejsce do ich przechowywania.
Jeśli hasło zostanie zaakceptowane, nastąpi eksport.
Aby wykonać kopię zapasową relacji zaufania, musimy wyeksportować ustawienia z pliku „trustdb.gpg”. Wysyłamy dane wyjściowe do pliku o nazwie „trust.gpg”. To jest plik tekstowy. Można go oglądać za pomocą cat
.
gpg --export-ownertrust > trust.gpg
kot zaufanie.gpg
Oto trzy utworzone przez nas pliki.
ls -hl *.gpg
Przeniesiemy je na inny komputer i przywrócimy. To ustali naszą tożsamość na tym komputerze i pozwoli nam użyć naszych istniejących kluczy GPG.
Jeśli nie przenosisz kluczy na inny komputer, a po prostu tworzysz ich kopię zapasową, ponieważ chcesz mieć podwójną pewność, że są bezpieczne, skopiuj je na inny nośnik i bezpiecznie przechowuj. Nawet jeśli wpadną w niepowołane ręce, Twój klucz publiczny i tak jest publiczny, więc nie ma w tym nic złego. A bez hasła nie można odzyskać klucza prywatnego. Mimo to zachowaj bezpieczeństwo i prywatność swoich kopii zapasowych.
Skopiowaliśmy pliki na komputer Manjaro 21.
ls *.gpg
Domyślnie Manjaro 21 używa powłoki Z, zsh
, dlatego wygląda inaczej. Ale to nie ma znaczenia, nie wpłynie to na nic. To, co robimy, jest zarządzane przez program gpg
, a nie powłokę.
Aby zaimportować nasze klucze, musimy użyć opcji --import
.
gpg --import public.gpg
Szczegóły klucza są wyświetlane podczas importu. Dla nas tworzony jest również plik „trustdb.gpg”. Importowanie klucza prywatnego jest równie łatwe. Ponownie używamy opcji --import
.
gpg --import private.gpg
Zostaniemy poproszeni o wpisanie hasła.
Wpisz go w polu "Hasło", naciśnij klawisz "Tab" i naciśnij "Enter".
Wyświetlane są szczegóły importowanych kluczy. W naszym przypadku mamy tylko jeden klucz.
Aby zaimportować naszą bazę zaufania, wpisz:
gpg --import-ownertrust trust.gpg
Możemy sprawdzić, czy wszystko zostało poprawnie zaimportowane, używając jeszcze raz opcji --list-secret-keys
.
gpg --list-secret-keys --keyid-format LONG
Daje nam to dokładnie takie same dane wyjściowe, jakie widzieliśmy wcześniej na naszym komputerze z Ubuntu.
Chroń swoją prywatność
Upewnij się, że klucze GPG są bezpieczne, tworząc ich kopię zapasową. Jeśli masz awarię komputera lub po prostu uaktualnij do nowszego modelu, upewnij się, że wiesz, jak przenieść klucze na nowy komputer.
POWIĄZANE: Jak wykonać kopię zapasową systemu Linux za pomocą rsync