Código de autenticação de mensagem (MAC)
Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
A primitiva MAC permite verificar se ninguém adulterou seus dados.
Um remetente que compartilha uma chave simétrica com um destinatário pode calcular uma
tag de autenticação para uma determinada mensagem, o que permite que o destinatário verifique
se uma mensagem é do remetente esperado e não foi modificada.
O MAC tem as seguintes propriedades:
- Autenticidade: saber a chave é a única maneira de criar uma tag MAC
verificável.
- Symmetric: o cálculo e a verificação da tag exigem a mesma chave.
O MAC pode ser determinístico ou aleatório, dependendo do algoritmo. O Tink
não implementa algoritmos MAC não determinísticos no momento. Use MAC
apenas para autenticação de mensagens, não para outros fins, como a geração de
bytes pseudoaleatórios (para isso, consulte PRF).
Se você precisar de uma primitiva assimétrica, consulte Assinatura
digital.
Escolher um tipo de chave
Recomendamos o uso de HMAC_SHA256 para a maioria dos casos, mas há outras opções
também.
Em geral, o seguinte é verdadeiro:
Garantias mínimas de segurança
- Força de autenticação de pelo menos 80 bits
- Proteção contra falsificação existencial em ataques de texto simples escolhido
- Segurança de pelo menos 128 bits contra ataques de recuperação de chaves e também em
cenários de vários usuários (quando um invasor não está mirando em uma chave específica, mas
em qualquer chave de um conjunto de até 232 chaves).
Exemplo de caso de uso:
Consulte Quero proteger os dados contra adulteração.
Exceto em caso de indicação contrária, o conteúdo desta página é licenciado de acordo com a Licença de atribuição 4.0 do Creative Commons, e as amostras de código são licenciadas de acordo com a Licença Apache 2.0. Para mais detalhes, consulte as políticas do site do Google Developers. Java é uma marca registrada da Oracle e/ou afiliadas.
Última atualização 2025-07-25 UTC.
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Não contém as informações de que eu preciso","missingTheInformationINeed","thumb-down"],["Muito complicado / etapas demais","tooComplicatedTooManySteps","thumb-down"],["Desatualizado","outOfDate","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Problema com as amostras / o código","samplesCodeIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 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,[]]