Gestione delle chiavi Distribuzione delle chiavi pubbliche Uso dei protocolli a chiave pubblica per...

87
Gestione delle chiavi • Distribuzione delle chiavi pubbliche • Uso dei protocolli a chiave pubblica per distribuire chiavi segrete

Transcript of Gestione delle chiavi Distribuzione delle chiavi pubbliche Uso dei protocolli a chiave pubblica per...

Page 1: Gestione delle chiavi Distribuzione delle chiavi pubbliche Uso dei protocolli a chiave pubblica per distribuire chiavi segrete.

Gestione delle chiavi

• Distribuzione delle chiavi pubbliche

• Uso dei protocolli a chiave pubblica per distribuire chiavi segrete

Page 2: Gestione delle chiavi Distribuzione delle chiavi pubbliche Uso dei protocolli a chiave pubblica per distribuire chiavi segrete.

Distribuzione delle chiavi pubbliche

• Annuncio pubblico

• Elenco pubblico

• Autorità di distribuzione

• Certificati

Page 3: Gestione delle chiavi Distribuzione delle chiavi pubbliche Uso dei protocolli a chiave pubblica per distribuire chiavi segrete.

Annuncio pubblico

• L’utente rende di pubblico dominio la propria chiave pubblica

• Pubblicazione chiavi:– Tutti possono pubblicare la propria chiave

• Accesso:– Tutti possono accedere alle chiavi degli

altri

Page 4: Gestione delle chiavi Distribuzione delle chiavi pubbliche Uso dei protocolli a chiave pubblica per distribuire chiavi segrete.

Utente A

K pub A

K pub A

K pub A

Utente B

K pub B

K pub B

K pub B

Ad esempio:la chiave pubblica vienemessa in allegato ai messaggi di posta elettronica

Page 5: Gestione delle chiavi Distribuzione delle chiavi pubbliche Uso dei protocolli a chiave pubblica per distribuire chiavi segrete.

Annuncio pubblico

• Vantaggi– Semplice, veloce, non necessita di intermediari

• Svantaggi– Nessuna garanzia: l’annuncio può essere facilmente

alterato. L’intruso può pubblicare la propria chiave pubblica a nome di un altro utente !

Page 6: Gestione delle chiavi Distribuzione delle chiavi pubbliche Uso dei protocolli a chiave pubblica per distribuire chiavi segrete.

Elenco pubblico (directory)

• Directory mantenuta da un’entità fidata (authority)

• Pubblicazione chiavi:

– Ogni partecipante registra la propria chiave presso l’authority (di persona o in modo sicuro)

– Può aggiornarla nello stesso modo in qualsiasi momento

Page 7: Gestione delle chiavi Distribuzione delle chiavi pubbliche Uso dei protocolli a chiave pubblica per distribuire chiavi segrete.

Utente A

K pub A

Utente B

K pub B

Elencochiavi

pubbliche

Page 8: Gestione delle chiavi Distribuzione delle chiavi pubbliche Uso dei protocolli a chiave pubblica per distribuire chiavi segrete.

Elenco pubblico

• Accesso:

– Pubblicazione periodica della directory (ad esempio su un periodico ad ampia diffusione)

– Accesso diretto alla directory tramite comunicazione elettronica (occorre una comunicazione autenticata e sicura)

Page 9: Gestione delle chiavi Distribuzione delle chiavi pubbliche Uso dei protocolli a chiave pubblica per distribuire chiavi segrete.

Elenco pubblico

• Vantaggi– Garantisce l’identità dei partecipanti che devono

autenticarsi con l’authorithy per poter pubblicare una chiave.

• Svantaggi– Necessita di un’entità fidata super-partes:

authority– Necessita di protocolli di comunicazione sicuri per

la pubblicazione e l’accesso alle chiavi– La Directory può essere violata

Page 10: Gestione delle chiavi Distribuzione delle chiavi pubbliche Uso dei protocolli a chiave pubblica per distribuire chiavi segrete.

Autorità di distribuzione

• Directory mantenuta da una Authority che ne ha l’accesso esclusivo.

• Controllo più rigido sulla distribuzione delle chiavi rispetto alla tecnica dell’elenco pubblico.

• Pubblicazione chiavi:

– Le chiavi vengono registrate presso l’Authority in maniera sicura (es: di persona)

Page 11: Gestione delle chiavi Distribuzione delle chiavi pubbliche Uso dei protocolli a chiave pubblica per distribuire chiavi segrete.

A B

Autorità didistribuzione

1

req,t1

2

KAut(KpubB,req,t1)

3

KPubB(IDA,N1)

4

req,t2

5

KAut(KpubA,req,t2)

