安装签名的应用程序时如何在Win8上传递智能屏幕?


79

我们是开发人员,并且我们有一个数字签名的应用程序安装程序。当我们安装此应用程序时,它将弹出智能屏幕,这会影响安装体验。它说

Windows保护您的PC

Windows SmartScreen阻止了无法识别的应用程序的启动,运行此应用程序可能会使您的PC处于危险之中。

我认为,除了数字签名之外,微软还有一些策略来验证应用程序。有没有人有解决此问题的经验,请给我一些解决此问题的线索?

Answers:


47

如果您使用从CA购买的证书对安装程序进行签名,则应该与CA联系以获取有关为何他们无法与Microsoft合作以摆脱此警告的解释。

如果证书不是来自CA,而是自签名证书,则必须诉诸CA。

微软已经在Windows团队博客上发布了大多数信息,

https://blogs.msdn.microsoft.com/ie/2012/08/14/microsoft-smartscreen-extended-validation-ev-code-signing-certificates/

最佳实践

开发人员仍应遵循我们在过去的博客文章中建议的最佳做法。我们在该指南中添加了通过Windows应用商店分发应用程序的其他选项以及EV代码签名的选项:

  • 通过Windows应用商店分发您的应用

Windows 8应用程序必须通过Windows Store开发人员的入职和应用程序审查过程。Windows 8应用程序不在Windows 8中的SmartScreen应用程序信誉检查或警告范围内。

  • 对程序进行数字签名(标准或EV代码签名)

将生成信誉并将其分配给数字证书以及特定文件。数字证书允许将数据汇总并分配给单个证书,而不是许多单独的程序。尽管不是必需的,但由EV代码签名证书签名的程序可以立即通过SmartScreen信誉服务建立信誉,即使该文件或发布者之前没有信誉。EV代码签名证书还具有唯一的标识符,这使在证书续订中维护信誉变得更加容易。只有作为Windows根证书计划成员的CA颁发的Authenticode证书才能建立信誉。

目前,Symantec和DigiCert正在提供EV代码签名证书。

  • 不要签名或散布恶意代码

分发检测为恶意的代码将删除文件中的信誉以及关联的数字证书中的所有信誉-即使已使用EV代码签名证书进行了签名。

  • 申请Windows徽标或Windows 8桌面应用程序认证

在此处了解有关这些程序的更多信息:Windows 8桌面应用程序认证(Windows应用商店提交所需)Windows徽标计划


“如果证书不是来自CA,而是自签名证书,则必须诉诸CA。” 业余爱好者或微型ISV应该通过哪些收入来源来收回CA每年收取的大约110美元的费用?
达米安·耶里克

1
“正如我们过去讨论过的,SmartScreen在单个程序和用于对该代码签名的证书方面都树立了声誉。” 摘自链接的Microsoft博客文章。许多开源项目都依赖于它们的声誉,如果您确实想签名,也可以要求赞助商来支付费用。
Lex Li

48

我们只是经历了从旧的Authenticode证书到证书的整个过程(不是EV证书,只是可以在我们的自动构建过程中使用的普通证书)。

Microsoft不再提供任何将信誉从现有证书转移到新证书的方法。因此,请勿尝试致电他们的支持。您将浪费大量时间和精力。他们将无能为力。

Microsoft声称,如果新旧证书具有相同的文本内容,则信誉会更快地建立。更具体地说,这是我从SmartScreen®过滤器的应用程序信誉功能支持团队获得的答复:

请注意,每当续签具有已知声誉的证书时,在初次下载使用续签的证书签名的文件时,您可能会看到一些警告。但是,与新证书相比,更新证书上的已知信誉通常建立得更快。在续订的证书建立信誉的同时,用户仍可以单击以运行或保存下载。为此,他们选择“操作” |“操作”。更多选项| 从下载管理器仍然运行。

确保SmartScreen不会警告用户的最佳方法是运行Windows App认证工具包(WACK),该工具包应包含在Windows SDK下载中:

