Autenticador de mensagem

Origem: Wikipédia, a enciclopédia livre.

Em criptografia, um autenticador de mensagem (em inglês message authentication code - MAC) é um pequeno pedaço de informação usado para autenticar a mensagem.

Um algoritmo MAC, algumas vezes chamado função de dispersão chaveada (criptografia), em inglês keyed hash function, recebe como entrada uma chave secreta e uma mensagem de tamanho arbitrário para ser autenticado, e dá como saída uma MAC (algumas vezes chamada de tag ou etiqueta). O valor do MAC protege tanto a integridade dos dados da mensagem, assim como a sua autenticidade, permitindo aos verificadores (que também possuem a chave secreta) detectar quaisquer mudanças no conteúdo na mensagem.

Segurança[editar | editar código-fonte]

Enquanto funções MAC são similares às funções de dispersão em criptografia, elas possuem requisitos diferentes de segurança. Ser considerada segura, uma função MAC deve resistir à forjação existencial sobre ataque de puro texto escolhido. Isto significa que mesmo se um atacante tem acesso a um oráculo que possui a chave secreta e um gerador MACs para mensagens de sua escolha, ele não pode adivinhar o MAC das outras mensagens sem realizar quantidades inviáveis de cálculos de computação.

MACs diferem de assinaturas digitais, pois os valores da MAC são ambos gerados e verificados usando a mesma chave. Isso implica que o remetente e o receptor da mensagem devem combinar a mesma chave antes das comunicações iniciadas, como é o caso com encriptação simétrica. Pela mesma razão, MACs não proporcionam a propriedade de não repudiação oferecida pela assinatura, especificamente como no caso da chave secreta partilhada nas redes: qualquer usuário que pode verificar um MAC é também capaz de gerar MACs para outras mensagens. Em contraste, uma assinatura digital é gerada usando a chave privada de um par de chaves, o que é encriptação assimétrica. Desde que esta chave privada é somente acessada pelos seus titulares (donos), assinaturas digitais provam que o documento foi assinado por nenhum outro que não o titular. Assim, assinaturas digitais oferecem não repúdio.

Código de integridade de mensagem[editar | editar código-fonte]

O termo código de integridade de mensagem, em inglês message integrity code (MIC), é frequentemente substituído pelo termo MAC, especialmente em comunicações,[1] onde o acrônimo para MAC tradicionalmente representa Media Access Control (Media de controle de acesso). Entretanto, alguns autores[2] usam MIC como um diferente termo de um MAC; em seu uso do termo o funcionamento MIC não usa chaves secretas.

Essa carência de segurança significa que qualquer MIC destinado a aferir integridade à mensagem deve ser encriptado ou não será protegida contra falsificação. Algoritmos MIC são criados de tal forma que uma dada mensagem não produzirá sempre o mesmo MIC assumindo que o mesmo algoritmo é usado para gerar ambos. Reciprocamente, algoritmos MAC são designados para produzir MACs correspondentes somente se a mesma mensagem, chave secreta e vetor de inicialização são dados como entrada no mesmo algoritmo. MICs não usam chaves secretas e, quando tomados por conta própria, são, portanto, um indicador menos confiáveis do que a integridade da mensagem MACs. Porque MACs usam chaves secretas, eles não necessariamente precisam ser encriptados para fornecer o mesmo nível de garantias.

Implementação[editar | editar código-fonte]

Algoritmos MAC podem ser construídos de outros primitivos criptográficos, como funções criptográficas de dispersão (hash functions), como no caso da HMAC ou de algoritmos de cifra de bloco (OMAC, CBC-MAC e PMAC). No entanto muitos dos algoritmos mais rápidos MAC como UMAC e VMAC são construídos baseados em hash universal (universal hashing).[3]

Padrões[editar | editar código-fonte]

Existem vários padrões que definem algoritmos MAC. Estes incluem:

  • FIPS PUB 113 Computer Data Authentication,[4] reformada em 2002,[5] define um algoritmo baseado na DES.
  • ISO/IEC 9797-1 Mecanismo usando a cifra de bloco.[6]
  • ISO/IEC 9797-2 Mecanismo usando uma dedicada função de dispersão.[7]

ISO/IEC 9797-1 e -2 definem modelos genéricos a algoritmos que podem ser usados com qualquer cifra de bloco ou função de dispersão, e uma variedade de parâmetros diferentes. Estes modelos e parâmetros seguem mais algoritmos específicos para serem definidos por nomear os parâmetros. Por exemplo, o algoritmo FIPS PUC 113 é funcionalmente equivalente ao algoritmo MAC ISO/IEC 9797-1 com método de preenchimento e um algoritmo de cifra de bloco da DES.

Exemplo[editar | editar código-fonte]

Neste exemplo, o remetente da mensagem usa um algoritmo MAC para produzir uma etiqueta de dados MAC. A mensagem e a etiqueta MAC são então enviadas para o receptor. Ele por sua vez executa a parte da mensagem da transmissão através do mesmo algoritmo MAC e mesma chave, produzindo a segunda etiqueta de dados MAC. Se elas são idênticas, o receptor pode seguramente assumir que a integridade da mensagem não foi comprometida, e a mensagem não foi alterada ou adulterada durante a transmissão.

Referências

Ligações externas[editar | editar código-fonte]