6KPubA(N1,N2)

7KPubB(N2)

Page 12: Gestione delle chiavi Distribuzione delle chiavi pubbliche Uso dei protocolli a chiave pubblica per distribuire chiavi segrete.

Autorità di distribuzione

• Vantaggi– Garantisce l’identità dei partecipanti e

l’attualità delle chiavi

• Svantaggi– Necessita di un’entità fidata super-partes

che va interpellata per ogni nuovo partecipante

– La Directory può essere violata

Page 13: Gestione delle chiavi Distribuzione delle chiavi pubbliche Uso dei protocolli a chiave pubblica per distribuire chiavi segrete.

Certificati

• L’autenticità delle chiavi è certificata da una Autorità

• Pubblicazione chiavi:

– L’interessato riceve la certificazione della propria chiave pubblica tramite una comunicazione autenticata con l’Authority

Page 14: Gestione delle chiavi Distribuzione delle chiavi pubbliche Uso dei protocolli a chiave pubblica per distribuire chiavi segrete.

A B

Autorità dicertificazione

KPubACA=KAut(t1,IDA, KpubA)

CA=KAut(t2,IDB, KpubB)

KpubB

CA

1

CB

2

Page 15: Gestione delle chiavi Distribuzione delle chiavi pubbliche Uso dei protocolli a chiave pubblica per distribuire chiavi segrete.

Certificati

• Vantaggi– Garantisce l’identità dei partecipanti e l’attualità

delle chiavi (mitiga il problema del furto della chiave privata)

– Elimina il collo di bottiglia determinato dall’autorità di distribuzione.

• Svantaggi– Necessita di un’entità fidata super-partes che

possa certificare in maniera sicura

Page 16: Gestione delle chiavi Distribuzione delle chiavi pubbliche Uso dei protocolli a chiave pubblica per distribuire chiavi segrete.

Distribuzione delle chiavi segrete

• Crittografia a chiave pubblica relativamente lenta

• Una volta distribuite le chiavi pubbliche le uso per distribuire le chiavi segrete

Page 17: Gestione delle chiavi Distribuzione delle chiavi pubbliche Uso dei protocolli a chiave pubblica per distribuire chiavi segrete.

Un primo protocollo

1. A genera (KpubA, KprivA)

• A B: KpubA ,IDA

• B genera Ks

• B A: KpubA(Ks)

• Si scartano (KpubA, KprivA)

Page 18: Gestione delle chiavi Distribuzione delle chiavi pubbliche Uso dei protocolli a chiave pubblica per distribuire chiavi segrete.

• Garantisce riservatezza ma non autenticazione

• Es.: Man in the middle attack– A E: KpubA,IDA

– E B: KpubE ,IDA

– B E: KpubE(Ks)– E A: KpubA(Ks)

Un primo protocollo

Page 19: Gestione delle chiavi Distribuzione delle chiavi pubbliche Uso dei protocolli a chiave pubblica per distribuire chiavi segrete.

Un secondo protocollo:chiavi pubbliche già distribuite.

• Le chiavi pubbliche sono già state distribuite

• Per autenticazione:– A B: KpubB(IDA,N1)– B A: KpubA(N1,N2)– A B: KpubB(N2)

Page 20: Gestione delle chiavi Distribuzione delle chiavi pubbliche Uso dei protocolli a chiave pubblica per distribuire chiavi segrete.

Un secondo protocollo:chiavi pubbliche già distribuite.

• A genera Ks e la spedisce a B:

A B: KpubB(KprivA(Ks))

• Vantaggi– Garantisce riservatezza ed autenticazione

• Svantaggi– Computazionalmente pesante

Page 21: Gestione delle chiavi Distribuzione delle chiavi pubbliche Uso dei protocolli a chiave pubblica per distribuire chiavi segrete.

Uno schema ibrido

• C’è un Key Distribution Center che distribuisce le chiavi di sessione usando una Ks principale

• La chiave principale viene aggiornata usando un sistema a chiave pubblica

• Usato da alcuni mainframe IBM

Page 22: Gestione delle chiavi Distribuzione delle chiavi pubbliche Uso dei protocolli a chiave pubblica per distribuire chiavi segrete.

Uno schema ibrido

• Vantaggi– Garantisce riservatezza ed autenticazione– Mantiene buone prestazioni anche con

forte ricambio delle chiavi per molti utenti

• Svantaggi– Richiede la presenza di un KDC sicuro

Page 23: Gestione delle chiavi Distribuzione delle chiavi pubbliche Uso dei protocolli a chiave pubblica per distribuire chiavi segrete.

Lunghezza delle chiavi

