Resumo
- As RFCs 2403 e 2404 colocam os primeiros 96 bits do HMAC calculado em ESP ou AH, embora a saída completa e o tamanho de chave exigido sejam diferentes.
- As orientações posteriores para ESP/AH separaram os algoritmos: a RFC 8221 classifica HMAC-MD5-96 como MUST NOT e HMAC-SHA1-96 como MUST-. O tamanho comum da etiqueta nunca significou uma avaliação de segurança comum.
Um campo, duas construções
Em novembro de 1998, as RFCs 2403 e 2404 especificaram transformações de autenticação com chave para o Encapsulating Security Payload (ESP) e o Authentication Header (AH) do IPsec. Uma combinou HMAC com MD5; a outra, com SHA-1. Ambas buscavam autenticar a origem e proteger a integridade dos dados quando apenas as partes que se comunicam conhecem o segredo. Nenhuma, sozinha, fornecia confidencialidade.
O número visível no pacote era igual: 96 bits. A saída HMAC-MD5 completa da RFC 2403 tem 128 bits; a saída HMAC-SHA-1 da RFC 2404, 160. Em ambas as transformações, quem envia grava os primeiros 96 bits no campo autenticador. Quem recebe calcula o HMAC inteiro e compara esses mesmos 96 bits. Essa escolha correspondia ao tamanho padrão do autenticador AH e dava às duas construções uma largura comum no fio. Não transformava os resumos completos em hashes de 96 bits.
As regras de chave também diferiam: a RFC 2403 exige uma chave HMAC de 128 bits; a RFC 2404 exige uma de 160. Assim, o mesmo tamanho de campo convivia com saídas completas e chaves fixas distintas. A identidade da transformação negociada e o tratamento da chave continuavam importantes; contar apenas os bits visíveis não descrevia todo o mecanismo.
Resistência a colisões não responde tudo sobre HMAC
Os documentos de 1998 não equipararam uma colisão em um hash sem chave à quebra imediata do HMAC. A RFC 2403 observou que, em comparação com assinaturas baseadas em MD5, o HMAC dependia menos da forte resistência a colisões do MD5 e que, naquele momento, não eram conhecidos ataques práticos contra HMAC-MD5-96. A RFC 2404 registrou uma avaliação semelhante, situada no seu tempo, para HMAC-SHA-1-96. Essas conclusões históricas não eram garantias para o futuro.
A evolução dos requisitos de implementação mostra a mudança de avaliação sem transformar o tamanho da etiqueta no critério decisivo. Em 2005, a RFC 4305 classificou HMAC-SHA1-96 como MUST e HMAC-MD5-96 como MAY. Em 2007, a RFC 4835 manteve essa diferença e observou que as fraquezas de colisão então conhecidas não deveriam afetar o uso desses hashes com HMAC. Em 2014, a RFC 7321 mencionou resultados teóricos contra HMAC-MD5, mas não identificou vulnerabilidade prática aparente nem considerou urgente removê-lo dos protocolos existentes; também continuou considerando HMAC-SHA-1 seguro, apesar da fraqueza de colisão do SHA-1.
Publicada em 2017, a RFC 8221 traçou uma divisão mais clara nos requisitos de implementação de ESP/AH: HMAC-MD5-96 passou a MUST NOT; HMAC-SHA1-96 caiu de MUST para MUST-. A proibição do primeiro citou a vulnerabilidade conhecida do MD5 a colisões, enquanto a redução do segundo foi atribuída a uma tendência geral da indústria de abandonar o uso do SHA-1. Isso não significa que o campo de 96 bits tenha mudado, nem que a RFC 2404 tenha passado a definir outra etiqueta.
Uma tabela de status não é uma captura de tráfego
Mais tarde, a RFC 9395 atualizou a RFC 8221 e alterou um registro de transformações IKEv2, onde aparece uma entrada chamada AUTH_HMAC_MD5_96 marcada como DEPRECATED. Esse registro não é a tabela de requisitos de implementação ESP/AH da RFC 8221. Um nome aparentemente igual surge em contextos IPsec vizinhos; por isso, todo status precisa ser lido junto com o protocolo e o escopo do documento.
Esses documentos registram parâmetros de protocolo e diretrizes de implementação datadas. Não contam equipamentos em operação, não identificam a última associação de segurança negociada com HMAC-MD5, nem definem uma data universal de retirada. Uma equipe de operação precisa separar o protocolo escolhido, o identificador da transformação, os recursos dos pares, a associação instalada e o tráfego observado. A etiqueta de 96 bits é apenas parte da evidência.
Fontes
- RFC 2403, registro da RFC 2403, Datatracker; RFC 2404, registro da RFC 2404, Datatracker.
- RFC 2104, RFC 1321, RFC 2202, RFC 2119, RFC 2402, RFC 2406.
- RFC 4305, RFC 4835, RFC 7321, RFC 8221, RFC 9395, RFC 6151, RFC 4868; Datatracker 4305, 4835, 7321, 8221, 9395.
- Apenas lentes editoriais, não evidência do IETF: Heng Lu, Minimum Initial Specification e Running-Code Primacy.
Briefing para membros
Contexto aprofundado do perfil
Faça login com o nível de assinatura correto para desbloquear o briefing completo e as notas das fontes.
Apenas para Strategic Circle
Strategic Circle
Aberto a todos os leitores. Desbloqueie Briefings de perfil após se inscrever e fazer login.
Junte-se ao Strategic CircleSomente para Leadership Alliance
Leadership Alliance
Para proprietários e gestores qualificados de ativos de PI; faça login para desbloquear os briefings da Leadership Alliance.
Junte-se ao Leadership Alliance
