如何避免"Windows Defender SmartScreen阻止无法识别的应用程序启动警告"

And*_*ndy 19 windows installation windows-installer

我公司通过我们的网站向客户分发安装程序.最近,当我通过网站下载并尝试运行安装程序时,我收到警告消息:

Windows保护您的PC

Windows Defender SmartScreen阻止了无法识别的应用程序启动.运行此应用程序可能会使您的PC面临风险.

如果我右键单击安装程序并选择" 属性",请注意以下内容:

在此输入图像描述

我们的安装人员签了名

如何找到Windows Defender SmartScreen警告的原因?

我还没有设法找到Windows Defender的任何日志文件,也没有在事件查看器中找到任何内容.

emk*_*y08 24

TL; 博士

如果您的应用在 Microsoft SmartScreen 中的声誉还不够高,则会显示此警告。为了获得声誉,您可以

  • 将您的应用程序提交给 Microsoft 进行恶意软件分析,
  • 购买“扩展验证”代码签名证书,
  • 购买标准代码签名证书,或
  • 在 Microsoft 应用商店中发布您的应用。

请继续阅读有关这些不同选项的详细信息。

选项 1:将您的应用程序提交给 Microsoft 进行恶意软件分析

Microsoft 允许软件开发人员提交用于恶意软件分析的文件。据微软称,这将帮助开发人员“验证对其产品的检测”。如果审核成功,Microsoft SmartScreen 警告会更快消失,有时甚至会立即消失(它对我自己的一个应用程序立即起作用)。您需要拥有 Microsoft 帐户才能提交您的应用以供审核。

但是,请注意,如果您发布了应用的更新版本,则还必须再次申请新的审核。要解决这个问题,您必须使用“扩展验证”或标准代码签名证书(见下文)。

选项 2:购买“扩展验证”代码签名证书

有保证的方式立即永久地摆脱微软的SmartScreen警告是从一个买一个“扩展验证”(EV)代码签名证书微软认可的证书颁发机构(CA的),并与EV证书来签署您的应用程序.

此类 EV 证书的费用介于250 and 700 USD每年之间,并且只会颁发给注册企业。如果您是单一开发商,则您必须是独资经营者并拥有有效的营业执照。您可以在EV 代码签名证书指南 中阅读有关 EV 代码签名证书的正式要求的更多信息。

EV 证书通常会以硬件令牌的形式通过实物交付给您。

选项 3:购买标准代码签名证书(并有一些耐心)

更便宜的“标准”(即非 EV)代码签名证书也可用于永久(但不是立即!)摆脱 Microsoft SmartScreen 警告。标准代码签名证书将花费您100 and 500 USD每年之间的费用,也可以颁发给没有有效营业执照的私人开发商。一些 CA 还为开源项目提供折扣。

没有即时解决方案

标准代码签名证书的问题在于它们不会立即使 Microsoft SmartScreen 静音。相反,在警告消失之前,您的证书需要一些时间来建立声誉。但是,一旦您的证书建立了足够的声誉,使用该证书签名的所有应用程序都将受到 Microsoft SmartScreen 的永久信任,并且不会再触发警告。

需要花多长时间?

那么,在使用标准代码签名证书时,Microsoft SmartScreen 警告需要多长时间才会消失?不幸的是,这很难回答,因为 Microsoft 本身拒绝发布有关此的任何详细信息。而且由于 Microsoft SmartScreen 可能会使用大量信息来确定可信度,因此您的里程可能会有很大差异。根据各种来源报告的非官方数字(见下文),通常需要一段时间,2 and 8 weeks直到警告永久消失。但是,请记住,这还取决于您的应用程序的下载和/或安装次数。

非官方数字是:

  • 42 days和关于1.400 app installs。来源:我自己的证书(2021 年 2 月)
  • 16 days和关于2.000 app installs。来源:我自己的证书(2020 年 5 月)
  • One month并且超过10.000 downloads. 资料来源:此处(2020 年 1 月)
  • a few weeks和之间a month。资料来源:此处(2019 年 12 月)
  • 关于2-3 weeks. 资料来源:此处(2019 年 12 月)
  • 关于3.000 downloads. 资料来源:此处(2013 年 12 月)

你还需要知道的

请注意,标准代码签名证书的另一个问题是证书信誉不会自动转移到新的重新颁发的证书(例如,当您的旧证书过期时)。即使新证书基于与旧证书相同的证书签名请求 (CSR),也是如此。因此,强烈建议购买具有较长有效期的标准代码签名证书。

