代碼簽名是對可執行文件或腳本進行數字簽名以確認軟件作者及保證軟件在簽名后未被修改或損壞的措施。此措施使用加密散列來驗證真實性和完整性。代碼簽名可以提供幾大功能價值。最常用的需求是代碼簽名為部署提供了安全性。在某些編程語言中,它也可用來幫助防止名字空間沖突。幾乎每個代碼簽名的實現都提供某種數字簽名機制來驗證作者或構建系統的身份,以及校驗對象是否未被修改。它也可用來提供對象相關的版本信息,以及存儲對象的其他元數據。代碼簽名作為軟件安全性依賴的效果取決于所支持簽名密鑰的安全性。與其他公鑰基礎設施(PKI)技術一樣,系統的完整性依賴于發布者對其私鑰免受未經授權訪問的保護。存儲在通用計算機的軟件中的密鑰易于受到影響。因此,將密鑰存儲在安全、防篡改的硬件密碼設備(也稱硬件安全模塊,HSM)是更加安全的最佳實踐。
簽名代碼的功能實現原理是什么?
代碼簽名的基礎是PKI安全體系。代碼簽名證書由簽名證書私鑰和公鑰證書兩部分組成。私鑰用于代碼的簽名,公鑰用于私鑰簽名的驗證和證書持有者的身份識別。
1. 發布者從CA機構(如VeriSign)申請數字證書;
2. 發布者開發出代碼;借助代碼簽名工具,發布者將使用MD5或SHA算法產生代碼的哈希值,然后用代碼簽名證書私鑰對該哈希值簽名,從而產生一個包含代碼簽名和軟件發布者的簽名證書的軟件包;
3. 用戶的運行環境訪問到該軟件包,并檢驗軟件發布者的代碼簽名數字證書的有效性。由于VeriSign根證書的公鑰已經嵌入到用戶的運行環境的可信根證書庫,所以運行環境可驗證發布者代碼簽名數字證書的真實性;
4. 用戶的運行環境使用代碼簽名數字證書中含有的公鑰解密被簽名的哈希值;
5. 用戶的運行環境使用同樣的算法新產生一個原代碼的哈希值;
6. 用戶的運行環境比較兩個哈希值。如果相同,將發出通知聲明代碼已驗證通過。所以用戶可以相信該代碼確實由證書擁有者發布,并且未經篡改。
簽名代碼的特點是什么?
1.代碼簽名證書可消除 Internet Explorer 以及 Windows 操作系統中彈出的「不明發行商」。
2.完整的時間戳服務包括免費的在你的代碼上蓋上時間戳以保證簽名不會過期。每月簽名次數不超過50次。 可以隨時進行證書更換。
3.短時間之內快速反饋。
4.自證書審核完畢之日起,7 天內無條件退款。
5.一般都會有風險擔保。
6.完善的在線服務電話和電子郵件技術支持。
7.免費證書安裝狀態檢查。