updated mumble mobile #5

Closed
freebird wants to merge 91 commits from freebird/appunti:master into master
Showing only changes of commit bca5f4a838 - Show all commits

View file

@ -1,4 +1,4 @@
# GnuPG for Dummies
# GPG (GnuPG) cosa, come e perché
||||||||||||||
@ -17,7 +17,8 @@
### GPG (GnuPG) Breve guida alle principali funzioni da riga di comando per sistemi Linux.
### GPG (GnuPG) Guida alle principali funzioni da riga di comando per sistemi Linux.
La guida è sviluppata per distribuzioni Debian based, ma la maggior parte dei comandi è applicabile anche a tutte le altre distribuzioni.
Per gli altri OS (Windows e Mac OSX) che sono proprietari e non ci piacciono, cercate sul uebbe :-P
GnuPG is Free Software (meaning that it respects your freedom).
@ -40,7 +41,8 @@ Per gli altri OS (Windows e Mac OSX) che sono proprietari e non ci piacciono, ce
## 1 - Premessa
Questo manualetto fornisce una guida sintetica, da tenere a portata di mano, per effettuare le operazioni di base necessarie all'utilizzo, gestione e manutenzione delle chiavi GPG. Per tutto il resto fare riferimento alla documentazione disponibile on-line sulle decine di siti specializzati. Potete partire da [**qui**][1], da [**qui**][2] per qualche info su come funziona la crittografia a chiave pubblica, o da [**qui**][3] per la lista completa dei comandi.
Questo documento fornisce una guida per effettuare le operazioni di base necessarie all'utilizzo, gestione e manutenzione delle chiavi GPG.
Per tutto il resto fare riferimento alla documentazione disponibile on-line sulle decine di siti specializzati. Potete partire da [**qui**][1], da [**qui**][2] per qualche info su come funziona la crittografia a chiave pubblica, o da [**qui**][3] per la lista completa dei comandi.
Per farsi un'idea del perché, a volte, è consigliabile cifrare le comunicazioni digitali, consigliamo la lettura della nostra guida di autodifesa digitale disponibile [**qui**][4].
@ -90,11 +92,11 @@ Boh, così dovrebbe essere abbastanza chiaro, eh. Se non bastasse... [**-▸
## 3 - Consigli generali
- Utilizza sempre PASSWORD ROBUSTE [**-▸**][6] per gli account di posta (e non solo) e passphrases altrettanto robuste per proteggere le chiavi.
- Utilizza sempre **PASSWORD ROBUSTE** [**-▸**][6] per gli account di posta (e non solo) e **passphrases altrettanto robuste** per proteggere le chiavi.
- Ricordati che se usate le funzioni qui descritte su una rete telnet [**-▸**][7], per un malintenzionato sarà relativamente facile spiare i tuoi messaggi!
- Fatti SUBITO almeno una copia (più avanti capirai come farlo) delle chiavi (pub e sec) e del certificato di revoca in un posto sicuro, diverso dal pc che normalmente usi.
- Visto che non è semplice per tutti, memorizzare differenti password e passphrases, ti consiglio di utilizzare un password manager (ad es. keepassxc [**-▸**][8]).
Naturalmente la masterpassword del password manager dovrà essere robusta e soprattutto... fai in modo di non dimenticarla!!!
Naturalmente la masterpassword del password manager dovrà essere robusta e soprattutto... fai in modo di **non dimenticarla!!!**
Una buona regola è avere più copie del file cifrato del password manager archiviate in posti sicuri, con la tecnologia... non si sa mai!
@ -105,15 +107,15 @@ 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".
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:**
**I comandi che seguono, sono basati su questo esempio, tu dovrai sostituire tutte le parti contenute tra { } con i tuoi dati reali,** per esempio...
il comando:
mio@pc:~$ gpg --output {mia}-revoke.asc --gen-revoke {mia@mail.org}
**poterbbe diventare**:
poterbbe diventare:
mio@pc:~$ gpg --output alice-revoke.asc --gen-revoke alice@bellamail.org
@ -123,12 +125,12 @@ il comando:**
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.
Sarà 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.
È necessario indicare la durata della chiave. Se si imposta '**0**' avrà durata illimitata. Se si imposta ad es. '**1y**' durerà un anno. Leggere le indicazioni e scegliere la durata che si desidera. Confermare la scelta con '**Y**'.
Digitare quindi il nome che vogliamo dare alla chiave (es. il nostro nome o uno pseudonimo) e l'indirizzo e-mail a cui la chiave sarà associata.
È possibile aggiungere un commento (facoltativo).
Verrà richiesto di immettere (2 volte) la passphrase.
Sarà ora richiesto di immettere (2 volte) la passphrase.
### _Avremo bisogno della passphrase ogni volta che lavoriamo con le chiavi, quindi assicuriamoci di !!! NON DIMENTICARLA !!!_.
@ -141,7 +143,7 @@ La chiave sarà generata, salvata nel keyring (portachiavi) del nostro pc e verr
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.
Sarà così generato il file {mia}-revoke.asc contenente il certificato di revoca.
#### 4.2.1 - Mettiamo in sicurezza il certificato di revoca
@ -154,10 +156,13 @@ Rimuoviamo dal certificato tutte le autorizzazioni oltre alle nostre.
#### 4.2.2 - Esportiamo la nostra chiave PRIVATA (sec) in un file utilizzando l'ID della chiave
Ad esempio, ipotizziamo che la nostra chiave abbia questa fingerprint "1234 ABCD 1234 ABCD 1234 ABCD 1234 ABCD 1234 ABCD" e quindi l'ID sia 1234ABCD (short key ID) o 1234ABCD1234ABCD (long key ID).
L'ID della chiave è rappresentato dalle ultime 8 (short) o 16 (long) cifre della fingerprint.
Ad esempio, ipotizziamo che la nostra chiave abbia questa fingerprint
"1234 ABCD 1234 ABCD 1234 ABCD 1234 ABCD 1234 ABCD"
e quindi lo short key ID sia 1234ABCD ed il long key ID sia 1234ABCD1234ABCD.
[l'ID della chiave è rappresentato dalle ultime 8 (short) o 16 (long) cifre della fingerprint].
**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.
**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.
Inoltre è una buona regola averne più di una copia, su dispositivi (**sicuri**) diversi conservati in luoghi diversi.
mio@pc:~$ gpg --export-secret-keys --armor {1234ABCD1234ABCD} {secret}.asc
@ -183,8 +188,7 @@ per uscire dalla visualizzazione digitare '**q**'.
La fingerprint è l'impronta digitale della chiave. Per saperne di più [**-▸**][10]
mio@pc:~$ gpg --send-keys --keyserver https://pgp.mit.edu {1234ABCD1234ABCD1234ABCD1234ABCD1234ABCD}
mio@pc:~$ gpg --send-keys --keyserver pgp.mit.edu {1234ABCD1234ABCD1234ABCD1234ABCD1234ABCD}
### 4.4 - Importiamo le chiavi pubbliche dei nostri contatti (es. della nostra amica Lea)
@ -195,7 +199,7 @@ La fingerprint è l'impronta digitale della chiave. Per saperne di più [**-&#96
#### 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
mio@pc:~$ gpg --keyserver https://pgp.mit.edu --search-keys {lea@mail.org}
mio@pc:~$ gpg --keyserver pgp.mit.edu --search-keys {lea@mail.org}
#### 4.4.3 - Oppure la cerchiamo su un key-server remoto tramite l'ID
@ -220,7 +224,7 @@ Se l'impronta digitale è la stessa che il possessore della chiave detiene, allo
## 5 - Utilizzo delle chiavi GPG
![due](due-fh.png)
![due](due-fh2.png)
Ora che Lea può avere la nostra chiave pubblica (perché le abbiamo passato il file "mia.key" o perché se l'è procurata da un key-server remoto) possiamo iniziare a scambiarci mail in modo sicuro, ma come?
@ -236,7 +240,7 @@ Se usate **Thunderbird + Enigmail** avrete una voce "Enigmail" nella barra del M
Se usate **Evolution** quando componete un messaggio, cliccando sul menu "Opzioni" avrete la possibilità di firmarlo/cifrarlo, mentre quando ricevete un messaggio cifrato avrete la possibilità di decifrarlo.
Il loro utilizzo è comunque molto semplice ed intuitivo, quindi non stiamo a dilungarci troppo. Per una guida più completa per Thunderbird + Enigmail vedi [**-▸**][14], per Evolution vedi [**-▸**][15].
Un altro tool disponibile per la gestione delle chiavi (ma non delle email) sui sistemi Linux è Seahorse [**-▸**][16]
Un altro tool disponibile sui sistemi Linux per la gestione delle chiavi (ma non delle email) è Seahorse [**-▸**][16]
per installarlo (se non lo avete già fatto)
@ -272,9 +276,9 @@ oppure
Periodicamente, è possibile chiedere a GPG di controllare le chiavi in uso rispetto ad un key-server e di aggiornare le chiavi modificate. Lo si può fare ogni pochi mesi o quando si riceve una chiave da un nuovo contatto.
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/.
In caso di insuccesso, potete provare altri server, quali ad esempio: http://keys.gnupg.net/; https://keyserver.pgp.com o https://pgp.key-server.io/.
mio@pc:~$ gpg --keyserver https://pgp.mit.edu --refresh-keys
mio@pc:~$ gpg --keyserver pgp.mit.edu --refresh-keys
### 6.3 - Applichiamo la chiave ad un altro acount
@ -283,7 +287,7 @@ Per evitare di creare chiavi diverse per ogni indirizzo e poi dovrele gestire,
Digitiamo il comando
mio@pc:~$ 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:
@ -301,49 +305,48 @@ 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**.
mio@pc:~$ 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.
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.
Può essere una buona regola anche informare della revoca la nostra rete di contatti.
### 6.5 - Esportiamo la revoca in un key-server remoto
mio@pc:~$ gpg --keyserver hkp://pgp.mit.edu --send "mia@mail.org"
mio@pc:~$ gpg --keyserver pgp.mit.edu --send {mia@mail.org}
### 6.6 - Spostiamo (privatamente) le nostre chiavi GPG da un pc ad un altro
Per diversi motivi, potremmo aver bisogno di spostare le nostre chiavi da un computer ad un altro. Per la chiave pubblica, non ci sono problemi, essendo appunto pubblica e da divulgare.
Spostare la chiave privata invece dovrebbe essere fatto senza lascire tracce della stessa sugli eventuali dispositivi (es. chiavetta usb) utilizzati per il trasferimento. **Evitare assolutamente** di far transitare la propria chiave privata su servizi di cloud-sharing, anche se gestiti da persone o gruppi di cui ci fidiamo.
Un modo che ci sentiamo di consigliare è questo.
Un modo che ci sentiamo di consigliare è quello che segue.
Questo metodo consente di esportare insieme chiavi pubbliche e private, in modo che possano essere facilmente importate e con il minimo di dati segreti scritti su disco.
Il metodo descritto consente di esportare insieme chiavi pubbliche e private, in modo che possano essere facilmente importate e con il minimo di dati segreti scritti sul dispositivo utilizzato per il trasferimento.
#### 6.6.1 - Troviamo l'ID della chiave che vogliamo esportare.
È possibile ottenere questo risultato dall'output di
mio@pc:~$ gpg -K
Si noti che la 'K' maiuscola è importante in modo da elencare solo le chiavi segrete.
mio@pc:~$ gpg --list-secret-keys --keyid-format LONG
#### 6.6.2 - Innanzitutto, esportiamo la chiave pubblica
Queste sono ovviamente informazioni pubbliche, quindi non c'è motivo di preoccuparsi per la sicurezza
mio@pc:~$ 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
mio@pc:~$ 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.
Dal momento che il file è criptato, il trasferimento si può tecnicamente fare anche via internet, ma se non è proprio necessario, meglio farlo tramite un drive esterno o chiavetta usb.
Sarà richiesto di inserire una passphrase, ovvero la passphrase specifica 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.
Dal momento che il file è crittografato, il trasferimento si può tecnicamente fare anche via internet, ma se non è proprio necessario, meglio farlo tramite un hard-disk esterno o chiavetta usb.
#### 6.6.4 - Importiamo le chiavi dal file nel nuovo computer
Eseguiamo questo comando per spacchettare e quindi importare le chiavi.
mio@pc:~$ gpg --no-use-agent --output - keys.asc | gpg --import
mio@pc:~$ gpg --no-use-agent --output - {lemiechiavi}.asc | gpg --import
Dovrebbe essere tutto :).
@ -354,54 +357,38 @@ Ah, no, ma c'è anche un'altra cosa utile che potete fare con le chiavi GPG, cio
## 7 - Crittografiamo/decrittografiamo file per scambi via mail
Pensiamo di voler crittografare un file che contiene informazioni riservate ed inviarlo ad un altra persona (es. Lea). Il file, nell'esempio, si chiama "prova.txt"
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.
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.
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.
2) Decrittografiamo un file che riceviamo via mail
Lea ci ha inviato una risposta. Si trova in un file crittografato denominato "testo.asc". Possiamo decrittografarlo molto facilmente utilizzando l'opzione decrypt. L'output verrà reindirizzato in un altro file chiamato "messaggio.txt".
2.1) Non dobbiamo dire a gpg da chi proviene il file. Questa informazione è già presente nel contenuto crittografato del file.
mio@pc:~$ gpg --decrypt <testo.asc> <messaggio.txt>
2.2) Ora esaminiamo il contenuto file "messaggio.txt"
mio@pc:~$ less <messaggio.txt>
### 7.1 - Inviare un file crittografato via mail
Pensiamo di voler crittografare un file che contiene informazioni riservate ed inviarlo ad un altra persona (es. la solita Lea). Il file, nell'esempio, si chiama {prova.txt}
Nell'esempio, vogliamo crittografare il file 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.
mio@pc:~$ gpg --encrypt --sign --armor -r {lea@mail.org} {prova.txt}
Il file viene generato con lo stesso nome dell'originale, ma con '.asc' aggiunto come ulteriore estenzione al nome del file. Diamo un'occhiata a cosa contiene.
#### 7.1.1 - Ora proviamo a leggere il contenuto file {messaggio.txt}
mio@pc:~$ less {prova.txt.asc}
Il file è del tutto illeggibile e può essere decrittografato solo da un utente che possiede sia la tua chiave pubblica che 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.
### 7.2 - Decrittografare un file ricevuto
#### 7.2.1 - Decrittografiamo un file crittografato che riceviamo via mail
Lea ci ha inviato una risposta. Si trova in un file crittografato denominato {testo.asc}. Possiamo decrittografarlo molto facilmente utilizzando l'opzione decrypt. L'output verrà reindirizzato in un altro file chiamato {messaggio.txt}.
Non dobbiamo dire a gpg da chi proviene il file. Questa informazione è già presente nel contenuto crittografato del file.
mio@pc:~$ gpg --decrypt {testo.asc} {messaggio.txt}
#### 7.2.2 - Ora esaminiamo il contenuto file {messaggio.txt}
mio@pc:~$ less {messaggio.txt}
Il file {messaggio.txt} è ora leggibile.
[1]: https://gnupg.org/
[2]: https://www.gnupg.org/howtos/it/GPGMiniHowto.html#toc1
@ -426,10 +413,3 @@ Lea ci ha inviato una risposta. Si trova in un file crittografato denominato "te
Made with **♥** by **underscore_to** hacklab
**********************************************************************************************