【问题标题】:SmartScreen blocks binary signed with SHA-2SmartScreen 阻止使用 SHA-2 签名的二进制文件
【发布时间】:2016-01-24 13:30:54
【问题描述】:

我使用有效的 SHA-2 证书(验证码和时间戳)对我的二进制文件进行了签名,但 Windows 10 上的 SmartScreen 仍会阻止它,并且 Edge 报告“此文件的签名已损坏或无效”。

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

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

My certificate screenshot

【问题讨论】:

    标签: windows sha1 sha256 signing


    【解决方案1】:

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

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

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

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

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

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

    【讨论】:

    • 我们放弃并订购了EV证书。替换也应该有帮助。
    【解决方案2】:

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

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

    还有,

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

    【讨论】:

    • 是的,带有 SHA-1 证书的二进制文件(甚至带有 SHA-2 证书,但已签名的 SHA-1 摘要算法)和时间戳在 2016 年 1 月 1 日之前的二进制文件都可以工作,我的二进制文件也可以工作。但问题是使用 SHA-2 证书和 SHA-2 摘要算法签名的二进制文件被 Smart Screen 阻止。类似问题:stackoverflow.com/a/35014546/4299464
    • 最后我们不得不联系赛门铁克更换证书,就像 Lukas Pokomy ​​上面报道的那样。尽管使用 sha256 对我们的二进制文件进行了签名,但证书链还有一个 sha1 证书。
    • 赛门铁克已停止使用此 SHA-1 中间 CA 证书,并提供免费替换代码签名证书:knowledge.symantec.com/support/mpki-for-ssl-support/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-22
    • 2011-12-11
    • 2020-10-22
    • 2017-12-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多