Elementi di Sicurezza e Privatezza Lezione 20 PGP cont d - Esercizi

Documenti analoghi
Sicurezza della posta elettronica

Esercitazione 03. Sommario. Gnu Privacy Guard (GPG) Chiavi GPG (1/2) Andrea Nuzzolese. Gnu Privacy Guard (GPG) Descrizione esercitazione

PGP: Pretty Good Pricvacy

Pretty Good Privacy. PGP fornisce crittografia ed autenticazione. creato da Phil Zimmermann nel in origine è un'applicazione per

Laboratorio di Crittografia I - PGP/GPG

Esercitazione 2 Certificati

GNU Privacy Guard - GnuPG/GPG

Crittografia per la sicurezza dei dati

Firma Digitale RSA con GnuPG

Comunicazioni e identità sicure: LE CHIAVI PGP E GPG uso e abuso. By Martino Colucci Linux Night 14 Aprile 2010 martyn at ultrapowersystem dot it

Piccolo manuale PGP pubblica privata chiave pubblica chiave privata non firewall personale

Crittografia e OpenSource

Sicurezza nelle reti: protezione della comunicazione

Crittografia e firma digitale. Prof. Giuseppe Chiumeo

Creazione e Gestione Certificati

Privacy e firma digitale

Secure Socket Layer (SSL) Transport Layer Security (TLS)

Crypto Android. Trusted Execution Environment. TrustZone

La sicurezza nelle reti di calcolatori

logaritmo discreto come funzione unidirezionale

La firma digitale, o firma elettronica qualificata, basata sulla tecnologia della crittografia a chiavi asimmetriche, è un sistema di autenticazione d

Identificazione, Autenticazione e Firma Digitale. Firma digitale...

La firma digitale e la posta elettronica certificata

Crittografia. Crittografia Definizione. Sicurezza e qualità dei servizi su internet Università degli Studi di Pavia, C.

Crittografia da Whatsapp a Wikileakes, tra spie e segreti di stato

Generazione di certificati X.509 nell ambito dei test di interoperabilità dei Sistemi di Posta Elettronica Certificata (PEC)

Marcatura Temporale di Digital Timestamp Documenti Digitali marca temporale prima dopo Alcune idee Facile e Difficile facile dopo difficile

FIRMA ELETTRONICA. Il sistema di garanzia è stato individuato nella crittografia in quanto è in grado di assicurare:

RSA in OpenSSL. Alfredo De Santis. Marzo Dipartimento di Informatica Università di Salerno.

La Shell di Unix. l utente impartisce i comandi al sistema digitandoli ad un apposito prompt;

Pretty Good Privacy. PGP: cos è. PGP: cos è. Corso di Sicurezza su reti Barbara Masucci

INFORMAZIONI SUL CERTIFICATO DIGITALE

Programmazione in Rete

Crittografia a chiave pubblica

Transcript:

Elementi di Sicurezza e Privatezza Lezione 20 PGP cont d - Esercizi Chiara Braghin chiara.braghin@unimi.it

PGP (1) Software per cifrare la posta elettronica e per la protezione di file di uso personale Creato da Philip Zimmermann nel 1991 e distribuito gratuitamente su Internet Obiettivi: permette di firmare una mail lasciando il testo in chiaro permette di cifrare una mail senza firmarla permette di firmare e cifrare una mail 1

PGP (2) - Algoritmi Basato su crittografia simmetrica e asimmetrica: Cifratura simmetrica: DES, 3DES, AES, CAST, IDEA Usata per cifrare il messaggio con la chiave di sessione Cifratura assimmetrica: RSA, ElGamal, DH Usata per cifrare la chiave di sessione generata dal mittente Hashing: SHA-1, MD-5 2

PGP (3) - Algoritmi Firma digitale: RSA, DSS, ECDSA e altri Usata per firmare/cifrare con la chiave privata del mittente l hash del messaggio Compressione: Zip Compatibilità mail e segmentazione: Radix-64 Il messaggio cifrato è convertito in stringa ASCII ed eventualmente segmentato nel caso di messaggi di lunghezza eccessiva 3

