MAC (message authentication code)
siglacriptografia
Significa: Message Authentication Code
Uma etiqueta curta que prova que uma mensagem veio de quem detém a chave compartilhada e não foi alterada.
Um Message Authentication Code fornece integridade e autenticidade juntas: recalcule-a com a chave e compare. O HMAC é a construção comum baseada em hash. Note a coincidência com "endereço MAC", um termo de redes sem relação; o contexto desfaz a ambiguidade.
Um código de autenticação de mensagem responde a uma pergunta que a criptografia não responde: esta mensagem foi alterada, e veio de alguém que detém a chave compartilhada? Confidencialidade e integridade são propriedades separadas, e supor que a primeira entrega a segunda é um dos erros mais caros da criptografia aplicada.
A falha clássica é a ordem das operações. Criptografar a mensagem e então calcular o MAC sobre o texto cifrado permite ao destinatário rejeitar falsificações antes de descriptografar qualquer coisa. O inverso, autenticar o texto claro e depois criptografar o par, obriga o destinatário a descriptografar dados fornecidos pelo atacante antes de validá-los, que é a porta pela qual os ataques de oráculo de preenchimento passaram repetidas vezes. Criptografar e então autenticar é a ordem que sobrevive.
É exatamente por isso que existem as construções AEAD e por que os protocolos modernos recorrem a elas. Quando autenticação e criptografia são uma operação só com uma chave só, ninguém erra a ordem, e o TLS 1.3 removeu as alternativas em vez de documentá-las com mais cuidado. Vale manter separado de endereço MAC, com quem divide a sigla e nada mais.
Também conhecido como: mac, message authentication code