rfc-6033

Algorithms for Cryptographic Message Syntax (CMS) Encrypted Key Package Content Type

S. Turner
date2010-12 streamIETF wgnon working group statusPROPOSED STANDARD pages5 canonicalhttps://www.rfc-editor.org/rfc/rfc6033 doi10.17487/RFC6033
This document describes the conventions for using several cryptographic algorithms with the Cryptographic Message Syntax (CMS) encrypted key package content type. Specifically, it includes conventions necessary to implement EnvelopedData, EncryptedData, and AuthEnvelopedData. [STANDARDS-TRACK]

updated by

Extracted elements (19)

design-rationale §7

AES Key Wrap with Padding was chosen as the content-encryption algorithm because it is specifically designed to segregate cryptographic keying material from other data, supporting high-assurance cryptographic module design. AES-GCM and AES-CCM do not provide the same segregation properties, so they are used only in AuthEnvelopedData.

crypto, security

interoperability-note §6

Public key certificates per RFC 5280 are identified as the easiest implementation path for SignedData, EnvelopedData, and AuthEnvelopedData, implying that certificate-based implementations are the expected interoperability baseline.

crypto, pkix, security

normative-requirement §4 MUST

For AuthEnvelopedData, implementations MUST support 128-bit AES-GCM and SHOULD support 256-bit AES-GCM. Implementations MAY also support AES-CCM.

crypto, security

normative-requirement §3 MUST

For EncryptedData, implementations MUST support AES-128 Key Wrap with Padding and SHOULD support AES-256 Key Wrap with Padding as the content-encryption algorithm.

crypto, security

normative-requirement §6 MUST

If an implementation supports RSA, RSAES-OAEP, DH, RSASSA-PSS, or DSA, it MUST support key lengths from 1024 bits to 2048 bits, inclusive.

crypto, security

normative-requirement §2 MUST

Implementations claiming conformance MUST support key transport mechanisms and SHOULD support key agreement mechanisms for EnvelopedData. Other key management techniques MAY be supported.

crypto, security

normative-requirement §5 MUST

Implementations of SignedData MUST support SHA-256 as the hash function in concert with signature schemes, and SHOULD support SHA-1.

crypto, security

normative-requirement §5 MUST

Implementations of SignedData MUST support the RSA signature scheme and SHOULD support RSASSA-PSS and DSA signature schemes.

crypto, security

normative-requirement §2 MUST

Regardless of the key management technique, implementations MUST support AES-128 Key Wrap with Padding as the content-encryption algorithm for EnvelopedData; implementations SHOULD support AES-256 Key Wrap with Padding.

crypto, security

normative-requirement §4 MUST

The key management requirements for AuthEnvelopedData are the same as for EnvelopedData: MUST support key transport (RSA), SHOULD support key agreement (Ephemeral-Static DH).

crypto, security

normative-requirement §2 MUST

When key agreement is used, the key wrap algorithm MUST match the content-encryption algorithm: AES-128 Key Wrap with Padding for AES-128 content-encryption, and AES-256 Key Wrap with Padding for AES-256 content-encryption.

crypto, security

normative-requirement §2 MUST

When key agreement is used with EnvelopedData, Ephemeral-Static Diffie-Hellman (DH) MUST be supported.

crypto, security

normative-requirement §2 MUST

When key transport is used with EnvelopedData, RSA encryption MUST be supported and RSAES-OAEP SHOULD be supported.

crypto, security

protocol-element §4

AuthEnvelopedData is a CMS content type combining authenticated encryption with the same key management options as EnvelopedData, but using AES-GCM or AES-CCM as the content-encryption algorithm.

crypto, security

protocol-element §3

EncryptedData is a CMS content type where key management is handled by external means; only the content-encryption algorithm is specified within this document.

crypto, security

protocol-element §2

EnvelopedData is a CMS content type supporting multiple key management techniques (key transport and key agreement) combined with a content-encryption algorithm to protect cryptographic key packages.

crypto, security

security-consideration §7

NIST SP 800-57 provides guidance on comparable bits of security for algorithms and key sizes, and defines time frames during which certain security strengths are appropriate; implementers operating in regulated environments may find these time frames relevant.

crypto, security

security-consideration §7

No AES-GCM or AES-CCM mode exists that provides the same key-material segregation properties as AES Key Wrap with Padding; if such a mode is defined in the future, this document would be updated to adopt it.

crypto, security

security-consideration §7

The security considerations from the referenced algorithm and CMS RFCs (RFC 3370, RFC 3560, RFC 4056, RFC 5083, RFC 5084, RFC 5649, RFC 5652, RFC 5754, RFC 6032) all apply to implementations of this document.

crypto, security