最后要注意的是,请始终确保为已签名的应用程序添加时间戳。时间戳非常重要,因为它允许签名的应用程序在证书本身过期后仍然有效。确保对文件和时间戳签名使用 SHA-2 摘要算法(例如 SHA-256)。另请参阅此问题以获取更多详细信息。

选项 4:在 Microsoft 应用商店中发布您的应用

作为另一种选择,您还可以使用Microsoft 应用商店来分发您的应用。对于从官方应用商店获取的应用,Microsoft SmartScreen 通常不会显示任何警告。

选项 5:什么都不做(并且要有很大的耐心)

如果您根本不采取任何措施,Microsoft SmartScreen 警告最终也会消失。然而,这可能需要大量的时间(数月)和/或下载(数万次)。另一个大问题是,每次您发布应用程序的更新版本时,等待期都会重新开始。因此,这可能不是您正在寻找的解决方案。

  • 可以确认选项1在24小时内消除了警告。 (5认同)
  • 这就变成了“没有人会雇佣没有经验的你,除非有人雇佣你,否则你永远不会获得经验”的问题。SmartScreen 当前的信息基本上只是“你不想这样做,因为你太愚蠢而无法做出自己的选择,我们甚至不会给你选择。” 那么,如果它不让任何人管理这件事,那么它到底应该如何建立信任呢? (3认同)
  • @emkey08 感谢您的回复,但我已经拥有代码签名证书五年多了,并于 2021 年 12 月更新了它。我认为即使 6 个月后,它也不再被视为“新”。我对所有 MSI 及其中的代码进行了代码签名,但我的客户仍然收到 Defender 警告。每次发生更改时都将内容提交给微软(当应用程序正在开发时经常发生)是行不通的。在我看来,微软在这方面做得有些过头了。 (2认同)

jay*_*nki 16

单击任何阻止应用程序安装的安装程序(.exe)的属性(Windows Defender SmartScreen阻止了无法识别的应用程序)后,我找到了一个解决方案

  1. 右键单击安装程序(.exe)
  2. 选择属性选项.
  3. 单击复选框以选中属性底部的取消阻止.

此解决方案适用于Heroku CLI(heroku-x64)安装程序(.exe)

  • 这并不能解决其他人下载它的问题! (36认同)

Max*_*tin 8

如果您具有标准的代码签名证书,则需要一些时间来使您的应用程序建立信任。Microsoft确认扩展验证(EV)代码签名证书允许跳过此信任建立期。 根据Microsoft的说法,扩展的验证证书使开发人员可以立即在SmartScreen中建立声誉。否则,用户将看到警告,例如“ Windows Defender Smartscreen阻止无法识别的应用程序启动。运行此应用程序可能会使您的PC面临危险。”,并带有两个按钮:“仍然运行”和“不运行”。

Microsoft的另一个资源声明如下(引号):“尽管不是必需的,但即使没有该文件或发布者的先前信誉,由EV代码签名证书签名的程序也可以立即建立SmartScreen信誉服务的信誉。EV代码签名证书还具有一个唯一标识符,可以更轻松地在证书续订中维护声誉。”

  • [在 SmartScreen 上分享类似答案的链接](/sf/answers/3529003621/)。“购买信任”……嗯…… (2认同)

Ste*_*mul 6

更新:这里的另一篇文章: 如何在 Installshield 2018 中添加发布者 (可能会更好)。


我对这个问题不太了解,但请看看这个对另一个问题的回答是否告诉您任何有用的信息(并告诉我们,以便我可以在此处提出更好的答案):如何通过 Windows Defender SmartScreen 保护?该问题与 BitRock 有关 - 一种非 MSI 安装程序技术,但总体问题似乎相同。

从上面我的回答中指向的链接之一摘录“......证书已经不足以获得信任...... SmartScreen 是基于声誉的,与 StackOverflow 的工作方式不同...... SmartScreen 信任不安装的安装程序不会引起问题。Windows 机器会将有关已安装程序及其造成的麻烦的遥测数据发送回 Redmond。如果您获得足够的赞许,那么 SmartScreen 将停止自动阻止您的安装程序。这需要时间和大量安装才能获得足够的赞许。有没有办法知道你走了多远。”

老实说,目前这对我来说都是新闻,所以请务必将您自己挖掘的任何信息反馈给我们。


您在上面标记的实际对话框文本肯定与Zone.Identifier备用数据流相关,其值3被添加到从 Internet 下载的任何文件中(有关更多详细信息,请参阅上面的链接答案)。


我无法将此问题标记为上一个问题的副本,因为它没有公认的答案。让我们暂时将这两个问题保持开放?(一个是针对 MSI 的,一个是针对非 MSI 的)。


归档时间:

查看次数:

36325 次

最近记录:

6 年,10 月 前