Crittografia a chiave pubblica Crittografia a chiave pubblica
Transcript
Crittografia a chiave pubblica Crittografia a chiave pubblica
Crittografia a chiave pubblica Messaggio in chiaro M Codifica con KUb Decodifica con KRb: M Codifica con KUb A B Crittografia a chiave pubblica • Chiunque può spedire messaggi crittati a B usando KUb • Solo B può decodificare tali messaggi usando KRb Crittografia a chiave pubblica Crittografia a chiave pubblica Autenticazione Autenticazione Messaggio in chiaro M Codifica con KUb KRa A Decodifica con KUa: M Codifica con KRa • Solo A può crittare messaggi usando KRa • Chiunque può decrittare tali messaggi usando KUa B 1 Riepilogo Chiave segreta Chiave pubblica Lo stesso algoritmo con la stessa chiave per codifica e decodifica Mittente e destinatario condividono la chiave e l’algoritmo Lo stesso algoritmo con una chiave per la codifica ed una per la decodifica Mittente e destinatario hanno ognuno una coppia di chiavi (diverse) Gestione delle chiavi • Distribuzione delle chiavi pubbliche • Uso dei protocolli a chiave pubblica per distribuire chiavi segrete Riepilogo Chiave segreta Chiave pubblica La chiave è segreta Solo una chiave è segreta Un messaggio non deve poter essere decifrato senza la chiave Conoscendo l’algoritmo e vari messaggi non si può ricavare la chiave Un messaggio non deve poter essere decifrato senza la chiave privata Conoscendo l’algoritmo, la chiave pubblica e vari messaggi non si può ricavare la chiave privata Distribuzione delle chiavi pubbliche • • • • Annuncio Directory Authority Certificati 2 Annuncio • L’utente rende di pubblico dominio la propria chiave pubblica • Pubblicazione chiavi: – Tutti possono pubblicare la propria chiave Annuncio(1) • Vantaggi – Semplice, veloce, non necessita di intermediari • Svantaggi – Nessuna garanzia • Accesso: – Tutti possono accedere alle chiavi degli altri 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) Directory(1) • Accesso: – Pubblicazione periodica della directory – Accesso diretto alla directory tramite comunicazione autenticata – Può aggiornarla nello stesso modo in qualsiasi momento 3 Directory(2) • Vantaggi – Garantisce l’identità dei partecipanti • Svantaggi – Necessita di un’entità fidata super-partes – Necessita di protocolli di comunicazione sicuri per la pubblicazione e l’accesso alle chiavi – La Directory può essere violata Authority • Directory mantenuta da una Authority che ne ha l’accesso esclusivo • Pubblicazione chiavi: – Le chiavi vengono registrate presso l’Authority in maniera sicura Authority(1) • Accesso (A comunica con B): A ‡ Auth: Auth ‡ A: Req1||Timestamp1 [KUb||Req1||Timestamp1]KRauth A ‡ B: [IDA||N1]KUb B ‡ Auth: Req2||Timestamp2 Auth ‡ B: [KUa||Req2||Timestamp2]KRauth Authority(2) • Per avere autenticazione: B ‡ A: [N1||N2]KUa A ‡ B: [N2]KUb 4 Authority(3) • Vantaggi – Garantisce l’identità dei partecipanti e l’attualità delle chiavi Certificati • L’autenticità delle chiavi è certificata da una Authority • Pubblicazione chiavi: • Svantaggi – Necessita di un’entità fidata super-partes che va interpellata per ogni nuovo partecipante – La Directory può essere violata – L’interessato riceve la certificazione della propria chiave pubblica tramite una comunicazione autenticata con l’Authority Certificati(1) • Accesso: • Vantaggi – I partecipanti si scambiano le chiavi certificate • Esempio A ‡ Auth: Auth ‡ A: A ‡ B: B ‡ A: Certificati(2) KUa CA = [KUa||IDA||Timestamp1]KRauth CA CB= [KUb||IDB||Timestamp2]KRauth – Garantisce l’identità dei partecipanti e l’attualità delle chiavi (mitiga il problema del furto della chiave privata) • Svantaggi – Necessita di un’entità fidata super-partes che possa certificare in maniera sicura 5 Distribuzione delle chiavi segrete • Crittografia a chiave pubblica relativamente lenta • Una volta distribuite le chiavi pubbliche le uso per distribuire le chiavi segrete Semplice distribuzione(1) • Garantisce riservatezza ma non autenticazione • Es.: Man in the middle attack – A ‡ E(B): – E(A) ‡ B: – B ‡ E(A): – E(B) ‡ A: KUa||IDA KUe||IDA [Ks]KUe [Ks]KUa Semplice distribuzione • • • • • A genera {KUa, KRa} A ‡ B: KUa||IDA B genera Ks B ‡ A: [Ks]KUa Si scartano KRa e KUa Distribuzione a chiave pubblica • Le chiavi pubbliche sono già state distribuite • Per autenticazione: A ‡ B: B ‡ A: A ‡ B: [IDA||N1]KUb [N1||N2]KUa [N2]KUb 6 Distribuzione a chiave pubblica(1) • A genera Ks e la spedisce a B: – A ‡ B: [[Ks]KRa]KUb • Vantaggi – Garantisce riservatezza ed autenticazione • Svantaggi – Computazionalmente pesante Uno schema ibrido(1) • 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 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 Lunghezza delle chiavi • Pesantezza dei protocolli dipende dalla lunghezza della chiave • Chiave serve lunga per contrastare brute force attack • Attenzione a non spedire con KU messaggi troppo corti! 7