Decodifica di un HMAC SHA256 quando la chiave è uguale alla stringa originale

1

In teoria, la funzione Python per la crittografia di un HMAC SHA256 si presenta così:

hmac_sha256(key, text)

La parola "ciao" è stata crittografata usando la funzione in questo modo:

hmac_sha256("hello", "hello")

Quanto sarebbe facile per qualcuno decrittografarlo, sapendo che il messaggio originale è uguale alla chiave?

    
posta user3672036 03.03.2018 - 14:55
fonte

2 risposte

4

How easy would it be for someone to decrypt this, knowing that the original message equals the key?

Se tutto quello che sai è che la chiave è uguale al messaggio, è praticamente impossibile attaccare l'HMAC. Se guardi come viene calcolato HMAC puoi vedere che in qualche modo dovresti ottenere l'input per uno SHA- 256 hash da un output noto. Ciò significherebbe che è necessario montare un attacco pre-immagine con successo contro SHA-256, considerato oggi praticamente impossibile.

    
risposta data 03.03.2018 - 15:14
fonte
2

Supponendo che sia la chiave che il messaggio abbiano una quantità ragionevole di entropia, quindi, come ha detto Steffen Ullrich, si riduce allo stesso livello di sicurezza di SHA-256 dell'input. (I valori non saranno gli stessi, ovviamente, ma sarà lo stesso livello di complessità da invertire).

Tuttavia, se la tua stringa è semplice come "ciao", allora un attacco del dizionario è abbastanza ragionevole. Qualsiasi operazione che utilizza solo input a bassa entropia è suscettibile di un simile attacco: basta inserire tutti i possibili valori di input e trovare quello la cui uscita corrisponde.

L'uso di HMAC SHA-256 nel modo in cui hai descritto non sembra offrire alcun vantaggio al di là di un semplice SHA-256. Si noti inoltre che gli hash e i MAC non sono "crittografati", si suppone che siano operazioni a senso unico indipendentemente dal fatto che si disponga o meno della chiave HMAC.

    
risposta data 03.03.2018 - 23:45
fonte

Leggi altre domande sui tag