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