• Pesantezza dei protocolli dipende dalla lunghezza della chiave

• Chiave serve lunga per contrastare brute force attack

• Attenzione a non spedire con Kpub messaggi troppo corti!

Page 24: Gestione delle chiavi Distribuzione delle chiavi pubbliche Uso dei protocolli a chiave pubblica per distribuire chiavi segrete.

SSL

Secure Socket Layer

Page 25: Gestione delle chiavi Distribuzione delle chiavi pubbliche Uso dei protocolli a chiave pubblica per distribuire chiavi segrete.

SSL: applicazioni telematiche

• E-commerce

• Trading on-line

• Internet banking

• ......

Page 26: Gestione delle chiavi Distribuzione delle chiavi pubbliche Uso dei protocolli a chiave pubblica per distribuire chiavi segrete.

SSL

• Protocollo proposto dalla Netscape Communications Corporation

• Garantisce confidenzialità e affidabilità delle comunicazioni su Internet

• Protegge da intrusioni, modifiche o falsificazioni.

Page 27: Gestione delle chiavi Distribuzione delle chiavi pubbliche Uso dei protocolli a chiave pubblica per distribuire chiavi segrete.

SSL

• Confidenzialità + Autenticazione.

• Sistema ibrido.

• Ibrido: Cifrari Simmetici + Cifrari Asimmetrici + Cerificati + MAC

Page 28: Gestione delle chiavi Distribuzione delle chiavi pubbliche Uso dei protocolli a chiave pubblica per distribuire chiavi segrete.

Utente U: Client Sistema S: Server

TCP/IP TCP/IP

HTTPHTTP

SSL SSL

HTTPS

Page 29: Gestione delle chiavi Distribuzione delle chiavi pubbliche Uso dei protocolli a chiave pubblica per distribuire chiavi segrete.

SSL Handshake

SSL Record

SSL

SSL Handshake crea un canale sicuro, affidabile e autenticato tra U e S entro il quale ...

... SSL record fa viaggiare i messaggi incapsulandoli in blocchi cifrati e autenticati.

Page 30: Gestione delle chiavi Distribuzione delle chiavi pubbliche Uso dei protocolli a chiave pubblica per distribuire chiavi segrete.

SSL Handshake e SSL Record

• Handshake: definisce il canale ovvero una suite crittografica che contiene i meccanismi di cifratura e autenticazione e le relative chiavi.

• Record implementa il canale utilizzando la suite per cifrare e autenticare i blocchi prima di darli in pasto a TCP.

Page 31: Gestione delle chiavi Distribuzione delle chiavi pubbliche Uso dei protocolli a chiave pubblica per distribuire chiavi segrete.

Client U Server S

- Client hello

- Pre-master secret- Cert. del Client- Finished

- Scambio sicuro dati - Scambio sicuro dati

- Server hello- Cert. del Server- Rich. Cert. Client- Server hello done

- Finished

Ha

ndsh

ake

Record

Page 32: Gestione delle chiavi Distribuzione delle chiavi pubbliche Uso dei protocolli a chiave pubblica per distribuire chiavi segrete.

Client hello

• U manda a S un msg richiedendo una connessione SSL.

• U specifica le “prestazioni” di sicurezza desiderate.– Versione del protocollo SSL supportato.– Lista di algoritmi di compressione supportati.– Cipher Suite: SSL_RSA_WITH_3DES_EDE_CBC_SHA

RSA: scambio chiavi di sessione

3DES_EDE_CBC: cifratura simmetrica

SHA: funzione hash one-way per MAC

• U allega una sequenza di byte casuali.

Page 33: Gestione delle chiavi Distribuzione delle chiavi pubbliche Uso dei protocolli a chiave pubblica per distribuire chiavi segrete.

Server hello

• S riceve il msg (client hello) da U• S selezione un algoritmo di compressione tra

quelli elencati da U.• S seleziona dalla cipher suite inviata da U

una cipher suite comune (tra U e S).• S invia a U un msg (server hello) contenente

gli elementi selezionati e una nuova sequenza di byte casuali.

• Se U non riceve il msg server hello interrompe la comunicazione.

Page 34: Gestione delle chiavi Distribuzione delle chiavi pubbliche Uso dei protocolli a chiave pubblica per distribuire chiavi segrete.

Scambio di Certificati

• S si autentica con U inviandogli il proprio certificato digitale (sequenza di certificati emessi da diverse CA).

• Se i servizi offerti da S devono essere protetti negli accessi, S può richiedere a U di inviargli il suo certificato (autenticazione di U con S).

Page 35: Gestione delle chiavi Distribuzione delle chiavi pubbliche Uso dei protocolli a chiave pubblica per distribuire chiavi segrete.

