2012-03-02 180 views

回答

-5

不,當然,SO不會讓我只回答「不」,所以我們必須解釋。

基本上,代碼簽名證書爲您提供了一個私鑰,可以通過已知授權機構驗證的公鑰進行驗證。您使用該密鑰進行數字簽名,另一端可以驗證您簽名時是否擁有來自可信來源的證書。

SSL證書只是一個可以驗證來自可信來源的簽名「文檔」。你不能加密或簽名,因爲它沒有任何你自己的密鑰材料;它只是一個簽名文件,說「我證明我相信這個人說他是誰。」

+4

對不起,你在這裏完全錯了。 SSL證書始終有一個私鑰。在Web服務器上使用時,私鑰位於服務器上,並由Web服務器軟件(apache,IIS等)用於加密連接。 – jcoffland 2012-10-24 03:12:17

14

代碼簽名證書本質上與SSL證書相同。兩者都用於簽署一些數據以證明數據(軟件包或網頁內容)來自證書的「主體」。有兩個主要區別我可以想到:

  1. 它們在證書中有不同的「增強密鑰用法」OID。代碼簽名證書只能用於簽署一段代碼。沒有什麼能夠阻止你使用錯誤的證書進行簽名,但是客戶端(例如Web瀏覽器)將檢查證書中列出的所有「增強密鑰用法」,並且如果證書沒有包含適當的OID(例如「代碼簽名」),則拒絕簽名。這意味着一個證書可以同時具有「代碼簽名」和「服務器身份驗證」OID,以便可以在兩種情況下使用它們。但出於安全原因,沒有人應該這樣做。

  2. SSL證書一旦失效就會失效。但是代碼簽名證書得到了一些特殊待遇。例如,如果您10年前購買了一些軟件,那麼用於簽名的代碼簽名證書可能已經過期。但結合時間戳服務,可以證明10年前該軟件包已正確簽署。