From ccf573732d80897998dc7b603e84c308dd416bd1 Mon Sep 17 00:00:00 2001 From: freebird Date: Tue, 9 Jun 2020 11:59:14 +0200 Subject: [PATCH] Aggiorna 'docs/GnuPG/GPG(GnuPG)-main-commands.md' --- docs/GnuPG/GPG(GnuPG)-main-commands.md | 67 ++++++++++++++------------ 1 file changed, 35 insertions(+), 32 deletions(-) diff --git a/docs/GnuPG/GPG(GnuPG)-main-commands.md b/docs/GnuPG/GPG(GnuPG)-main-commands.md index 77c2b8a..ed0a365 100644 --- a/docs/GnuPG/GPG(GnuPG)-main-commands.md +++ b/docs/GnuPG/GPG(GnuPG)-main-commands.md @@ -102,22 +102,25 @@ Una buona regola è avere più copie del file cifrato del password manager archi Apriamo il Terminale della nostra distro Linux ed iniziamo con un pò di pratica - >_ + mio@pc:~$ Negli esempi che seguono, immagina che la tua mail sia "mia@mail.org" e che hai un'amica che si chiama Lea con la quale vuoi comunicare in modo riservato. La mail di Lea è lea@mail.org. Lea, che è una tosta (e sta sempre un passo avanti a noi!) ha già una chiave GPG collegata alla sua mail, la cui fingerprint (cioè l'impronta digitale della sua chiave) è "5678EFGH5678EFGH5678EFGH5678EFGH5678EFGH". **I comandi che seguono quindi sono basati su questo esempio, tu dovrai sostituire tutte le parti contenute tra " " con i tuoi dati reali, per esempio... il comando:** - >_ gpg --output "mia"-revoke.asc --gen-revoke "mia@mail.org" + + mio@pc:~$ gpg --output "mia"-revoke.asc --gen-revoke "mia@mail.org" + **poterbbe diventare**: - >_ gpg --output alice-revoke.asc --gen-revoke alice@bruttocarattere.org + + mio@pc:~$ gpg --output alice-revoke.asc --gen-revoke alice@bruttocarattere.org ### 4.1 - Generiamo la nostra chiave GPG completa [completa significa: chiave pubblica (pub) + chiave privata (sec) + certificato di revoca] - >_ gpg --full-generate-key + mio@pc:~$ gpg --full-generate-key Verrà richiesto di selezionare un tipo di crittografia da un menu. A meno che non si abbia una buona ragione per non farlo, digitare '**1**' e premere Invio. L'opzione 1 di default, attiva la generazione di sottochiavi RSA che permettono non solo di firmare/crittografare le e-mail, ma anche i files. È necessario inoltre, scegliere una lunghezza in bit (tra 1024 e 4096) per le chiavi di crittografia, o premendo **Invio** si accetta l'impostazione predefinita visualizzata. Più la chiave è lunga, più è difficile da decifrare in caso di tentativo di attacco. @@ -134,7 +137,7 @@ La chiave sarà generata, salvata nel keyring (portachiavi) del nostro pc e verr ### 4.2 - Generiamo una copia del certificato di revoca (utile per archiviazione) - >_ gpg --output "mia"-revoke.asc --gen-revoke "mia@mail.org" + mio@pc:~$ gpg --output "mia"-revoke.asc --gen-revoke "mia@mail.org" Ci verrà chiesto il motivo della richiesta del certificato di revoca, se non c'è uno dei motivi elencati scegli **0** e prosegui. Sarà così generato il file "mia-revoke.asc" @@ -145,7 +148,7 @@ Sarà così generato il file "mia-revoke.asc" Se condividiamo il pc con altre persone o semplicemente perché questo ci fa dormire più tranquilli, possiamo cambiare i permessi di accesso al file del certificato di revoca impedendone, di fatto, l'utilizzo ad altri utenti mediante il comando chmod [**-▸**][9] Rimuoviamo dal certificato tutte le autorizzazioni oltre alle nostre. - >_ chmod 600 ~/"mia"-revoke.asc + mio@pc:~$ chmod 600 ~/"mia"-revoke.asc #### 4.2.2 - Esportiamo la nostra chiave PRIVATA (sec) in un file utilizzando l'ID della chiave @@ -154,7 +157,7 @@ Ad esempio, ipotizziamo che la nostra chiave abbia questa fingerprint "1234 ABCD **Attenzione**: la chiave privata/segreta dobbiamo averla solo noi (non va data **MAI** a nessunx) e **non deve essere pubblicata**. Deve essere conservata in modo sicuro come la passphrase, ad esempio su un dispositivo (HD o chiavetta) crittografato. Ed è una buona regola averne più di una copia, su dispositivi (**sicuri**) ed in luoghi diversi. - >_ gpg --export-secret-keys --armor "1234ABCD1234ABCD" "secret".asc + mio@pc:~$ gpg --export-secret-keys --armor "1234ABCD1234ABCD" "secret".asc #### 4.2.3 - Esportiamo la chiave PUBBLICA (pub) in un file @@ -163,11 +166,11 @@ A tale scopo, utilizzeremo l'opzione --export, che deve essere seguita dall'indi L'opzione --output deve essere seguita dal nome del file in cui si desidera esportare la chiave. L'opzione --armor consente a gpg di generare un output con armatura ASCII anziché un file binario. - >_ gpg --output ~/"mia.key" --armor --export "mia@mail.org" + mio@pc:~$ gpg --output ~/"mia.key" --armor --export "mia@mail.org" ##### 4.2.3.1 - Ora guardiamo il contenuto del file esportato - >_ less "mia.key" + mio@pc:~$ less "mia.key" per uscire dalla visualizzazione digitare '**q**'. @@ -177,7 +180,7 @@ per uscire dalla visualizzazione digitare '**q**'. #### 4.3.1 - Esportiamo la chiave pubblica su un key-server remoto utilizzando la fingerprint della nostra chiave - >_ gpg --send-keys --keyserver https://pgp.mit.edu "1234ABCD1234ABCD1234ABCD1234ABCD1234ABCD" + mio@pc:~$ gpg --send-keys --keyserver https://pgp.mit.edu "1234ABCD1234ABCD1234ABCD1234ABCD1234ABCD" (la fingerprint è l'impronta digitale della chiave. Per saperne di più [**-▸**][10]) @@ -186,22 +189,22 @@ per uscire dalla visualizzazione digitare '**q**'. #### 4.4.1 - Se Lea ci ha già passato la sua chiave in un file (es. Lea.key) - >_ gpg --import "Lea.key" + mio@pc:~$ gpg --import "Lea.key" #### 4.4.2 - Se invece dobbiamo cercarla su un key-server remoto (ce ne sono tanti qui ne citiamo solo uno come esempio) utilizziamo il suo indirizzo mail associato alla chiave - >_ gpg --keyserver https://pgp.mit.edu --search-keys "lea@mail.org" + mio@pc:~$ gpg --keyserver https://pgp.mit.edu --search-keys "lea@mail.org" #### 4.4.3 - Oppure la cerchiamo su un key-server remoto tramite l'ID - >_ gpg --recv-keys "0x5678EFGH5678EFGH" + mio@pc:~$ gpg --recv-keys "0x5678EFGH5678EFGH" ### 4.5 - Verifichiamo e firmiamo la chiave di Lea: #### 4.5.1 - Verificare la fingerprint (per confrontarla con quella che ci ha comunicato Lea) - >_ gpg --fingerprint "lea@mail.org" + mio@pc:~$ gpg --fingerprint "lea@mail.org" #### 4.5.2 - Firmiamo la chiave (solo se siamo certi che appartenga realmente a Lea) @@ -209,7 +212,7 @@ L'impronta digitale di una chiave va verificata preferibilmente con il proprieta Ciò può essere fatto di persona (consigliato), per telefono o attraverso un qualsiasi altro mezzo con il quale sia possibile garantire che si sta comunicando con il vero possessore della chiave. Se l'impronta digitale è la stessa che il possessore della chiave detiene, allora si può essere sicuri della sua autenticità. - >_ gpg --sign-key "lea@mail.org" + mio@pc:~$ gpg --sign-key "lea@mail.org" @@ -235,11 +238,11 @@ Un altro tool disponibile per la gestione delle chiavi (ma non delle email) sui per installarlo (se non lo avete già fatto) - >_ sudo apt install seahorse + mio@pc:~$ sudo apt install seahorse lo si lancia da riga di comando - >_ seahorse + mio@pc:~$ seahorse e permette di eseguire con l'ausilio di un'interfaccia grafica, le operazioni più comuni compresa la sincronizzazione del proprio keyring (il portachiavi) con i key-server remoti. @@ -251,15 +254,15 @@ e permette di eseguire con l'ausilio di un'interfaccia grafica, le operazioni pi #### 6.1.1 - Per vedere la lista delle chiavi pubbliche (pub) - >_ gpg -k + mio@pc:~$ gpg -k #### 6.1.2 - Per vedere la lista delle chiavi private (sec) - >_ gpg -K + mio@pc:~$ gpg -K oppure - >_ gpg --list-secret-keys --keyid-format LONG + mio@pc:~$ gpg --list-secret-keys --keyid-format LONG ### 6.2 - Aggiorniamo periodicamente le chiavi @@ -269,7 +272,7 @@ Periodicamente, è possibile chiedere a GPG di controllare le chiavi in uso risp L'opzione --refresh-keys consente a GPG di eseguire il controllo. L'opzione --keyserver deve essere seguita dal key-server scelto. I key-server si sincronizzano tra loro periodicamente, pertanto la scelta di quale utilizzare non è così importante. Il key-server https://pgp.mit.edu è comunque sempre una buona scelta iniziale. In caso di insuccesso potete comunque provare altri server, quali ad esempio: http://keys.gnupg.net/; https://keyserver.pgp.com o https://pgp.key-server.io/. - >_ gpg --keyserver https://pgp.mit.edu --refresh-keys + mio@pc:~$ gpg --keyserver https://pgp.mit.edu --refresh-keys ### 6.3 - Applichiamo la chiave ad un altro acount @@ -278,7 +281,7 @@ Per evitare di creare chiavi diverse per ogni indirizzo e poi dovrele gestire, Digitiamo il comando - >_ gpg --edit-key "mia@mail.org" + mio@pc:~$ gpg --edit-key "mia@mail.org" Ora sei sulla riga di comando GPG. Per aggiungere un'identità di posta, digitare '**adduid**' e premere **Invio**. Verrà quindi richiesto quanto segue: @@ -309,13 +312,13 @@ Visto che si tratta della **nostra** chiave e quindi ci possiamo fidare, si cons Potremmo accorgerci, o anche solo avere il dubbio, che la nostra chiave sia stata compromessa. In questi casi è bene revocare la chiave affinché nessuno possa utilizzarla spacciandosi per noi. Ricordiamoci che oltre alla nostra privacy, dobbiamo sempre pensare anche a **salvaguardare la rete di persone che ci ha dato fiducia**. - >_ gpg --import "mia"-revoke.asc + mio@pc:~$ gpg --import "mia"-revoke.asc Una volta revocata la chiave localmente, è necessario inviare il certificato revocato a un keyserver, indipendentemente dal fatto che la chiave sia stata originariamente rilasciata in questo modo. La distribuzione tramite un server remoto consente ad altri utenti di rendersi rapidamente conto che la chiave è stata compromessa. ### 6.5 - Esportiamo la revoca in un key-server remoto - >_ gpg --keyserver hkp://pgp.mit.edu --send "mia@mail.org" + mio@pc:~$ gpg --keyserver hkp://pgp.mit.edu --send "mia@mail.org" ### 6.6 - Spostiamo (privatamente) le nostre chiavi GPG da un pc ad un altro @@ -329,7 +332,7 @@ Questo metodo consente di esportare insieme chiavi pubbliche e private, in modo È possibile ottenere questo risultato dall'output di - >_ gpg -K + mio@pc:~$ gpg -K Si noti che la 'K' maiuscola è importante in modo da elencare solo le chiavi segrete. @@ -337,11 +340,11 @@ Si noti che la 'K' maiuscola è importante in modo da elencare solo le chiavi se Queste sono ovviamente informazioni pubbliche, quindi non c'è motivo di preoccuparsi per la sicurezza - >_ gpg --output "lamiachiave.gpg" --export "1234ABCD1234ABCD" + mio@pc:~$ gpg --output "lamiachiave.gpg" --export "1234ABCD1234ABCD" #### 6.6.3 - Ora, in un solo passaggio, esporteremo la chiave segreta, la combineremo in un file con la chiave pubblica, e la codificheremo per il trasferimento - >_ gpg --output - --export-secret-key "1234ABCD1234ABCD" |\ cat lamiachiave.gpg - |\ gpg --armor --output "lemiechiavi".asc --symmetric --cipher-algo AES256 + mio@pc:~$ gpg --output - --export-secret-key "1234ABCD1234ABCD" |\ cat lamiachiave.gpg - |\ gpg --armor --output "lemiechiavi".asc --symmetric --cipher-algo AES256 Verrà richiesto di inserire una passphrase, ovvero la passphrase per questa crittografia temporanea per il trasferimento. Quindi usa una buona passphrase per la sicurezza, e **ricordala!** Ora trasferisci il file "lemiechiavi".asc nel nuovo computer o da qualsiasi altra parte. @@ -349,7 +352,7 @@ Dal momento che il file è criptato, il trasferimento si può tecnicamente fare #### 6.6.4 - On the new computer, we need to import the keys from the file. So, run this command to unpack and then import the keys (using pipes again) - gpg --no-use-agent --output - keys.asc | gpg --import + mio@pc:~$ gpg --no-use-agent --output - keys.asc | gpg --import 6. And that, should be, @@ -370,11 +373,11 @@ Ah, no, ma c'è anche un'altra cosa utile che potete fare con le chiavi GPG, cio Nell'esempio vogliamo crittografare un file che si chiama "prova.txt" e vogliamo inviarlo alla nostra amica Lea. L'opzione --encrypt consente a gpg di crittografare il file, mentre l'opzione --sign le consente di firmare il file con i dettagli. L'opzione --armor consente a gpg di creare un file ASCII. L'opzione -r (destinatario) deve essere seguita dall'indirizzo e-mail della persona a cui si sta inviando il file. - gpg --encrypt --sign --armor -r + mio@pc:~$ gpg --encrypt --sign --armor -r 1.1) Il file viene generato con lo stesso nome dell'originale, ma con ".asc" aggiunto al nome del file. Diamo un'occhiata a cosa contiene. - less + mio@pc:~$ less Il file è del tutto illeggibile e può essere decrittografato solo da un utente che possiede tua chiave pubblica e la chiave privata di Lea (quindi solo da lei). Ora possiamo inviare il file a Lea fiduciosi che nessun altro possa decifrarlo, perchè solo Lea possiede, oltre alla nostra chiave pubblica, la sua chiave privata. @@ -385,11 +388,11 @@ Lea ci ha inviato una risposta. Si trova in un file crittografato denominato "te 2.1) Non dobbiamo dire a gpg da chi proviene il file. Questa informazione è già presente nel contenuto crittografato del file. - gpg --decrypt + mio@pc:~$ gpg --decrypt 2.2) Ora esaminiamo il contenuto file "messaggio.txt" - less + mio@pc:~$ less