签署代码后多久可以摆脱智能屏幕警告?

Posted

技术标签:

【中文标题】签署代码后多久可以摆脱智能屏幕警告?【英文标题】:How long to get rid of smartscreen warning after signing code? 【发布时间】:2017-01-19 03:37:30 【问题描述】:

我打算使用代码签名证书对我的一个软件进行签名,因为当用户下载它并尝试运行它时,Windows 10 会显示一个全屏警告它可能很危险。

证书相当昂贵,EV证书承诺他们会立即消除警告,但不是直接的,我不能真正相信他们。

所以我的问题是,在我购买标准证书并签署我的代码后,windows 需要多长时间才能停止显示警告,我究竟需要做些什么来加快这个过程?

谢谢。

【问题讨论】:

好吧,我已经从 Digicert 购买了代码签名证书(不是 EV 版本),但我们仍然遇到这个问题。不知道要多久才能消失 @ajbeaven 确定花了几天时间,下载了几次,然后它就消失了。从那时起,我们出于不同的原因转向了 EV 证书,但标准证书仍然可以。 相关:Transferring Microsoft SmartScreen reputation to renewed certificate. 【参考方案1】:

上一次是在 2017 年,我的 OV 代码签名证书在大约 1 个月内获得了足够的声誉和大约 300 次下载。

发布一个显示智能屏幕蓝色窗口的新签名安装程序有点可怕,但我将智能屏幕警告的危害降到最低:在我的网站上,我有一个不同语言的网页,所以我将新的安装程序放置在销售量不大的语言的本地化页面上,例如葡萄牙语/罗马尼亚语/匈牙利语。我想我损失了一些销售额,但不是太多。

大约 1 个月后,所有未来签名的安装程序都不会导致智能屏幕警告。 那一次我拿到了4年的证书,这4年过得很幸福。

现在我需要重新签发代码签名证书。由于公司名称修改,无法续订。我想获得最长年限的新代码签名证书。

但不幸的是,认证中心现在提供的证书最长为 39 个月。 其中一些允许您支付 4 或 5 年的费用:他们解释说 3 年后他们将在剩余的 1 或 2 年内重新签发证书。也许这是个好主意,也许不是,但我决定购买 3 年证书。

我发现微软给出了以下建议:

· 当使用新证书(甚至更新证书)时,使用 相同的信息(姓名、电子邮件联系地址等)用于 较旧的、已建立的证书

· 使用新证书签署已建立的应用程序

· 使用已建立的证书签署新应用程序

· 确保使用新证书签名的应用程序是 可访问(例如,而不是留在 Intranet 上)

· 不要为签名应用程序创建许多不同的证书。 使用有限数量的证书,并确保应用程序 与他们签署的协议不易受到攻击

· 考虑早一点更新证书并签署一些 在现有证书到期之前使用它的应用程序

最后一条建议很重要,因为最好有一个有效的证书,直到新的获得声誉。

【讨论】:

【参考方案2】:

这里很难给出准确的数字,因为 SmartScreen 可能会使用大量信息来决定可信度。因此,请记住,您的里程可能会有很大差异。

不过,我还是想在这里总结一些不同人给出的非官方数字:

42 days 和大约 1.400 app installs。来源:我自己的证书(2021 年 2 月) 16 days 和大约 2.000 app installs。来源:我自己的证书(2020 年 5 月) One month 和更多 10.000 downloads。来源:here(2020 年 1 月) 在a few weeksa month 之间。来源:here(2019 年 12 月) 关于2-3 weeks。来源:here(2019 年 12 月) 关于3.000 downloads。来源:here(2013 年 12 月)

另请参阅my other answer here 以全面了解这些 Microsoft SmartScreen 警告以及您可以做什么以及应该了解的内容。

【讨论】:

【参考方案3】:

它似乎由两部分组成 - 应用程序信誉和证书(指纹)信誉。

SmartScreen 为程序和代码签名证书指纹建立了声誉。应用程序可能会在一定时间和下载次数(全球)和证书指纹后建立声誉,因为建立声誉似乎需要更长的时间。

根据 Microsoft 的说法,一旦证书指纹获得足够的声誉,任何未来使用该证书签名的可执行文件都将不再发出警告,因此购买 3 年证书而不是 1 年证书以保持指纹相同是有意义的尽可能长的时间。

Microsoft 没有公布需要多少安装才能获得指纹或软件声誉。获得即时声誉的唯一方法是 EV 证书。

【讨论】:

感谢 3y 证书建议。【参考方案4】:

我忘记了这个问题,但从那以后得到了解决。

花了几天时间,下载了几次,但它已经消失了。

从那时起,我们出于不同的原因转向了 EV 证书,但标准证书仍然可以。

【讨论】:

您能否更具体地了解估计的下载次数?我在某处读到它需要 3k 次下载才能消失! 对我来说,它肯定在 100 左右,但涉及多个因素。如果用户通过 IE 下载它,那就更重要了。此外,我已将该应用程序上传到 virustotal,这可能很重要。我们还被一家 AV 公司手动列入白名单。所以基本上你只需要让你的用户群有机地“摆脱”智能屏幕警告。

以上是关于签署代码后多久可以摆脱智能屏幕警告?的主要内容,如果未能解决你的问题,请参考以下文章

如何摆脱“未声明的选择器”警告

“警告无法确定响应正文的内容长度”是啥意思。意思是我如何摆脱它?

如何摆脱警告 .ts 文件是 TypeScript 编译的一部分,但未使用

通过负面警告摆脱 gcc shift

检查布尔模板参数时摆脱“条件表达式为常数”警告的方法?

TSLint 摆脱缺失的空白