Eu li algo no sentido de que a construção HMAC é capaz de diminuir o problema de colisões no hash subjacente.

Isso significa que algo como HMAC-MD5 ainda pode ser considerado seguro para autenticar dados criptografados?

Comentários

Resposta

Sim, atualmente não há ataques conhecidos ao HMAC-MD5.

Em particular, após os primeiros ataques de colisão no MD5, Mihir Bellare (um dos inventores do HMAC) propôs uma nova prova de segurança para HMAC que não requer resistência à colisão:

Resumo: O HMAC foi provado por Bellare, Canetti e Krawczyk (1996) como um PRF assumindo que (1) a função de compressão subjacente é um PRF e (2) a função hash iterada é fracamente resistente a colisões. No entanto, ataques recentes mostram que a suposição (2) é falsa para MD5 e SHA-1, removendo o suporte baseado em provas para HMAC nesses casos. Este artigo prova que o HMAC é um PRF sob a única suposição de que a função de compressão é um PRF. Isso recupera uma garantia baseada em prova, uma vez que nenhum ataque conhecido compromete a pseudo-aleatoriedade da função de compressão e também ajuda a explicar a resistência a ataques que o HMAC mostrou, mesmo quando implementado com funções hash cuja (fraca) resistência à colisão está comprometida. Também mostramos que uma condição ainda mais fraca do que PRF na função de compressão, ou seja, que é um MAC de preservação de privacidade, é suficiente para estabelecer que o HMAC é um MAC seguro, desde que a função hash atenda ao requisito muito fraco de ser quase computacionalmente universal, onde novamente o valor reside no fato de que ataques conhecidos não invalidam as suposições feitas. “

No entanto, isso não significa que você deve usar HMAC-MD5 em novos designs de criptossistema. Parafraseando Bruce Schneier, “ os ataques só ficam melhores, nunca piores. “Já temos ataques de colisão práticos para MD5, mostrando que ele não cumpre seus objetivos de segurança originais; é possível que, a qualquer momento, alguém possa descobrir uma maneira de estendê-los em algum novo ataque que iria comprometer a segurança do HMAC-MD5. Uma escolha muito melhor seria usar HMAC com uma função hash sem ataques conhecidos, como SHA-2 ou SHA-3.

Comentários

  • SHA-2 tem ataques conhecidos: en.wikipedia.org/wiki/SHA-2
  • @baptx Qualquer primitivo criptográfico tem " ataques conhecidos ". A questão é se eles quebram significativamente a quantidade total de rodadas. Para SHA-2, eles atualmente não ' t. A menos que você possa comprovar que o SHA-2 foi quebrado com qualquer significado, eu gostaria de remover esses comentários da resposta.
  • " ataques recentes mostram essa suposição (2) é falso para MD5 " quais ataques recentes? o ataque de prefixo escolhido? por que isso significa isso?

Resposta

A resposta de Ilmari Karonen está correta quando o HMAC é usado para seu finalidade pretendida, mas isso não significa que o HMAC não seja totalmente afetado pelas colisões do MD5:

hmac

Dada uma chave específica, observe que K xor opad e K xor ipad são independentes da mensagem m. Isso significa que qualquer colisão em H((K xor ipad) || m) resultará em uma colisão HMAC, até com duas mensagens diferentes.

Para HmacMd5, K xor ipad teria 64 bytes. Portanto, se você encontrar duas mensagens m1 e m2 com pelo menos um prefixo comum de 64 bytes pre, você pode calcular uma chave K = pre xor ipad que criará uma colisão entre H((K xor ipad) || m1) e H((K xor ipad) || m2), leadi rumo a uma colisão completa em todo o HMAC.

Isso pode ser explorado de duas maneiras:

  • Você não confia na pessoa que gerou a chave, e o HMAC está sendo usado indevidamente como uma espécie de soma de verificação.
  • Um invasor obtém acesso à chave e pode usar o ataque de prefixo escolhido do MD5 para causar colisões.

Mas como o aceito A resposta afirma que, se a chave for secreta e controlada por você ou por terceiros, o HmacMd5 ainda é seguro.

Comentários

  • Sim, já existia esse tipo de resposta até que foi excluída. A pergunta afirma explicitamente " para autenticação de dados criptografados ". O uso para calcular somas de verificação e a disponibilidade da chave são perpendiculares a essa parte da pergunta. Bem-vindo à criptografia de qualquer maneira, esse tipo de resposta bem escrita é muito bem-vindo aqui!
  • Eu concordo, porém esta informação será útil para muitas pessoas que chegam a esta página e não fornece informações incorretas com respeito à pergunta inicial. Afirma claramente que hmacmd5 ainda é seguro se usado corretamente.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *