La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Sperimentazioni di Sicurezza, A.A. 2009/2010 GNU Privacy Guard: Introduzione alluso Speaker: Luca Maria Aiello, PhD student Università degli Studi di Torino,

Presentazioni simili


Presentazione sul tema: "Sperimentazioni di Sicurezza, A.A. 2009/2010 GNU Privacy Guard: Introduzione alluso Speaker: Luca Maria Aiello, PhD student Università degli Studi di Torino,"— Transcript della presentazione:

1 Sperimentazioni di Sicurezza, A.A. 2009/2010 GNU Privacy Guard: Introduzione alluso Speaker: Luca Maria Aiello, PhD student Università degli Studi di Torino, Computer Science Department Corso Svizzera, 185 – 10149, Torino, Italy Sperimentazioni di sicurezza A.A

2 Sperimentazioni di Sicurezza, A.A. 2009/2010 Pretty Good Privacy & GNU Privacy Guard o PGP è un programma di crittografia e firma digitale ideato e sviluppato da Phil Zimmermann nel 1991 Uno dei crittosistemi più usati al mondo Divenuto un prodotto commerciale della PGP corp. o OpenPGP è uno standard Internet (RFC 4880) che è stato pubblicato sulla base della specifica originale di PGP o GPG è unimplementazione open-source (licenza GPL) dello standard OpenPGP Versione 1.0 nel 1999 Phil Zimmermann

3 Sperimentazioni di Sicurezza, A.A. 2009/2010 Download e installazione o GPG website: Directory listing a: ftp://ftp.gnupg.org/gcrypt/gnupg/ Scaricare la versione o Installazione./configure --prefix=$HOME make make install o Il comando gpg risiede nella cartella g10 o Per poter eseguire il comando gpg da una cartella qualsiasi potete semplicemente usare un alias Nel file $HOME/.cshrc aggiungere: alias gpg /usr/home/…/gnupg-1.4.9/g10/gpg

4 Sperimentazioni di Sicurezza, A.A. 2009/2010 Struttura generale comando o Linterazione con GPG avviene tramite linea di comando Esistono anche interfacce e plug-in grafici, vedremo Enigmail o Alcune opzioni utili sono --armor trasforma loutput binario in ASCII --output file scrive loutput sul file specificato o gpg --help lista dei comandi o man gpg guida completa dei comandi gpg [opzioni] comando parametri

5 Sperimentazioni di Sicurezza, A.A. 2009/2010 Generazione chiavi o Richiede diversi parametri Tipo di chiavi (DSA, ElGamal, RSA) Selezionare DSA (Firma) + ElGamal (Cifratura a chiave pubblica) Dimensione chiave Selezionare la dimensione massima possibile Scadenza della chiave Nome, cognome, Una passphrase, per cifrare le chiavi private su disco Scegliere una passphrase sicura Un po di input casuale… gpg --gen-key

6 Sperimentazioni di Sicurezza, A.A. 2009/2010 I keyring o Private keyring KeyID UserID Timestamp Chiave privata o Public keyring KeyID UserID Timestamp Chiave pubblica Validità Trust Firme gpg --list-keys [id_chiave] gpg --list-secret-keys [id_chiave] o Le chiavi sono mantenute in due strutture dati:

7 Sperimentazioni di Sicurezza, A.A. 2009/2010 I keyring: esempio o Nella cartella HOME/.gnupg risiedono i keyring assieme ad altri file di configurazione o Più avanti vedremo in dettaglio le operazioni di gestione dei keyring pub 1024D/2C2E319E uid Yagami Light uid Kira sub 2048g/291205D sub 2048R/5CC1DD2A [expires: ] sec 1024D/2C2E319E uid Yagami Light uid Kira! ssb 2048g/291205D ssb 2048R/5CC1DD2A ssb 1024R/8749C81F Public/ private Chiavi secondarie D=DSA R=RSA g/G=ElGamal Data creazione Key ID Data scadenza #bit

8 Sperimentazioni di Sicurezza, A.A. 2009/2010 Certificato di revoca o Una volta creata, la chiave privata può essere compromessa, persa o rubata o È bene creare, subito dopo la generazione della chiave, un certificato di revoca, firmato con la chiave privata Tale certificato deve essere pubblicato per segnalare che la chiave non è più valida Non ha valore retroattivo sulle firme già effettuate Da custodire al sicuro… o Per cancellare una delle chiave dai keyring eseguire: gpg --output revoca --gen-revoke id_chiave gpg --delete-secret-keys id_chiave gpg --delete-keys id_chiave

