La sicurezza dell'HMAC basata su SHA-1 è influenzata dagli attacchi di collisione su SHA-1?Sicurezza HMAC - La sicurezza dell'HMAC basata su SHA-1 è influenzata dagli attacchi di collisione su SHA-1?
risposta
Le implicazioni di sicurezza di HMAC sono descritte in dettaglio nella sezione di sicurezza di the RFC. In breve, è necessario un attacco molto forte prima che la sicurezza dell'HMAC sia minacciata; gli attacchi di collisione esistenti su SHA-1 non sono certamente tali. HMAC è specificamente progettato per rendere gli attacchi difficile, e attacchi di collisione ordinari non sarà generalmente sufficiente:
La sicurezza del meccanismo di autenticazione del messaggio presentato qui dipende crittografici proprietà della funzione hash H: la resistenza a collisione trovare (limitatamente al caso in cui il valore iniziale è segreto e casuali, e dove l'uscita della funzione non è esplicitamente a disposizione l'attaccante), e la proprietà di autenticazione del messaggio la funzione di compressione 012.di H quando applicata a singoli blocchi (in HMAC questi blocchi sono parzialmente sconosciuta a un utente malintenzionato quanto contengono il risultato del calcolo interno H e, in particolare, non possono essere pienamente scelti dal malintenzionato).
Consiglio di leggere l'intera sezione; va più nel dettaglio su esattamente quali attacchi sarebbe sufficiente per rompere un HMAC, e solo quanto sarebbe stato richiesto.
L'attacco più forte nota contro HMAC è basato sulla frequenza delle collisioni per la funzione di hash H ("attacco di compleanno") [PV, BCK2], e è del tutto impraticabile per le funzioni di hash minimamente ragionevoli.
Ad esempio, se consideriamo una funzione hash come MD5 cui la lunghezza uscita è pari L = 16 byte (128 bit) l'attaccante deve acquisire i tag di autenticazione di messaggio corretto calcolato (con lo stesso segreto tasto K!) su circa 2 64 note in chiaro. Ciò richiederebbe l'elaborazione di almeno 2 64 blocchi sotto H, un'attività impossibile in qualsiasi scenario realistico (per una lunghezza di blocco di 64 byte ci vorranno 250.000 anni in un collegamento continuo da 1Gbps e senza cambiare il segreto chiave K durante tutto questo tempo). Questo attacco potrebbe diventare realistico solo se vengono rilevati gravi errori nel comportamento della collisione della funzione H (ad esempio, collisioni trovate dopo 2 ** 30 messaggi). Tale scoperta determinerebbe l'immediata sostituzione di della funzione H (gli effetti di tale errore sarebbero molto più gravi per gli usi tradizionali di H nel contesto di firme digitali, certificati di chiave pubblica, ecc.).
Nota: questo attacco ha bisogno di essere fortemente in contrasto con regolari attacchi collisione sulle funzioni di hash crittografico in cui nessuno chiave segreta è coinvolto e in cui 2 64 off-line parallelizzabile operazioni sufficienti a trovare collisioni (!).L'ultimo attacco si sta avvicinando alla fattibilità di [ [VW] *** mentre l'attacco di compleanno su HMAC è totalmente poco pratico. (Negli esempi precedenti, se si utilizza una funzione hash con, diciamo, 160 bit di uscita quindi 2 64 dovrebbe essere sostituito da 2 80.) *
Una corretta attuazione della costruzione sopra, la scelta di chiavi casuali (o crittograficamente pseudocasuali), un meccanismo di scambio della chiave protetta , frequenti aggiornamenti delle chiavi e buona segretezza protezione delle chiavi sono tutti ingredienti essenziali per la sicurezza dello meccanismo di verifica dell'integrità fornito da HMAC.
Se hai intenzione di citare ampiamente da RFC2104, la cosa onesta da fare sarebbe ammetterlo tanto. –
Vedere this question per una discussione sullo stesso tema. In poche parole: gli attacchi di collisione non danneggiano direttamente HMAC. Ma l'esistenza di attacchi di collisione implica che la funzione di compressione su cui è costruita la funzione di hash non è un "oracolo casuale", e questo invalida la prova di sicurezza HMAC.
Grazie per la tua risposta veloce :) –