Ghost in the Machines
Il Settembre 23, 2021 da adminUtilizzo il software GPG (noto anche come GnuPG) per crittografare i file che contengono informazioni sensibili (soprattutto password). Come ingegnere di sistemi, faccio la maggior parte del mio lavoro su server remoti, accessibili tramite interfaccia a riga di comando. Naturalmente, trovo più facile usare la versione a riga di comando di GPG per cifrare e decifrare direttamente i documenti.
GPG (GNU Privacy Guard) è una versione open source gratuita del software di cifratura PGP (Pretty Good Privacy). Concettualmente, entrambi usano lo stesso approccio alla crittografia (cioè crittografia e decrittografia). Tuttavia, ognuno è unicamente diverso nella sua implementazione.
Quello che segue è una rapida introduzione su come installare gli strumenti della linea di comando GPG, così come una lista di comandi di base di cui probabilmente avrete bisogno.
Installazione di GPG
GPG può essere installato in diversi modi. Le istruzioni qui riportate installeranno gli strumenti GPG di base a riga di comando, che sono destinati ad essere usati in un terminale.
Se, d’altra parte, si preferisce un’interfaccia grafica (o GUI) per accedere alle funzionalità di GPG (ad esempio la cifratura delle comunicazioni via e-mail, o la cifratura di documenti in un editor di testo con GUI), fare riferimento ai link alla fine di questo articolo.
Red Hat / CentOS
yum install gnupg
Ubuntu / Debian
apt-get install gnupg
Mac OS X
Il modo più semplice per installare gli strumenti GPG a riga di comando sul tuo Mac è installare prima Homebrew, un sistema di gestione dei pacchetti che rende disponibili migliaia di pacchetti software da installare sul tuo Mac.
Apri una finestra del Terminale (menu Applicazioni > Utilità), poi inserisci il seguente comando.
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew install gnupg
GPG Quick How To
Quella che segue è una breve introduzione all’uso della riga di comando di GPG. Pensatelo come un “riferimento rapido” o un “foglio di istruzioni”. Dovreste certamente imparare di più su GPG rispetto a quanto spiegato in questo post. Il suo scopo è solo quello di farvi iniziare. Se vi aspettate di usare GPG più estesamente, vi consiglio vivamente di leggere altra documentazione (vedi la sezione Link qui sotto).
GPG è un potente software di crittografia, ma può anche essere facile da imparare – una volta comprese alcune nozioni di base. GPG usa un metodo di crittografia noto come crittografia a chiave pubblica, che fornisce una serie di vantaggi e benefici. Tuttavia, per ottenere questi vantaggi, è necessario un livello minimo di complessità per far funzionare il tutto. Per una panoramica su come funziona la crittografia a chiave pubblica, leggi l’Introduzione alla crittografia (link in fondo a questo post).
Convenzioni tipografiche usate nei comandi:
In tutti gli esempi che seguono, il testo che dovrai sostituire con i tuoi valori (ad esempio nomi utente, indirizzi email, nomi di file) è mostrato in “grigio corsivo”. Il testo che digiterai letteralmente (invariato) è indicato con “nero a larghezza costante”.
"gray italic""black constant width"
Crea la tua chiave GPG:
Per iniziare con GPG, devi prima generare la tua coppia di chiavi. Cioè, genererai sia una chiave privata che una pubblica con un singolo comando. Inserisci il tuo nome e il tuo indirizzo email ai prompt, ma altrimenti accetta le opzioni predefinite.
gpg --gen-key
La prima chiave è la tua chiave privata (o segreta). Devi tenere questa chiave privata al sicuro in ogni momento, e non devi condividerla con nessuno. La chiave privata è protetta da una password. Cerca di fare la password più lunga possibile, ma qualcosa che non dimenticherai. Se dimenticate la password, non c’è modo di recuperarla. Per lo stesso motivo, dovreste anche fare una copia di backup della vostra chiave privata. (Considera di usare Time Machine per i backup su Mac OS X.)
La seconda chiave è la tua chiave pubblica, che puoi tranquillamente condividere con altre persone.
La relazione della chiave privata e pubblica è in realtà molto semplice. Qualsiasi cosa che viene criptata usando la chiave pubblica può essere decriptata solo con la relativa chiave privata. Pertanto, voi fornirete la vostra chiave pubblica ad un’altra persona, e questa vi fornirà la sua chiave pubblica. Qualsiasi cosa criptata con la vostra chiave pubblica può essere decriptata solo da voi. Qualsiasi cosa criptata con la chiave pubblica dell’altra persona può essere decriptata solo dall’altra persona.
Esporta la tua chiave pubblica:
Il prossimo passo è esportare la tua chiave pubblica e condividerla con un’altra persona. Quella persona dovrebbe fare lo stesso, ed esportare la sua chiave pubblica.
gpg --export --armor [email protected] > mypubkey.asc
Importa la chiave pubblica di un’altra persona:
Quando importi una chiave pubblica, la stai mettendo in quello che viene comunemente chiamato il tuo “portachiavi” GPG.”
Elenco delle chiavi pubbliche nel tuo portachiavi:
Puoi ora visualizzare una lista di chiavi pubbliche nel tuo portachiavi, così come il nome e l’indirizzo email associato ad ogni chiave.
gpg --list-keys
Elenco delle chiavi private nel tuo portachiavi:
Il seguente comando elencherà le chiavi private nel tuo portachiavi. Questo mostrerà la tua chiave privata, che hai creato in precedenza.
gpg --list-secret-keys
Affidare una chiave pubblica:
Una volta importata la chiave pubblica dell’altra persona, devi ora impostare il livello di fiducia della chiave. Questo evita che GPG vi avverta ogni volta che cifrate qualcosa con quella chiave pubblica.
Specificate il nome o l’email dell’altra persona nel comando.
gpg --edit-key glenntrust (invoke trust subcommand on the key)5 (ultimate trust)y (if prompted)quit
Comandi GPG utili
GPG ha molte opzioni, molte delle quali non vi serviranno mai. Ecco una rapida lista dei comandi più utili di cui probabilmente avrete bisogno.
Criptare un file:
Per criptare un file chiamato nomefile.txt per un singolo individuo, specificatelo come destinatario.
gpg --encrypt --recipient glenn filename.txt
Questo creerà un nuovo file criptato chiamato nomefile.txt.gpg.
Se vuoi criptare un file in modo che solo tu possa decriptarlo, allora specifica te stesso come destinatario.
gpg --encrypt --recipient 'my_name' filename.txt
Se vuoi cifrare un file in modo che sia tu che un’altra persona possiate decifrarlo, specifica sia te che l’altra persona come destinatari.
gpg --encrypt --recipient glenn --recipient 'my_name' filename.txt
Se vuoi cifrare un file per un gruppo di persone, definisci il gruppo nel tuo file gpg.conf (vedi sezione sotto), e poi specificare il gruppo come destinatario.
gpg --encrypt --recipient journalists filename.txt
Dopo un po’, vorrete essere più concisi e usare la versione breve delle opzioni della riga di comando. Ecco lo stesso comando.
gpg -e -r journalists filename.txt
Decodifica un file su terminale (standard output):
La prima versione di questo comando visualizzerà il contenuto di un file all’interno della finestra del terminale stesso.
gpg --decrypt filename.txt.gpg
Usa l’opzione --decrypt
solo se il file è un file di testo ASCII. Se è un file binario, allora ometti l’opzione --decrypt
, che scriverà il file decrittato sul disco. A quel punto, puoi aprire il file binario in qualsiasi applicazione sia usata per visualizzare il file.
Decifra un file su disco:
A prescindere dal fatto che il file sia ASCII o binario, se vuoi apportare modifiche al contenuto di un file criptato, devi prima decifrarlo, fare le tue modifiche e poi ricifrare il file. Come ho detto nel paragrafo precedente, si scrive la versione decriptata di un file su disco, omettendo l’opzione --decrypt
dal comando.
gpg filename.txt.gpg
Se il file criptato si chiamava nomefile.txt.gpg, il comando precedente creerà una versione decriptata chiamata nomefile.txt (con l’estensione .gpg rimossa).
Crea gruppi di persone nel tuo file di configurazione GPG
Per comodità, puoi predefinire un gruppo di persone nel tuo file di configurazione GPG. Questo ha il vantaggio di permettervi di crittografare un file per ogni membro del gruppo specificando solo il nome del gruppo come destinatario, piuttosto che specificare noiosamente ogni singolo membro del gruppo.
La vostra configurazione del software GPG è memorizzata nella vostra home directory nel file ~/.gnupg/gpg.conf
. Modifica questo file usando il tuo editor di testo a riga di comando preferito (vim, nano, pico, emacs, ecc.). Mentre ci sono numerose impostazioni disponibili nel file di configurazione, vai alla sezione relativa alla definizione dei gruppi.
Quando si definisce un gruppo, si elencano i membri del gruppo. Ogni membro è referenziato da qualche attributo della sua chiave pubblica trovata nel tuo portachiavi GPG – tipicamente il nome di una persona (o un nome parziale, come il nome o il cognome) o un indirizzo email (o un indirizzo email parziale).
Se sei un membro del gruppo, ricordati di includerti nel gruppo! Se non ti elenchi nel gruppo, non sarai in grado di decifrare qualsiasi file che cripti nel gruppo.
Ecco un esempio di un gruppo chiamato “giornalisti”, che elenca il nome di ogni persona.
group journalists = glenn laura ewan barton
Dove andare da qui
Ti incoraggio ad imparare di più su GPG. Vedi i link qui sotto.
Potresti anche voler conoscere i metodi sicuri per cancellare i file dal disco rigido del tuo computer. Mac OS X ha l’opzione “Secure Empty Trash” nel Finder. Ci sono anche numerosi strumenti di terze parti che puoi installare.
Siccome siamo in tema di imparare come usare GPG nella riga di comando, potresti voler provare “bcwipe” – un programma per cancellare in modo sicuro i file dalla riga di comando.
Su Mac OS X, puoi installare bcwipe tramite Homebrew.
brew install bcwipe
Links
Generale
- Introduzione alla crittografia (PDF)
- Sito web del software GnuPG
- GnuPG su Wikipedia
- Homebrew (gestore di pacchetti per Mac OS X)
Strumenti GUI
- GPG Suite (GUI per Mac OS X)
- Come usare GPG Suite su Mac OS X (Electronic Frontier Foundation)
- Gpg4win (GUI per Windows)
- Come usare Gpg4Win su Windows (Electronic Frontier Foundation)
Lascia un commento