9 Sperimentazioni di Sicurezza, A.A. 2009/2010 Esportare ed importare chiavi o Per diffondere la propria chiave pubblica è necessario esportarla Il file risultante può essere inviato via mail, pubblicato su un sito web o su un keyserver o Quando si importa una chiave, è sempre bene verificarne lintegrità tramite fingerprint Usando un canale che assicuri lidentità del proprietario (e.g. telefono) gpg --armor --output file –-export user_id gpg –-import file gpg –-fingerprint user_id

10 Sperimentazioni di Sicurezza, A.A. 2009/2010 Validità delle chiavi importate o Se si è sicuri del legame tra la chiave ricevuta e lidentità associata, si firma la chiave con la propria chiave privata o Come vedremo, le firme servono a calcolare il valore di validità della chiave Se si firma direttamente una chiave, questa assume automaticamente validità completa Nota: è necessario un refresh per visualizzare la validità corretta o È possibile verificare tutte le firme che sono allegate alla chiave o Ogni chiave pubblica è self-signed dal suo proprietario gpg --edit-key id Command> sign Command> check

11 Sperimentazioni di Sicurezza, A.A. 2009/2010 Cifrare con chiave simmetrica o La cifratura a chiave simmetrica non usa le chiavi del keyring È necessario immettere una password o È possibile selezionare un particolare algoritmo di cifratura simmetrica gpg --version visualizza gli algoritmi disponibili gpg [–-cypher-algo algoritmo] --symmetric file gpg --output decifrato --decrypt cifrato

12 Sperimentazioni di Sicurezza, A.A. 2009/2010 Cifrare con chiave pubblica o È necessario possedere la chiave pubblica del destinatario o Linput della cifratura viene anche compresso Motivi di efficienza e sicurezza gpg –-recipient id_dest --encrypt file gpg --output decifrato --decrypt cifrato

13 Sperimentazioni di Sicurezza, A.A. 2009/2010 Firmare o Esistono tre modalità diverse di firma e rispettiva verifica 1.Compressione e firma 2.Firma senza compressione 3.Firma distaccata o È possibile cifrare e firmare specificando sia --encrypt che --sign 1.gpg --sign file gpg --decrypt signedfile 2.gpg --clearsign file gpg --verify signedfile 3.gpg –-detach-sig file gpg --verify signature file

14 Sperimentazioni di Sicurezza, A.A. 2009/2010 Gestione dei keyring o Alcune operazioni nel menù key edit gpg --edit-key Command> key id – (de)seleziona una chiave secondaria Command> uid id – (de)seleziona uno userid Command> adduid – aggiunge un nuovo userid alla chiave Command> addkey – aggiunge una nuova chiave secondaria Command> deluid – cancella luserid selezionato Command> delkey – cancella la chiave selezionata Command> revkey – revoca immediatamente la chiave selezionata Command> revsig – revoca la firma della chiave selezionata Command> expire – aggiorna la data di scadenza di una chiave Command> help – mostra tutti i comandi del menù Command> quit – esce dal menù

15 Sperimentazioni di Sicurezza, A.A. 2009/2010 o Il menù key edit mostra i valori di trust e validity per ogni chiave pub 1024D/FD54CEAC created: expires: mai utilizzo: SC fiducia: completa validità: completa sub 1056g/4FA4C00C created: expires: mai utilizzo: E [ full ] (1). Misato pub 1024D/FEC62EF9 created: expires: mai utilizzo: SC fiducia: sconosciuto validità: completa sub 2048g/C376884C created: expires: mai utilizzo: E [ full ] (1). John Linden Keyring: esempio

16 Sperimentazioni di Sicurezza, A.A. 2009/2010 Usare la fiducia per convalidare chiavi o Fino ad ora abbiamo comunicato con utenti che abbiamo potuto contattare direttamente al fine di verificare il legame tra la loro chiave e la loro identità Nella realtà, questo contatto diretto non sempre è possibile o In caso non sia possibile una verifica diretta, bisogna essere sicuri della validità del legame identità-chiave, che può essere modificato da un Man In The Middle o A tale scopo ci si appoggia al concetto di fiducia per convalidare le chiavi Se un certo numero di utenti certificano tramite firma il legame identità-chiave, allora tale legame viene considerato valido valido (Web of Trust)

