Code Signing(程式碼簽章、數位簽章)是一種用來驗證軟體的是從認證的發行者所發行的方式。當開發者將軟體、檔案或安裝程式進行簽章時,會使用數位簽章將開發者的身分和檔案的完整性「封裝」在一起。
Code Signing 的作用
- 驗證來源:數位簽章顯示檔案來自於可信的開發者或公司,讓使用者知道這是來自可靠來源的軟體。
- 保護檔案完整性:若檔案被竄改,則程式碼簽章會失效,可由此來辨別軟體的來源。
使用 Code Signing 的好處
- 增加信任:使用者更放心地下載和安裝具備數位簽章的軟體。
- 減少安全警告:系統(如 Windows SmartScreen)會對具備數位簽章的軟體顯示較少的警告,有助於提升用戶體驗。
Code Signing 主要有兩種類型
標準程式碼簽章 (Standard Code Signing) 和 擴充驗證程式碼簽章 (Extended Validation Code Signing, 簡稱 EV Code Signing)。這兩種類型都可以為軟體提供安全保護和開發者的身份驗證,但它們在信任等級、取得方式和適用情境上有所不同。
EV Code Signing的信任程度較高,通常較大的企業會使用這個選項,來避免Windows SmartScreen出現。如何取得簽章
簽章是需要從微軟所認證的供應商來購買的,在這份微軟官方文件中有提到,可以從台灣代理商購買,或是直接在原廠官方網站購買。
我開發的Dimen Pro中,是使用標準程式碼簽章 (Standard Code Signing),因我是個人身分,沒辦法使用EV簽章。在Dimen Pro的msi安裝檔案內容中,可以看到數位簽章的內容。

Windows SmartScreen
即使我使用了標準程式碼簽章,仍然會出現Windows SmartScreen的警告,這是因為我需要多將我的軟體分發,透過較多使用者安裝後,微軟Windows的遙測資訊會針對我的數位簽章增加聲譽,但微軟並沒有在這部份多加說明,我們也沒辦法立即消除這個警告,因此大多數的使用者仍然會看見這個藍色視窗。

而且在這個視窗中,也必須要按下【其他資訊】才會再出現發行者的資訊。通常使用者看見上面的畫面,大多都會直接按下【X】離開。

這對開發者來說是一個相當困難的事情,沒有人安裝軟體則不會增加所謂的聲譽,而沒有增加聲譽的狀況下,會跳出警告來阻止使用者來安裝軟體。即使我已經將軟體提交給微軟分析,這個警告仍然存在;當然,微軟這麼做也是希望減少使用者被惡意軟體攻擊的風險。
結論
總之,在網路上下載的軟體,若沒有數位簽章的資訊時,自己便要小心使用了,因為這類軟體相對來說是沒有辦法驗證其發行來源的。