Signature
PKCS#10 為什麼在 X.509 證書中保留主題公鑰
在 pkcs#10 工作流中獲取用於數字簽名的 x.509 證書,在證書請求資訊中,在 CSR 中,我們有主題公鑰。
該主題公鑰將用於驗證 CSR 自主題編寫以來未被修改。在這裡一切都很好。
一旦完成 CSR 的驗證,證書頒發機構就會生成 X.509 證書。在PKCS#10(3. 概述,有序列表之後的第一段)中,聲明我們在 X.509 證書中給出了主題公鑰。
提供了主題公鑰是因為我們使用主題私鑰簽署了 CSR,但此私鑰之後不會被重用。它可能僅為 CSR 創建而生成,並且 CSR 未保存在 X.509 證書中。
此外,X.509 證書由證書頒發機構使用其自己的私鑰而不是主題私鑰簽名。
所以問題是:為什麼要在 X.509 證書中保留主題公鑰,因為一旦我們驗證了 CSR 就達到了目標,驗證在X.509 證書生成之前完成?
該證書使用證書頒發機構的私鑰進行簽名,但 X.509 公鑰證書的目的是將公鑰與主題實體相關聯。
- 您生成一個公共/私人對
- 您生成一個包含 SubjectPublicKeyInfo 的 PKCS#10 CSR,使用私鑰作為所有權證明進行簽名。
- 您將 PKCS#10 CSR 送出給 CA。
- CA 會進行他們所做的任何驗證,以確保您是您聲稱在 CSR 中的主題(或您聲稱在 CSR 之外的任何主題)……以及您可能要求的任何擴展。
- CA 將 SubjectPublicKeyInfo 複製到他們創建的新證書中,並使用他們的私鑰對其進行簽名。
- 人們現在可以使用證書的信任來了解“來自您”並在證書中的公鑰下驗證的簽名實際上來自您(或使用了您的私鑰的被盜/破解版本)。
或者:您希望他們將誰的公鑰放入您的證書中?如果他們只是為您即時製作一個,他們也會擁有您的私鑰的副本,這顯然不如只有您擁有私鑰的安全。