Cos'è HMAC?
HMAC (Hash-Based Message Authentication Code) è un meccanismo crittografico che combina una funzione hash crittografica con una chiave segreta per produrre un codice di autenticazione di dimensione fissa, consentendo al destinatario di verificare sia l'integrità che l'autenticità di un messaggio.
Noto anche come: Hash-Based Message Authentication Code, HMAC-SHA256
Una semplice funzione hash come SHA-256 può verificare l'integrità dei dati — se l'hash corrisponde, i dati non sono stati alterati. Ma un hash da solo non può verificare l'autenticità, perché chiunque può calcolare un hash. HMAC risolve questo incorporando una chiave segreta nel processo di hashing. Solo le parti che possiedono la chiave possono generare o verificare il valore HMAC corretto, fornendo integrità e autenticazione in un'unica operazione.
La costruzione HMAC, definita nell'RFC 2104, applica la funzione hash due volte con la chiave mescolata in fasi specifiche. Questa struttura a doppio passaggio protegge contro gli attacchi di estensione della lunghezza e altre vulnerabilità che sorgerebbero concatenando ingenuamente una chiave con il messaggio prima dell'hashing. HMAC-SHA256 (HMAC usando SHA-256 come hash sottostante) è la variante più comune e produce un codice di autenticazione a 256 bit.
HMAC è usato estensivamente nei protocolli di sicurezza: firme JWT, autenticazione API, verifica webhook, protezione dei record TLS e OAuth si affidano tutti a HMAC. La sua efficienza lo rende pratico per autenticare dati ad alto volume come pacchetti di rete o richieste API, dove gli schemi di firma asimmetrica introdurrebbero una latenza inaccettabile.
Sign a message with HMAC-SHA256
Edit either the key or the message and watch the signature change completely — the avalanche effect that makes HMAC forgery-resistant.
computing…
A verifier with the same key recomputes the HMAC over the received message; if it matches, the message was authored by someone who knows the key andwasn't modified in transit. Vaulted uses this exact construction to issue tamper-proof status-page tokens.
Come Vaulted usa HMAC
Vaulted usa HMAC-SHA256 per generare token sicuri per le pagine di stato dei segreti. Quando viene creato un segreto, viene calcolato un HMAC sull'ID del segreto usando una chiave lato server. Questo token HMAC è incluso nell'URL della pagina di stato, consentendo al creatore del segreto di verificare se il proprio segreto è stato visualizzato o è scaduto — senza dare all'endpoint di stato la possibilità di consumare visualizzazioni o accedere al contenuto cifrato. HMAC viene anche usato internamente da PBKDF2 come funzione pseudocasuale durante la derivazione delle chiavi dalle passphrase.