Come eseguire il backup e il ripristino delle chiavi GPG su Linux

Pubblicato: 2022-08-18
Laptop Linux che mostra un prompt bash
fatmawati achmad zaenuri/Shutterstock.com

La privacy è un argomento sempre più caldo. Su Linux, il comando gpg consente agli utenti di crittografare i file utilizzando la crittografia a chiave pubblica, nel qual caso la perdita delle chiavi di crittografia sarebbe catastrofica. Ecco come eseguirne il backup.

OpenPGP e GNU Privacy Guard

Uno dei vantaggi dei file elettronici rispetto alle copie cartacee è che puoi crittografare i file elettronici in modo che siano accessibili solo da persone autorizzate. Se cadono nelle mani sbagliate, non importa. Solo tu e il destinatario previsto potete accedere al contenuto dei file.

Lo standard OpenPGP descrive un sistema di crittografia chiamato crittografia a chiave pubblica. L'implementazione di GNU Privacy Guard di tale standard ha portato a gpg , uno strumento da riga di comando per crittografare e decrittografare in conformità con lo standard.

Lo standard delinea uno schema di crittografia a chiave pubblica. Sebbene sia chiamata "chiave pubblica", sono coinvolte due chiavi. Ogni persona ha una chiave pubblica e una chiave privata. Le chiavi private, come suggerisce il nome, non vengono mai rivelate né trasmesse a nessun altro. Le chiavi pubbliche possono essere condivise in sicurezza. infatti, le chiavi pubbliche devono essere condivise affinché lo schema funzioni.

Quando un file viene crittografato, nel processo di codifica vengono utilizzate la chiave privata del mittente e la chiave pubblica del destinatario. Il file può quindi essere consegnato al destinatario. Usano la loro chiave privata e la chiave pubblica del mittente per decrittografare il file.

Le chiavi pubbliche e private vengono generate come una coppia abbinata e legate a un'identità particolare. Anche se non trasmetti materiale sensibile ad altre persone, puoi utilizzarlo sul tuo computer per aggiungere un ulteriore livello di protezione ai documenti privati.

Come crittografare e decrittografare i file con GPG su Linux
CORRELATI Come crittografare e decrittografare i file con GPG su Linux

La crittografia utilizza algoritmi e funzioni crittografiche di livello mondiale. Senza le chiavi pubbliche e private appropriate, semplicemente non puoi accedere ai file crittografati. E, se dovessi perdere le chiavi, vale anche per te. La generazione di nuove chiavi non aiuterà. Per decrittografare i tuoi file sono necessarie le chiavi che sono state utilizzate nel processo di crittografia.

Inutile dire che il backup delle chiavi è di fondamentale importanza, così come sapere come ripristinarle. Ecco come portare a termine questi compiti.

La directory .gnupg

Le tue chiavi sono memorizzate in una directory chiamata ".gnupg" nella tua home directory. Questa directory memorizzerà anche le chiavi pubbliche di chiunque ti abbia inviato file crittografati. Quando importi le loro chiavi pubbliche, vengono aggiunte a un file di database indicizzato in quella directory.

Nulla in questa directory è memorizzato in testo normale, ovviamente. Quando generi le tue chiavi GPG ti viene richiesta una passphrase. Se tutto va bene, ti sei ricordato cos'è quella passphrase. Ne avrai bisogno. Le voci nella directory ".gnugp" non possono essere decifrate senza di essa.

Se usiamo l'utility tree per esaminare la directory, vedremo questa struttura di sottodirectory e file. Troverai l' tree nei repository della tua distribuzione se non lo hai già sul tuo computer.

 albero .gnupg 

La struttura della directory della directory .gnupg.

