GlobalSign 博客

了解针对使用 GlobalSign 代码签名证书签名的应用程序的 SmartScreen 警告


我们最近发现,当用户尝试运行其已签名的应用程序时,Microsoft SmartScreen警告的出现频率有所增加。

本文将解释出现这种情况的原因、SmartScreen 信誉评估机制的运作原理(基于微软的最新指导原则),以及未来您可能遇到的情况。

什么是 SmartScreen 信誉?

Microsoft SmartScreen是一个基于信誉评估的安全系统,会在允许下载的应用程序运行之前对其进行评估。

微软对 SmartScreen 的定义旨在实现以下功能:

发布者信誉  代码签名证书的可信度

文件信誉(哈希值) 该文件是否已被广泛下载且值得信赖 (Microsoft Learn)

这意味着信任并非一蹴而就——即便是经过正确签名的申请也是如此。

为什么会出现 SmartScreen 警告?

您可能会看到类似以下警告:“Windows 已保护您的电脑”

这种情况通常发生在以下情形:

该应用程序是新推出的或最近发布的

该文件的下载率较低

正在使用新的证书

二进制文件已更改(新版本 = 新文件哈希值)

微软明确指出,每个文件都必须根据实际使用情况建立自己的信誉 (Microsoft Learn)

即使是微小的更新也会重置文件的信誉值。

重要启示:仅靠签名是不够的

一个常见的误解是:

如果我的应用程序已签名,就不应该显示 SmartScreen 警告。

SmartScreen 并非如此运作。

代码签名可确保身份和完整性

SmartScreen 会随时间推移评估信誉

有效的签名 ≠ 立即信任

EV代码与标准代码签名证书

从历史上看,EV代码证书有助于更快地建立信誉。然而,根据微软目前的指导意见:

无论是EV代码证书还是标准代码证书,都依赖于信誉的积累

关键因素依然在于实际应用情况和信任信号

声誉是需要靠努力赢得的,而不是凭空得来的。

SmartScreen 信誉如何建立

在以下情况下,声望会随着时间的推移而提升:

用户下载并安装该应用程序

未检测到任何恶意行为

该发行商会持续为软件签名

SmartScreen 通过遥测数据和信号来判断软件是否为常见下载且安全。

在此之前,该应用程序将被视为“未知”并被谨慎标记。

为何此事如今如此重要

随着微软生态系统中安全措施的持续改进,SmartScreen 正变得越来越严格,且越来越注重信誉评估。

这意味着:

新应用程序几乎总是会收到初始警告

更新和新版本将暂时重置信任

规模较小或小众的应用程序可能需要更长时间才能建立声誉

这对 GlobalSign 客户意味着什么

需要明确的是:

  • SmartScreen 警告并不表示:

  • 无效或已失效的 GlobalSign 证书

  • 签名流程存在的问题

  • 应用程序中的安全漏洞

  • 他们指出:

  • 该应用尚未建立起足够的信誉

减少 SmartScreen 警告的最佳实践

为了更快建立声誉并尽量减少警告:

  1. 保持证书的一致性
    在各个版本中使用相同的发布者身份
  2. 扩大分销
    鼓励从可信渠道下载
  3. 签署所有免责声明
    确保每个二进制文件都经过正确签名并添加了时间戳
  4. 避免频繁更换证书
    新证书需要重建信誉
  5. 与用户沟通
    请告知用户,新软件安装时可能会出现初始警告

最终总结

SmartScreen 的设计目的是保护用户免受未知软件的侵害,而非用于验证证书。

即使使用 GlobalSign 的受信任代码签名证书:
声誉需要时间来积累
预计初期会出现警告
信任源于实际使用

了解微软 SmartScreen 信誉模型的工作原理,有助于开发者与最终用户建立合理的预期。如果您对 SmartScreen 警告或信誉随时间积累的过程有任何疑问,请联系 GlobalSign 支持团队以获取指导。


近期博客