Server hello done

• S invia il msg server hello done a U.

• server hello done sancisce la fine della fase in cui ci si accorda sulla cipher suite e sui parametri crittografici.

Page 36: Gestione delle chiavi Distribuzione delle chiavi pubbliche Uso dei protocolli a chiave pubblica per distribuire chiavi segrete.

Autenticazione di S con U

• U controlla la validità della data del certificato ricevuto da S.

• U controlla che la CA che ha firmato il certificato sia tra quelle di cui si fida e che la firma sia autentica.

• Se S spedisce una lista di certificati si controlla l’intera lista.

Page 37: Gestione delle chiavi Distribuzione delle chiavi pubbliche Uso dei protocolli a chiave pubblica per distribuire chiavi segrete.

Invio del pre-master secretCostruzione del master secret

• U costruisce un pre-master secret P (nuova sequenza di byte casuali codificati con il cifrario a chiave pubblica concordato con S. Nell’esempio U usa RSA e la chiave pubblica di S contenuta nel certificato)

• U spedisce P a S dopo averlo cifrato con la chiave pubblica di S contenuta nel certificato e l’algoritmo concordato.

• U combina P con alcune stringhe note + byte casuali contenuti in client hello e server hello e codifica il tutto con SHA e MD5 ottenendo il master secret M.

Page 38: Gestione delle chiavi Distribuzione delle chiavi pubbliche Uso dei protocolli a chiave pubblica per distribuire chiavi segrete.

Ricezione di P e costruzione di M

• S decifra il msg di U e ottiene P.

• S calcola M nello stesso modo con cui U aveva calcolato M a partire da P.

• Nota: S può farlo perché dispone delle stesse informazioni di cui dispone U.

Page 39: Gestione delle chiavi Distribuzione delle chiavi pubbliche Uso dei protocolli a chiave pubblica per distribuire chiavi segrete.

Invio del certificato di U (opzionale)

• Quando richiesto da S, U gli invia il suo certificato.

• Se non lo possiede si interrompe il protocollo.• Insieme al certificato U allega, e firma con la

sua chiave privata, la SSL-history.• S controlla il certificato e in caso di anomalie

interrompe il protocollo.

Page 40: Gestione delle chiavi Distribuzione delle chiavi pubbliche Uso dei protocolli a chiave pubblica per distribuire chiavi segrete.

U: Finished

• U invia a S il msg finished protetto utilizzando M.

• Costruzione di finished: FU = M + tutti msg di handshake scambiati finora + identità di U

• U codificando FU con SHA e MD5 e lo invia a S.

Page 41: Gestione delle chiavi Distribuzione delle chiavi pubbliche Uso dei protocolli a chiave pubblica per distribuire chiavi segrete.

S: Finished

• S verifica il msg finished di U ricalcolando il tutto.

• S invia a U il suo msg finished protetto utilizzando M.

• Costruzione di finished: FS = M + tutti msg di handshake scambiati finora (incluso il msg finished di U) +identità di S.

• S codifica FS con SHA e MD5 e lo invia a U.• U verifica il msg finished ricevuo da S.

Page 42: Gestione delle chiavi Distribuzione delle chiavi pubbliche Uso dei protocolli a chiave pubblica per distribuire chiavi segrete.

A cosa serve M ?

• S e U utilizzano M per generare le chiavi (sia per il cifrario simmetrico sia per le funzioni MAC) e per altri scopi...

• Nota: Le chiavi utilizzate da S e U sono diverse ma note ad entrambi. Ciò rende il protocollo ancora più sicuro.

Page 43: Gestione delle chiavi Distribuzione delle chiavi pubbliche Uso dei protocolli a chiave pubblica per distribuire chiavi segrete.

SSL record

• I dati vengono frammentati in parti di lunghezza opportuna.

• Ogni blocco viene numerato, compresso, autenticato con MAC, cifrato con chiave segreta e trasmesso usando il protocollo di trasporto sottostante (esempio: TCP).

• Il destinatario opera in modo inverso al mittente e restituisce il messaggio all’applicazione sovrastante (esempio: HTTP).

Page 44: Gestione delle chiavi Distribuzione delle chiavi pubbliche Uso dei protocolli a chiave pubblica per distribuire chiavi segrete.

Client Hello e Server Hello

• In questa fase U e S si scambiano byte casuali (diversi ogni volta).

• M è funzione di queste sequenze di byte casuali.

• L’intruso non può riutilizzare i msg di handshake di sessioni precedenti per impersonare S in una successiva sessione con U (attacco di reply).

Page 45: Gestione delle chiavi Distribuzione delle chiavi pubbliche Uso dei protocolli a chiave pubblica per distribuire chiavi segrete.

