Codice di autenticazione del messaggio (MAC)

La primitiva MAC ti consente di verificare che nessuno abbia manomesso i tuoi dati. Un mittente che condivide una chiave simmetrica con un destinatario può calcolare un tag di autenticazione per un determinato messaggio, che consente al destinatario di verificare che un messaggio proviene dal mittente previsto e non è stato modificato.

MAC ha le seguenti proprietà:

  • Autenticità: conoscere la chiave è l'unico modo per creare un tag MAC verificabile.
  • Symmetric: il calcolo e la verifica del tag richiedono la stessa chiave.

L'MAC può essere deterministico o casuale, a seconda dell'algoritmo. Al momento, Tink non implementa algoritmi MAC non deterministici. Devi utilizzare MAC solo per l'autenticazione dei messaggi, non per altri scopi come la generazione di byte pseudocasuali (per questo, consulta PRF).

Se invece hai bisogno di una primitiva asimmetrica, consulta la sezione Firma digitale.

Scegli un tipo di chiave

Consigliamo di utilizzare HMAC_SHA256 per la maggior parte degli utilizzi, ma esistono anche altre opzioni.

In generale, vale quanto segue:

  • HMAC_SHA512 può essere o meno più veloce a seconda delle dimensioni del messaggio e delle specifiche dell'hardware utilizzato.
  • HMAC_SHA512 è la modalità più conservativa che può essere utilizzata per un numero praticamente illimitato di messaggi.
  • AES256_CMAC è più veloce sui sistemi che supportano l'accelerazione hardware AES-NI.

Garanzie di sicurezza minime

  • Efficacia dell'autenticazione di almeno 80 bit
  • Sicurezza contro la contraffazione esistenziale in caso di attacco di testo non cifrato scelto
  • Sicurezza di almeno 128 bit contro gli attacchi di recupero della chiave e anche in scenari multiutente (quando un malintenzionato non ha come target una chiave specifica, ma qualsiasi chiave di un insieme di massimo 232 chiavi)

Esempio di caso d'uso

Consulta Voglio proteggere i dati da manomissioni.