GNU/Linux >> Linux Esercitazione >  >> Linux

Utilizzo di GPG per crittografare e decrittografare file su Linux [Hands-on for Beginners]

GnuPG, popolarmente noto come GPG, è uno strumento estremamente versatile, ampiamente utilizzato come standard del settore per la crittografia di elementi come e-mail, messaggi, file o qualsiasi cosa tu debba inviare a qualcuno in modo sicuro.

È facile iniziare a utilizzare GPG e puoi iniziare a usarlo in pochi minuti.

In questo tutorial, ti mostrerò come crittografare e decrittografare i file con GPG. Questo è un semplice tutorial e puoi provarlo tutto per esercitarti anche sul tuo sistema Linux. Questo ti aiuterà a esercitarti con i comandi GPG e a capirlo quando sei assolutamente nuovo.

Leggi prima l'intero tutorial e poi inizia a farlo da solo.

Come funziona GPG per la crittografia?

Per iniziare a utilizzare GPG, devi prima disporre di una chiave GPG.

Una chiave GPG è ciò che utilizzerai per crittografare (o decrittografare) i file più avanti nel tutorial. È anche ciò che viene utilizzato per identificarti, con elementi come il tuo nome e l'e-mail legati alla chiave.

Le chiavi GPG funzionano utilizzando due file, una chiave privata e una chiave pubblica. Queste due chiavi sono collegate tra loro e sono entrambe necessarie per utilizzare tutte le funzionalità di GPG, in particolare la crittografia e la decrittografia dei file.

Quando si crittografa un file con GPG, utilizza la chiave privata. Il nuovo file crittografato può quindi solo essere decrittografato con la chiave pubblica abbinata.

La chiave privata è concepita per essere archiviata in un modo indicato direttamente nel suo nome, privatamente e non ceduta a nessuno.

La chiave pubblica, invece, è pensata per essere data ad altri oa chiunque tu voglia essere in grado di decrittografare i tuoi file.

È qui che entra in gioco l'approccio principale di GPG per la crittografia. Ti consente di crittografare i file localmente e quindi consentire ad altri di essere sicuri che i file che hanno ricevuto siano stati effettivamente inviati da te. Come unico modo potranno decodificare il file è con tuo chiave pubblica, che funzionerebbe solo se il file fosse crittografato usando tuo in primo luogo la chiave privata.

Funziona anche nella direzione opposta! Altre persone possono crittografare i file utilizzando la tua chiave pubblica e l'unico modo in cui sarà possibile decrittografarli è con la tua chiave privata. Consentendo così ad altri di pubblicare file pubblicamente senza preoccuparsi delle persone oltre a poterli leggere.

In altre parole, se un file è stato crittografato con una chiave privata, può essere decrittografato solo con la chiave pubblica corrispondente. E se un file è stato crittografato con una chiave pubblica, può essere decrittografato solo con la chiave privata corrispondente.

Stai già utilizzando GPG senza rendertene conto

Uno degli esempi più comuni di utilizzo di GPG è nel gestore di pacchetti Linux, in particolare i repository esterni. Aggiungi la chiave pubblica dello sviluppatore alle chiavi attendibili del tuo sistema. Lo sviluppatore firma i pacchetti (genera una firma) con la sua chiave privata. Poiché il tuo sistema Linux ha il file pubblico, capisce che il pacchetto proviene effettivamente dallo sviluppatore fidato.

Un certo numero di servizi crittografati utilizza una sorta di implementazione GPG sottostante senza che tu te ne accorga. Ma è meglio non entrare in questi dettagli in questo momento.

Ora che hai un po' di familiarità con il concetto, vediamo come puoi utilizzare GPG per crittografare un file e quindi utilizzarlo per decrittografarlo.

Crittografia e decrittografia di file con GPG

Questo è uno scenario molto semplicistico. Presumo che tu abbia un solo sistema e vuoi vedere come funziona GPG. Non stai inviando i file a un altro sistema. Crittografa il file e poi lo decrittografa sullo stesso sistema.

Naturalmente, questo non è un caso d'uso pratico, ma non è nemmeno lo scopo di questo tutorial. Il mio obiettivo è farti familiarizzare con i comandi e il funzionamento di GPG. Successivamente, puoi utilizzare questa conoscenza in una situazione del mondo reale (se necessario). E per questo, ti mostrerò come condividere la tua chiave pubblica con gli altri.

Fase 1:installazione di GPG

GPG può essere trovato nella maggior parte dei repository della distribuzione pronti all'uso.

Sui sistemi basati su Debian e Ubuntu, installa il pacchetto gpg:

sudo apt install gpg

Se utilizzi distribuzioni basate su Arch, installa il pacchetto gnupg con il comando pacman:

sudo pacman -S gnupg

Fase 2:generazione di una chiave GPG

La generazione di una chiave GPG sul tuo sistema è una semplice procedura con un solo comando.

Basta eseguire il comando seguente e la tua chiave verrà generata (puoi utilizzare le impostazioni predefinite per la maggior parte delle domande come mostrato nelle sezioni sottolineate di seguito):

gpg --full-generate-key

Controllo della chiave GPG

Puoi quindi vedere che la chiave privata e la chiave pubblica sono entrambe legate l'una all'altra da quell'ID mostrato in pub utilizzando i –list-secret-keys e –list-public-keys rispettivamente comandi:

Fase 3:crittografia di un file con GPG

Ora che hai impostato le nostre chiavi GPG, puoi iniziare a crittografare i nostri file!

Utilizzare il comando seguente per crittografare i file:

gpg --encrypt --output file.gpg --recipient [email protected] file

Esaminiamo rapidamente cosa fa quel comando:

Per prima cosa hai specificato –encrypt opzione. Questo dice semplicemente a GPG che crittograferemo un file.

