Autenticazione dei messaggi e funzioni hash Cap. 11 William Stallings.

28
Autenticazione dei messaggi e funzioni hash Cap. 11 William Stallings

Transcript of Autenticazione dei messaggi e funzioni hash Cap. 11 William Stallings.

Page 1: Autenticazione dei messaggi e funzioni hash Cap. 11 William Stallings.

Autenticazione dei messaggie funzioni hash

Cap. 11 William Stallings

Page 2: Autenticazione dei messaggi e funzioni hash Cap. 11 William Stallings.

Autenticazione di un messaggio

L’autenticazione di messaggio comporta:

• Protezione dell’integrità di un messaggio• Controllo dell’identità di colui che lo ha prodotto• Assenza di ripudio (risoluzione delle controversie)

Sono usate tre principali tecniche:

• Cifratura di messaggio• Message authentication code (MAC)• Funzione hash

Page 3: Autenticazione dei messaggi e funzioni hash Cap. 11 William Stallings.

Requisiti di sicurezza

• Violazione (rilascio di dati a persone che non possiedono la chiave)

• Analisi del traffico• Mascheramento (inserimento in rete di messaggi provenienti da una

sorgente fasulla)

• Modifica del contenuto• Variazione di sequenza ( inserimento, cancellazione, riordino)

• Modifica del timing (ritardo o ripetizione dei messaggi)

• Ripudio da parte del mittente• Ripudio da parte del destinatario

Possono essere identificati vari attacchi:

Page 4: Autenticazione dei messaggi e funzioni hash Cap. 11 William Stallings.

Cifratura di un messaggio

La cifratura del messaggio fornisce una misura di autenticazione

Se viene usata la cifratura simmetrica allora: Il receiver sa che il messaggio è stato creato dal preteso sender, perché solo lui ed il sender conoscono la chiave

Il messaggio originale potrebbe essere sostituito da un opponent che non conosce la chiave.

La funzione di decrittazione restituisce in tal caso una sequenza di bit priva di significato

Per evitare tali attacchi lo spazio dei messaggi deve essere ristretto

Non può essere alterato nemmeno se al messaggio si aggiunge un codice di rilevamento degli errori FCS (Frame Check Sequence) o

checksum per rivelare qualsiasi cambiamento

Page 5: Autenticazione dei messaggi e funzioni hash Cap. 11 William Stallings.

Cifratura di un messaggio

Se si facesse uso della encryption a chiave pubblica:• L’encryption non darebbe alcuna confidenza circa il

sender perché potenzialmente chiunque conosce la chiave pubblica

• Tuttavia se il sender firma il messaggio con la sua chiave privata e cifra il messaggio con la chiave pubblica del recipient si ottengono sia segretezza che autenticazione

• Il bisogno di riconoscere i messaggi corrotti si riflette nel costo che comporta l’utilizzo di due sistemi a chiave pubblica sullo stesso messaggio

Page 6: Autenticazione dei messaggi e funzioni hash Cap. 11 William Stallings.

Impieghi della crittografia dei messaggi

Page 7: Autenticazione dei messaggi e funzioni hash Cap. 11 William Stallings.

Controllo degli errori interno e esterno

Controllo interno degli errori

Controllo esterno degli errori

Page 8: Autenticazione dei messaggi e funzioni hash Cap. 11 William Stallings.

Un segmento TCP

Un segmento TCP

Page 9: Autenticazione dei messaggi e funzioni hash Cap. 11 William Stallings.

• Codice generato da un algoritmo che crea piccoli blocchi di lunghezza fissa dipendenti dal messaggio e da una chiave

• A differenza dell’encryption deve essere non reversibile

• Viene aggiunto al messaggio come una sorta di firma

• Colui che riceve effettua sul messaggio lo stesso calcolo e controlla la conformità del MAC

• MAC fornisce la certezza che il messaggio è inalterato e proviene da colui che lo ha firmato

Message Authentication Code (MAC)

