代码签名证书对于软件开发者来说作用很重要,它除了保护所发行的软件不被恶意篡改之外,还能让软件在 windows 中获得一个可信的数字身份,从而减少浏览器、操作系统等对软件在下载、安装、运行时候的拦截和风险警告。中域网目前在签发的代码签名证书价格在几百元到几千元不等。
其实,相比开发一个软件的投入,以及从代码签名证书带来的价值来权衡,代码签名证书不贵。
代码签名证书主要分为普通的 OV 代码签名证书和扩展验证的 EV 代码签名证书。从使用成本上看,同一个CA机构的普通的代码签名证书价格一般只有扩展验证的代码签名证书的价格的一半多一点。但两者的功能也有很大的区别。
共同点:都能给 exe 等类型的软件代码进行数字签名,让用户在运行软件的时候,可以查看到软件的发行者身份。在“已验证的发布者”那里会明显展示您的单位名称,这对提升企业的曝光率、品牌形象等都有积极的作用,同时,也能提升用户对您所发行软件的信任感和安全感。
不同点:微软的 Windows 有个 SmartScreen 筛选器,例如用户在运行 win10 系统中的某些程序时,偶尔会出现弹出“windows已保护你的电脑,Microsoft Defender SmartScreen 阻止了无法识别的应用启动。运行此应用可能会导致你的电脑存在风险”的提示,如下所示:
这个原因正是微软的 SmartScreen 的作用,它帮助用户拦截了没有数字签名或者是只是使用了普通的代码签名证书的数字签名的软件。而如果软件开发者使用了扩展验证的 EV 代码签名证书,则不会出现被 SmartScreen 拦截和无法识别的情况。而除了在安装运行的时候被 SmartScreen 拦截外,没有代码签名或者只是使用了普通代码签名的软件在下载的时候就已经开始被 SmartScreen 不友好对待了,如下图所示:
因此,对于没有代码签名的软件,或者没有足够级别的代码签名证书的软件,微软是不太友好的。那么,既然普通的代码签名无法获得 SmartScreen 的信任,普通的代码签名证书意义又在哪里呢?