Windows App认证套件

运行测试后,WACK解释了如何进行:

最终报告-通过验证

将成功的应用程序认证的XML结果上传到https://sysdev.microsoft.com。几天后,SmartScreen将意识到用于认证程序的数字签名,并且将不再警告用户下载。

注意我们无法在Windows 8.1的最新更新中对我们的应用程序进行认证,并且我们必须使用Windows 8.1的全新安装才能获得WACK来成功验证所有程序。


15
我想提一下,这个过程花了我大约2个小时左右(也许更多的时间)来完成。我不确定项目的大小是否是一个因素,但这不是2分钟的过程。
leigero


8
看来MS退休了sysdev.microsoft.com。您知道现在将文件上传到哪里吗?
Shchvova

2
看来MS退休了sysdev.microsoft.com。您知道现在将文件上传到哪里吗?
凤凰城

1
相反,请在此处提交文件:microsoft.com/en-us/wdsi/filesubmission
Rami A.

15

我已经搜索了一段时间,所以我将分享到目前为止的发现。

我没有在Microsoft的Windows 8中找到有关此功能的任何文档,但我可能只是在错误的地方寻找。

我阅读的大多数文章都讨论了SmartScreen筛选器的工作原理如下:

  • 在运行下载的安装程序或可执行文件之前,Windows 8将参考数据库。
  • 数据库可以报告该程序是否为:
    • 报告为恶意/网上诱骗,(并由Microsoft员工验证)。
    • 由许多人使用/运行。

如果有足够多的人运行了该安装程序,而没有将其报告为恶意程序,则该程序最终将被标记为安全程序,其他用户将不会收到该讨厌的消息。

一些来源:(这里)(这里

用户安装程序时发送给Microsoft的信息包括IP地址,安装程序的哈希值和数字签名,以及应用程序的文件名。(见这里

Microsoft员工可以直接访问数据库以添加并标记所有Microsoft应用程序的安全性。

也许Microsoft已经建立了一种对他们的安装程序进行预认证的方法,否则,您可能只需要等到足够的人来运行安装程序即可。(但不确定会是多少)。


链接log.nadim.cc/?p=78断开,甚至Way Way Machine也不显示任何内容。内容是否还有其他位置?
Uwe Keim

11

我刚刚经历了这个过程,我将向其中添加一些信息。

1)取得电动汽车。这很值得。下次升级证书时,请升级到EV证书。价格每年大约增加100美元。EV证书被认为更安全,因为它们更难于窃取。当颁发给您时,将向您颁发硬件令牌设备以完成签名。不幸的是,最终的标志与自动构建不兼容。

它并不像听起来那样可怕。他们将为您提供第二个证书,以对您的可执行文件进行签名(在安装程序内部),该可执行文件仍与自动化兼容。安装程序上的签名必须与硬件令牌一起签名。

2)如果您不想获得EV证书,则需要声誉。如果要升级,Microsoft会将信誉从旧证书转移到新证书。您必须联系MSDN技术支持,大约一周后即可完成。我提交了旧的和新的安装程序-带有旧的和新的证书-他们修复了它。

3)如果这是您的第一个证书,那么您将无法使用SmartScreen,直到获得声誉为止。您可能应该通过sysdev.microsoft.com获得您的应用程序认证。但是,在获得Microsoft正面声誉之前,并不清楚需要多少次下载。

那是我的经验。


3
您能否告诉我,在哪里提交应用以转移旧证书的声誉?
CITBL 2014年

1
我使用MSDN订阅提出了开发人员支持请求。
Lompican 2014年

2
我刚刚完成了与Microsoft的整个过程。显然,MSDN技术支持不再为此主题提供任何帮助。为了使SmartScreen警告消失,您确实需要树立信誉。最简单的方法是使用Windows App Cert Kit验证您的应用程序,然后将结果上传到sysdev.microsoft.com。
皮埃尔·阿诺

相对于公司而言,电动汽车是否甚至可供个人使用?业余爱好者应该采取哪些步骤来筹集资金?
达米安·耶里克

5

由于Windows 8.1已退出。

  • 当您通过Internet将所有标准代码签名证书下载到PC并尝试安装它们时,Microsoft会取消激活所有标准代码签名证书,但如果您通过USB或CD-ROM分发应用程序,则标准代码签名证书应用程序将起作用。

  • 请勿使用signtool.exe进行验证(signtool.exe verify /pa mysetup.exe将显示成功,但在其他用户下载并尝试安装SmartScreen弹出窗口时将显示失败,它将失败)

使用Windows App认证工具包(WACK)

在此处输入图片说明

  • 此标准代码签名证书已失效。意味着如果您具有标准的代码签名证书,即使Windows App认证工具(WACK)显示PASS带有警告,它也将无法像过去那样可靠地工作,这并不意味着其100%验证成功

在此处输入图片说明

您必须购买EV证书(https://www.globalsign.com/en/code-signing/

因此,要获得100%的成功,请遵循勺子进给:

步骤1:前往https://sysdev.microsoft.com并登入

a)创建公司帐户>下一步

b)下载winqual.exe文件,该文件是Microsoft提供的zip文件,现在用您的标准证书或EV证书对winqual.exe签名,然后单击下一步以上载该文件以进行验证。

以我为例,它失败了,因为我拥有了Microsoft不再允许的标准证书。因此,您现在所要做的就是购买EV许可证,否则您将一头雾水,并可以一生解决这个问题而无所适从。

在此处输入图片说明


4
这是为了驱动程序开发。
crea7or '16

因此,每个人都需要购买每年花费290美元才能避免使用智能屏幕的证书?
user3304007

4

我已经测试了EV cert解决方案,它确实可以工作。

遗憾的是,我还将提到EV证书与TeamBuild不兼容,TeamBuild在服务的上下文中执行签名。EV证书需要与SafeNet,Inc.提供的加密服务提供商接口的硬件令牌,以与所有授权的EV证书供应商(VeriSign和DigiCert)一起使用。

进行签名时,Safenet的驱动程序将提示您输入密码,该密码与在服务上下文下执行有点不兼容。此外,Safenet还提供保护功能,可防止从实际控制台以外的任何内容进行签名。您甚至无法从远程桌面会话中签名。因此,从Teambuild内部进行签名充其量是有问题的,而在最坏的情况下则不可能。

我曾与Microsoft合作,但他们无法提供解决方法来进行签名或以其他任何方式在SmartScreen下获得即时声誉。


1

不幸的是,我没有足够的代表来简单评论上述答案之一。但是,如果为发布的应用程序指定了部分信任(我选择了Internet区域),并且具有代码签名证书,则不会显示任何智能屏幕警告(在Win10上选中)。


1

我使用令牌(GlobalSign)上的EV证书以自动方式对应用程序进行签名。使用.bat文件。在“ .bat”文件中,键入ex :(对于sha1)

SignTool.exe sign /n "Exact Enterprise name in the cert - token" /t "http://timestamp.globalsign.com/scripts/timstamp.dll" "c:\Patch_to_file\Filename.exe"

“证书中的确切企业名称-令牌”应为证书中的确切名称(令牌)


1
并删除了智能屏幕对话框吗?
user3304007

0

“文件版本与您正在运行的Windows版本不兼容”。在Windows 2008服务器下,没有“更多信息”按钮可供选择安装。

当我们使用非Microsoft产品(Delphi)开发Windows桌面软件(而不是“ Apps”),并将Innosetup用于我们的安装程序时,应用程序验证毫无意义。它坐在那里30分钟什么也不做,我们只是启动应用程序,然后手动关闭应用程序,然后生成通过报告。

我们对所有版本以及其中的每个可执行文件进行代码签名。

当我们将XML上传到Microsoft时,经过认证的XML位于与我们的主要开发者帐户无关的站点上,无法将其发布到Microsoft Store。每个应用程序浪费了45分钟。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.