MAC in SSL record

• Ogni blocco viene numerato e autenticato con MAC.• MAC= H(blocco, numero, K, stringhe note)• numero = 64 bit. No ripetizioni all’interno della stessa

sessione !!!• Si previene così facendo l’uso fraudolento e iterato

dello stesso blocco nella stessa sessione• Se un blocco viene perduto i blocchi successivi

vanno ricreati e rispediti.• MAC sono cifrati insieme al messaggio con chiave

simmetrica.

Page 46: Gestione delle chiavi Distribuzione delle chiavi pubbliche Uso dei protocolli a chiave pubblica per distribuire chiavi segrete.

Autenticazione di S

• S si autentica con uso di certificato. No men in-the-middle attack.

• Il pre-master secret viaggia da U a S in modo sicuro in quanto U usa la chiave pubblica di S contenuta nel certificato.

Page 47: Gestione delle chiavi Distribuzione delle chiavi pubbliche Uso dei protocolli a chiave pubblica per distribuire chiavi segrete.

Possibile autenticazione di U

• Se richiesto U può autenticarsi mediante invio del suo certificato.

• In pratica: Il sistema dispone di certificati mentre gli utenti di solito no.

• Quando richiesto per autenticare U si procede con login e password.

Page 48: Gestione delle chiavi Distribuzione delle chiavi pubbliche Uso dei protocolli a chiave pubblica per distribuire chiavi segrete.

Messaggi Finished

• Questi messaggi vengono costruiti in base al master secret e contengono tutte le informazioni che i due partner si sono scambiati durante la fase di handshake.

• Permettono a U e S di effettuare un controllo ulteriore sulle comunicazioni avvenute e di accertarsi di possedere lo stesso master secret.

• Permettono a U e S di accertarsi che non ci sia stato un attacco di tipo man in-the -middle.

Page 49: Gestione delle chiavi Distribuzione delle chiavi pubbliche Uso dei protocolli a chiave pubblica per distribuire chiavi segrete.

Generazioni Sequenze Casuali

• Sono contenute in client hello, server hello e pre-master secret.

• Da loro dipendono fortemente il master secret e quindi le chiavi segrete di sessione.

• La sequenza contenuta nel pre-master secret è inviata da U a S in modo cifrato e la sua impredicibilità è cruciale per la sicurezza del canale SSL.

• Se il generatore di sequenze pseudo-casuali non è di qualità l’intero protocollo si indebolisce.

Page 50: Gestione delle chiavi Distribuzione delle chiavi pubbliche Uso dei protocolli a chiave pubblica per distribuire chiavi segrete.

Conclusioni

• SSL è sicuro quanto la più debole cipher suite da esso supportata.

• Sarebbe meglio disabilitare nel proprio browser tutti i protocolli con chiavi troppo corte (esempio: cifrari simmetrici con chiavi a 40 bit e asimmetrici con chiavi fino a 512 bit)

• Non effettuare connessioni con sistemi anonimi perché si rischia che la propria password venga estorta !!!

Page 51: Gestione delle chiavi Distribuzione delle chiavi pubbliche Uso dei protocolli a chiave pubblica per distribuire chiavi segrete.
Page 52: Gestione delle chiavi Distribuzione delle chiavi pubbliche Uso dei protocolli a chiave pubblica per distribuire chiavi segrete.
Page 53: Gestione delle chiavi Distribuzione delle chiavi pubbliche Uso dei protocolli a chiave pubblica per distribuire chiavi segrete.

PGPPretty Good Privacy

Page 54: Gestione delle chiavi Distribuzione delle chiavi pubbliche Uso dei protocolli a chiave pubblica per distribuire chiavi segrete.

PGP

www.pgpi.orgwww.amagri.it/nai_pgp.htmwww.vcnet.com/~rossde/pgp.html

Page 55: Gestione delle chiavi Distribuzione delle chiavi pubbliche Uso dei protocolli a chiave pubblica per distribuire chiavi segrete.

PGP

• È un programma freeware (nella sua versione base)• È basato su tecniche crittografiche sia di tipo simmetrico che asimmetrico (ibrido)•Viene utilizzato principalmente per proteggere da occhi indiscreti le informazioni digitali (sia messaggi di posta elettronica che file residenti sul proprio PC)• Permette la firma digitale.

Page 56: Gestione delle chiavi Distribuzione delle chiavi pubbliche Uso dei protocolli a chiave pubblica per distribuire chiavi segrete.

Un po’ di storia

