GNU/Linux >> Linux Esercitazione >  >> Linux

Come crittografare e decrittografare un file utilizzando GnuPG in Linux

Usando il comando gpg di GnuPG puoi generare chiavi pubbliche e private. In questo tutorial, utilizzeremo le chiavi generate dal comando gpg per inviare e ricevere file crittografati e firmeremo digitalmente un file.

Crittografa un file e invialo al tuo amico

1. Importa la chiave pubblica del tuo amico

Quando vuoi inviare un file segreto al tuo amico, la prima cosa da fare è importare la chiave pubblica del tuo amico. Puoi importare la chiave pubblica dei tuoi amici da un "server chiavi" se ha esportato la loro chiave pubblica su un server chiavi.

Fare riferimento alla sezione "Esporta le tue chiavi pubbliche" nel nostro articolo Nozioni di base su GnuPG per capire come esportare la tua chiave pubblica su un server di chiavi.

Per importare la chiave pubblica da un server delle chiavi, procedere come segue. È possibile importare utilizzando uno qualsiasi dei metodi sopra indicati. Fornisci l'ID chiave o l'ID e-mail o il nome reale del tuo amico per importare correttamente le chiavi.

$ gpg --search-keys --keyserver keyserver.ubuntu.com 'KEY-ID'

or

$ gpg --search-keys --keyserver keyserver.ubuntu.com 'E-Mail ID'

or

$ gpg --search-keys --keyserver keyserver.ubuntu.com 'Real Name'

Per importare la chiave pubblica da un file, procedi come segue. Se il tuo amico ti ha inviato via e-mail la sua chiave pubblica, puoi importare quelle chiavi usando il seguente comando

$ gpg --import myfriends_pub_key.gpg

2. Verifica il server delle chiavi importato

Puoi verificare se hai importato correttamente la chiave pubblica del tuo amico usando l'opzione –list-keys

$ gpg --list-keys

/home/lakshmanan/.gnupg/pubring.gpg
-----------------------------------
pub   2048R/A7344E7D 2012-10-12
uid                  lakshmanan (My test GPG keys)
sub   2048R/96F8EF9B 2012-10-12

pub   2048R/FB2744A8 2012-12-03
uid                  raman (Ram's test ID)
sub   2048R/88EF55EE 2012-12-03

Ora ho importato la chiave pubblica del mio amico Raman.

3. Cripta un file segreto usando la chiave pubblica del tuo amico

Ora che hai la chiave pubblica del tuo amico, puoi inviargli un file, che viene crittografato utilizzando la "Chiave pubblica del tuo amico", in modo che solo il tuo amico (Chi ha la chiave privata), può decrittografarlo.

$ gpg --encrypt --recipient raman a.txt

gpg: 88EF55EE: There is no assurance this key belongs to the named user

pub  2048R/88EF55EE 2012-12-03 raman (Ram's test ID)
 Primary key fingerprint: FF32 7764 A0AE 1E85 AC4B  CF17 8AED B292 FB27 44A8
      Subkey fingerprint: D6A5 7107 77C8 6845 2F86  765C EEED DD85 88EF 55EE

It is NOT certain that the key belongs to the person named
in the user ID.  If you *really* know what you are doing,
you may answer the next question with yes.

Use this key anyway? (y/N) y

Nota che c'è un avviso che dice che non vi è alcuna garanzia che la "Chiave pubblica" appartenga al tuo amico. Ci guarderemo indietro quando il tempo lo permetterà. A partire da ora, dato che mi fido del mio fritto, ho dato "Sì" per usare la chiave.

Creerà un file chiamato "a.txt.pgp", una volta aperto utilizzando l'editor, avrà alcuni dati binari. Invia questo file al tuo amico con qualsiasi mezzo.

Se non vuoi inviare un contenuto binario, o ci sono problemi nell'invio del binario, puoi usare l'opzione –armor che crea un file ASCII come mostrato di seguito.

$ gpg --encrypt --armor --recipient raman a.txt

Decrittografa un file

Ora il tuo amico avrebbe ricevuto il tuo file crittografato. Per visualizzare il contenuto del file, deve decrittografare il file. Poiché l'operazione di decrittazione verrà eseguita utilizzando la chiave privata del tuo amico, verrà richiesta la passphrase fornita dal tuo amico durante la creazione delle chiavi.

$ gpg --decrypt a.txt.gpg > secret.txt

Ora il file secret.txt conterrà il vero testo scritto.

Invia un file crittografato a più destinatari

Puoi anche inviare un file a più destinatari utilizzando –recipient o -r

$ gpg -r raman -r steve -r gopi --encrypt a.txt

Una volta dato il comando precedente, gpg utilizzerà la chiave pubblica di tutti i destinatari per crittografare i dati in modo tale che una qualsiasi delle loro chiavi private possa decrittografare i dati.

Nel prossimo articolo di questa serie, spiegheremo come firmare il messaggio con dati e timestamp.


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. Come decomprimere il formato di file .xz in Linux usando le utility tar e xz?

  4. Come firmare digitalmente un file in Linux usando GnuPg (firme digitali)

  5. Come generare chiavi PGP usando GPG su Linux

Nozioni di base su Linux:come nascondere, bloccare, crittografare e proteggere i tuoi file su Linux

Tutto sui file tar e su come tar, untar file in Linux usando il terminale

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

RPM e GPG:come verificare i pacchetti Linux prima di installarli

Come cancellare in modo sicuro un disco e un file utilizzando il comando shred di Linux

Come crittografare file su Linux