PKCS 12

維基百科,自由的百科全書
跳至導覽 跳至搜尋
PKCS #12
副檔名.p12, .pfx
網路媒體型式application/x-pkcs12
統一類型標識0
開發者RSA Security
初始版本1996年 (1996)
最新版本
PKCS #12 v1.1
(2012年10月27日,​7年前​(2012-10-27)
格式類型Archive file format
專門屬X.509 public key certificates, X.509 private keys, X.509 CRLs, generic data
延伸自Microsoft PFX file format

密碼學中,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。 

參考文獻[編輯]

  1. ^ http://help.globalscape.com/help/secureserver3/Generating_a_PKCS_12_private_key_public_certificate.htm
  2. ^ PKCS #12: Personal Information Exchange Syntax Standard. RSA Laboratories. [2016-02-09]. This standard specifies a portable format for storing or transporting a user's private keys, certificates, miscellaneous secrets, etc. 
  3. ^ PKCS 12 v1.0: Personal Information Exchange Syntax (PDF). RSA Laboratories. 1999-06-24 [2013-03-14]. [永久失效連結]
  4. ^ Michel I. Gallant. PKCS #12 File Types: Portable Protected Keys in .NET. Microsoft Corporation. March 2004 [2013-03-14]. All Windows operating systems define the extensions .pfx and .p12 as Personal Information Exchange, or PKCS #12, file types. 
  5. ^ OpenSSL: Documents, pkcs12(1). OpenSSL Project. 2013-01-17 [2017-03-23]. The pkcs12 command allows PKCS#12 files (sometimes referred to as PFX files) to be created and parsed. 
  6. ^ Peter Gutmann. Lessons Learned in Implementing and Deploying Crypto Software (PDF). The USENIX Association. August 2002 [2013-03-14]. 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 
  7. ^ Peter Gutmann. PFX - How Not to Design a Crypto Protocol/Standard. 1998-03-12 [2013-03-14]. 

外部連結[編輯]