• Nel 1991 al Senato americano approda un disegno di legge anticrimine che prevede l’obbligo per i produttori di strumenti crittografici di inserire “trap doors” nei loro prodotti. • Prima che la legge venga approvata, Philip R. Zimmermann scrive e distribuisce PGP.

Page 57: Gestione delle chiavi Distribuzione delle chiavi pubbliche Uso dei protocolli a chiave pubblica per distribuire chiavi segrete.

Un po’ di storia

• Zimmermann viene accusato di aver violato le leggi sui brevetti in quanto in PGP viene utilizzato RSA . • Inoltre il governo americano lo accusa di violare l’ITAR (International Traffic in Arms Regulations) che prevede il divieto di esportazione per le tecnologie crittografiche e quindi anche dei programmi software che le implementano• Viene istituito un fondo per far fronte alle spese legali• Le accuse vengono ritirate

Page 58: Gestione delle chiavi Distribuzione delle chiavi pubbliche Uso dei protocolli a chiave pubblica per distribuire chiavi segrete.

PGP

• Creazione delle chiavi.• Cifratura/decifratura e firma/verifica di

documenti digitali (es. e-mail).

• Gestione delle chiavi

• Creazioni di self-decrypting archives (SDAs)

• Cancellazione permanente di file, directory e spazio su disco

• Creazione di VPN (Virtual Private Network)

Page 59: Gestione delle chiavi Distribuzione delle chiavi pubbliche Uso dei protocolli a chiave pubblica per distribuire chiavi segrete.

Chiavi

• PGP utilizza sia protocolli a chiave segreta che protocolli a chiave pubblica.

• Approssimativamente: – chiavi segrete 80 bit equivalenti chiavi pubbliche 1024 bit– chiavi segrete 128 bit equivalenti chiavi pubbliche 3000 bit

• Chiavi segrete a 56 bit non sicure• Chiavi segrete a 128 bit sicure, ma non con

calcolatori quantistici...che non esistono (e probabilmente non esisteranno mai)

• Chiavi segrete a 256 bit sicure comunque !!!• Anche se..........

Page 60: Gestione delle chiavi Distribuzione delle chiavi pubbliche Uso dei protocolli a chiave pubblica per distribuire chiavi segrete.

Passphrase

Passphrase “L’erba del vicino è sempre più verde”

PGP

Utente

Passphrase: serve all’utente quando si rende Necessario l’uso della chiave privata. Più facile Da ricordare. Da non dimenticare !!!

Chiave privata“certyunemcpo3456n3g6kg3636g6ng6”

Chiave pubblica“7ecngnkwgmiml5g\h7kk7kikfkhlghk”

Memorizzatain modo sicuro.

Page 61: Gestione delle chiavi Distribuzione delle chiavi pubbliche Uso dei protocolli a chiave pubblica per distribuire chiavi segrete.

Algoritmi usati in PGP

• Chiave privata (simmetrici):– CAST– Triple-DES– IDEA– Two Fish (AES)

• Chiave pubblica (asimmetrici):– DSS (digital Signature Standard)– RSA

• Hash:– SHA1 (Secure Hash Algorithm)

Page 62: Gestione delle chiavi Distribuzione delle chiavi pubbliche Uso dei protocolli a chiave pubblica per distribuire chiavi segrete.

Codifica

Mittente:

1. comprime il documento da spedire.2. genera una chiave Ks segreta che viene detta

chiave di sessione.3. codifica il documento compresso utilizzando Ks. 4. si procura la chiave pubblica del destinatario Kp 5. codifica Ks usando Kp

6. spedisce documento codificato con Ks e la chiave segreta codificata con Kp

Page 63: Gestione delle chiavi Distribuzione delle chiavi pubbliche Uso dei protocolli a chiave pubblica per distribuire chiavi segrete.

Decodifica

Destinatario:

1. usando la propria chiave privata accede allachiave segreta di sessione.

2. usando la chiave segreta di sessione decodifica il messaggio.

3. decomprime il messaggio.

Compressione e decompressione rafforzano il Protocollo !!!

Page 64: Gestione delle chiavi Distribuzione delle chiavi pubbliche Uso dei protocolli a chiave pubblica per distribuire chiavi segrete.

Ciao, sono un file non

compresso esto per essere

codificato

74c4cchKc98xacS785Jc44DBN

Compressione e perditadi struttura!

codifica

codifica

Vantaggi:-No attacchi statistici-Minori dimensioni

Page 65: Gestione delle chiavi Distribuzione delle chiavi pubbliche Uso dei protocolli a chiave pubblica per distribuire chiavi segrete.

Firma

Mittente:

1. crea impronta del msg (digest) usando una funzione hash.

2. usa la propria chiave segreta Ks per firmare il digest.

