Skip to main content

2.7. Replace Section 5.2.2 - Encrypted Values (加密值)

2.7. Replace Section 5.2.2 - Encrypted Values (加密值)

[RFC4210] 的 Section 5.2.2 描述了使用 EncryptedValue 传输加密数据。本文档将数据加密扩展为优先使用 EnvelopedData。

用以下文本替换该节的文本:

5.2.2. Encrypted Values

当在 PKI 消息中发送加密数据 (在本规范中为私钥, 证书或撤销密码短语) 时, 使用 EncryptedKey 数据结构。

EncryptedKey ::= CHOICE {
encryptedValue EncryptedValue, -- deprecated
envelopedData [0] EnvelopedData }

有关 EncryptedKey 和 EncryptedValue 语法, 请参见证书请求消息格式 (Certificate Request Message Format, CRMF) [RFC4211], 有关 EnvelopedData 语法, 请参见加密消息语法 (Cryptographic Message Syntax, CMS) [RFC5652]。使用 EncryptedKey 数据结构提供了使用 EncryptedValue (仅用于向后兼容) 或 EnvelopedData 的选择。EncryptedValue 结构的使用已被弃用, 转而使用 EnvelopedData 结构。因此, 建议使用 EnvelopedData。

注意: CRMF [RFC4211] 中定义的 EncryptedKey 结构在此处被重用, 这使得更新向后兼容。使用带有未标记的默认选择 EncryptedValue 的新语法在线路上的位与旧语法兼容。

为了表示对 EnvelopedData 的支持, 引入了 pvno cmp2021。有关协议版本号 (pvno) 使用的详细信息在 Section 7 中描述。

EncryptedKey 数据结构在 CMP 中用于以加密形式传输私钥, 证书或撤销密码短语。

EnvelopedData 的使用如下:

  • 它仅包含一个 RecipientInfo 结构, 因为内容仅为一个接收者加密。

  • 它可能包含 AsymmetricKeyPackage 结构中的私钥 (如 [RFC5958] 中定义), 该私钥包装在 SignedData 结构中 (如 CMS [RFC5652][RFC8933] 的 Section 5 中所指定), 并由密钥生成机构 (Key Generation Authority) 签名。

  • 它可能直接在 encryptedContent 字段中包含证书或撤销密码短语。

EnvelopedData 结构的内容 (如 CMS [RFC5652] 的 Section 6 中所指定) 必须使用新生成的对称内容加密密钥进行加密。此内容加密密钥必须使用三种密钥管理技术之一安全地提供给接收者。

发送方使用的密钥管理技术的选择取决于接收方可用的凭证:

  • 接收方的证书具有算法标识符和支持密钥传输的公钥, 并且任何给定的密钥用途扩展允许 keyEncipherment: 内容加密密钥将使用密钥传输密钥管理技术进行保护, 如 CMS [RFC5652] 的 Section 6.2.1 中所指定。

  • 接收方的证书具有算法标识符和支持密钥协商的公钥, 并且任何给定的密钥用途扩展允许 keyAgreement: 内容加密密钥将使用密钥协商密钥管理技术进行保护, 如 CMS [RFC5652] 的 Section 6.2.2 中所指定。

  • 密码或共享秘密: 内容加密密钥将使用基于密码的密钥管理技术进行保护, 如 CMS [RFC5652] 的 Section 6.2.4 中所指定。