Resumo

  • A RFC 9709 inclui no HKDF a codificação DER completa do AlgorithmIdentifier interno, com parâmetros, além da chave original do conteúdo.
  • Alterar o modo autenticado para CBC ou mudar um parâmetro passa a produzir outra chave, impedindo um oráculo útil de texto em claro.
  • A mitigação protege contra essa transformação; ela não autentica o remetente, não avalia o conteúdo e não autoriza ações posteriores.

O descritor também é parte do ataque

O cenário analisado pelo grupo LAMPS não exige quebrar AES. O intermediário intercepta conteúdo CMS protegido com AES-GCM ou AES-CCM e reapresenta blocos escolhidos como AES-CBC. Se o sistema que detém a chave processar a peça alterada e expuser texto, erro ou comportamento, poderá confirmar palpites sobre um bloco estruturado e de baixa entropia.

Há limites práticos. O material apresentado no IETF 118 observava que uma mensagem S/MIME comum pode virar lixo evidente, que cabeçalhos podem ser recusados e que não se conhecia o conjunto de sistemas vulneráveis. Mas uma barreira acidental de um aplicativo não é uma garantia criptográfica. Visualizadores, conversores, recibos e fluxos automáticos podem revelar exatamente o sinal que o correio convencional esconde.

A RFC 9709 faz a semântica do algoritmo participar do segredo efetivo. O destinatário compatível anuncia id-alg-cek-hkdf-sha256 em S/MIME Capabilities, sem parâmetros. Ao ativar a mitigação, o remetente usa esse OID no contentEncryptionAlgorithm externo. O parâmetro obrigatório carrega o AlgorithmIdentifier interno verdadeiro: algoritmo de conteúdo e seus parâmetros.

Em seguida, os dois lados derivam CEK-prime com HKDF-SHA-256. A CEK original é o material de entrada. O salt é a sequência ASCII fixa “The Cryptographic Message Syntax”. O campo info recebe todo o DER do identificador interno, incluindo tag e comprimento da sequência, OID e parâmetros codificados. O resultado preserva o tamanho da chave original, até o limite de 8.160 bytes do HKDF-SHA-256.

O vínculo é exato. Trocar GCM por CBC, alterar um vetor de inicialização ou mudar qualquer parâmetro altera info e a chave derivada. O texto cifrado criado para a chave original deixa de ser um experimento útil sob a interpretação escolhida pelo invasor. Se ele remover o OID externo, o receptor usará a CEK original, não CEK-prime. O conteúdo ficará indisponível, porém não será revelado. É negação de acesso, não recuperação de texto em claro.

Sete registros em vez de um sinal verde

Uma trilha confiável precisa separar: a capacidade anunciada; o OID externo efetivamente recebido; o algoritmo interno e seus parâmetros; os bytes DER fornecidos ao HKDF; o resultado da descriptografia autenticada e da verificação de dados associados; qualquer texto ou sinal que cruzou a fronteira de confiança; e a política que permitiu armazenar, exibir ou executar algo.

“Descriptografou” não distingue incompatibilidade de manipulação. “Foi analisado” tampouco comprova autoria. A RFC 9709 é separação de chaves para uma classe de transformação, não assinatura, reputação, filtro de conteúdo nem autorização de negócio.

Há outras bordas. Um atributo de resumo da mensagem não cifrado pode ajudar a confirmar um palpite de texto em claro. Conteúdo cifrado não solicitado também pode passar por controles que inspecionariam spam ou phishing. Uma lista de remetentes aprovados pode compensar parte do risco, mas resolve admissão, não identidade algorítmica.

Um núcleo comum deliberadamente pequeno

O mecanismo fixa SHA-256, sem negociar KDF. Outro hash exigiria novo OID. Assim, cada ponta executa uma regra determinística: reconhece a camada externa, preserva o DER interno, deriva e então autentica ou descriptografa conforme o algoritmo transportado.

A higiene básica permanece. CEKs precisam de aleatoriedade e proteção adequadas. RFC 5652, RFC 5083, RFC 5084, RFC 5869, RFC 8551 e RFC 4086 continuam definindo estruturas e premissas distintas. Uma chave fraca, um dispositivo comprometido ou uma identidade falsa não se torna confiável por causa da RFC 9709.

Nesta apuração, a busca do RFC Editor não apresentava errata registrada para a RFC 9709, e o registro SMI da IANA continha as atribuições correspondentes. Isso comprova o estado formal, não a implantação.

Fontes