近期,微軟正式停止了對Win7系統的更新,陪伴了一代人的操作系統已日暮西山;恰巧在2020年1月1日起,全球的CA機構已不再頒發SHA-1代碼簽名證書,就讓我們走進操作系統更替的背后,數字簽名證書的起落,以及那個更替過程中無數開發者使用的操作——雙簽。
軟件在操作系統中為什么要進行代碼簽名?
首先,先科普一下,軟件在操作系統中為什么要進行代碼簽名?如果你是軟件開發人員,你可能已經知道windows系統和一些瀏覽器使用一種稱為數字認證代碼(Authenticode)的技術來標識軟件的發行商,檢查軟件沒有被病毒影響,未使用數字簽名的軟件可能無法正常運行。軟件開發者會在軟件發行前使用代碼簽名證書為軟件代碼添加數字簽名。
其次,我們來了解一下代碼簽名證書的算法SHA算法,安全哈希算法是用于數字簽名的散列算法。其中包含了SHA-1,SHA-2(包括了SHA-224,SHA-256,SHA-384,SHA-512)這幾種單向散列算法。SHA1簽名算法的安全性正逐年降低,極有可能被破解。
國際標準組織要求全球CA機構于2015年12月31日之后,停止簽發SHA1簽名算法的各種證書。微軟宣布Win7及其以上版本操作系統將在2016年1月1日起不再信任采用SHA-1算法簽名的軟件代碼,在SHA1簽名算法即將被微軟新版操作系統棄用,SHA2簽名算法卻不兼容老版本操作系統的情況下。如何讓自己的軟件在各個版本Windows系統通行,成了軟件開發者急需解決的難題。
如何讓同一份軟件代碼,同時支持所有版本的Windows操作系統呢?
那就是運用雙簽。什么叫雙簽?雙簽就是對一個軟件做兩次簽名,先進行SHA-1簽名,之后再進行SHA-2簽名的做法就叫做雙簽。雙簽需要一張SHA-1證書,一張SHA-2證書,一個待簽名程序,當時的市面上出現了許多具備雙簽功能的優秀代碼簽名工具,但時至2020年1月1日,CA機構正式確認不再頒發SHA-1代碼簽名證書后,雙簽也即將退出歷史舞臺,真正的名義上的雙簽可以說已經沒有了。
021yin.com /Support/SignTool_guide.htm