334 lines
6.6 KiB
Markdown
334 lines
6.6 KiB
Markdown
+++
|
|
title = "GnuPG"
|
|
outputs = ["Reveal"]
|
|
+++
|
|
|
|
![Gnupg](gnupg_logo.png)
|
|
|
|
---
|
|
|
|
# Crittografia
|
|
|
|
## A cosa serve:
|
|
|
|
* a difendere la propria privacy
|
|
|
|
* {{% fragment %}} chi non ha nulla da nascondere non ha nulla da temere {{% /fragment %}} {{% fragment %}}(Adolf Hitler, 1936) {{% /fragment %}}
|
|
|
|
* {{% fragment %}} comunicazioni private di qualsiasi natura {{% /fragment %}}
|
|
|
|
* {{% fragment %}} crittazione di documenti {{% /fragment %}}
|
|
|
|
* {{% fragment %}} verifica autenticita' di documenti {{% /fragment %}}
|
|
|
|
* {{% fragment %}} verifica integrita' di documenti {{% /fragment %}}
|
|
|
|
|
|
---
|
|
|
|
# Crittografia
|
|
|
|
### Privacy e anonimato
|
|
|
|
* La privacy riguarda la riservatezza del contenuto delle comunicazioni/dati
|
|
|
|
* L'anonimato riguarda la riservatezza dell'identita'
|
|
|
|
---
|
|
|
|
# SICUREZZA
|
|
|
|
![security](security.png)
|
|
|
|
---
|
|
|
|
{{% section %}}
|
|
|
|
## Storia
|
|
|
|
#### PGP (Pretty Good Privacy)
|
|
|
|
##### Nasce nel 1991 ad opera di Phil Zimmerman
|
|
|
|
---
|
|
|
|
## Storia
|
|
|
|
#### OPENPGP
|
|
|
|
E' uno standard divenuto ufficiale nel 2007 che definisce come devono funzionare i servizi per le comunicazioni elettroniche e il data storage riguardo:
|
|
|
|
* Confidenzialità
|
|
|
|
* Gestione delle chiavi
|
|
|
|
* Autenticazione
|
|
|
|
* Firma digitale
|
|
|
|
---
|
|
|
|
## Storia
|
|
|
|
#### GnuPG (Gnu Privacy Guard)
|
|
|
|
* E' una implementazione open source dello standard OpenPGP
|
|
|
|
* Non ha nessuna interfaccia grafica nativa
|
|
|
|
{{% /section %}}
|
|
|
|
---
|
|
|
|
|
|
#### crittografia simmetrica
|
|
|
|
###### *la stessa chiave si usa per crittare e decrittare*
|
|
|
|
problema: come scambiarsi la chiave in modo sicuro ?
|
|
|
|
![crittografia simmetrica](Symmetric-Encryption.png)
|
|
|
|
---
|
|
|
|
#### crittografia asimmetrica
|
|
|
|
###### *ci sono due chiavi, una per crittare (pubblica) e una per decrittare (privata)*
|
|
|
|
non serve scambiarsi la chiave in modo sicuro
|
|
|
|
![crittografia asimmetrica](Asymmetric-Encryption.png)
|
|
|
|
---
|
|
|
|
|
|
### La firma elettronica
|
|
|
|
* autenticazione
|
|
|
|
* integrità
|
|
|
|
* E' possibile firmare anche senza cifrare e/o viceversa
|
|
|
|
* Si possono firmare messaggi e/o files/documenti
|
|
|
|
---
|
|
|
|
#### chiave pubblica e chiave privata
|
|
|
|
###### *La chiave pubblica serve agli altri che la usano per:*
|
|
|
|
1. crittare i messaggi che poi invieranno a te
|
|
2. verificare la firma dei msg che ricevono da te
|
|
|
|
#### ____________________
|
|
|
|
|
|
###### *La chiave privata e' usata da te per:*
|
|
|
|
1. firmare i messaggi che invierai ad altre persone
|
|
2. decrittare i messaggi che ricevi da altre persone
|
|
3. firmare le chiavi di altre persone
|
|
|
|
---
|
|
|
|
|
|
{{% section %}}
|
|
|
|
## Le chiavi e la loro gestione
|
|
|
|
---
|
|
|
|
### User ID
|
|
|
|
**_email, non necessariamente nome e cognome_**
|
|
|
|
---
|
|
|
|
##### la password di protezione della chiave
|
|
|
|
![password](password_strength.png)
|
|
|
|
---
|
|
|
|
#####
|
|
|
|
|
|
|
|
## la scadenza
|
|
|
|
* a cosa serve
|
|
|
|
* estensione della scadenza
|
|
|
|
---
|
|
|
|
## Le sottochiavi (subkeys)
|
|
|
|
---
|
|
|
|
## Revoca delle chiavi
|
|
|
|
#### Il certificato di revoca
|
|
|
|
```
|
|
Se ci si dimentica la passphrase o se la propria chiave privata viene
|
|
compromessa o persa, questo certificato di revoca può essere pubblicato
|
|
per segnalare ad altri che la chiave pubblica non deve più essere usata.
|
|
|
|
Una chiave pubblica revocata non può più essere usata per cifrare futuri
|
|
messaggi.
|
|
|
|
La revoca non influisce sulla propria capacità di decifrare messaggi spediti
|
|
in passato, se si possiede ancora l'accesso alla chiave privata.
|
|
|
|
Il certificato deve essere stampato e/o salvato offline.
|
|
Chiunque abbia accesso al certificato di revoca può rendere la chiave
|
|
pubblica inutilizzabile.
|
|
```
|
|
|
|
---
|
|
|
|
## Revoca delle chiavi
|
|
|
|
#### I revocatori designati
|
|
|
|
> Potete designare il possessore di un'altra chiave per revocare la vostra
|
|
|
|
> Deve godere della vostra massima fiducia
|
|
|
|
---
|
|
|
|
## i keyservers
|
|
|
|
Un keyserver e' un database contenente chiavi pubbliche
|
|
|
|
* sono disponibili anche via web: [https://pgp.mit.edu](https://pgp.mit.edu)
|
|
|
|
* servono a:
|
|
1. recuperare le chiavi di altri
|
|
2. caricare le proprie chiavi
|
|
|
|
* **una volta caricate le chiavi non si possono eliminare, solo revocare**
|
|
|
|
* e' cmq possibile modificare una chiave caricata, ad es. per aggiungere firme,
|
|
o cambiare la scadenza.
|
|
|
|
|
|
---
|
|
|
|
## web of trust
|
|
|
|
OpenPGP anziché basarsi su un'autorità centralizzata o su una struttura gerarchica
|
|
prevede che ogni contatto imposti la fiducia verso gli altri e, a seconda della
|
|
fiducia che gli viene riconosciuta, possa garantire per quella di terzi.
|
|
È un metodo molto pratico per gruppi che non hanno un ordine gerarchico,
|
|
come possono essere appunto i contatti email e per cui sarebbe eccessivamente
|
|
oneroso o di difficile gestione il ricorso a una Certificate Authority.
|
|
|
|
|
|
---
|
|
|
|
## firma delle chiavi
|
|
|
|
#### pgp key signing party
|
|
|
|
Si imposta il livello di confidenza riguardo l'autenticita' della chiave pubblica e la sua corrispondenza con un dato contatto.
|
|
|
|
Firmando una chiave pubblica si garantisce della sua autenticita'.
|
|
Di default la firma e' solo locale, ma se si esporta quella chiave pubblica
|
|
su un keyserver, la propria firma diventera' pubblica, e in tal caso la propria firma
|
|
avra' il ruolo di garante dell'autenticita' di quella chiave.
|
|
|
|
|
|
{{% /section %}}
|
|
|
|
---
|
|
|
|
Esempio di msg cifrato:
|
|
|
|
```
|
|
-----BEGIN PGP MESSAGE-----
|
|
Version: GnuPG v2.1 (GNU/Linux)
|
|
|
|
owE1jMsNwjAUBH3gZMk9PClnUoBPUANpwElW2OBPZD8H0gd1UCP2gduuNDNfI
|
|
T4zCbQmtlbzGFM9T0jSD7QVvEzaPcUlBSSWHQclbnR9YWJNp5BFSLdR9CijF3
|
|
ybry/1Rsqn4la3a0JiIhLvnYGCu9HFtiC8oIxnlkeuIYe+EH=HgDq
|
|
-----END PGP MESSAGE-----
|
|
```
|
|
|
|
Esempio di msg firmato:
|
|
|
|
```
|
|
-----BEGIN PGP SIGNED MESSAGE-----
|
|
Hash: SHA512
|
|
|
|
Ciao,
|
|
|
|
messaggio di prova
|
|
|
|
-----BEGIN PGP SIGNATURE-----
|
|
Version: GnuPG v2.1 (GNU/Linux)
|
|
|
|
iQGGBAEBCgBwBQJQRL0KMBSAAAAAACAAB3ByZWZlcnJlZC1lbWFpbC1lbmNvZGlu
|
|
Z0BwZ3AuY29tcGdwbWltZTgUgAAAAAAVABpwa2EtYWRkcmVzc0BnbnVwZy5vcmdt
|
|
CKV1lrxDLqrQeDE5Zbep3J1XL5ZJ4e98+CrRyKJkVXmKwH5+A/ySMk3CTNXKtoWT
|
|
3H34WvVdMTJb
|
|
=qU7I
|
|
-----END PGP SIGNATURE-----
|
|
```
|
|
|
|
---
|
|
|
|
|
|
{{% section %}}
|
|
|
|
# Clients
|
|
|
|
[https://www.gnupg.org/software/frontends.html](https://www.gnupg.org/software/frontends.html)
|
|
|
|
---
|
|
|
|
# Windows
|
|
|
|
[gpg4win.org](https://www.gpg4win.org)
|
|
|
|
[emailselfdefense (in italiano)](https://emailselfdefense.fsf.org/it/windows.html)
|
|
|
|
---
|
|
|
|
# Linux
|
|
|
|
[gnupg.org](https://www.gnupg.org)
|
|
|
|
[https://emailselfdefense.fsf.org/it/index.html](https://emailselfdefense.fsf.org/it/index.html)
|
|
|
|
---
|
|
|
|
# Mac
|
|
|
|
[gpgtools.org](https://www.gpgtools.org)
|
|
|
|
[emailselfdefense (in italiano)](https://emailselfdefense.fsf.org/it/mac.html)
|
|
|
|
---
|
|
|
|
# Enigmail
|
|
|
|
#### [enigmail.net](https://www.enigmail.net)
|
|
|
|
##### plugin per thunderbird
|
|
|
|
guide molto ben fatte, ma in inglese:
|
|
|
|
* [https://ssd.eff.org/en/module/how-use-pgp-linux](https://ssd.eff.org/en/module/how-use-pgp-linux)
|
|
* [https://ssd.eff.org/en/module/how-use-pgp-mac-os-x](https://ssd.eff.org/en/module/how-use-pgp-mac-os-x)
|
|
* [https://ssd.eff.org/en/module/how-use-pgp-windows](https://ssd.eff.org/en/module/how-use-pgp-windows)
|
|
|
|
|
|
{{% /section %}}
|
|
|
|
---
|
|
|
|
# FINE
|