Pular para o conteúdo
ecdsa.com

CMS (sintaxe de mensagens criptográficas)

O sucessor do PKCS #7 no IETF (RFC 5652) para dados assinados, envelopados e autenticados, usado pelo S/MIME, pelo Authenticode, pelas assinaturas de PDF, pelos carimbos do tempo da RFC 3161 e por muitos formatos de firmware.
Também escrito comoPKCS #7PKCS7Cryptographic Message SyntaxSignedData

O tipo de conteúdo mais comum é o SignedData: o conteúdo (ou apenas uma referência a ele, no caso de assinaturas desanexadas), os certificados dos signatários e um SignerInfo por signatário. Um SignerInfo costuma incluir atributos assinados — no mínimo o tipo de conteúdo e o messageDigest do conteúdo, muitas vezes o horário da assinatura —, e a assinatura é calculada sobre a codificação DER desses atributos, e não diretamente sobre o conteúdo.

O EnvelopedData criptografa o conteúdo para os destinatários com um mecanismo por destinatário: transporte de chaves (RSA), acordo de chaves (ECDH) ou, desde a RFC 9629, KEMs como o ML-KEM (RFC 9936). O AuthEnvelopedData acrescenta a criptografia do conteúdo com AEAD (RFC 5083). Os rótulos PEM são PKCS7 e CMS.

A maioria das falhas de verificação vem de detalhes: conteúdo desanexado que não é idêntico, byte a byte, ao que foi assinado (finais de linha no S/MIME), uma cadeia de certificados ausente, atributos assinados recodificados com outra ordenação de SET OF ou um algoritmo de digest que o verificador não aceita mais. O openssl cms -verify e o verificador de S/MIME mostram qual etapa falhou.

Padrões e referências

Todos os termos