Codice di autenticazione del messaggio (MAC)
Mantieni tutto organizzato con le raccolte
Salva e classifica i contenuti in base alle tue preferenze.
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:
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.
Salvo quando diversamente specificato, i contenuti di questa pagina sono concessi in base alla licenza Creative Commons Attribution 4.0, mentre gli esempi di codice sono concessi in base alla licenza Apache 2.0. Per ulteriori dettagli, consulta le norme del sito di Google Developers. Java è un marchio registrato di Oracle e/o delle sue consociate.
Ultimo aggiornamento 2025-07-25 UTC.
[[["Facile da capire","easyToUnderstand","thumb-up"],["Il problema è stato risolto","solvedMyProblem","thumb-up"],["Altra","otherUp","thumb-up"]],[["Mancano le informazioni di cui ho bisogno","missingTheInformationINeed","thumb-down"],["Troppo complicato/troppi passaggi","tooComplicatedTooManySteps","thumb-down"],["Obsoleti","outOfDate","thumb-down"],["Problema di traduzione","translationIssue","thumb-down"],["Problema relativo a esempi/codice","samplesCodeIssue","thumb-down"],["Altra","otherDown","thumb-down"]],["Ultimo aggiornamento 2025-07-25 UTC."],[[["\u003cp\u003eThe Message Authentication Code (MAC) primitive, using a shared symmetric key, enables verification of data integrity and authenticity by generating an authentication tag.\u003c/p\u003e\n"],["\u003cp\u003eMAC ensures authenticity as only the key holder can create a verifiable tag, and it's symmetric, requiring the same key for both computation and verification.\u003c/p\u003e\n"],["\u003cp\u003eTink recommends HMAC_SHA256 for most use cases, while HMAC_SHA512 offers higher security and AES256_CMAC might provide better performance with specific hardware.\u003c/p\u003e\n"],["\u003cp\u003eTink's MAC implementation guarantees a minimum of 80-bit authentication strength, protection against forgery, and at least 128-bit security against key recovery attacks, even in multi-user environments.\u003c/p\u003e\n"]]],["MAC uses a shared symmetric key between sender and recipient to verify message authenticity and integrity. The sender computes an authentication tag for a message, which the recipient uses to confirm its origin and unaltered state. MAC guarantees authenticity, where only key holders can create verifiable tags. Key recommendations include HMAC_SHA256, HMAC_SHA512 (most conservative), and AES256_CMAC (fastest with AES-NI). MAC is designed solely for message authentication, offering a minimum of 80-bit authentication strength.\n"],null,[]]