PGP (4) Ogni utente dispone di: chiave privata: usata per firmare e decifrare i messaggi chiave pubblica: disponibile a tutti ed usata per cifrare i messaggi chiave di sessione: chiave che mittente e destinatario condividono varia ad ogni invio viene generata dal mittente 4

PGP (5) - Gestione chiavi Due strutture dati (key ring) per memorizzare le chiavi: Private key ring: contiene la coppia (chiave pubblica, chiave privata) dell utente Campi e attributi memorizzati: TIMESTAMP: indica l ora in cui è stata generata la chiave KEY ID: 64 bit meno significativi della chiave pubblica PUBLIC KEY: chiave pubblica PRIVATE KEY: chiave privata cifrata con la passphrase USER ID: proprietario della chiave Chiave privata: Viene generata da PGP ma permette all utente di specificare la lunghezza della chiave La passphrase viene convertita in una chiave IDEA usando MD5, tale chiave viene utilizzata per cifrare con IDEA la chiave privata 5

PGP (6) - Gestione chiavi Public key ring: contiene le chiavi pubbliche delle persone note all utente Campi e attributi memorizzati: TIMESTAMP: indica l ora in cui è stata generata o inserita la chiave KEY ID: i 64 bit meno significativi della chiave pubblica PUBLIC KEY: chiave pubblica OWNER TRUST: fiducia nel proprietario della chiave KEY LEGITIMACY: fiducia nella chiave FIRMA: firma per la chiave SIGNATURE TRUST: fiducia nella firma 6

PGP (7) - Generazione di un messaggio firma compressione cifratura 7

PGP (8) - Ricezione di un messaggio 8

PGP (9) - Formato messaggio 9

PGP (10) - Certificati Ogni chiave presente nel key-ring ha associato un certificato che contiene le seguenti informazioni: Version number: quale versione di PGP è stata usata per creare la chiave Time: l'ora in cui è stata creata la chiave Validity: il periodo di validità della chiave Key-Type: l'algoritmo usato per generare le chiavi User Id: il proprietario della chiave Self-Signature: firma ottenuta usando la chiave privata della chiave pubblica associata al certificato Message digest algorithm: algoritmo utilizzato per avere il message digest Signed message digest: firma del message digest Symmetric encryption algorithm: algoritmo di cifratura usato per cifrare le informazioni 10

PGP (11) - Certificati PGP riconosce due formati di certificato: Certificati in formato PGP Certificati in formato X.509 11

PGP (12) Come ottenere una chiave pubblica? Direttamente dalla persona a cui appartiene Usando i key-server, server presenti su Internet dedicati al deposito e prelievo delle chiavi pubbliche Per ricevere o inserire chiavi bisogna inviare una mail all indirizzo del key-server 12

PGP (13) - Web of Trust PGP si basa su una gestione decentralizzata: Ciascuno si rende responsabile certificando una chiave (o il suo certificato) in suo possesso Metodo: Assegno un valore di fiducia agli utenti (Unknown user, usually not trusted to sign, usually trusted to sign, always trusted to sign, ultimately trusted -own key, present in private key ring-) PGP assegna ad una chiave un valore di validità in base ai giudizi espressi da altri utenti su quella chiave e al valore di fiducia che io ho assegnato a quegli utenti (Valid, Marginally valid, Invalid) Quindi: Io sono Trusted :-) Assegno alle chiavi che ho potuto controllare direttamente di persona il giudizio Valid Il valore di validità di un certificato misura quanto io reputi vero quel certificato 13

PGP (14) Key Fingerprint Breve sequenza di byte utilizzata per autenticare o risalire ad una chiave pubblica più lunga Creata applicando una funzione di hash alla chiave pubblica Esempio: D5A4 F097 B6B6 3D3A D7CB 75CA 505E 261C 1EB9 B3E7 14

PGP (15) - Implementazioni PGPi project International PGP Home Page GNU Privacy Guard (GnuPG o GPG) rilasciato sotto la licenza GNU GPL, è un programma progettato per sostituire la suite crittografica PGP è completamente compatibile con gli standard OpenPGP dell'ietf Disponibile sia come stand-alone che come plug-in per i più diffusi client di posta 15