I contenuti dell'albero delle directory sono:

  • openpgp-revocs.d : questa sottodirectory contiene il tuo certificato di revoca. Ne avrai bisogno se la tua chiave privata diventa di dominio pubblico o altrimenti compromessa. Il certificato di revoca viene utilizzato nel processo di ritiro delle vecchie chiavi e adozione di nuove chiavi.
  • private-keys-v1.d : questa sottodirectory memorizza le tue chiavi private.
  • pubring.kbx : un file crittografato. Contiene chiavi pubbliche, inclusa la tua, e alcuni metadati su di esse.
  • pubring.kbx~ : questa è una copia di backup di "pubring.kbx". Viene aggiornato appena prima che vengano apportate modifiche a "pubring.kbx".
  • trustdb.gpg : contiene le relazioni di fiducia che hai stabilito per le tue chiavi e per tutte le chiavi pubbliche accettate appartenenti ad altre persone.

Dovresti comunque eseguire backup regolari e frequenti della tua home directory, inclusi i file e le cartelle nascosti. Ciò eseguirà naturalmente il backup della directory ".gnupg".

Ma potresti pensare che le tue chiavi GPG siano abbastanza importanti da giustificare un backup periodico di loro stessi, o forse vuoi copiare le tue chiavi dal tuo desktop al tuo laptop in modo da averle su entrambe le macchine. Sei tu su entrambe le macchine, dopotutto.

Determinazione di quali chiavi eseguire il backup

Possiamo chiedere a gpg di dirci quali chiavi sono presenti nel tuo sistema GPG. Useremo le opzioni --list-secret-keys e --keyid-format LONG .

 gpg --list-secret-keys --keyid-format LONG 

Elencare i dettagli della chiave GPG nella finestra del terminale

Ci è stato detto che GPG sta cercando all'interno del file "/home/dave/.gnupg/pubring.kbx".

Niente di ciò che appare sullo schermo è la tua vera chiave segreta.

  • La riga "sec" (segreta) mostra il numero di bit nella crittografia (4096 in questo esempio), l'ID chiave, la data di creazione della chiave e "[SC]". La "S" significa che la chiave può essere utilizzata per le firme digitali e la "C" significa che può essere utilizzata per la certificazione.
  • La riga successiva è l'impronta digitale della chiave.
  • La riga "uid" contiene l'ID del proprietario della chiave.
  • La riga "ssb" mostra la sottochiave segreta, quando è stata creata, e "E". La "E" indica che può essere utilizzata per la crittografia.

Se hai creato più coppie di chiavi da utilizzare con identità diverse, verranno elencate anche loro. C'è solo una coppia di chiavi di cui eseguire il backup per questo utente. Il backup includerà tutte le chiavi pubbliche appartenenti ad altre persone che il proprietario di questa chiave ha raccolto e ha deciso di fidarsi.

Backup

Possiamo chiedere a gpg di eseguire il backup di tutte le chiavi per tutte le identità o di eseguire il backup delle chiavi associate a una singola identità. Eseguiremo il backup della chiave privata, della chiave segreta e del file del database di fiducia.

Per eseguire il backup delle chiavi pubbliche, utilizzare l'opzione --export . Utilizzeremo anche le --export-options backup options. Ciò garantisce che tutti i metadati specifici di GPG siano inclusi per consentire la corretta importazione dei file su un altro computer.

Specificare un file di output con l'opzione --output . Se non lo avessimo fatto, l'output sarebbe stato inviato alla finestra del terminale.

 gpg --export --export-options backup --output public.gpg 

Esportazione delle chiavi GPG pubbliche

Se desideri eseguire il backup delle chiavi solo per una singola identità, aggiungi l'indirizzo e-mail associato alle chiavi alla riga di comando. Se non ricordi quale indirizzo email è, usa l'opzione --list-secret-keys , come descritto sopra.

 gpg --export --export-options backup --output public.gpg [email protected] 

Esportazione delle chiavi GPG pubbliche per una singola identità