Successivamente, hai specificato –output file.gpg . Può essere qualsiasi cosa, anche se in genere è il nome del file che stai crittografando più un .gpg estensione (quindi message.txt diventerebbe message.txt.gpg ).

Quindi, digita –destinatario [email protected] . Questo specifica l'e-mail per una chiave GPG corrispondente che in realtà non esiste ancora del tutto su questo sistema.

Ancora confuso?

Il modo in cui funziona è che l'e-mail che specifichi qui deve essere legata a una chiave pubblica sul tuo sistema locale.

In genere, questo proverrà dalla chiave GPG pubblica di un'altra persona, che è ciò con cui crittograferai il tuo file. Dopodiché, il file potrà essere decrittografato solo con la chiave privata di quell'utente.

Userò la mia chiave GPG precedente con [email protected] in questo esempio. Pertanto, la logica sarebbe che sto crittografando il file con il pubblico chiave di h[email protected] , che sarà quindi in grado di essere decrittografato solo con il privato chiave di [email protected] .

Avresti solo la chiave pubblica se stessi crittografando un file per qualcun altro, ma poiché stai crittografando il file per te stesso, hai entrambe le chiavi sul tuo sistema.

Infine, devi semplicemente specificare il file che intendi crittografare. Per questo esempio, utilizziamo un file denominato message.txt con il seguente contenuto:

We're encrypting with GPG!

Allo stesso modo, se l'email era [email protected] , il nuovo comando GPG sarebbe il seguente:

gpg --encrypt --output message.txt.gpg --recipient [email protected] message.txt

Se poi provi a leggere il file, vedrai che sembra incomprensibile. Ciò è previsto perché il file è ora crittografato:

Ora eliminiamo il file message.txt non crittografato in modo da poter vedere che il file message.txt.gpg viene effettivamente decrittografato correttamente senza il file originale:

Fase 4:decifrare il file crittografato con GPG

Infine, decidiamo effettivamente il messaggio crittografato. Puoi farlo usando il seguente comando:

gpg --decrypt --output file file.gpg

Passando attraverso l'argomento qui, specifichiamo prima –decrypt , che dice a GPG che stai per decifrare un file.

Successivamente, inserisci –output file, che dice semplicemente a GPG in quale file salverai la forma crittografata del nostro file dopo averlo decrittografato.

Infine, inserisci file.gpg , che è solo il percorso del tuo file crittografato.

Seguendo l'esempio, il comando che userei sarebbe il seguente:

gpg --decrypt --output message.txt message.txt.gpg

E voilà, hai finito! Questo è tutto quando vuoi crittografare e decrittografare file con GPG.

L'unica altra cosa che potresti voler sapere è come condividere le tue chiavi pubbliche con altri in modo che possano crittografare i file prima di inviarli a te.

Invio e ricezione di chiavi GPG

Per inviare a qualcuno una chiave GPG, devi prima esportarla dal tuo portachiavi , che contiene tutte le tue chiavi pubbliche e private.

Per esportare una chiave, trova semplicemente l'ID chiave nel tuo portachiavi, quindi esegui il comando seguente, sostituendo id con l'ID della chiave e key.gpg con il nome del file in cui vuoi salvare:

gpg --output key.gpg --export id

Per importare una chiave, è sufficiente fornire il file di output (dal comando precedente) all'altro utente e quindi fargli eseguire il seguente comando:

gpg --import key.gpg

Per utilizzare normalmente la chiave, tuttavia, dovrai verificarla in modo che GPG la consideri correttamente attendibile.

Questo può essere fatto eseguendo il –edit-key comando sul sistema dell'altro utente, dopo aver firmato la chiave:

Per prima cosa esegui gpg --edit-key id :

Quindi, esegui fpr comando, che mostrerà l'impronta digitale per la chiave. L'output di questo comando deve essere convalidato rispetto all'output sul tuo computer, che può essere trovato eseguendo lo stesso –edit-key comando sul tuo sistema:

Se tutto corrisponde, esegui semplicemente il segno comando e tutto sarà pronto per l'uso:

Questo è tutto! L'altro utente può ora iniziare a crittografare i file con la tua chiave pubblica proprio come hai fatto in precedenza, assicurandoti che siano leggibili solo da te quando li decidi con la tua chiave privata.

E queste sono tutte le basi di GPG!

Conclusione

Ora hai esaminato tutto ciò di cui hai bisogno per iniziare a utilizzare GPG, inclusa la crittografia dei file per te e per gli altri. Come accennato in precedenza, questo serve solo per capire come funziona il processo di crittografia e decrittazione GPG. Le conoscenze GPG di base che hai appena acquisito possono essere portate al livello successivo se applicate in scenari del mondo reale.

Hai bisogno di aiuto per capire qualcosa che non funziona o qualcosa che non funziona correttamente? Sentiti libero di lasciare qualsiasi cosa nei commenti qui sotto.

Articolo originale


Linux
  1. Crittografa e decrittografa i file con una passphrase su Linux

  2. Come crittografare e decrittografare file e directory utilizzando Tar e OpenSSL

  3. Utilizzo di Checkmk per il monitoraggio dell'infrastruttura del server Linux

  4. Come crittografare e decrittografare un file utilizzando GnuPG in Linux

  5. Come controllare le modifiche ai file e le esecuzioni di file in Linux

Un modo semplice per crittografare e decrittografare i file dalla riga di comando in Linux

Cryptr:una semplice utility CLI per crittografare e decrittografare i file

Come eseguire il backup e il ripristino di file utilizzando BorgBackup in Linux

Come eseguire il backup di file e directory utilizzando Rsync in Linux

40 utili comandi git per amministratori e sviluppatori Linux

Come eliminare file e directory utilizzando la riga di comando di Linux