Código de autenticação de mensagem

Um código de autenticação de mensagem ( MAC ; código de autenticação de mensagem alemão ) é usado para obter certeza sobre a origem dos dados ou mensagens e sua verificação de integridade . Os algoritmos MAC requerem dois parâmetros de entrada, em primeiro lugar os dados a serem protegidos e, em segundo lugar, uma chave secreta , e calculam uma soma de verificação de ambos , o código de autenticação da mensagem.

funcionalidade

Como funciona um MAC

A integridade de uma mensagem a ser transmitida pode ser verificada usando MACs da seguinte maneira: Primeiro, o remetente e o destinatário concordam com uma chave secreta. O remetente calcula um MAC para esta chave e sua mensagem e então envia a mensagem e o MAC para o destinatário. Isso calcula o MAC para a mensagem recebida com a chave e compara o MAC calculado com o recebido. O destinatário interpreta a concordância de ambos os valores como um teste de integridade bem-sucedido: A mensagem foi enviada por uma parte que conhece a chave secreta e não foi alterada durante a transmissão.

MACs não protegem contra ataques de repetição . Para este efeito, a própria mensagem deve conter dados que garantam que as repetições possam ser detectadas (por exemplo, carimbo de hora, número de sequência ou através do uso de MACs únicos).

Determinação do MAC

Os MACs são baseados em cifras de bloco ou funções hash ou são MACs especialmente desenvolvidos. Um método comum para cálculo de MAC, o HMAC , é baseado em funções criptográficas de hash e é usado em SSL e IPsec , por exemplo . Um método comum baseado em cifras de bloco é o Cipher-Based Message Authentication Code (CMAC) especificado na Publicação Especial NIST 800-38B, que é usado em conjunto com AES ou Triple DES . Um método mais antigo para calcular um MAC baseado em DES e CBC é padronizado como ANSI X9.9, mas já foi revogado devido a deficiências de segurança. Um MAC especial é o Message Authentication Algorithm (MAA), que foi desenvolvido em 1983 como um padrão para bancos.

Diferenciação de funções hash e assinaturas digitais

As funções hash criptográficas podem ser usadas para calcular MACs, mas os MACs vão além do uso de valores hash simples: se uma mensagem fosse transmitida apenas com seu valor hash como um MAC, isso não seria seguro porque a função hash é conhecida publicamente. Um invasor pode modificar a mensagem e calcular e transmitir um novo valor de hash para a nova mensagem. No entanto, se o remetente e o destinatário compartilham um segredo, isso pode fluir para o cálculo de hash, de forma que um invasor não consiga calcular o valor de hash apropriado após modificar uma mensagem.

Mesmo que a segurança de manipulação de MACs sugira uma relação com assinaturas digitais , existem diferenças entre os dois métodos. Os MACs diferem das assinaturas digitais porque a verificação do MAC requer o conhecimento da mesma chave secreta que foi usada para calculá-lo. Portanto, qualquer pessoa que pode verificar um MAC também pode calculá-lo; conseqüentemente, ele não pode provar a terceiros de quem a mensagem veio. Em contraste com isso, as assinaturas digitais são criadas usando uma chave conhecida apenas pelo remetente e verificadas usando uma chave pública. Isso garante que o signatário esteja de posse da chave privada e que haja um alto grau de probabilidade de que seja o autor especificado da mensagem.

Procedimentos de informação teoricamente seguros

exemplo

Um bit de texto simples ( A ou B ) deve ser transmitido de maneira autenticada usando um MAC de 1 bit. A chave tem dois bits.

chave (A, 0) * (A, 1) * (B, 0) * (B, 1) *
00 UMA. B.
01 UMA. B.
10 UMA. B.
11 UMA. B.

* (Texto, MAC)

A mensagem AABB sob a (previamente acordada) chave secreta 11000110 é então transmitida como (A, 1) (A, 0) (B, 1) (B, 0).

