ScholarGate
Assistente

Códigos de Autenticação de Mensagens

Um código de autenticação de mensagem (MAC) utiliza uma chave secreta partilhada para produzir uma etiqueta curta que permite a um recetor verificar a integridade e autenticidade de uma mensagem, detetando qualquer adulteração ou falsificação.

Encontrar tema com PaperMindEm breveFind papers & topics
Tools & resources
Baixar slides
Learn & explore
VídeoEm breve

Definition

Um código de autenticação de mensagem é uma primitiva simétrica que, dada uma chave secreta e uma mensagem, produz uma etiqueta de comprimento fixo de tal forma que qualquer pessoa sem a chave não pode forjar uma etiqueta válida para qualquer nova mensagem, mesmo depois de ver etiquetas em mensagens escolhidas.

Scope

Este tópico abrange a autenticação simétrica: o objetivo de segurança da infalsificabilidade existencial sob ataque de mensagem escolhida, construções de MAC a partir de funções de hash (HMAC) e cifras de bloco (CMAC, GMAC), e a sua combinação com encriptação para formar encriptação autenticada (encriptar-depois-MAC, AES-GCM). Aborda armadilhas como a extensão de comprimento e a necessidade de comparação de etiquetas em tempo constante. Exclui assinaturas digitais, que fornecem verificabilidade pública e não-repúdio utilizando criptografia de chave pública.

Core questions

  • Como uma chave partilhada permite a um recetor detetar qualquer modificação numa mensagem?
  • O que a infalsificabilidade existencial sob ataque de mensagem escolhida exige de um MAC seguro?
  • Como são construídos MACs seguros a partir de funções de hash (HMAC) e de cifras de bloco (CMAC)?
  • Como a encriptação e a autenticação devem ser combinadas para proteger tanto o sigilo quanto a integridade?
  • Por que a comparação de etiquetas deve ser em tempo constante, e quais ataques exploram fugas de tempo?

Key concepts

  • etiqueta de autenticação
  • infalsificabilidade existencial
  • ataque de mensagem escolhida
  • HMAC
  • CMAC e GMAC
  • encriptação autenticada (AEAD)
  • encriptar-depois-MAC
  • comparação em tempo constante
  • proteção contra repetição

Key theories

Infalsificabilidade existencial sob ataque de mensagem escolhida
A definição padrão de segurança de MAC: um adversário que pode solicitar etiquetas em mensagens da sua escolha ainda não pode produzir uma etiqueta válida em qualquer mensagem que não tenha consultado, tornando a falsificação inviável.
HMAC e encriptação autenticada
HMAC aninha um hash com chave duas vezes para produzir um MAC comprovadamente seguro a partir de qualquer hash padrão; combinar um MAC com encriptação via encriptar-depois-MAC (ou usando AES-GCM) produz encriptação autenticada que protege a confidencialidade e a integridade em conjunto.

Mechanisms

HMAC calcula H((K xor opad) || H((K xor ipad) || mensagem)), onde H é uma função de hash e ipad/opad são preenchimentos fixos; a estrutura aninhada derrota a extensão de comprimento e é comprovadamente segura se a função de compressão for uma função pseudorandom. MACs de cifra de bloco como CMAC encadeiam encriptações de blocos de mensagem com um ajuste final com chave. Modos de encriptação autenticada como AES-GCM calculam um MAC de campo de Galois (GMAC) sobre o texto cifrado para ligar confidencialidade e integridade numa única passagem.

Clinical relevance

Os MACs autenticam quase todo o tráfego de rede seguro: HMAC sustenta a integridade de registos TLS, IPsec, JSON Web Tokens e a assinatura de pedidos de API estilo AWS, enquanto AES-GCM fornece encriptação autenticada em TLS 1.3 e encriptação de disco. A verificação de um MAC é o que impede um atacante de alterar silenciosamente o texto cifrado ou de reproduzir mensagens capturadas.

Evidence & guidelines

HMAC é padronizado em FIPS 198-1 e RFC 2104; CMAC em NIST SP 800-38B; GCM/GMAC em NIST SP 800-38D. A melhor prática favorece as construções de encriptação autenticada (AEAD) e a ordem encriptar-depois-MAC; a ordem MAC-depois-encriptar utilizada em TLS mais antigo contribuiu para ataques de oráculo de preenchimento.

History

Os primeiros MACs foram construídos a partir de DES no modo CBC-MAC. A descoberta de que os MACs de hash com chave ingénuos eram vulneráveis à extensão de comprimento motivou o HMAC, introduzido por Bellare, Canetti e Krawczyk em 1996 e padronizado pouco depois. Os anos 2000 trouxeram a formalização da encriptação autenticada e modos AEAD dedicados como GCM e CCM, agora o padrão para proteger dados em trânsito.

Key figures

  • Mihir Bellare
  • Ran Canetti
  • Hugo Krawczyk
  • Phillip Rogaway

Related topics

Seminal works

  • bellare1996hmac
  • katz2020
  • menezes1996

Frequently asked questions

Qual é a diferença entre um MAC e uma assinatura digital?
Ambos autenticam uma mensagem, mas um MAC usa uma chave secreta partilhada, então qualquer parte que possa verificar uma etiqueta também poderia tê-la produzido — não há não-repúdio. Uma assinatura digital usa uma chave privada para assinar e uma chave pública para verificação, então apenas o signatário poderia tê-la criado e qualquer pessoa pode verificá-la.
Devo encriptar primeiro ou autenticar primeiro?
A ordem recomendada é encriptar-depois-MAC: encriptar o texto simples e depois calcular o MAC sobre o texto cifrado. Isso permite que o recetor rejeite textos cifrados forjados antes de os desencriptar e evita ataques de oráculo de preenchimento e outros ataques que surgem de ordens MAC-depois-encriptar.

Methods for this concept

Related concepts