PKCS#12
PKCS#12 是什么?
PKCS#12由 RFC 7292 标准化的口令保护文件格式(.pfx / .p12),将私钥与其证书链打包在一起。
PKCS#12 最初由 RSA Laboratories 发布,IETF 在 RFC 7292 中进行了修订,定义了一种 ASN.1/DER 容器,用于存储和传输私钥及其 X.509 证书链。该容器通常以 .pfx 或 .p12 出现,包含一个或多个 SafeBag(密钥袋、证书袋、CRL 袋),并用从口令派生出的密钥加密。历史上 PKCS#12 使用较弱的 PKCS#5 v1 PBE 算法;按照 NIST 和 OpenSSL 3 的建议,现代实现应当使用 PBES2 搭配 AES-CBC 或 AES-GCM,并配合 HMAC-SHA-256 等 PRF。在将服务器证书、S/MIME 凭据和 TLS 客户端证书导入 Windows、macOS、Java 密钥库以及 HSM 配置工具时,PKCS#12 是通用方案。
● 示例
- 01
从 Keychain Access 中将 Apple Developer ID 证书及其私钥导出为 .p12 文件。
- 02
在 Windows IIS 中双击 .pfx 文件以导入 TLS 服务器证书。
● 常见问题
PKCS#12 是什么?
由 RFC 7292 标准化的口令保护文件格式(.pfx / .p12),将私钥与其证书链打包在一起。 它属于网络安全的 密码学 分类。
PKCS#12 是什么意思?
由 RFC 7292 标准化的口令保护文件格式(.pfx / .p12),将私钥与其证书链打包在一起。
PKCS#12 是如何工作的?
PKCS#12 最初由 RSA Laboratories 发布,IETF 在 RFC 7292 中进行了修订,定义了一种 ASN.1/DER 容器,用于存储和传输私钥及其 X.509 证书链。该容器通常以 .pfx 或 .p12 出现,包含一个或多个 SafeBag(密钥袋、证书袋、CRL 袋),并用从口令派生出的密钥加密。历史上 PKCS#12 使用较弱的 PKCS#5 v1 PBE 算法;按照 NIST 和 OpenSSL 3 的建议,现代实现应当使用 PBES2 搭配 AES-CBC 或 AES-GCM,并配合 HMAC-SHA-256 等 PRF。在将服务器证书、S/MIME 凭据和 TLS 客户端证书导入 Windows、macOS、Java 密钥库以及 HSM 配置工具时,PKCS#12 是通用方案。
如何防御 PKCS#12?
针对 PKCS#12 的防御通常结合技术控制与运营实践,详见上方完整定义。
PKCS#12 还有哪些其他名称?
常见的别称包括: PFX, .p12, .pfx。
● 相关术语
- cryptography№ 831
PKCS#7
用于打包签名和/或加密数据的二进制格式,IETF 在 RFC 5652 中将其标准化为加密消息语法(CMS)。
- cryptography№ 811
PEM 格式
RFC 7468 定义的密码学对象(密钥、证书、CRL)文本编码,将 Base64 编码的 DER 包裹在 BEGIN 与 END 头部之间。
- cryptography№ 065
ASN.1
抽象语法标记一号(Abstract Syntax Notation One),由 ITU-T X.680 系列定义,用与编程语言无关的方式描述密码学和电信中的数据结构。
- cryptography№ 805
PBKDF2
由 PKCS #5 / RFC 8018 定义的基于口令的密钥派生函数,使用可配置迭代次数和盐反复调用一个伪随机函数。