EV程式碼簽名證書對軟體發行的重要性
程式碼簽名證書,即 Codesigning,是軟體開發者/發行者對所要釋出的軟體進行數字簽名的一種數字證書。它支援對 .exe、.cab、.dll、.ocx、.msi、.xpi 和 .xap 等檔案進行數字簽名。
第一個問題:為何要用程式碼簽名對軟體進行數字簽名?
我們先看幾張可能您也多次遇到過的介面的截圖:
或者是這種:
以上均為沒有數字簽名的軟體在微軟 Windows 中被安裝執行時候來自系統的攔截和警告。
事實上,沒有數字簽名的軟體,不僅僅是在安裝的時候有警告,就算是在下載的時候,也會遇到微軟 SmartScreen 的抵禦。
由此可見,如果一個軟體在沒有數字簽名的情況下就公開發布投入市場,那麼它是需要多麼意志堅定、不畏風險的使用者才能堅持從下載、安裝、執行等一路不顧電腦的各種風險警告來使用這款軟體。很明顯,這種沒有數字簽名的軟體從下載開始,就已經在“掉粉”。
那麼,為什麼微軟 Windows 會對這種沒有數字簽名的軟體如此“趕盡殺絕”呢?
1、沒有數字簽名,使用者就不知道這個軟體的發行者是誰。而軟體的安裝和執行通常會對電腦系統進行修改,試想一下,面對一個完全陌生的軟體,來路未明,不知道它是否是假冒軟體,也不知道它將要對您電腦做什麼修改、是否帶有惡意程式碼或者病毒,現在就要直接安裝在您的電腦中,其實細思極恐。
2、沒有數字簽名,就不知道軟體自發布之後是否遭到過惡意修改。數字簽名這個時候就相當於一張“封條”,一旦本身具有數字簽名的軟體程式碼遭到修改後沒有再次進行數字簽名,那麼該軟體的數字簽名就會失效,相當於“封條”已經被毀壞,證明這已經不是原本的軟體了。
所以數字簽名之於軟體釋出的重要性不言而喻。
第二個問題:程式碼簽名有哪些型別?
程式碼簽名分為普通的OV程式碼簽名證書和擴充套件驗證的EV程式碼簽名證書。
這兩種程式碼簽名證書都可以對軟體進行數字簽名,不一樣的,普通的OV程式碼簽名證書僅僅能夠對軟體進行數字簽名實現基本的釋出者身份驗證。
如下,有普通的OV數字簽名的軟體執行時,跟沒有數字簽名一樣,Windows 會對軟體進行攔截,但使用者點選了第一個介面中的“更多資訊”之後進入到的第二個介面,會看到發行者的單位名稱以及“仍要執行”的按鈕。
這種介面,可以讓使用者在一種比較忐忑的心情中實現軟體的安裝,但這比完全沒有數字簽名的軟體已經有進步了。而且,當只具有普通OV程式碼簽名證書籤署的數字簽名的軟體的下載量達到一定程度,就可避免這種“Windows 已保護你的電腦”的攔截,即所謂的通過累積下載來獲取 Windows 的信譽。但這種通過累計下載獲得即時信譽的方式不可控因素太多。
而如果這個被髮布的軟體是具有EV程式碼簽名證書籤署的數字簽名,則無論是下載,還是安裝,Windows 皆對這個軟體進行無條件放行,沒有風險警告,沒有安裝攔截,也沒有“發行者未知”的不友好提示,您看到的將直接是使用者賬戶控制介面:
為何 EV 程式碼簽名證書籤署的數字簽名讓 Windows 對軟體具有這種“VIP通道”的作用呢?我們不妨從下面幾個方面看待這個問題:
1、EV 程式碼簽名證書執行的是更加嚴格的稽核標準,它對於證書的申請者進行了嚴格的身份確認,確保證書的使用者身份真實可信;
2、EV 程式碼簽名證書通常使用更加嚴格的證書載體來存貯證書,即軟體釋出者在使用 EV 程式碼簽名證書對軟體進行數字簽名的時候,需要拿到對應的 eToken 插入到電腦中,輸入密碼方可進行數字簽名,這種方式減少了證書被惡意複製後濫用的風險。
EV 程式碼簽名證書從性質上就已經被微軟 Windows 認為值得信賴。所以微軟的 SmartScreen 直接對 EV 程式碼簽名證書的數字簽名進行立即信任放行。
此外,EV 程式碼簽名證書還支援驅動開發者在申請微軟數字簽名時建立 WHQL 賬號,如下是微軟官方釋出的 WHQL 認證過程中要求開發者具有 EV 程式碼簽名證書:
所以,如果您是軟體發行商,那麼沃通CA強烈建議您申請 EV程式碼簽名證書來為您的使用者提供更好的軟體下載、安裝、執行體驗。
沃通CA是由獲得工信部《電子認證服務許可證》的權威CA機構,在數字證書行業具備十餘年的行業積累,在機構資質、技術實力和服務能力等方面都具備行業領先水平,是您值得信賴的SSL證書、程式碼簽名證書等服務提供商,是 DigiCert、GlobalSign、Entrust 等 CA 機構在中國的授權合作伙伴,文章中提到的各種程式碼簽名證書可在官網直接申請:程式碼簽名證書