Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
vuoi
o PayPal
tutte le volte che vuoi
DES DES DES DES
( K (K (F)) ).
DES DES
Crittografia perfetta
Definizione: Nessun testo codificato rilascia informazione alcuna né sulla chiave usata per la codifica, né sul
testo in chiaro, il quale può essere recuperato se e solo se la chiave è disponibile.
• Ideale: nessun tipo di attacco crittografico (crittoanalisi) possibile
• Probabilità nulla di ricavare informazioni supplementari da un testo codificato
• Crittografia in pratica quasi mai perfetta 59
Integrità dei messaggi
L’integrità del messaggio si verifica quando il messaggio arriva integro o se si modifica il destinatario deve
capire che è stato modificato.
Bob riceve un messaggio da Alice, e vuole essere sicuro che il messaggio provenga effettivamente da Alice e
che non sia stato alterato lungo il cammino.
Esistono delle funzioni: funzioni hash crittografiche. Queste funzioni prende in input m e produce un valore
a lunghezza fissa chiamato H(m). Inoltre, deve essere computazionalmente impossibile trovare due
messaggi x e y tali che H(x) = H(y); oppure dato m = H(x), con x sconosciuto, è impossibile determinare x.
La checksum di internet: un algoritmo di sintesi poco efficace
La checksum di Internet ha alcune delle proprietà di una funzione hash:
• Crea sintesi di messaggi a lunghezza fissa (16 bit)
• È molti-a-uno
Ma è relativamente semplice trovare altri dati che utilizzano la stessa checksum del messaggio originale.
Esempio:
In questo caso viene scambiata la posizione dell’1 e del 9. Il risultato non cambia perché la somma non
cambia.
Codice di autenticazione dei messaggi (MAC)
A e B concordano una password; in
questo caso s.
A calcola la funzione hash concatenando
m ed s. Una volta calcolata la funzione
hash, A manda su Internet sia il
messaggio in chiaro e sia la funzione
hash calcolata.
Messaggio e funzione hash arrivano a B;
tramite s, B si calcola la funzione hash
usando s ed m (arrivato da A). Una volta calcata la funzione hash la va a confrontare con la funzione hash
mandata da A. 60
Come vediamo, l’intruso non può attaccare perché conosce m e non s; infatti, per modificare il messaggio,
l’intruso deve sapere il valore di H(m+s). Se ad esempio, l’intruso, modificasse m con m’, B calcola H(m’+s) e
la va a confrontare con H(m+s) mandata da A. Qui B si accorge che il messaggio è stato modificato.
MD5 e SHA-1
MD5 è molto usato per l’hash dei messaggi (RFC 1321):
• Calcola un’hash di 128 bit con un processo a 4 fasi
• Con una stringa x di 128 bit arbitrari, appare difficile costruire un messaggio m il cui hash MD5 sia
uguale a x
È molto usato anche SHA-1:
• Standard statunitense [NIST, FIPS, PUB 180-1]
• Produce una sistesi del messaggio di 160 bit
Firma digitale
La firma digitale ha la stessa valenza della firma cartacea ed è una tecnica crittografica, ovvero che bisogna
avere chiave pubblica e chiave privata.
• Il mittente (Bob) firma digitalmente un documento, stabilendo che lei è l’unico
proprietario/scrittore del messaggio
• Verificabile e non falsificabile: il destinatario (Alice) può dimostrare che Bob e nessun altro (Alice
inclusa) può aver firmato il documento
Ci sono due versioni della firma digitale: versione naive e versione efficiente.
Versione naive
Bob firma un messaggio m, che è un documento non modificabile (tipo PDF o PDFA), e lo codifica
B- B-
utilizzando la sua chiave privata K , creando così un messaggio “firmato” K (m).
B-
Ad Alice, Bob manda sia il messaggio m sia il messaggio firmato K (m). Ho un problema, se il file è di 1
Megabit, la dimensione della chiave privata sarà anche di 1 Megabit; questo perché si va a cifrare bit a bit il
file. 61 B+ B-
Dopodicchè, Alice verifica che m è firmato da Bob applicando la chiave pubblica di Bob K a K (m) e
B+ B- B+ B-
controlla che K (K (m)) = m. Se K (K (m)) = m, chiunque abbia firmato m deve usare la chiave privata di
Bob.
Possiamo dire a questo punto che:
o Alice può verificare che:
▪ Bob ha firmato m
▪ Nessun altro ha firmato m
▪ Bob ha firmato m e non m’
o Non-ripudio:
▪ B-
Alice può prendere m e la firma K (m) per dimostrare che Bob ha firmato m
Questa versione è poco efficiente perché il documento, arrivato a destinazione, raddoppia la sua
dimensione.
Versione efficiente
Il mittente quindi calcola la funzione hash di m.
La firma (chiave privata di Bob), in questo caso,
viene applicata alla funzione hash del
messaggio. Il vantaggio è che la dimensione
del firmato è uguale a quello non firmato; al
massimo il firmato può avere qualche byte in
più.
A questo punto, viene mandato al destinatario
sia il messaggio non firmato e sia la funzione
hash firmata.
Il destinatario ricalcola nuovamente la funzione hash del messaggio che gli è arrivato dal mittente e tramite
la chiave pubblica del mittente decifra il documento firmato. A questo punto per verificare l’integrità
confronta la funzione hash calcolata da lui e quella arrivata dal mittente (decodificata con la chiave
pubblica).
Certificazione della chiave pubblica
Problema: quando Alice riceve la chiave pubblica di Bob (attraverso un disco, un sito web o via e-mail), come
fa a sapere che è veramente la chiave pubblica di Bob e non, magari, quella di Chuck?
Soluzione: Autorità di certificazione (CA, certification authority) che certifica l’identità di chi possiede una
chiave pubblica. 62
Autorità di certificazione
L’autorità di certificazione collega una chiave pubblica a una particolare entità, E. E, che può essere una
persona fisica o un router, registra la sua chiave pubblica con CA.
Quindi E fornisce una “prova d’identità” a CA; CA crea un certificato che collega E alla sua chiave pubblica.
Questo certificato contiene la chiave pubblica di E con firma digitale di CA (CA dice “questa è la chiave
pubblica di E”).
Succede che la CA calcola l’hash del certificato di identità, effettuando gli stessi passaggi della versione
efficiente della firma digitale. Il file finale contiene la chiave pubblica, l’identità della persona e la firma
della CA.
CA+
La K della CA viene firmata da un’altra CA. Le CA seguono una gerarchia e la certificazione avviene via via
fino ad arrivare alla CA più alta nella gerarchia.
Esempio:
Quando Alice vuola la chiave pubblica di Bob, prende il certificato di Bob e applica la chiave pubblica di CA
al certificato e ottiene la chiave pubblica di Bob.
Un certificato contiene: In questo caso è presente una data di validità; questa
è limitata perché chi vuole scoprire la chiave non
riesce dati i lunghi tempi che si potrebbero impiegare.
63
Autenticazione end-to-end
Autenticazione
L’autenticazione sono tecniche che si usano per verificare che gli utenti che stanno parlando con altri utenti
siano sicuri che stanno parlando con l’utente giusto.
Obiettivo: Bob vuole che Alice gli “dimostri” la sua identità.
Si usano i protocolli ap, ovvero autentication protocol.
Protocollo ap1.0: Alice dice “Sono Alice”. È uno scenario con
fallimento perché in una rete, Bob non può “vedere” Alice, e Chuck
può semplicemente autenticarsi come Alice.
Protocollo ap2.0: Alice dice “Sono Alice” in pacchetto
IP che contiene il suo indirizzo IP sorgente. È uno
scenario con fallimento perché Chuck èuò creare un
pacchetto che imita l’indirizzo di Alice (spoofing).
Protocollo ap3.0: Alice dice “Sono Alice” e invia la sua
password segreta per “dimostrarlo. È uno scenario con
fallimento perché Chuck può effettuare un attacco di
replica; ovvero, registra il pacchetto di Alice e lo
riproduce successivamente trasmettendolo a Bob.
Protocollo ap3.1: Alice dice “Sono Alice” e invia la sua
password segreta criptata per “dimostrarlo. Scenario
con fallimento poiché registrazione e riproduzione
funzionano ancora. 64
Quindi abbiamo l’obiettivo di evitare un attacco di replica (playback attack). Si fa l’uso di un nonce, ovvero
un numero random R che verrà usato soltanto una volta.
Protocollo ap4.0: Alice manda un messaggio “Sono
Alice”, Bob sceglie e manda ad Alice un nonce R.
Alice reinvia il nonce R, criptato utilizzando la chiave
simmetrica segreta condivisa.
Questo è un protocollo challenge response; ovvero è
considerato come una “sfida testa a testa” dove si
prova a criptare R.
La R viene continuamente cambiata; se non la cambio c’è il rischio che Chuck possa intercettare (ad
esempio: se Bob manda R = 5, A risponde 10; C riesce ad intercettare. Al passo dopo se Bob rimanda R = 5
in risposta potrebbe entrare in gioco Chuck perché ha intercettato prima e la R non è cambiata)
Nel protocollo ap4.0 è stato usato un nonce e la crittografia simmetrica; si può utilizzare anche la
crittografia asimmetrica.
Protocollo ap5.0: usa un nonce e la crittografia
asimmetrica.
Quindi entrambi hannno chiave privata e chiave
pubblica. A+ A-
Bob calcola K (K (R)) = R e autentica Alice.
Autenticazione con uso di un KDC
Si basa sulla crittografia simmetrica.
In un sistema distribuito composto da N host, ogni host condivide N-1 chiavi e globalmente sono necessarie
2
N(N-1)/2 chiavi segrete, che è un numero molto grande ( O(N ) ).
In questo caso si può utilizzare un approccio centralizzato, il Key Distribution Center (KDC) che gestisce solo
N chiavi. 65
In questo caso A vuole parlare con B e quindi
chiede la chiave al KDC.
Il KDC fornisce la chiave ad entrambi i nodi che
vogliono interagire; infatti, in questo caso, il
KDC manda la chiave cifrata ad A tramite K A, KDC
e a B tramite K .
B, KDC
Problema: per la latenza di rete, uno dei due
nodi riceve la chiave prima dell’altro.Per questo entra in gioco un ticket.
Il KDC può passare K (K ) ad A affida ad A
B, KDC A, B
di connettersi a B. Il messaggio è chiamato
ticket.
Quindi, le chiavi vengono mandate entrambe
ad A. In un secondo momento, A manda la
chiave a B, dove solo B potrà decifrarla.
Grazie a questo viene risolto il problema della
sincronizzazione. 66
Rendere sicura la posta elettronica
E-mail sicure
Nelle e-mail sicure viene usata una chiave di sessione condivisa tramite crittografia asimmetrica.
Alice vuole inviare un messaggio e-mail riservato m a Bob.
Ali