Page 10: Autenticazione dei messaggi e funzioni hash Cap. 11 William Stallings.

Message Authentication Code

Page 11: Autenticazione dei messaggi e funzioni hash Cap. 11 William Stallings.

Autenticazione e segretezza

Autenticazione del testo in chiaro

Autenticazione del testo cifrato

Page 12: Autenticazione dei messaggi e funzioni hash Cap. 11 William Stallings.

Message Authentication Code

• Il MAC fornisce la confidenzialità

• Possibile usare la encryption per la segretezzaGeneralmente si usano per ciascun compito chiavi separate

Possibile calcolare il MAC prima o dopo la encryption Generalmente si ritiene preferibile farlo prima

• Perché usare un MAC ?Talvolta serve soltanto la autenticazioneTalvolta si richiede che l’autenticazione persista piùa lungo della encryption (p.e. uso di archivio)

• Nota: un MAC non è una firma digitale

Page 13: Autenticazione dei messaggi e funzioni hash Cap. 11 William Stallings.

Requisiti per i codici MAC

• Il MAC è una checksum criptograficaMAC = Ck (M)

-Crea un condensato di un messaggio con lunghezza variabile

-Utilizza una chiave segreta K -Ottiene un autenticatore di lunghezza fissa• È una funzione many-to-one -Potenzialmente molti messaggi hanno lo stesso

MAC -Determinare un messaggio con dato MAC è

estremamente difficile

Page 14: Autenticazione dei messaggi e funzioni hash Cap. 11 William Stallings.

Requirement per il MAC

Tenendo presente i diversi tipi di attacchi il MACdeve avere le seguenti caratteristiche:

1. Conoscendo un messaggio ed il MAC corrispondente,è computazionalmente impossibile trovare un altromessaggio con lo stesso MAC

2. I MAC dovrebbero essere uniformemente distribuiti3. I MAC dovrebbero dipendere in modo eguale

da tutti i bit del messaggio

Page 15: Autenticazione dei messaggi e funzioni hash Cap. 11 William Stallings.

Requirement per il MAC

Tenendo conto dei diversi tipi di attacco il MAC deveavere le seguenti prestazioni:

• Conoscendo un messaggio ed il MAC, deve essere computazionalmente impossibile trovare un altro messaggio con lo stesso MAC• I MAC devono essere uniformemente distribuiti nel

loro spazio• Il MAC deve dipendere egualmente da tutti i bit del messaggio

Page 16: Autenticazione dei messaggi e funzioni hash Cap. 11 William Stallings.

Uso dei cifrari simmetrici

Si può usare qualsiasi sistema cifrario a blocco inchaining mode e prendere il blocco finale come MAC

Il Data Authentication Algorithm (DAA) è un algoritmobasato sul DES-CBC che è stato largamente usato• Fa uso di un vettore di inizializzazione IV = 0 e

padding con zeri sul blocco finale• Cifra il messaggio usando il DES in modo

CBC(Cipher Block Chaining)• Invia come MAC il blocco finale• Oppure gli M bit più a sinistra (16 ≤ M ≤ 64)Oggi è però ritenuto troppo debole

Page 17: Autenticazione dei messaggi e funzioni hash Cap. 11 William Stallings.

Data Authentication Algorithm

Page 18: Autenticazione dei messaggi e funzioni hash Cap. 11 William Stallings.

Vari tipi di MAC

-È sicuro per messaggi di qualsiasi lunghezza ed ha un’efficienza ottimizzata

-NIST 800-38B Recommendation for Block Cipher Modes of Operation:

-The CMAC Mode for Authentication-Per usare il CMAC, bisogna scegliere un block

cipher E e una tag length t-CMAC is equivalent to OMAC1-Sostanzialmente un modo di funzionamento di un

block cipher

Page 19: Autenticazione dei messaggi e funzioni hash Cap. 11 William Stallings.

Hash Functions

• Condensano un messaggio di lunghezza arbitraria in uno di lunghezza fissa

h = H(M)• Usualmente si assume che la hash function sia

