Skip to content
Vol. 1 · Ed. 2026
CyberGlossary
Entry № 831

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)支持现代算法。

示例

  1. 01

    S/MIME 签名邮件,其签名以分离的 .p7s SignedData 形式承载。

  2. 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。

相关术语