17 Sperimentazioni di Sicurezza, A.A. 2009/2010 Web of trust: esempio A B C o Lutente A conosce solo B Ha verificato lidentità di B e ha firmato la sua chiave Si fida di B o B conosce C Ha verificato lidentità di C e ha firmato la sua chiave Invia ad A la chiave di C firmata o Dato che A si fida nella capacità di B di verificare chiavi, accetta la chiave di C come valida Questo non implica che A si debba fidare di C! Ritiene valida la chiave di Si fida di Ritiene valida, per fiducia, la chiave di

18 Sperimentazioni di Sicurezza, A.A. 2009/2010 Web of trust in PGP

19 Sperimentazioni di Sicurezza, A.A. 2009/2010 Trust in GPG o Trust può assumere 5 diversi valori Unknown, never, marginal, complete, ultimate o La validità della chiave è automaticamente posto a 1 se: È firmata da un numero sufficiente di chiavi valide Da se stessi, da 1 utente con trust complete o da 3 con trust marginal La catena di trust non è più lunga di 5 passi o I parametri del numero di firme necessarie e della lunghezza della catena possono essere cambiati nel file di configurazione gpg --edit-key id Command> trust

20 Sperimentazioni di Sicurezza, A.A. 2009/2010 Accettare delle chiavi sulla base del trust o Ponete a marginal il trust verso gli utenti che conoscete o Fatevi presentare un utente che non conoscete da diversi utenti noti, fino a quando la validità della chiave del nuovo utente non diventa complete o La chiave pubblica la cui validità non sia complete può essere utilizzata, ma GPG visualizza un avvertimento o Giocate con i parametri di trust per prendere confidenza con il meccanismo

21 PGP: considerazione metodologica o Lapproccio completamente decentralizzato di PGP evita il costo dellintroduzione di una terza parte fidata o Di contro, il trust deve essere riposto nella capacità degli utenti di riconoscere dei validi legami identità-chiave pubblica… Sperimentazioni di Sicurezza, A.A. 2009/2010

22 Enigmail o Usare la linea di comando per un uso privacy-aware della mail può risultare scomodo… o Enigmail è un plug-in per Mozilla Thunderbird che premette luso di GPG nel MUA Necessita che GPG sia già installato sulla macchina o Download: https://addons.mozilla.org/it/thunderbird o Installazione, dal menù di Thunderbird: Strumenti > Componenti aggiuntivi > Installa

23 Sperimentazioni di Sicurezza, A.A. 2009/2010 Enigmail o Una volta installato il plug-in, compaiono nuove opzioni

24 Sperimentazioni di Sicurezza, A.A. 2009/2010 Enigmail o È possibile cifrare e firmare le mail in uscita

25 Sperimentazioni di Sicurezza, A.A. 2009/2010 Enigmail o In occasione della spedizione del primo messaggio, verrà richiesto di selezionare la coppia di chiavi in uso o In Avanzate si possono selezionare diverse proprietà aggiuntive…

26 Sperimentazioni di Sicurezza, A.A. 2009/2010 Enigmail o Ogni operazione che necessita luso della chiave privata richiede limmissione della password

27 Sperimentazioni di Sicurezza, A.A. 2009/2010 Enigmail o È possibile decifrare i messaggi in entrata. Le firme dovrebbero essere verificate automaticamente

28 Sperimentazioni di Sicurezza, A.A. 2009/2010 GPG vs S/MIME o S/MIME (Secure Multipurpose Internet Mail Extention) è uno standard di crittografia a chiave pubblica Utilizzato per la sicurezza della posta elettronica Offre gli stessi servizi di autenticazione, integrità del messaggio, non-repudiabilità Sostituisce la web of trust con un più classico sistema basato su certificati emessi da CA o Enigmail offre anche il supporto per S/MIME

29 Sperimentazioni di Sicurezza, A.A. 2009/2010 GNU Privacy Guard: Introduzione alluso Speaker: Luca Maria Aiello, PhD student Università degli Studi di Torino, Computer Science Department Corso Svizzera, 185 – 10149, Torino, Italy Sperimentazioni di sicurezza A.A Grazie per lattenzione!

30 Sperimentazioni di Sicurezza, A.A. 2009/2010 © 2009 by Luca Maria Aiello. Permission to make digital or hard copies of part or all of this material is currently granted without fee provided that copies are made only for personal or classroom use, are not distributed for profit or commercial advantage, and that new copies bear this notice and the full citation.


Scaricare ppt "Sperimentazioni di Sicurezza, A.A. 2009/2010 GNU Privacy Guard: Introduzione alluso Speaker: Luca Maria Aiello, PhD student Università degli Studi di Torino,"

Presentazioni simili


Annunci Google