PKCS#7
PKCS#7 是什么?
PKCS#7用于打包签名和/或加密数据的二进制格式,IETF 在 RFC 5652 中将其标准化为加密消息语法(CMS)。
PKCS#7 最初由 RSA Laboratories 定义,描述了如何将任意数据封装在受密码学保护的结构中,包括 SignedData、EnvelopedData、EncryptedData、DigestedData 和 AuthenticatedData。IETF 在 RFC 5652 中以加密消息语法(CMS)的名义重新发布,并通过 RFC 8933(算法保护)等持续更新。CMS 使用 ASN.1/DER 编码,是 S/MIME(RFC 8551)、代码签名(Authenticode、Apple 公证)、时间戳(RFC 3161)、文档签名(PAdES)以及证书包格式的基础。分离签名(.p7s)和仅含证书的捆绑包(.p7b/.p7c)是常见用途。CMS 通过 RFC 8419(EdDSA)、5754(SHA-2)和 8769(AES-GCM)支持现代算法。
● 示例
- 01
S/MIME 签名邮件,其签名以分离的 .p7s SignedData 形式承载。
- 02
Windows Authenticode 签名的二进制文件在其 PE 头部嵌入一个 PKCS#7 SignedData 结构。
● 常见问题
PKCS#7 是什么?
用于打包签名和/或加密数据的二进制格式,IETF 在 RFC 5652 中将其标准化为加密消息语法(CMS)。 它属于网络安全的 密码学 分类。
PKCS#7 是什么意思?
用于打包签名和/或加密数据的二进制格式,IETF 在 RFC 5652 中将其标准化为加密消息语法(CMS)。
PKCS#7 是如何工作的?
PKCS#7 最初由 RSA Laboratories 定义,描述了如何将任意数据封装在受密码学保护的结构中,包括 SignedData、EnvelopedData、EncryptedData、DigestedData 和 AuthenticatedData。IETF 在 RFC 5652 中以加密消息语法(CMS)的名义重新发布,并通过 RFC 8933(算法保护)等持续更新。CMS 使用 ASN.1/DER 编码,是 S/MIME(RFC 8551)、代码签名(Authenticode、Apple 公证)、时间戳(RFC 3161)、文档签名(PAdES)以及证书包格式的基础。分离签名(.p7s)和仅含证书的捆绑包(.p7b/.p7c)是常见用途。CMS 通过 RFC 8419(EdDSA)、5754(SHA-2)和 8769(AES-GCM)支持现代算法。
如何防御 PKCS#7?
针对 PKCS#7 的防御通常结合技术控制与运营实践,详见上方完整定义。
PKCS#7 还有哪些其他名称?
常见的别称包括: CMS, 加密消息语法, p7s, p7b。
● 相关术语
- cryptography№ 065
ASN.1
抽象语法标记一号(Abstract Syntax Notation One),由 ITU-T X.680 系列定义,用与编程语言无关的方式描述密码学和电信中的数据结构。
- cryptography№ 811
PEM 格式
RFC 7468 定义的密码学对象(密钥、证书、CRL)文本编码,将 Base64 编码的 DER 包裹在 BEGIN 与 END 头部之间。
- cryptography№ 830
PKCS#12
由 RFC 7292 标准化的口令保护文件格式(.pfx / .p12),将私钥与其证书链打包在一起。
- cryptography№ 321
数字签名
一种公钥密码学机制,用于证明消息或文档的真实性、完整性以及不可否认性。
- network-security№ 955
S/MIME
IETF 标准,使用由公共或企业 CA 签发的 X.509 证书对 MIME 邮件进行端到端签名与加密。