PCF-3

Questões comentadas, artigos e notícias

Códigos de Autenticação de Mensagem (MAC)

Posted by foxtrote em 05/03/2009

Olá concurseiros!

Em meu post anterior, explanei sobre questões do TST para o cargo de analista de sistemas. Uma das questões falava sobre Códigos de Autenticação de Mensagem ou MAC (Message Authentication Code) e eu resolvi que iria explicar um pouco mais o que seria esta sigla em meu segundo post. Vamos lá!

A definição de códigos MAC é: “uma técnica de autenticação alternativa que envolve o uso de uma chave secreta para gerar um pequeno bloco de dados de tamanho fixo, que é anexado à mensagem original”, do livro do Stallings, página 231.

Assim, na forma mais simples de utilização, o MAC garante a autenticidade no envio de determinada mensagem:

mac

Reparem que o que é enviado ao receptor é o texto em claro e o código MAC (a). As partes mantém em sigilio a chave secreta K. O receptor recebe o enviado e, utilizando da mesma chave secrevta k, tenta reproduzir o código MAC, também recebido. Se o recebido e o calculado coincidirem, o emissor é quem ele mesmo se diz ser, pois apenas este poderia ter produzido tal código.

Reparem que, como já havia dito no post anterior, a criptografia de chave simétrica apenas garante a confidencialidade. Assim, para que possamos garantir tanto a autenticidade como a confidencialidade, é necessário que se utilize duas chaves simétricas distintas (k1 e K2), como explicados nos exemplos (b) e (c) da figura acima.

Códigos MAC também podem ser contruídos com base em funções hash. Devido à natureza deste tipo de funções, a utilização de chaves privadas não se configura. Entretanto, algo similar ao apresentado acima é realizado, aonde o texto em claro é concatenado com um texto S de conhecimento apenas do emissor e receptor. Assim, o que é enviado ao receptor é o texto claro e o hash da concatenação do texto claro com S. O receptor deve então recalcular tal hash e validar a autoria do envio.

A bibliografia cita (novamente, o livro do Stallings) os algoritmos que utilizam a geração de MACs – tanto com criptografia como funções hash – e as chama de, respectivamente, CMAC (Cypher-based Message Authentication Code) e HMAC (Hash Message Authentication Code). A utilização do DES na geração de códigos hash é um tipo de CMAC, chamado de DAAData Authentication Algorithm.

Pessoal, é isso. Em meu próximo post, vou falar de funções hash e suas propriedades, segurança com hashs e códigos MAC e abordar especialmente um tipo de ataque conhecido nesta área: ataques de aniversário (birthday attack).

5 Respostas to “Códigos de Autenticação de Mensagem (MAC)”

  1. cidus said

    Show a explicação.

    Só uma pergunta, em todos os casos seria necessário a troca da chave secreta utilizada para o MAC entras as partes correto?
    Este sistema é mais utilizado em sistemas que já possuem as chaves pré-combinadas ou a troca é feita por criptografia assimétrica?

  2. foxtrote said

    Não esqueci da sua pergunta!!
    Estou pesquisando, Ok? []´s

  3. Com relação às suas perguntas, Cidus:

    1) Só uma pergunta, em todos os casos seria necessário a troca da chave secreta utilizada para o MAC entras as partes correto?
    Sim, está correto: é sempre necessária uma chave compartilhada.

    2) Este sistema é mais utilizado em sistemas que já possuem as chaves pré-combinadas ou a troca é feita por criptografia assimétrica?
    O algoritmo de MAC em si não se importa em “como a chave compartilhada foi obtida”: desde que ela exista, o MAC pode ser utilizado. O mais comum em sistemas de segurança completos é realmente usar criptografia assimétrica para chegar a uma chave compartilhada (usando certificados, por exemplo), mas também existem soluções nos quais a chave é pré-estabelecida sem necessidade de usar certificados (pode-se usar a chave presente em um smart-card no seu celular, por exemplo).

    Att.

  4. vanessa said

    Uma dúvida…

    Qual a diferença entao entre MAC, HMAC e CMAC???

  5. Anônimo said

    Vanessa,
    O CMAC e o HMAC são construções específicas para calcular o código de autenticação de mensagem. A diferença está no modo desse cálculo do código de autenticação.

Deixe um comentário