Jak wykonać kopię zapasową i przywrócić klucze GPG w systemie Linux?

Opublikowany: 2022-08-18
Laptop z systemem Linux wyświetlający monit o bash
fatmawati achmad zaenuri/Shutterstock.com

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.

Jak szyfrować i odszyfrowywać pliki za pomocą GPG w systemie Linux
POWIĄZANE Jak szyfrować i odszyfrowywać pliki za pomocą GPG w systemie Linux

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 

Struktura katalogów katalogu .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 

Wyświetlanie szczegółów klucza GPG w oknie terminala

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 

Eksportowanie publicznych kluczy 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] 

Eksportowanie publicznych kluczy GPG dla jednej tożsamości

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 

Eksportowanie prywatnych kluczy 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.

Podanie hasła GPG w celu wyeksportowania kluczy prywatnych

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 

Eksportowanie relacji zaufania GPG

Oto trzy utworzone przez nas pliki.

 ls -hl *.gpg 

Trzy pliki utworzone przez polecenia eksportujące

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 

Wyeksportowane pliki przeniesione do komputera Manjaro

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 

Importowanie publicznych kluczy 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 

Importowanie prywatnych kluczy GPG

Zostaniemy poproszeni o wpisanie hasła.

Wprowadzanie hasła, aby zaimportować prywatne klucze GPG

Wpisz go w polu "Hasło", naciśnij klawisz "Tab" i naciśnij "Enter".

Potwierdzenie zaimportowanych kluczy prywatnych GPG

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 

Importowanie relacji zaufania 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 

Sprawdzanie, czy import zadziałał

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