HMAC / MAC
Suite lato client di codici di autenticazione dei messaggi tramite hash con chiave che supporta HMAC-SHA256, SHA512, SHA384, SHA224, SHA1 e MD5 con accelerazione nativa Web Crypto e verifica a tempo costante.
Che Cos'è HMAC?
HMAC (Hash-based Message Authentication Code) combina una chiave segreta con una funzione hash per produrre un codice che dimostra sia che un messaggio non è stato modificato, sia che è stato creato da chi possiede la chiave condivisa — a differenza di un hash semplice, che chiunque può calcolare.
Come Usare lo Strumento HMAC / MAC
- Inserisci il messaggio e la chiave segreta.
- Scegli un algoritmo hash da usare con HMAC (sono disponibili SHA-256 e altri).
- Genera il MAC, oppure incolla un MAC esistente insieme a un messaggio e una chiave per verificarne la corrispondenza.
Note Tecniche
- HMAC richiede una chiave segreta — senza di essa, è solo un hash normale e non offre alcuna garanzia di autenticazione.
- Lo stesso messaggio e la stessa chiave producono sempre lo stesso MAC, quindi la verifica consiste nel ricalcolare il MAC e confrontarlo, non nel decifrare nulla.
- Mantieni segreta la chiave; chiunque la possieda può generare MAC validi indistinguibili dai tuoi.
Domande frequenti
In cosa si differenzia HMAC da un hash semplice?+
Un hash semplice può essere calcolato da chiunque, quindi rileva solo modifiche accidentali. HMAC incorpora una chiave segreta, perciò un tag valido dimostra anche che il messaggio proviene da qualcuno che possiede quella chiave. Senza chiave non fornisce alcuna autenticazione.
Come verifico un MAC? Può essere decifrato?+
Un MAC non è crittografia e non può essere invertito. Verificare significa ricalcolare l'HMAC sul messaggio e sulla chiave ricevuti e confrontarlo con il tag atteso. Questo strumento esegue tale confronto a tempo costante per evitare canali laterali temporali.
È sicuro usare HMAC-MD5 o HMAC-SHA1?+
Le debolezze di collisione di MD5 e SHA-1 non compromettono direttamente HMAC, quindi queste varianti compaiono ancora in alcuni protocolli legacy come le vecchie firme AWS e OAuth 1.0. Per qualsiasi cosa nuova, usa HMAC-SHA-256 o superiore.
