Come crittografare e decrittografare i file utilizzando il comando GPG

Non esiste una sicurezza assoluta su Internet o su una rete. Poiché le nostre apparecchiature sono regolarmente connesse a Internet e c’è qualche comunicazione, dobbiamo proteggere le informazioni critiche che scambiamo. La crittografia sarà una gradita misura di sicurezza ogni volta che tu, la tua famiglia o i vostri partner commerciali avete bisogno di comunicare informazioni sensibili in tutto il mondo. La crittografia fornisce riservatezza, sebbene la firma associ l’identità dell’origine del messaggio a questo messaggio. Garantisce l’integrità dei dati, l’autenticazione dei messaggi e il completo non ripudio.
Principi di cifratura e firma dei messaggi
La crittografia dei messaggi rende l’intero messaggio illeggibile da chiunque tranne che dal proprietario della chiave privata corrispondente. Quando firmi un messaggio, crea un’impronta digitale per il messaggio solo per assicurarsi che il contenuto non sia stato alterato, ma non ha alcun effetto sul messaggio stesso e il messaggio non verrà mai crittografato. L’impronta digitale può essere verificata su una chiave pubblica. Questo non rende un messaggio illeggibile da nessuno, ma può verificare che il messaggio provenga realmente dal mittente e non sia stato modificato da allora. Ovviamente, questo richiede che ti fidi della chiave pubblica.
La sicurezza è fornita da chiavi private e pubbliche. Qualsiasi chiave privata ha una chiave pubblica e qualsiasi chiave pubblica ha una chiave privata, è sempre mappatura uno a uno. Stabilire una comunicazione sicura significa che hai già scambiato chiavi pubbliche con persone o organizzazioni di cui ti fidi. Pertanto, ciascuna parte ha la propria chiave privata e la chiave pubblica dell’altro utente.
Nel nostro scenario, ci sono due persone che vogliono comunicare e mettere le loro chiavi pubbliche sul server delle chiavi:
- mio_nome@linoxide.com: ID_KEY BAC361F1
- reader@linoxide.com: ID_KEY B6D7943C
Significa che mio_nome@linoxid deve importare la chiave pubblica del lettore e viceversa. Quindi lascia che gli scriva reader@linoxide.com, mio_nome@linoxide.com utilizzerà la chiave pubblica del lettore e viceversa.
$ gpg --keyserver pgp.mit.edu --search-keys reader@linoxide.com
gpg: searching for "reader@linoxide.com" from hkp server pgp.mit.edu
(1) reader <reader@linoxide.com>
4096 bit RSA key B6D7943C, created: 2017-04-01
$ gpg --keyserver pgp.mit.edu --recv-keys B6D7943C
Il mittente di un messaggio (lettore@linoxide.com) può “firmare” il messaggio con la sua chiave privata. Il destinatario (mio_nome@linoxide.com) utilizza la chiave pubblica del mittente per verificare che la firma sia effettivamente inviata dall’utente indicato. Ciò può impedire a terzi di “falsificare” l’identità di qualcuno. Aiuta inoltre a garantire che il messaggio sia stato recapitato nella sua interezza senza danni o corruzione del file.
Comando GPG per crittografare e decrittografare i file
Il processo di crittografia crea sempre un file con.gpg
o .asc extension
. Quindi dai un’occhiata all’elenco della cartella del contenuto quando finisci un comando di crittografia. Non eliminerà il file originale, quindi fai attenzione. Sulla decrittazione, se usiamo --output
parametro, il comando reindirizzerà l’output al file specificato seguendo l’opzione. Senza parametri, creerà il file decrittografato con lo stesso file crittografato ma senza .gpg
Crittografare con una chiave simmetrica
Questo metodo ti chiederà di inserire una passphrase che fornirai al destinatario per decrittografare il file
$ gpg -c file_sym
Decrittografare una crittografia simmetrica
$ gpg --output file-content file_sym.gpg
$ gpg file_sym.gpg
$ gpg -d file_sym.gpg
- Il primo comando crea un file decrittografato chiamato content-file
- il secondo comando crea il file decrittografato file_sym con l’output.
gpg -d
stampare l’output sulla console.
La decrittografia simmetrica richiederà la passphrase utilizzata per crittografare il file e restituire il file decrittografato
Crittografare con chiave pubblica per un utente specifico
La crittografia a chiave pubblica significa che hai già le chiavi pubbliche di coloro con cui vuoi comunicare. Quindi sceglierai prima il destinatario elencando le chiavi pubbliche sul tuo portachiavi in modo da utilizzare un valore di uid
per crittografare il file. --armor
parametro viene utilizzato per il messaggio ASCI blindato, non necessario per inviare il file per posta
$ gpg --encrypt --armor --recipient my_name@linoxide.com file_pub
Crittografare e firmare con chiave pubblica
Quando vuoi firmare un file da inviare, significa che tu e il tuo destinatario avete generato delle chiavi pubbliche che vi siete già scambiati. Il mittente deve conoscere la propria passphrase, che gli consente di accedere alla propria chiave privata che utilizzerà per firmare i messaggi crittografati
$ gpg --sign --encrypt --armor --recipient my_name@linoxide.com file_pub_sign
You need a passphrase to unlock the secret key for
user: "reader <reader@linoxide.com>"
guarda questo lettore@linoxid hanno bisogno della propria passphrase per firmare il file crittografato che invieranno a my_name@linoxide.com
Crittografare più file con chiave pubblica
Per crittografare più file, ci sono due parametri che utilizziamo: --encrypt-files
o --multifile
(richiesto seguito da –encrypt). Puoi vedere che non usiamo --sign
parametro. Durante il mio test, non sembrano funzionare insieme.
$ gpg --encrypt-files --armor --recipient my_name@linoxide.com course car
$ gpg --multifile --encrypt --armor --recipient my_name@linoxide.com course car
Decrittare con chiave privata
Quando si crittografa un file con la chiave pubblica del destinatario, lo si invia al destinatario tramite un percorso di comunicazione. Per decrittografare il file ricevuto, utilizzerà la chiave privata (a cui fa riferimento la propria passphrase) corrispondente alla propria chiave pubblica utilizzata per crittografare il file. Per decrittografare un file crittografato in contenuto digitale o meno, il comando è lo stesso che vedi di seguito
$ gpg file_pub.asc
You need a passphrase to unlock the secret key for
user: "my_name (my-key-pair) <my_name@linoxide.com>"
$ gpg file_pub_sign.asc
You need a passphrase to unlock the secret key for
user: "my_name (my-key-pair) <my_name@linoxide.com>"
$ gpg --decrypt-files course.asc car.asc
L’ultimo comando decrittografa più file
Crittografare la posta elettronica
Per crittografare e firmare la tua email, potresti scrivere il messaggio in un file, usare gpg per crittografarlo e firmarlo con i metodi che abbiamo visto, e inviarlo normalmente. Il tuo destinatario deve avere la tua chiave pubblica per decifrare il tuo messaggio.
Puoi anche installare enigmail che può essere utilizzato per crittografare le e-mail da thunderbird utilizzando la chiave pubblica del destinatario che hai
# apt-get install enigmail
Avvia thunderbird, avvierà la procedura guidata di configurazione di enigmail:
- Come ti piace configurare enigmail: configurazione estesa
- creare o importare chiavi opengpg: importare chiavi pubbliche e segrete esistenti
- importa chiavi opengpg: scegliere il file della chiave pubblica e privata situato in /home/nomeutente/.gnupg/. Scegliere Pubertà e fusibile File.
- selezione chiave: selezionare i destinatari chi riceverà l’e-mail crittografata: reader@linoxide.com

Ora che la configurazione è completa, puoi scrivere un nuovo messaggio al destinatario utilizzando thunderbird.
Vedrai che la crittografia verrà abilitata automaticamente quando scegli lo stesso destinatario per l’e-mail.
Conclusione
Ora sai come crittografare i file e firmare un documento usando gpg in Linux. Per una buona sicurezza, dovresti verificare che la chiave pubblica che ricevi provenga esattamente da qualcuno che conosci prima di aggiungerla al tuo portachiavi pubblico.