Crittografia e Posta Elettronica Asimmetria con GnuPG/Thunderbird/WOT HackLab CatanZaro Crittografia e Posta Elettronica Asimmetria con GnuPG/Thunderbird/WOT Domenico Chiefali https://hacklab.cz
Sommario GnuPG Thunderbird & Enigmail Rete della Fiducia Concetti Principali Creazione e Gestione Chiavi Pubbliche Cifratura/decifratura asimmetrica Firma e verifica Thunderbird & Enigmail Scambio di email cifrate e firmate Rete della Fiducia Key Signing Party
GnuPG Pretty Good Privacy (PGP) Programma di tipo Suite crittografica Licenza Proprietaria OpenPGP: Standard Internet di IETF GNU Privacy Guard (GnuPG o GPG) Sostituto di PGP Licenza libera (GPL)
Concetti Principali Chiave (Key) Chiave privata (Secret Key) Uno o più bit di dati usati in un procedimento di cifratura o decifratura User ID (stringa del tipo: nome, cognome, commento, email) Key ID (identificativo univoco, vedi impronta digitale) Chiave privata (Secret Key) Nella crittografia a chiave pubblica, la chiave, fra quelle che costituiscono un paio di chiavi, che viene tenuta segreta Chiave pubblica (Public Key) Nella crittografia a chiave pubblica, la chiave, fra quelle che costituiscono un paio di chiavi, che viene distribuita La raccolta di chiavi pubbliche, user id, firme e sotto-chiavi che formano un certificato PGP completo Impronta digitale della chiave (Key Fingerprint) Se si tratta di PGP, un valore usato per identificare una chiave, ricavato calcolando un hash della chiave
Concetti Principali Portachiavi (Keyring) Key Server Una collezione di chiavi. Tipicamente il termine è usato in relazione a PGP, dove un portachiavi consiste in una raccolta di uno o più pacchetti di chiave Key Server Un sistema che immagazzina chiavi in un database. Questi server possono essere interrogati per conoscere la chiave pubblica di un destinatario con cui non si è mai entrati in contatto prima Certificato di revoca (Revocation Certificate) Una firma di revoca (cfr) separata
Creazione Chiavi Pubbliche jdaemon@backbox:~$ gpg --gen-key gpg (GnuPG) x.x.x; Copyright (C) 2010 Free Software Foundation, Inc. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Please select what kind of key you want: (1) RSA and RSA (default) (2) DSA and Elgamal (3) DSA (sign only) (4) RSA (sign only) Your selection?
Creazione Chiavi Pubbliche Please select what kind of key you want: (1) RSA and RSA (default) (2) DSA and Elgamal (3) DSA (sign only) (4) RSA (sign only) Your selection?
Creazione Chiavi Pubbliche Please select what kind of key you want: (1) RSA and RSA (default) (2) DSA and Elgamal (3) DSA (sign only) (4) RSA (sign only) Your selection? 1 RSA keys may be between 1024 and 4096 bits long. What keysize do you want? (2048)
Creazione Chiavi Pubbliche Please specify how long the key should be valid. 0 = key does not expire <n> = key expires in n days <n>w = key expires in n weeks <n>m = key expires in n months <n>y = key expires in n years Key is valid for? (0)
Creazione Chiavi Pubbliche Please specify how long the key should be valid. 0 = key does not expire <n> = key expires in n days <n>w = key expires in n weeks <n>m = key expires in n months <n>y = key expires in n years Key is valid for? (0) 5y Key expires at gio 16 ago 2018 10:45:23 CEST Is this correct? (y/N)
Creazione Chiavi Pubbliche Key expires at gio 16 ago 2018 10:45:23 CEST Is this correct? (y/N) y You need a user ID to identify your key; the software constructs the user ID from the Real Name, Comment and Email Address in this form: "Heinrich Heine (Der Dichter) <heinrichh@duesseldorf.de>" Real name:
Creazione Chiavi Pubbliche Key expires at gio 16 ago 2018 10:45:23 CEST Is this correct? (y/N) y You need a user ID to identify your key; the software constructs the user ID from the Real Name, Comment and Email Address in this form: "Heinrich Heine (Der Dichter) <heinrichh@duesseldorf.de>" Real name: Mario Rossi Email address:
Creazione Chiavi Pubbliche Key expires at gio 16 ago 2018 10:45:23 CEST Is this correct? (y/N) y You need a user ID to identify your key; the software constructs the user ID from the Real Name, Comment and Email Address in this form: "Heinrich Heine (Der Dichter) <heinrichh@duesseldorf.de>" Real name: Mario Rossi Email address: mario_rossi@xxxxx.net Comment:
Creazione Chiavi Pubbliche Key expires at gio 16 ago 2018 10:45:23 CEST Is this correct? (y/N) y You need a user ID to identify your key; the software constructs the user ID from the Real Name, Comment and Email Address in this form: "Heinrich Heine (Der Dichter) <heinrichh@duesseldorf.de>" Real name: Mario Rossi Email address: mario_rossi@xxxxx.net Comment: marius
Creazione Chiavi Pubbliche You selected this USER-ID: "Mario Rossi (marius) <mario_rossi@xxxxx.net>" Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit?
Creazione Chiavi Pubbliche You selected this USER-ID: "Mario Rossi (marius) <mario_rossi@xxxxx.net>" Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? O You need a Passphrase to protect your secret key. Enter passphrase:
Creazione Chiavi Pubbliche We need to generate a lot of random bytes. It is a good idea to perform some other action (type on the keyboard, move the mouse, utilize the disks) during the prime generation; this gives the random number generator a better chance to gain enough entropy. Not enough random bytes available. Please do some other work to give the OS a chance to collect more entropy! (Need 162 more bytes)
Creazione Chiavi Pubbliche We need to generate a lot of random bytes. It is a good idea to perform some other action (type on the keyboard, move the mouse, utilize the disks) during the prime generation; this gives the random number generator a better chance to gain enough entropy. Not enough random bytes available. Please do some other work to give the OS a chance to collect more entropy! (Need 162 more bytes) Bla bla bla S 1234 ------ <>-3243ojsgmdxlmg sdfsdfsdfsdfsdg4
Creazione Chiavi Pubbliche gpg: key 8A50FEB7 marked as ultimately trusted public and secret key created and signed. gpg: checking the trustdb gpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust model gpg: depth: 0 valid: 3 signed: 2 trust: 0-, 0q, 0n, 0m, 0f, 3u gpg: depth: 1 valid: 2 signed: 1 trust: 0-, 2q, 0n, 0m, 0f, 0u gpg: next trustdb check due at 2016-02-12 pub 2048R/8A50FEB7 2013-08-17 [expires: 2018-08-16] Key fingerprint = D8C0 0570 3659 1EFB 6479 BF16 9C6E 9A2D 8A50 FEB7 uid Mario Rossi (marius) <mario_rossi@xxxxx.net> sub 2048R/4842EEA5 2013-08-17 [expires: 2018-08-16] jdaemon@backbox:~$
Cifratura/decifratura asimmetrica Cifrare risultato: creazione <file.asc> Decifrare risultato: creazione <new_file> NOTA: <new_file> = <file> $ gpg --armour --encrypt <file> $ gpg --output <new_file> --decrypt <file.asc>
Cifratura/decifratura asimmetrica Firmare risultato: creazione <file.asc> Verificare risultato: output su schermo del tipo: gpg: Signature made dom 18 ago 2013 10:02:01 CEST using RSA key ID 4842EEA5 gpg: Good signature from "Mario Rossi (marius) <mario_rossi@xxxxx.net>" $ gpg --armour --sign <file> $ gpg --verify <file.asc>
Thunderbird + Enigmail Client di posta elettronica Enigmail Estensione per Thunderbird che consente agli utenti di utilizzare il sistema di autenticazione e cifratura dello standard OpenPGP Si appoggia su: GnuPG GnuPG-Agent (extra)
Rete della Fiducia Definizione (Web of Trust) Relazioni di fiducia all'interno di un gruppo di chiavi corrispondenti agli utenti che le possiedono Dichiarazione di Fiducia?
Rete della Fiducia Definizione (Web of Trust) Dichiarazione di Fiducia Relazioni di fiducia all'interno di un gruppo di chiavi corrispondenti agli utenti che le possiedono Dichiarazione di Fiducia Firma (mediante chiave privata) da parte dell'utente Pippo sulla chiave pubblica del “fidato” utente Pluto
Rete della Fiducia
Rete di Fiducia (es: phillylinux)
Rete di Fiducia (es: Gigi...) http://www.chaosreigns.com/code/sig2dot/ http://www.chaosreigns.com/code/springgraph/
Rete della Fiducia: crescita! Key Signing Party Riunione di persone che usano il sistema di crittografia PGP con lo scopo di permettere ai partecipanti di firmare a vicenda le proprie chiavi