Signature
PKCS7 是簽名格式還是證書格式?
我一直認為 PKCS7 是一種簽名格式。
但是,在網上我發現 PKCS7 是一種證書格式的幾個參考 - 例如,這談到了 PKCS7 證書:Extract raw certificate from PKCS#7 file in JAVA
那麼 PKCS7 是簽名格式還是證書格式還是兩者兼而有之?
那麼 PKCS7 是簽名格式還是證書格式還是兩者兼而有之?
兩者都不。PKCS7 現在是Cryptographic Message Syntax(CMS)。來自 RFC 5652:
此語法用於對任意消息內容進行數字簽名、摘要、身份驗證或加密。
CMS 實現了不同產品之間的互操作性,這些產品可以在同一文件上執行,而無需了解其他產品(實施和與產品相關的其他特定資訊)。CMS 通過為每種數據類型(簽名數據、封裝數據、經過驗證的封裝數據)定義特定的消息格式來實現這一點。因此,每個支持 CMS 格式的產品都可以毫無問題地交換以 CMS 格式定義的文件或消息。
您提供的第二個連結還討論了 CMS 格式。
在@Maarten 發表評論後:
還值得一提的是,PKCS代表“公鑰加密標準”。這些是 RSA Security Inc. 創建的一組公鑰加密標準。其中一些標準移交給了標準組織,之後它們成為了行業標準。
此外,正如@Maarten 所提到的,使用 CMS(PKCS7) 格式可以儲存多個證書。(檢查這個答案)