2026-05-15

代码签名应用程序为何触发 Microsoft SmartScreen 警告

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



PART.01
图片



SmartScreen 信誉评估机制

SmartScreen



什么是 SmartScreen 信誉?
Microsoft SmartScreen
01

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


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

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

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

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



为什么会出现 SmartScreen 警告?
Microsoft SmartScreen
02

类似以下警告:“Windows 已保护您的电脑”

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

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

  • 该文件的下载率较低

  • 正在使用新的证书

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

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

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


仅靠签名是不够的
Microsoft SmartScreen
03

一个常见的误解是:

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


SmartScreen 并非如此运作。

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

  • SmartScreen 会随时间推移评估信誉

   有效的签名 ≠ 立即信任






PART.02
图片



SmartScreen 信誉建立

SmartScreen



(一)EV代码签名&标准代码签名证书

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

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

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

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



(二)SmartScreen 信誉如何建立

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


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

  • 未检测到任何恶意行为

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


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


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



图片



PART.03
图片



SmartScreen 正变得越来越严格

SmartScreen


01
这意味着:
                     
  • 新应用程序几乎总是会收到初始警告

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

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


02
减少 SmartScreen 警告的最佳实践:


  1. 保持证书的一致性 

    在各个版本中使用相同的发布者身份

  2. 扩大分销 

    鼓励从可信渠道下载

  3. 签署所有免责声明 

    确保每个二进制文件都经过正确签名并添加了时间戳

  4. 避免频繁更换证书 

    新证书需要重建信誉

  5. 与用户沟通 

    请告知用户,新软件安装时可能会出现初始警告





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


即使使用 GlobalSign 的受信任代码签名证书:

声誉需要时间来积累

预计初期会出现警告

信任源于实际使用