Análise de segurança

Suponha que um invasor intercepte o primeiro par transmitido do exemplo acima e tente enviar um B em vez de A. Para que a mudança não seja percebida e ele não seja percebido, ele precisa do MAC adequado. Ele sabe pela visão geral que a seção chave correspondente é 10 ou 11 . Com esse conhecimento, porém, não é possível para ele decidir entre (B, 0) e (B, 1). Ele se depara com exatamente a mesma decisão, mesmo sem saber a seção chave, ou seja, a questão MAC = 0 ou MAC = 1. Então, em média, ele adivinha corretamente em cada segundo caso.

Esse fato pode ser usado para definir geralmente a segurança teórica da informação.

(para a notação, consulte a probabilidade condicional )

Em palavras: independentemente do conhecimento a priori do texto simples x , um invasor não recebe nenhuma informação adicional ao ver o texto cifrado S (aqui: texto simples e MAC) ou partes dele. Isso dá segurança absoluta de acordo com Shannon .

Em todas as considerações, é claro que presume-se que o sistema descrito funciona corretamente e também é usado dessa forma. Se o invasor z. Se, por exemplo, a chave (ou partes) secreta está em mãos, os sistemas que são seguros em termos de teoria da informação também devem ser quebrados.

características

As propriedades a seguir estão relacionadas ao caso geral. Em particular, são derivados processos mais eficientes da mesma qualidade.

A probabilidade de erro (no exemplo: 0,5) é determinada a partir do comprimento do MAC usado por bit de mensagem (no exemplo: 1)

Uma vez que sempre deve haver um MAC adequado que pode ser adivinhado aleatoriamente, mesmo estendendo o MAC não pode garantir uma probabilidade de zero. Devido à relação assintótica, no entanto, a probabilidade se aproxima rapidamente de dimensões desprezíveis.

O comprimento de chave necessário (usando o exemplo: 2) é determinado por . Portanto, se você deseja transmitir uma mensagem de comprimento , os bits de chave (no exemplo: 8) são necessários.

De forma análoga ao teclado de uso único , surge a questão de quantas chaves são necessárias para garantir a segurança desejada e recém-descrita. Em geral, esse valor também é especificado. O exemplo acima com as dimensões especificadas (incluindo o tamanho do MAC e da chave) é, portanto, ideal.

literatura

  • Charlie Kaufman, Radia Perlman, Mike Speciner: Segurança de rede: comunicação privada em um mundo público. Prentice Hall PTR, Upper Saddle River, New Jersey 2002, ISBN 0-13-046019-2 .
  • Alfred J. Menezes, Paul C. van Oorschot, Scott A. Vanstone: Handbook of Applied Cryptography. CRC Press, 2001, ISBN 0-8493-8523-7 . (conectados)
  • William Stallings: Criptografia e Segurança de Rede: Princípios e Práticas. 5ª edição. (Edição Internacional), Prentice Hall, 2011, ISBN 978-0-13-705632-3 .

Evidência individual

  1. dict.cc: código de autenticação da mensagem <MAC> | Código de autenticação de mensagem
  2. a b Menezes et al: Handbook of Applied Cryptography. P. 323.
  3. Menezes et al: Handbook of Applied Cryptography. P. 364.
  4. ^ Stallings: Criptografia e segurança da rede: Princípios e prática. P. 400.
  5. ^ Stallings: Criptografia e segurança da rede: Princípios e prática. P. 404.
  6. Comitê X9: Retirada de ANSI X9.9, autenticação de mensagem de instituição financeira (PDF; 157 kB) Arquivo original em 5 de fevereiro de 2007. Recuperado em 9 de novembro de 2011.
  7. ^ Kaufman e outros: Segurança de rede: Uma comunicação privada em um mundo público. P.56.
  8. a b c Kaufman et al . : Segurança de rede: comunicação privada em um mundo público. P. 51.