複製鏈接
請複製以下鏈接發送給好友

PKCS#12

鎖定
PKCS#12是一種交換數字證書的加密標準,用來描述個人身份信息。如:用户公鑰私鑰、證書等。
中文名
PKCS#12
外文名
PKCS#12
類    型
加密標準
用    途
描述個人身份信息
例    子
用户公鑰私鑰、證書等
學    科
密碼學

PKCS#12介紹

密碼學中,PKCS #12定義了一種存檔文件格式,用於實現存儲許多加密對象在一個單獨的文件中。通常用它來打包一個私鑰及有關的 X.509 證書,或者打包信任鏈的全部項目。 [1] 
一個 PKCS #12 文件通常是被加密的,同時單獨存在(存檔文件格式)。其被稱作"安全包裹"的內部存儲容器通常同時也被加密及單獨存在。一些安全包裹被預先定義用來存儲證書,私鑰以及證書吊銷列表。根據不同實現者的選擇,也可以使用一些安全包裹存儲其他任意數據。
PKCS #12 是 RSA 實驗室發佈的公鑰密碼學標準之中的一員。
PKCS #12文件擴展名為 ".p12 "或者 ".pfx"。
這些文件可以通過使用OpenSSLpkcs12命令被創建、解析並讀出。

PKCS#12與PFX文件格式的關係

PKCS #12 是微軟 PFX 文件的替代者;然而,"PKCS #12 文件" 和 "PFX 文件" 這兩個詞有時被相互替代使用。
微軟的 "PFX" 因作為最複雜的密碼學協議之一而受到大量批評。

PKCS#12通常用法

完整的 PKCS #12 標準非常複雜。它使得大量的複雜對象(例如PKCS #8)可以深層次地嵌套。但在實際應用中通常只用來存儲一個私鑰以及與之有關的證書鏈。 [2] 
PKCS #12 文件通常使用OpenSSL來創建,OpenSSL 只支持在命令行界面使用單個私鑰。在 Java 8 之後,可以使用 Java 密鑰工具創建多個條目,但這很有可能不被其他系統所兼容。下一代的KMIP也將可以直接用來創建 PKCS #12 文件。
對於 PKCS #12 來説,一個更簡單的替代方案是使用 PEM 格式,它僅僅列出證書,可能還有與之有關的私鑰,以Base 64字符串的形式存儲於一個純文本文件中。
也可以使用GnuTLS證書工具(參數--to-pk12)來創建包含證書、密鑰、CA認證證書的 PKCS #12 文件。然而,要注意與其他軟件的可交換性。如果源是通過 Base 64 處理過的字符串,則輸出也同樣應該使用 Base 64。
參考資料
  • 1.    Wrobel T. pkcs12[J]. 2011.
  • 2.    Stallings W. 網絡安全基礎: 應用與標準[M]. 清華大學出版社, 2011.