Per eseguire il backup delle nostre chiavi private, dobbiamo utilizzare l'opzione --export-secret-keys invece dell'opzione --export . Assicurati di salvarlo in un altro file.

 gpg --export-secret-keys --export-options backup --output private.gpg 

Esportazione delle chiavi GPG private

Poiché questa è la tua chiave privata, dovrai autenticarti con GPG prima di poter procedere.

Nota che non ti viene richiesta la password . Quello che devi inserire è la passphrase che hai fornito quando hai creato le tue chiavi GPG per la prima volta. I buoni gestori di password ti consentono di conservare informazioni del genere come note sicure. È un buon posto per conservarli.

Fornire la passphrase GPG per esportare le chiavi private

Se la passphrase viene accettata, viene eseguita l'esportazione.

Per eseguire il backup delle tue relazioni di fiducia, dobbiamo esportare le impostazioni dal tuo file "trustdb.gpg". Stiamo inviando l'output a un file chiamato "trust.gpg". Questo è un file di testo. Può essere visualizzato utilizzando cat .

 gpg --export-ownertrust > trust.gpg
 cat trust.gpg 

Esportazione delle relazioni di fiducia GPG

Ecco i tre file che abbiamo creato.

 ls -hl *.gpg 

I tre file creati dai comandi di esportazione

Li sposteremo su un altro computer e li ripristineremo. Questo stabilirà la nostra identità su quella macchina e ci consentirà di utilizzare le nostre chiavi GPG esistenti.

Se non stai spostando le chiavi su un altro computer e ne stai solo eseguendo il backup perché vuoi essere doppiamente sicuro che siano al sicuro, copiale su un altro supporto e salvale in modo sicuro. Anche se cadono nelle mani sbagliate, la tua chiave pubblica è comunque pubblica, quindi non c'è nulla di male. E senza la tua passphrase, la tua chiave privata non può essere ripristinata. Tuttavia, mantieni i tuoi backup al sicuro e privati.

Abbiamo copiato i file su un computer Manjaro 21.

 ls *.gpg 

I file esportati sono stati trasferiti su un computer Manjaro

Per impostazione predefinita, Manjaro 21 utilizza la shell Z, zsh , motivo per cui ha un aspetto diverso. Ma questo non importa, non influirà su nulla. Quello che stiamo facendo è governato dal programma gpg , non dalla shell.

Per importare le nostre chiavi, dobbiamo usare l'opzione --import .

 gpg --import public.gpg 

Importazione delle chiavi GPG pubbliche

I dettagli della chiave vengono visualizzati durante l'importazione. Anche il file "trustdb.gpg" viene creato per noi. Importare la chiave privata è altrettanto facile. Usiamo di nuovo l'opzione --import .

 gpg --import private.gpg 

Importazione delle chiavi GPG private

Ci viene richiesto di inserire la passphrase.

Immissione della passphrase per importare le chiavi GPG private

Digitalo nel campo "Passphrase", premi il tasto "Tab" e premi "Invio".

Conferma delle chiavi GPG private importate

Vengono visualizzati i dettagli delle chiavi importate. Nel nostro caso, abbiamo solo una chiave.

Per importare il nostro database di fiducia, digita:

 gpg --import-ownertrust trust.gpg 

Importazione delle relazioni di fiducia GPG

Possiamo controllare che tutto sia stato importato correttamente usando l'opzione --list-secret-keys ancora una volta.

 gpg --list-secret-keys --keyid-format LONG 

La verifica dell'importazione ha funzionato

Questo ci dà esattamente lo stesso output che abbiamo visto in precedenza sul nostro computer Ubuntu.

Proteggi la tua privacy

Assicurati che le tue chiavi GPG siano al sicuro eseguendo il backup. Se si verifica un disastro informatico o semplicemente si esegue l'aggiornamento a un modello più recente, assicurarsi di sapere come trasferire le chiavi sulla nuova macchina.

CORRELATI: Come eseguire il backup del tuo sistema Linux con rsync