gpt4 book ai didi

Windows 10 忽略我的设置文件中的 Authenticode

转载 作者:可可西里 更新时间:2023-11-01 14:17:29 25 4
gpt4 key购买 nike

在 Windows 10 的“快速环”上,我在自己的安装可执行文件上出现了奇怪的行为:

我是 SHA-1 签署他们 Authenticode多年来以同样的方式,从未有过任何问题。

最近 Windows 10 无法识别我的(有效)签名。

当从我的网站下载 setup.exe 并执行它时,Windows SmartScreen 消息框出现并告诉我:

...
Publisher: unknown
...



查看刚刚下载的安装可执行文件的属性时,它会显示签名,并告诉我签名有效。

此外,整个证书链都是有效的。

我用这样的东西签名:
SignTool.exe sign /v /t http://timestamp.verisign.com/scripts/timstamp.dll 
/f "my-authenticode.pfx" /p "my-password" "my-setup.exe"

(为了可读性添加了换行符)

我的问题:

有没有人知道可能的原因(和修复)?

更多信息 :

我能想到可能的原因:
  • 使用 Windows 10 Fast Ring 签名是有问题的。 (我已经使用相同的行为在 Windows Server 2008 R2 上签名)。
  • 在 Windows 10 Fast Ring 中运行下载的安装可执行文件是有问题的。

  • 更新 1:

    我找到了 a MSDN blog article back from 2013 that seems to talk about something similar正如我发现的那样,但我仍然看不出这是否真的适用。

    更奇怪的是:从我们网站上下载的旧版本,使用相同的 Authenticode 证书签名不会触发警告。

    也许 SmartScreen 会比较时间戳并对较新的签名/安装可执行文件有不同的行为?

    也许我需要在调用 SignTool.exe 时添加其他/不同的参数?

    更新 2:

    在非 Fast Ring Windows 10 上,不会显示 SmartScreen 警告。

    另外, there is also a similar SO posting这并没有进一步帮助我。

    另外, there is a Symantec posting, that claims :

    For Windows Vista 64-bit and Windows 7 the signing process has changed. The code cannot simply be signed, it also needs to be "cross-signed" with a certificate provided by Microsoft.



    这对我来说很奇怪,因为我的签名程序直到最近才成功运行。

    他们进一步 link to their own instructions只讨论内核模式软件。

    更新 3:

    用户 GSerg pointed我到 Microsoft TechNet 上的“ Windows Enforcement of Authenticode Code Signing and Timestamping”。

    这似乎朝着正确的方向发展。

    我已经看到我当前的证书是 SHA-1。我刚刚通过从 Thawte 重新发布它,将其更新为 SHA-2/SHA-256。

    现在,我仍然在本地 Windows 10 Fast Ring PC 上收到 SmartScreen 警告,但至少现在它会打印发布者。

    enter image description here

    我不会购买 code signing cert from DigiCert因为我相信证书链也会影响 SmartScreen 过滤器如何看待我的应用程序。我确实希望它与我目前使用的 Thawte 证书相比有所改进。

    如果您打算为 Windows Vista 签名,请注意这里有 was a problem with SHA-256 signed files .链接的 TechNet 文章谈到了 dual signing来克服这一点。

    更新 4:

    另见 this SO answer这涉及通过签名应用程序传递 SmartScreen 警告。

    如果这个 DigiCert 证书加上等待获得足够的声誉仍然没有帮助,我可能不得不吞下苦果并购买 extended validation (EV) code signing certificate (这需要硬件 token 并且更贵)。

    更新 5:

    大约之后有一天,SmartScreen 似乎不再显示任何警告。

    似乎我现在的双重签名安装可执行文件(SHA-1 加 SHA-256)已经获得了足够的声誉来成功通过 SmartScreen 测试。

    enter image description here

    我的认证路径/链现在看起来像这样:

    enter image description here

    我觉得有点奇怪的是,根证书“thawte”仍然使用 SHA-1。

    我原以为这仍然会引起 SmartScreen 的担忧,但似乎没有。

    更新 6:

    文章“ Do You Need SHA-2 Signed Root Certificates?”解释了为什么不需要 SHA-256 根证书。

    与此同时,我还从 DigiCert 收到了我的 Authenticode 证书。我已经在一些设置中使用它。

    仅用了大约一天的时间,SmartScreen 过滤器就发现了它并且不再发出警告。

    所以我现在有一个 Thawte Authenticode 代码签名证书和一个 DigiCert Authenticode 代码签名证书。

    如果我早点理解 SHA-256 的含义,我本可以为 DigiCert 证书省钱。

    最佳答案

    user GSerg pointed out ,我最初问题中出现错误的原因是我仅使用 SHA-1,自 2016 年以来,Microsoft 仅使用“deprecated”。

    在使用 SHA-1 和 SHA-256 对我的安装可执行文件进行双重签名后(并等待几天),SmartScreen 过滤器不再提示。

    关于Windows 10 忽略我的设置文件中的 Authenticode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34979463/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com