Cosa significa che Hmac è sicuro?

2

Non mi sto occupando di un attacco collisione generale su una funzione hash debole come MD5 o SHA-1. Mi sto chiedendo la sicurezza di HMAC che si basa sulla funzione hash debole

Se ci sono la chiave k , messaggio m

Hmac(k,m) = hash(k'xor opad) || hash( (k' xor ipad) || m ) )

Prima domanda, che cosa significa che Hmac è sicuro?

  1. L'attaccante non può generare Hmac valido del messaggio dato m senza conoscere la chiave

  2. L'attaccante non può trovare la collisione che soddisfa Hmac(k',m') = Hmac(k,m) such k',m'

  3. L'utente può recuperare la chiave k

  4. altri

E seconda domanda.

Sto leggendo sulla carta Transcript Collision

Attacchi alle collisioni con trascrizione: interruzione dell'autenticazione in TLS, IKE e SSH

In questo documento, introducono la collisione di Transcript L'attaccante conosce m1 e m2 . E può trovare una collisione che soddisfi hash(m1 || m2' ) == hash(m1' || m2 ) such m1' and m2'

Se l'avversario usa questo attacco di collisione con trascrizione nella funzione hash debole, Può anche trovare una collisione che soddisfa Hmac(k',m') = Hmac(k,m) such k',m' ??

    
posta HyunJae Nam 09.09.2016 - 11:04
fonte

2 risposte

1

Esistono alcune ricerche che definiscono rigorosamente e dimostrano in che modo HMAC è sicuro:

HMAC è un meccanismo di autenticazione dei messaggi. Ciò significa che se un utente malintenzionato cambia un messaggio, può essere rilevato perché l'HMAC non corrisponde più. Ciò significa sostanzialmente che non vi è alcun messaggio m' in modo che HMAC(k, m') == HMAC(k, m) . Tieni presente che k è lo stesso qui. Se l'autore dell'attacco trova una collisione con un'altra chiave, in modo che HMAC(k', m') == HMAC(k, m) , non può essere usato per falsificare un messaggio.

    
risposta data 09.09.2016 - 14:16
fonte
2

I crittografi hanno una definizione generalmente accettata di sicurezza MAC: resistenza alla contraffazione esistenziale sotto attacco adattativo del messaggio scelto. La maggior parte dei libri di testo di crittografia copre questa definizione, ad esempio il Manuale di crittografia applicata è una buona fonte per Questo. HAC è disponibile online, quindi puoi consultare Capitolo 9 . È un po 'datato dal lato degli algoritmi, ma le definizioni sono generalmente ancora applicabili.

Ma per ampliare semplicemente questo aspetto, l'obiettivo di sicurezza per MAC è questo. Supponi che:

  1. L'utente malintenzionato non conosce la chiave segreta del difensore;
  2. L'attaccante può far sì che il difensore calcoli i tag per i messaggi di loro scelta;
  3. L'utente malintenzionato può utilizzare i risultati delle query precedenti per perfezionare quelli successivi.

Quindi un MAC si rompe se un aggressore efficiente è in grado di contraffare qualsiasi coppia (messaggio, tag) valida per un messaggio che non ha interrogato come parte del # 2. (Si noti che le formulazioni corrette di questa definizione hanno qualche matematica allegata a quantificare lo sforzo che l'attaccante inserisce nell'attacco e quali probabilità di successo sono inaccettabili.)

Se la chiave è segreta, questa definizione implica gli obiettivi di sicurezza che elevi (vedi HAC per maggiori dettagli):

  1. Attacker cannot generate valid Hmac of given message m without knowing key
  2. Attacker cannot finds collision that satisfy Hmac(k',m') = Hmac(k,m) such k',m'
  3. Attacker cannot recover key k

HMAC è progettato per soddisfare almeno la sicurezza MAC, ma ci sono anche prove che HMAC supporta un altro obiettivo più strong, chiamato sicurezza PRF ("PRF" = pseudorandom function ), che dice che un attaccante efficiente non può distinguere la funzione da una funzione selezionata a caso dello stesso dominio e intervallo.

    
risposta data 09.09.2016 - 20:06
fonte

Leggi altre domande sui tag