SmartScreen阻止使用SHA-2

时间:2016-01-24 13:30:55

标签: windows sha1 sha256 signing

我的二进制文件使用有效的SHA-2证书(Authenticode和timestamp)签名,但Windows 10上的SmartScreen仍会阻止它,而Edge报告“此文件的签名已损坏或无效”。

我已经检查了其他来自热门资源的二进制文件,比如Firefox。他们仍然使用SHA1时间戳证书签名,但Windows不会报告任何问题。有人可以建议发生了什么吗?

链接到我的二进制文件: https://dl.dropboxusercontent.com/u/21463705/Stackoverflow/Win32Project1.exe

My certificate screenshot

2 个答案:

答案 0 :(得分:4)

我们的安装人员遇到了同样的问题。即使我只使用SHA-2证书进行SHA-2签名,Edge仍然会将签名报告为无效。

我们使用相同的代码签名授权,“VeriSign Class 3 Code Signing 2010 CA”,它本身使用SHA-1签名进行签名:

enter image description here

这似乎是SmartScreen的“此文件的签名已损坏或无效”错误消息的原因。

我联系了赛门铁克(他们现在运行VeriSign),他们为我们颁发了替换证书。与前一个版本不同,该版本由“Symantec Class 3 SHA256 Code Signing CA”签署,并且签名的可执行文件不再触发SmartScreen中的“签名损坏或无效”错误。

enter image description here

我仍然收到警告,因为我们的安装人员还没有足够的声誉,但这是一个完全不同的问题。

更新:赛门铁克现在discontinuing the use of SHA-1 Intermediate CA Certificates used for signing SHA-256 Code Signing certificates

答案 1 :(得分:0)

我遇到了同样的问题,并且还没有解决问题。我认为其他二进制文件与SHA1签署的原因是因为它们是在2016年1月1日之前签署的。我们收到的关键服务公告指出:

  

以前使用SHA-1证书签名的文件将继续在Windows 7及更高版本上运行一年,只要它们在2016年1月1日之前加上时间戳。

进一步说,

  

从2017年1月1日开始,所有SHA-1签名文件将在Windows 7及更高版本上被阻止,无论它们何时加上时间戳。