+++ 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