Codice di autenticazione del messaggio (MAC)

La primitiva MAC consente di verificare che nessuno manometta 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 il messaggio provenga dal mittente previsto e che non sia stato modificato.

MAC ha le seguenti proprietà:

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

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

Se hai bisogno di una primitiva asimmetrica, consulta 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 più veloce a seconda delle dimensioni del messaggio e delle specifiche dell'hardware che utilizzi.
  • 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.

Minime garanzie di sicurezza

  • Livello di sicurezza dell'autenticazione di almeno 80 bit
  • Proteggerti dalla contraffazione esistente in un attacco scelto con testo non crittografato
  • Sicurezza di almeno 128 bit contro gli attacchi di recupero delle chiavi e in scenari multiutente (quando un utente malintenzionato non prende di mira una chiave specifica, ma qualsiasi chiave di un insieme di massimo 232 chiavi)

Caso d'uso di esempio

Vedi Voglio proteggere i dati dalle manomissioni.