3. spedisce il msg + digest firmato

Page 66: Gestione delle chiavi Distribuzione delle chiavi pubbliche Uso dei protocolli a chiave pubblica per distribuire chiavi segrete.

Verifica

Destinatario:

1. usando la propria chiave pubblica Kp decodifica il digest.

2. verifica la firma ricalcolando la funzione hash sul msg e confrontando il risultato con il digest appena decodificato.

Page 67: Gestione delle chiavi Distribuzione delle chiavi pubbliche Uso dei protocolli a chiave pubblica per distribuire chiavi segrete.

Certificati digitali

Problema:la chiave pubblica con la quale stiamo cifrando deve appartenere realmente al destinatario del messaggio.

Si pone il problema dello scambio delle chiavi (man-in-the-middle attack).

I certificati digitali vengono usati per evitare che qualcuno tenti di “spacciarsi” per un’altra persona sostituendone la chiave pubblica.

Page 68: Gestione delle chiavi Distribuzione delle chiavi pubbliche Uso dei protocolli a chiave pubblica per distribuire chiavi segrete.

Certificati digitali

Componenti principali di un certificato digitale.

1. La chiave pubblica di U2. Informazioni inerenti all’identità di U (nome,

cognome, data e luogo di nascita, …)3. firma digitale di chi rilascia il certificato.

Scopo del certificato: mettere in relazione U con la sua chiave pubblica.

Page 69: Gestione delle chiavi Distribuzione delle chiavi pubbliche Uso dei protocolli a chiave pubblica per distribuire chiavi segrete.

QuickTime™ and aTIFF (Uncompressed) decompressor

are needed to see this picture.

Fotografia+

Dati personali

Timbri=

Fidati ! La foto Corrisponde ai dati

personali

Certificati Cartacei

Page 70: Gestione delle chiavi Distribuzione delle chiavi pubbliche Uso dei protocolli a chiave pubblica per distribuire chiavi segrete.

Distribuzione dei certificati

1. Manuale o di persona. Quasi mai realizzabile in pratica ! (passaporto: distribuzione manuale)

2. Generati, Custoditi e distribuiti da entità fidate.

– Certificate servers– Public Key Infrastructures (PKI)

Page 71: Gestione delle chiavi Distribuzione delle chiavi pubbliche Uso dei protocolli a chiave pubblica per distribuire chiavi segrete.

Certificate servers

Database disponibili su rete.Permettono agli utenti di

• richiedere l’inserimento del proprio certificato nel database.

• richiedere il certificato di qualcuno.

PGP ha un certificate server chiamato: PGP keyserver

Page 72: Gestione delle chiavi Distribuzione delle chiavi pubbliche Uso dei protocolli a chiave pubblica per distribuire chiavi segrete.

PKIs

Svolgono le funzioni dei certificate servers

+emettono certificati;revocano certificati;gestiscono la fiducia sui certificati (trust)

PKI = Registration Authority (RA) + Certification Authority (CA)

Page 73: Gestione delle chiavi Distribuzione delle chiavi pubbliche Uso dei protocolli a chiave pubblica per distribuire chiavi segrete.

PKIs

• RA: esegue i controlli prima di emettere il certificato (entità fisiche, persone, …)

• CA: emette/genera il certificato (software)

Page 74: Gestione delle chiavi Distribuzione delle chiavi pubbliche Uso dei protocolli a chiave pubblica per distribuire chiavi segrete.

Formato dei certificati

• PGP riconosce due formati di certificato:– Certificati in formato PGP– Certificati in formato X.509 (standard

internazionale: tutte le applicazioni in linea teorica dovrebbero riconoscerlo e supportarlo anche se in pratica esistono molte varianti dello standard X.509 che lo rendono … non standard)

Page 75: Gestione delle chiavi Distribuzione delle chiavi pubbliche Uso dei protocolli a chiave pubblica per distribuire chiavi segrete.

Certificato di U in formato X.509

• Numero di versione dello standard X.509 utilizzato.• Chiave pubblica di U. Caratteristiche della chiave

(lunghezza, algoritmo con cui è stata creata, data di creazione, durata della chiave…)

• Numero del certificato. Serve ad esempio per la revoca (CRL)

• Distinguished name (DN): identificativo di U su tutta la rete.

• Periodo di validità del certificato (inizio e fine validità).• Il nome di chi ha firmato il certificato (di solito una

CA), la sua firma digitale e l’algoritmo usato per apporre la firma.

Page 76: Gestione delle chiavi Distribuzione delle chiavi pubbliche Uso dei protocolli a chiave pubblica per distribuire chiavi segrete.

Gestione dei Certificati:Netscape

