PKCS 12
副檔名 |
.p12, .pfx |
---|---|
網路媒體型式 |
application/x-pkcs12 |
統一類型標識 | 0 |
開發者 | RSA 安全 |
首次發布 | 1996年 |
最新版本 | PKCS #12 v1.1 2012年10月27日 |
格式類型 | 歸檔檔案格式 |
作為容器 | X.509 公開金鑰認證、X.509 私鑰、X.509 憑證吊銷列表、通用資料 |
延伸自 | 微軟PFX檔案格式 |
在密碼學中,PKCS #12 定義了一種歸檔檔案格式,用於實現儲存許多加密對象在一個單獨的檔案中。通常用它來打包一個私鑰及有關的 X.509 憑證,或者打包信任鏈的全部專案。[1]
一個 PKCS #12 檔案通常是被加密的,同時單獨存在。其被稱作「安全包裹」的內部儲存容器通常同時也被加密及單獨存在。一些安全包裹被預先定義用來儲存憑證,私鑰以及憑證吊銷列表。根據不同實現者的選擇,也可以使用一些安全包裹儲存其他任意資料。 [2][3]
PKCS #12 是 RSA 實驗室發布的公鑰密碼學標準之中的一員。
PKCS #12 副檔名為 ".p12 "或者 ".pfx"。[4]
這些檔案可以通過使用 OpenSSL pkcs12
命令被建立、解析並讀出。[5]
與PFX檔案格式的關係
PKCS #12 是微軟 PFX 檔案的替代者;[6] 然而,"PKCS #12 檔案" 和 "PFX 檔案" 這兩個詞有時被相互替代使用用。[7]
微軟的 "PFX" 因作為最複雜的密碼學協定之一而受到大量批評。
通常用法
完整的PKCS #12標準非常複雜。它使得大量的複雜對象(例如PKCS #12)可以深層次地巢狀。但在實際應用中通常只用來儲存一個私鑰以及與之有關的憑證鏈。
PKCS #12 文件通常使用 OpenSSL 來建立,OpenSSL只支援在命令列介面使用單個私鑰。在Java 8之後,可以使用Java金鑰工具建立多個條目,但這很有可能不被其他系統所相容。
對於PKCS #12來說,一個更簡單的替代方案是使用 PEM 格式,它僅僅列出憑證,可能還有與之有關的私鑰,以Base 64字串的形式儲存於一個純文字檔案中。
也可以使用GnuTLS憑證工具(參數 to PSK #11]來建立包含憑證、金鑰、CA認證憑證的PKCS #12檔案。然而,要注意與其他軟體的可交換性。如果源是通過Base 64處理過的字串,則輸出也同樣應該使用Base 64。
參考文獻
- ^ 存档副本. [2017-10-21]. (原始內容存檔於2017-11-09).
- ^ PKCS #12: Personal Information Exchange Syntax Standard. RSA Laboratories. [2016-02-09]. (原始內容存檔於2017-04-17).
This standard specifies a portable format for storing or transporting a user's private keys, certificates, miscellaneous secrets, etc.
- ^ PKCS 12 v1.0: Personal Information Exchange Syntax (PDF). RSA Laboratories. 1999-06-24 [2013-03-14].[永久失效連結]
- ^ Michel I. Gallant. PKCS #12 File Types: Portable Protected Keys in .NET. Microsoft Corporation. March 2004 [2013-03-14]. (原始內容存檔於2013-05-07).
All Windows operating systems define the extensions .pfx and .p12 as Personal Information Exchange, or PKCS #12, file types.
- ^ OpenSSL: Documents, pkcs12(1). OpenSSL Project. 2013-01-17 [2017-03-23]. (原始內容存檔於2017-03-24).
The pkcs12 command allows PKCS#12 files (sometimes referred to as PFX files) to be created and parsed.
- ^ Peter Gutmann. Lessons Learned in Implementing and Deploying Crypto Software (PDF). The USENIX Association. August 2002 [2013-03-14]. (原始內容存檔 (PDF)於2015-11-23).
In 1996 Microsoft introduced a new storage format [...] called PFX (Personal Information Exchange) [...] it was later re-released in a cleaned-up form as PKCS #12
- ^ Peter Gutmann. PFX - How Not to Design a Crypto Protocol/Standard. 1998-03-12 [2013-03-14]. (原始內容存檔於2012-08-25).
外部連結
- PKCS #12 v1.1: Personal Information Exchange Syntax. RSA Laboratories. [2017-10-21]. (原始內容存檔於2017-04-17).
- Moriarty, K.. PKCS #12: Personal Information Exchange Syntax v1.1. IETF. July 2014. RFC 7292.
- Overview about PKCS#12 capabilties, usage, implementations, history and future: Ryan Hurst and Yury Strozhevsky. The PKCS#12 standard needs another update. Unmitigated Risk Blog. 2015-12-02 [2017-10-21]. (原始內容存檔於2017-03-03).