PGP (16) - Riferimenti http://www.pgpi.org www.ietf.org/html.charters/openpgp -charter.html http://www.gnupg.org 16

GPG vs PGP Creazione della coppia di chiavi gpg --gen-key Esportazione di una chiave pubblica gpg --armor --export id_chiave > file.key Importazione di una chiave pubblica gpg -i --import file.key Elenco chiavi pubbliche gpg --list-keys gpg-agent Un daemon per gestire le chiavi private usato come backend for gpg e gpgsm 17

Alternative a PGP PEM (Privacy Enhanced Mail) Standard definito in RFC 1421-1424 Gestione delle chiavi più strutturata (gerarchia di CA) S/MIME Standard definito in RFC 2632-2643 Sistema flessibile che supporta diversi algoritmi crittografici 18

Esame Prova scritta (NON A LIBRO APERTO) della durata di circa 2 ore Domande sulla teoria e sul laboratorio Esercizi Per i frequentanti: Alcuni (brevi) assignment durante i laboratori che possono dare alcuni punti di bonus da aggiungere al voto dello scritto Per i non frequentanti: Prova scritta 19

LABS

Esercizi (1) Che differenza c è tra i comandi cat, more, tail? Esplorate il vostro file system. Qual è il pathname della vostra home directory? Quali sono le sotto-directory di /? I seguenti comandi che effetto producono? Perchè? cd mkdir d1 chmod 444 d1 cd d1 Cosa succede nel caso in cui f2 sia una directory nei comandi mv f1 f2 e cp f1 f2? 21

Esercizi (2) Usando il file di configurazione principale e file.htaccess separati: 1. Creare 2 directory, imgs e docs, nella root directory di Apache. Dentro imgs mettere alcuni file jpeg e un file index.html, in docs mettere solo alcuni file html 2. Fare in modo che nella directory imgs sia possibile visualizzare solo i file jpeg 3. Aggiungere una direttiva in modo che anche il file index.html inserito nella directory imgs sia visibile (mentre tutti gli altri eventuali file.html non siano accessibili) 4. Fare in modo che i file in docs siano visibili solo a richieste che provengono dal vostro indirizzo IP (ottenuto usando il comando ifconfig) 22

Esercizi (3) 1. Nella direttiva <Directory> si deve usare il path assoluto o quello relativo? Giustificare la risposta. 2. Cercare nello user manual a cosa serve la parola chiave Indexes. Provare ad utilizzarla. 3. Quali sono i permessi minimi che si devono dare ad un file e ad una directory nel Web tree per fare in modo che vengano letti tramite richiesta HTTP? 23

Esercizi (4) 1. Creare un file delle password che contenga almeno gli utenti alice e bob 2. Creare una cartella cartella_segreta che contenga un file index.html 3. Fare in modo che solo alice possa leggere il file index.html 4. Fare in modo che sia alice che bob, oppure un utente che fa la richiesta con IP 192.168.13.1 possano leggere il file index.html 5. Fare in modo che bob possa leggere il file index.html solo se fa la richiesta con IP 192.168.13.2 6. Fare in modo che l utente trudy non possa leggere il file 24

Esercizi (5) 1. Provare a richiedere da shell la pagina index.html al Web server www.dti.unimi.it. Analizzare la risposta ottenuta (header, status, ecc.). Provare a fare la stessa richiesta tramite browser e fare un confronto. 2. Si faccia la richiesta del punto 1 chiedendo che la versione del protocollo HTTP da utilizzare sia la 1.1. Come finisce la negoziazione con il server? Quale versione viene utilizzata? 3. Si mandi una richiesta HTTP al server del punto 1, senza chiedere un file particolare. Ora che tipo di risposta si ottiene? 4. Provare a richiedere tramite telnet delle pagine Web ad almeno altri 7 server diversi. Vedere in genere quale versione del protocollo HTTP utilizzano. 25