PKCS #12 憑證套件 (.p12)
IETF 標準PKCS #12(P12/PFX)是一種容器格式,可儲存私密金鑰、憑證及相關資料。檔案是否有密碼保護或未加密,取決於其建立方式。
將 P12 轉換為 PEM
免費的瀏覽器端 P12 轉 PEM 轉換器。在您的裝置上即時轉換檔案。
檢查與中繼資料
作業系統與檔案分析工具透過檢查開頭的二進位位元組序列來識別 P12 檔案:
位元組層級標頭簽章(檔案簽章)
作業系統與檔案分析工具透過檢查開頭的二進位位元組序列來識別 P12 檔案:
十六進位簽章(偏移量 0):
30ASCII 表示法: 0
標準化: IETF RFC 7292 / PKCS #12 v1.1
技術規格
| 容器架構 | 經密碼加密的 ASN.1 PFX 結構,封裝了包含私密金鑰、憑證和 CRL 的 SafeBags |
| 壓縮 | 未壓縮的密碼學資料 |
| 位元組序 | 大端序(Big-Endian)ASN.1 DER |
| 色彩空間 | 不適用(加密金鑰儲存庫) |
| 色版與結構 | 私密金鑰、公開憑證、中繼 CA 憑證鏈以及根 CA 憑證 |
| 最大尺寸 | 通常為 5 KB 到 25 KB |
| 透明度 | 加密容器(受密碼保護) |
| 串流與漸進式 | 具備不可分割性的加密壓縮檔解壓縮 |
技術比較矩陣:P12 對比競爭格式
| 技術屬性 | P12 (目前) | PEM | CRT | DER |
|---|---|---|---|---|
| 捆綁功能 | 私密金鑰 + 憑證鏈多合一 | 可在文字中合併未加密的金鑰 | 僅限憑證 | 單一二進位金鑰或憑證 |
| 加密 | 受密碼加密(AES-256) | 私密金鑰上的選用密碼短語 | 未加密的公開憑證 | 未加密的二進位檔案 |
| Apple iOS 與 macOS | 原生身分識別匯出標準 | 透過命令列使用 | 匯入為憑證 | 匯入為原始金鑰 |
| 可互換格式 | .pfx(完全相同的格式) | .crt, .key | .cer | .asn1 |
常見損壞模式與十六進位修復指南
解壓縮錯誤:儘管輸入正確密碼,仍出現「Mac verify error: invalid password」(密碼無效)。
根本原因: OpenSSL 3.0 的預設設定拒絕舊版 P12 檔案中包含的舊式 3DES / RC2 加密演算法。
修復: 使用 File2File.app 憑證工具以現代的 AES-256 重新加密。
安全性分析與解析器攻擊向量
P12 容器包含關鍵的私密金鑰;必須將舊式加密密碼演算法更新為現代的 AES 標準。
已知攻擊向量
- 對使用低疊代次數且加密較弱的 P12 壓縮檔進行密碼暴力破解攻擊。
- 利用早期 P12 檔案中的舊式 RC2-40-CBC 弱加密密碼演算法。
- 未強化記憶體緩衝區中已解密私密金鑰的記憶體洩漏。
防禦最佳實務: P12 檔案務必使用強密碼,以及搭配 PBKDF2 / SHA-256 的現代 AES-256 加密。
歷史起源與里程碑
2014IETF 發布 RFC 7292,將採用 AES 加密的現代 PKCS #12 v1.1 標準化。
2000Apple macOS 鑰匙圈和 Microsoft Windows 將 PKCS #12 標準化,用於使用者數位身分識別傳輸。
1999RSA Laboratories 發布 PKCS #12 v1.0,取代了微軟早期的 PFX 格式。
主要優勢與優點
- 多合一封裝:將私密金鑰、公開憑證和完整的中繼 CA 憑證鏈捆綁在單一安全檔案中。
- 受密碼保護的加密:私密金鑰使用 AES-256 或 3DES 加密,確保傳輸安全。
- 用於網頁瀏覽器驗證和 Apple iOS 開發者程式碼簽署設定檔的標準用戶端憑證格式。
技術限制與缺點
- 需要密碼才能解壓縮:如果忘記密碼,將導致私密金鑰永久無法復原。
- 舊版 P12 檔案使用了強度較弱的 3DES 或 RC2 加密演算法,會在現代 OpenSSL 3.0 中觸發警告。
- 如果沒有密碼學解壓縮工具,將無法以視覺方式檢查二進位格式。
有趣的技術冷知識
- .p12 和 .pfx 副檔名常用於 PKCS #12 檔案,儘管軟體慣例各有不同;請檢查接收應用程式的要求。
- Apple iOS 開發者憑證和布建設定檔會以 .p12 檔案形式發布,用於簽署 iPhone App。
- OpenSSL 3.0 已棄用舊版 PKCS#12 演算法(RC2-40-CBC),需要加上 '-legacy' 旗標才能開啟早期 P12 檔案。
常見技術問題
.p12 與 .pfx 有什麼不同?
沒有不同。.pfx 是微軟的前身格式,後來被 RSA Laboratories 標準化為 PKCS #12(.p12)。如今,這兩個副檔名指的是完全相同的格式。
如何從 .p12 檔案中提取私密金鑰?
您可以在網頁瀏覽器中直接使用 File2File.app,在幾秒鐘內將私密金鑰和公開憑證提取到乾淨的 .pem 檔案中。
為什麼我的 P12 檔案需要密碼?
由於 P12 檔案包含您的機密私密金鑰,因此會使用密碼進行加密,以防止未授權的人員竊取您的數位身分。