Page 77: Gestione delle chiavi Distribuzione delle chiavi pubbliche Uso dei protocolli a chiave pubblica per distribuire chiavi segrete.

Gestione dei Certificati:Netscape

Page 78: Gestione delle chiavi Distribuzione delle chiavi pubbliche Uso dei protocolli a chiave pubblica per distribuire chiavi segrete.

Gestione dei Certificati:Netscape

Page 79: Gestione delle chiavi Distribuzione delle chiavi pubbliche Uso dei protocolli a chiave pubblica per distribuire chiavi segrete.

Certificato di U in formato PGP

• Numero di versione PGP.• Chiave pubblica di U. Caratteristiche della chiave

(lunghezza, algoritmo con cui è stata creata, data di creazione, durata della chiave…)

• Informazioni sull’identità di U: nome, cognome, luogo e data di nascita, foto, …

• Self-signature: chiave pubblica di U firmata con la chiave privata di U.

• Indicazione dell’algoritmo simmetrico di codifica preferito (Es: CAST, IDEA, Triple-DES).

• Altre firme…..

Page 80: Gestione delle chiavi Distribuzione delle chiavi pubbliche Uso dei protocolli a chiave pubblica per distribuire chiavi segrete.

PGP Vs X.509

PGP X.509

U crea il proprio certificato

U richiede alla CA di creare il suo

certificato

Identità di U multipla Identità di U singola

Firme multiple per attestare la validità

del certificato

Firma singola per attestare la validità

del certificato

Page 81: Gestione delle chiavi Distribuzione delle chiavi pubbliche Uso dei protocolli a chiave pubblica per distribuire chiavi segrete.

LucianoMargara

L. Margara

Luciano

L.M.

Struttura di un certificato PGP

Page 82: Gestione delle chiavi Distribuzione delle chiavi pubbliche Uso dei protocolli a chiave pubblica per distribuire chiavi segrete.

Come distinguere tra chiaviautentiche e chiavi false

Certificati X.509:Per determinare se il certificato è autentico e quindi usabile occorre fidarsi della CA.La CA deve essere una entità fidata. Dobbiamo fidarci della validazione della chiave effettuata dalla CA

Problema: CA = collo di bottiglia.

Page 83: Gestione delle chiavi Distribuzione delle chiavi pubbliche Uso dei protocolli a chiave pubblica per distribuire chiavi segrete.

Come distinguere tra chiavibuone e chiavi false

Certificati PGP:Per determinare se il certificato è autentico e quindi usabile occorre fidarsi di altri utenti che hanno validato la chiave.Ogni utente può essere visto come una CA. Dobbiamo fidarci della validazione della chiave effettuata da altri utenti.

Problema: di quali utenti ci fidiamo ?

Page 84: Gestione delle chiavi Distribuzione delle chiavi pubbliche Uso dei protocolli a chiave pubblica per distribuire chiavi segrete.

PGP: Validity and Trust

Obiettivo: validare un certificato (una chiave pubblica) ovvero assegnare a un certificato un valore che misuri quanto io reputi vero quel certificato.

Metodo: - controllo di persona in qualche modo.- mi fido di controlli fatti da altri soggetti (trusted).

Page 85: Gestione delle chiavi Distribuzione delle chiavi pubbliche Uso dei protocolli a chiave pubblica per distribuire chiavi segrete.

PGP: Validity and Trust

1. Mi fido di me stesso (sono un soggetto Trusted)! Assegno alle chiavi che ho potuto controllare direttamente di persona il giudizio Valid.

2. Assegno un valore di fiducia (trust) agli utenti:– Trust– Marginal trust– No trust

3. PGP assegna ad una chiave un valore di validità: – Valid– Marginally valid– Invalid

in base ai giudizi espressi da altri utenti su quella chiave e al valore di trust che io ho assegnato a quegli utenti.Non transitivo!!!

Page 86: Gestione delle chiavi Distribuzione delle chiavi pubbliche Uso dei protocolli a chiave pubblica per distribuire chiavi segrete.

Francesco

Certificato di Francesco

Chiave Pubblicadi Francesco

Altre Informazioni

INVALID

MarcoTrust

Certificato di Francesco

Chiave Pubblicadi Francesco

Altre Informazioni

VALID

Page 87: Gestione delle chiavi Distribuzione delle chiavi pubbliche Uso dei protocolli a chiave pubblica per distribuire chiavi segrete.

Francesco MartinaMarginal trust

Certificato di Francesco

Chiave Pubblicadi Francesco

Altre Informazioni

INVALID

AliceMarginal trust

Certificato di Francesco

Chiave Pubblicadi Francesco

Altre Informazioni

VALID