代码签名目前分为标准代码签名和EV扩展型代码签名,两者的相同点都是对企业组织进行更有效验证,针对32位或64位可移植可执行文件进行数字签名,通过对代码的数字签名可以减少软件下载时弹出的安全警告,保证代码完整性和不被恶意篡改及传播,EV代码签名相较标准代码签名较大的区别是支持Windows 10内核驱动文件签名和消除SmartScreen筛选器安全提醒。
代码签名目前分为标准代码签名和EV扩展型代码签名,两者的相同点都是对企业组织进行更有效验证,针对32位或64位可移植可执行文件进行数字签名,通过对代码的数字签名可以减少软件下载时弹出的安全警告,保证代码完整性和不被恶意篡改及传播,EV代码签名相较标准代码签名较大的区别是支持Windows 10内核驱动文件签名和消除SmartScreen筛选器安全提醒。
标准代码签名证书
标准代码签名只需要验证申请企业的基本信息、税务信息,验证成功后通过邮件等形式通常针对32/64位应用程序进行签名,防止各类杀毒软件的误报。
EV扩展型代码签名证书
EV代码签名证书除了验证企业的基本信息、税务信息外,还对企业的经营地址、申请人身份进行审查,区别于标准代码签名的重要特点是支持Windows 10内核驱动文件签名和消除SmartScreen筛选器安全提醒,此外EV代码签名针对内核模式的驱动文件需要进行微软的交叉签名,关于交叉签名使用请参考:Windows 10内核驱动签名注意事项。具体二者的主要区别如下
主要区别对照表
名称 | 标准代码签名证书 | EV扩展型代码签名证书 |
验证信息 | 企业名称 | 企业名称信息 企业经营地址 |
显示“未知发布者”安全警告提示 | 不显示 | 不显示 |
支持时间戳签名 | 支持 | 强制时间戳 |
无限软件签名 | 支持 | 支持 |
签发证书方式 | 邮件 | 经加密后的USB存储的证书 |
应用软件签名(.exe, .cab, .dll, .ocx, .msi, .xpi, .xap) | 支持 | 支持 |
Windows10内核驱动签名(.sys, .cat)支持 | 不支持 | 支持 |
微软交叉签名 | 不需要 | 强制交叉签名 |
360,QQ等主流杀毒软件 | 支持 | 支持 |
SmartScreen筛选器即时信誉 | 累计下载获得 | 立即获得 |
重要事件
2015年10月31日起Windows 10中标准代码签名证书无法用于内核模式驱动签名,必须用EV代码签名证书签名。
2016年1月1日起微软更新代码签名证书验签策略,取消对SHA1算法证书在软件数字签名验签中的支持,并在2017年1月1日起在Windows 10中取消对sha1算法时间戳摘要的支持。
2016年8月1日起所有Windows 10内核模式驱动经过CA权威机构签发的EV代码签名证书驱动签名后,都必须递交到Windows Hardware Developer Center Dashboard入口去再获得微软的二次数字签名,否则签名会被提示不合法。
关于双签名
目前默认的证书签名算法都是sha-256,通过申请的证书可以使用工具进行双签名,给应用程序或驱动签名的摘要算法就是sha1和sha256,但签发的证书本身签名算法是sha-256,可以通过所以在旧版的操作系统中会出现驱动类文件不兼容。目前在旧版操作系统的内核驱动签名不支持单证书双签名,普通应用程序则支持单证书双签名。
对于内核驱动签名,如果要实现双签名,例如同时在Windows 7 和 Windows 10 上运行,Windows 10则要求使用sha-256的签名算法创建签名,但是Windows 7的内核驱动签名则需要使用sha-1来实现。也就是说对于内核驱动的签名,需要同时购买EV代码签名证书和标准签名证书来实现内核驱动的双签名。
对于普通的应用程序可以使用一张证书来双签名实现兼容性。
消除SmartScreen报告“此程序不是常见的下载内容,可能会危害您的计算机”
以下内容摘自:https://www.itrus.cn/service_view_283.html
标准代码签名证书,需要累积软件下载安装量并基于代码签名证书来获得声誉。在累积足够的声誉后,该提示将自动消除。微软未发布声誉评价系统的详细策略数据,但微软策略表明,声誉评价与软件签发时间及安装下载量成正相关。即签发时间越久,下载安装量越大,提示消除的可能性越大。为帮助您不受SmartScreen声誉累积系统的影响,建议您结合应用场景选择下列方法,消除提示。
1、使用EV代码签名证书签名通过网络下载的可执行文件
EV代码签名证书可立即获得信誉,无需通过累积过程即可便捷消除不友善的提示信息。
2、使用已获得良好声誉评价的标准代码签名证书签名通过网络下载的可执行文件。
使用新的标准代码证书签名安装包中的所有可执行程序文件,然后使用已获得声誉并且不会出现拦截提示的证书签名打包后的setup文件。用户在安装setup文件后,将同时为新证书累积信誉。在获得足够安装量和信誉之后,新证书将不再出现拦截提示,可正常投入使用。
3、将可执行程序文件打包成zip、rar等格式压缩包。用户下载解压后执行安装操作。
未标记为网络下载(通过带有SmartScreen的IE浏览器下载时)的可执行程序,将不会被SmartScreen拦截。因此,使用压缩软件压缩的可执行程序,将不会被拦截。注意:在为可执行程序打压缩包之前,需确保可执行程序未被标记为通过网络下载的文件。
4、尽快发布非EV代码签名证书签名的文件,累积足够信誉。
通过自然累积信誉发布应用虽然是一个非常痛苦的过程,但当上述条件均无法应用时,并且企业希望为此节省成本时,自然累积信誉的方式发布应用就会成为必然选择了。