Windows 在安全更新后认为签名的安装程序是恶意软件 (KB3124605)

Posted

技术标签:

【中文标题】Windows 在安全更新后认为签名的安装程序是恶意软件 (KB3124605)【英文标题】:Windows thinks signed installer is malware after security update (KB3124605) 【发布时间】:2016-04-27 21:44:24 【问题描述】:

2 年前@Dejan Maksimovic 提出了一个关于Internet Explorer shows valid certificate as “corrupt or invalid signature” 的问题。 迄今为止,我遇到了一个需要提升权限的安装程序的类似问题。

问题似乎与KB3124605 相同。

安装程序使用 signtool 签名,证书有效期至 2016 年 8 月。

当我安装包含此补丁的累积更新时,Windows SmartScreen 告诉我发布者未知,但是当我卸载安全更新时,Windows 似乎能够区分发布者(证书信息中实际提到的那个) .

更新于 1 月 12 日发布。有同样问题的人吗?

运行SignTool verify /pa <My Installer.exe> 返回Successfully verified: <My Installer.exe>

【问题讨论】:

它是 SHA-1 证书吗?如果是这样,并且时间戳记在 2016 年 1 月 1 日之后,Windows 将拒绝它,请参阅security advisory 3123479。 (此外,2016 年 1 月 1 日之前的 SHA-1 证书可能需要由时间戳服务会签,我不确定。) 感谢您的回复@Harry。目前我无法检查这个,但我明天上班时会检查。 证书是 SHA-1。订购 SHA-2 证书。希望能解决问题。 【参考方案1】:

早于 Windows 7 的操作系统无法识别 SHA2 签名,因此如果您也以这些为目标并希望您的签名在那里可见,您需要执行 dual signing。

微软解释steps for dual signing,并提供更多细节。

【讨论】:

好一个!然而,对我自己来说,这并不重要,因为我们不支持 【参考方案2】:

最终收到新的代码签名证书后,我可以使用 SHA256 签名对我的安装程序进行签名。

我必须将/fd sha256 添加到signtool 中

SignTool.exe sign \
  /f "$CERTIFICATE" \
  /p $PFX_PASSWORD \
  /fd sha256 \
  /t http://timestamp.verisign.com/scripts/timestamp.dll" \
  /d "Name" \
  /du "http://my.website.com/" \
  "<My installer>"

不幸的是,我仍然遇到 Smartscreen 警告(但显然这是 windows 8+ feature)。好消息是出版商不再是未知数。

仍在尝试 windows application verifier 来自 this post 的 Windows 8、8.1 和 server 2012(Windows 10 here)

编辑:(参见@Bogdan 的评论)

对于双重签名,请执行以下步骤(不适用于 msi,仅适用于 exe

SignTool.exe sign /f "$CERTIFICATE" /p $PFX_PASSWORD /t http://timestamp.verisign.com/scripts/timestamp.dll" /d "Name" /du "http://my.website.com/" /v "<My installer>.exe"
SignTool.exe sign /f "$CERTIFICATE" /p $PFX_PASSWORD /fd sha256 /tr http://timestamp.verisign.com/scripts/timestamp.dll" /d "Name" /du "http://my.website.com/" /as /v "<My installer>.exe"

【讨论】:

感谢@Harry Johnston 的指导

以上是关于Windows 在安全更新后认为签名的安装程序是恶意软件 (KB3124605)的主要内容,如果未能解决你的问题,请参考以下文章

为啥 Java(在一个特定的安装上)认为我是自签名的?

windows 安装 dnwfastboot 驱动的时候遇到问题(数字签名)

windows 安装 dnwfastboot 驱动的时候遇到问题(数字签名)

Win10 驱动装不上,提示:Windows 无法验证此设备所需的驱动程序的数字签名。该值受安全引导策略保护,无法进行修改或删除。

Visual Studio 2017离线安装失败:安装程序清单签名验证失败

windows10怎么禁用签名