HMAC (keyed-hash message authentication code ohash-based message authentication code) è una modalità per l'autenticazione di messaggi (message authentication code) basata su una funzione di hash, utilizzata in diverse applicazioni legate allasicurezza informatica.
Tramite HMAC è infatti possibile garantire sia l'integrità, sia l'autenticità di un messaggio. HMAC non si occupa di crittografare il messaggio: il messaggio (crittografato o meno) deve essere trasmesso insieme al codice HMAC. I destinatari che hanno una copia della chiave segreta potranno applicare l'algoritmo al messaggio ricevuto, e se il messaggio è autentico, potranno verificare che il codice ricevuto e quello calcolato da se stessi è identico. HMAC utilizza infatti una combinazione del messaggio originale e unachiave segreta per la generazione del codice.
Una caratteristica peculiare di HMAC è il non essere legato a nessuna funzione di hash in particolare, questo per rendere possibile una sostituzione della funzione nel caso non fosse abbastanza sicura. Nonostante ciò le funzioni più utilizzate sonoMD5 eSHA-1, entrambeattualmente considerate poco sicure.
Il messaggio viene suddiviso in blocchi di lunghezza pari a jbit. Viene poi selezionata una chiave segreta K. Se questa risulta essere più lunga di j bit, a questa viene applicata la funzione H. Quello che si ottiene è detta K', la chiave di HMAC.
Una volta definita K' l'eventualepadding della chiave originale la funzione HMAC calcolerà il valore nel seguente modo:
dove
Altri progetti
Funzioni crittografiche di Hash eCodici di autenticazione dei messaggi (MAC) | |
---|---|
Funzioni di hash principali | MD5 ·SHA-1 ·SHA-2 ·SHA-3 |
Altre funzioni | BLAKE ·GOST ·HAS-160 ·HAVAL ·LM hash ·MDC-2 ·MD2 ·MD4 ·N-Hash ·RIPEMD ·RadioGatún ·Snefru ·Tiger ·Whirlpool |
Algoritmi diMAC | DAA ·CBC-MAC ·HMAC ·OMAC/CMAC ·PMAC ·UMAC ·Poly1305-AES |
Attacchi | Collisione hash ·Attacco del compleanno ·Attacco preimmagine ·Tabella arcobaleno ·Attacco del canale laterale ·Attacco a forza bruta |
Varie | Effetto valanga ·Costruzione di Merkle-Damgård ·NESSIE ·NIST hash function competition |
Portale Crittografia ·Progetto Crittografia ·Hash crittografici ·MAC |