pubblica e priva di chiave• A differenza del MAC non è dotato di chiave per

rivelare i cambiamenti del messaggio• Può essere usata in vari modi con il messaggio• Usata molto spesso per creare una firma digitale

Page 20: Autenticazione dei messaggi e funzioni hash Cap. 11 William Stallings.

Hash Functions & Digital Signatures

Page 21: Autenticazione dei messaggi e funzioni hash Cap. 11 William Stallings.

Requirements for Hash Functions

1. Può essere applicata a messaggi M di qualsiasi lunghezza2. Produce un’uscita di lunghezza fissa h3. È facile calcolare h = H(M) per qualsiasi messaggio M4. Ad input uguali corrispondono sempre output uguali (coerenza)5. Dato h è computazionalmente impossibile determinare

un M tale che H(M) = h (proprietà one-way cioè non invertibile)6. Per qualsiasi dato blocco x è computazionalmente impossibile

trovare un y F x tale che H(y) = H(x)weak collision resistance

7. È computazionalemente impossibile trovare una coppia (x, y)tale che H(x) = H(y) (univocità) strong collision resistance

8. Output uniformemente distribuito (casualità)

Page 22: Autenticazione dei messaggi e funzioni hash Cap. 11 William Stallings.

Simple Hash Functions

• Esistono diverse proposte per funzioni semplici basate sull XOR di blocchi di messaggio

• Non risultano sicure perché è possibile manipolare qualsiasi messaggio non cambiando l’hash o anche cambiando pure l’hash

• Servono delle funzioni criptografiche forti

Page 23: Autenticazione dei messaggi e funzioni hash Cap. 11 William Stallings.

Birthday Attacks

Page 24: Autenticazione dei messaggi e funzioni hash Cap. 11 William Stallings.

Birthday Attacks

Page 25: Autenticazione dei messaggi e funzioni hash Cap. 11 William Stallings.

Birthday AttacksL’opponent genera 2m/2 pure variazioni del messaggio fraudolento desiderato

I due insiemi sono confrontati per trovare una coppia con lo stesso hash

Supposto che lo user abbia firmato il messaggio valido, si provvede a sostituirlo con quello fraudolento con lo stesso valore di hash

Conclusione: Bisogna usare un hash con una lunghezza m tale che non si possano calcolare2m/2 hash in un tempo ragionevole

Page 26: Autenticazione dei messaggi e funzioni hash Cap. 11 William Stallings.

Block Ciphers as Hash Functions

Potremmo pensare di usare i block cipher come hash function

Usare un blocco iniziale e fare il padding H0 = 0 del blocco finale con 0

Calcolare ( ) Hi = E Mi ,Hi-1

Usare il blocco finale come valore di hashSimile al CBC ma senza chiaveL’hash che ne risulta è troppo piccoloSuscettibile al birthday attackSuscettibile al man-in-the-middle attackAnche altre varianti sono suscettibili di attacco

Page 27: Autenticazione dei messaggi e funzioni hash Cap. 11 William Stallings.

Hash Functions & MAC Security

Come cifrari a blocco presentano:

Possibilità di attacchi a forza brutaUn hash con strong collision resistance ha un costo 2m/2 Vi è una proposta per un cracker h/w per MD5Gli hash con 128 bit appaiono vulnerabili; preferibile 160 bit

MAC con coppie message-MAC notePossibile attaccare il keyspace (key search) o il MACPer avere sicurezza servono MAC con almeno 128 bit

Page 28: Autenticazione dei messaggi e funzioni hash Cap. 11 William Stallings.

Hash Functions & MAC Security

Attacchi criptanalitici sfruttano la struttura algoritmica

Il termine di paragone delle hash functions è dato dai block ciphersEsiste una quantità di attacchi analitici sulle funzioni di hash iterate

Gli attacchi sfruttano proprietà delle funzioni di roundCome i block cipher sono spesso formati da roundsTipicamente si punta a collisioni nella funzione di round