forked from cisti/appunti
Aggiorna 'docs/GnuPG/GPG(GnuPG)-main-commands.md'
This commit is contained in:
parent
40298d7bd8
commit
ccf573732d
1 changed files with 35 additions and 32 deletions
|
@ -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 <lea@mail.org> <prova.txt>
|
||||
mio@pc:~$ gpg --encrypt --sign --armor -r <lea@mail.org> <prova.txt>
|
||||
|
||||
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 <prova.txt.asc>
|
||||
mio@pc:~$ less <prova.txt.asc>
|
||||
|
||||
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 <testo.asc> <messaggio.txt>
|
||||
mio@pc:~$ gpg --decrypt <testo.asc> <messaggio.txt>
|
||||
|
||||
2.2) Ora esaminiamo il contenuto file "messaggio.txt"
|
||||
|
||||
less <messaggio.txt>
|
||||
mio@pc:~$ less <messaggio.txt>
|
||||
|
||||
|
||||
|
||||
|
|
Loading…
Reference in a new issue