29

2015 年1 月 24 日编辑:现在无法使用其他受信任的证书颁发机构。一问一答并不过时:

WinQual 仍然拒绝签名:

在此处输入图像描述

当我们已经确定它是一个有效的数字签名时:

在此处输入图像描述

为了完整起见,我将在下面留下其他人所做的编辑;只是为了指出他错了。他可以忍受这种耻辱:


自 2014 年起编辑:现在可以使用其他受信任的证书颁发机构。问与答已过时。


2005 年,我尝试在 Microsoft 建立一个 WinQual 帐户,这样我就可以获取通过 Windows 错误报告 (WER) 自动提交的(如果有的话)崩溃转储文件。我不允许进行故障转储,因为我没有 Verisign 证书。相反,我有一个更便宜的,由 Verisign 的子公司生产:Thawte。


您加入的方法是:您对他们提供的示例 exe 进行数字签名。这证明您与签署应用程序的签名者是同一个签名者,他们从野外获得了崩溃转储。

在密码学上,需要私钥才能在可执行文件上生成数字签名。只有该私钥的持有者才能为匹配的公钥创建签名。谁生成了该私钥并不重要。这包括从以下位置生成的证书:

然而微软的 WinQual 只接受威瑞信生成的数字证书。甚至 Verisign 的子公司都不够好(Thawte)。

谁能想到微软不想接受代码签名证书的任何技术、法律或道德原因?WinQual 网站说:

为什么 Winqual 会员资格需要数字证书?

数字证书有助于保护您的公司免受试图冒充您的员工或以其他方式对您的公司实施欺诈行为的个人的侵害。使用数字证书可以证明用户或组织的身份。

Thawte 数字证书是否不安全?


两年后,我向 WinQual 发送了提醒通知,我一直在等待能够获得我的故障转储。WinQual 团队的回应是:

你好,

感谢您的提醒。我们已通知相关人员这仍然是一个请求。


2008 年,我在 Microsoft 支持论坛上提出了这个问题,得到的回应是:

我们现在只设置接受 VeriSign 证书。我们对支持其他类型的证书的需求并不强烈。

不“设置”接受其他类型的证书可能意味着什么?

如果签署 WinQual.exe 测试应用程序的密钥的指纹与签署可执行文件的指纹相同,那么你在野外得到的故障转储:证明 -它们是我的故障转储,把它们给我。

与所有其他数字签名相反,并没有一个特殊的 API 来检查 Verisign 数字签名是否有效。无论谁生成密钥,有效的签名都是有效的。

Microsoft可以信任签名者,但这与身份不同。


所以这是我的问题,谁能想到 WinQual 没有设置为支持数字签名的任何实际原因?

一个人推测答案是他们只是懒惰:

我不知道,但我会假设运行 winQual 系统的团队是一个实时团队,而不是一个开发团队——例如,面向维护现有系统的个性和技能。不过我可能是错的。

他们不想做改变它的工作。但是任何人都可以想到需要改变的东西吗?无论生成密钥是什么,这都是相同的逻辑:“指纹是否匹配”。

我错过了什么?


更新

很高兴听到其他开发人员的故事。这样我就知道我并不孤单,这个问题可以作为微软改变的工具。即使我最初的意图是抱怨咆哮,为了保持这个有效的 StackOverflow 问题,我正在寻找微软只能接受 Verisign 证书的技术原因。

加密 API 不关心颁发证书的公司的名称是什么:它只关心签名者链返回到受信任的根。

微软没有使用已建立的加密基础设施,而是仅限于威瑞信,这可能会发生什么?

如果有人能指出任何博客条目,其中项目经理或开发人员解释了原因,我也许会感到满意。


更新二

人们似乎错过了我的问题的重点。Windows 已经拥有代码基础结构以确保数字签名证书受到根授权机构的信任。这是我们签名的可执行文件之一的数字签名屏幕截图。

您可以看到我们的证书是由 Thawte 的 Code-Signing authority 证书签名的,而该证书又是由 Thawte 签名的:

替代文字

Windows 默认附带“解冻”证书:

替代文字

Thawte Premium Server CA足够好,Windows 和 Internet Explorer 的每个副本都已经信任它。并且已经有一个既定的 API 来检查证书是否有效(即受信任)。

当 WinQual 人出现时,他们不得不竭尽全力避免检查正确的方法,而是推出了自己的解决方案,仅将 Verisign 硬编码为受信任的根。为什么他们会竭尽全力忽略其他受信任的根权限,即在运行其代码的 Windows 机器上提供的权限,而是硬编码 Verisign?

他们没有像其他人那样做(Windows Explorer、Firefox、Chrome、Internet Explorer、Opera、CertMgr 等),而是专门只允许 Verisign。我的问题是为什么。

Why would WER not accept code-signing certificates?

如果它只是:

  • 因为最初写它的人不知道正确的方法离开他的头顶
  • 而不是花费大量时间研究正确的方法
  • 他只是把东西扔在一起
  • 只是为了测试,他只硬编码了一个签名者
  • 完全打算稍后回来并修复它
  • 但代码现在正在运行
  • 它在没有被修复的情况下上线了
  • 没有人愿意承担破坏它的责任
  • 没有人愿意花钱修理它
  • 并且没有足够的客户抱怨将其作为重中之重
  • 即使有很多人抱怨,买一个威瑞信也只要 99 美元
  • 所以你不能放手去买一个威瑞信吗?

……这样就好了。除了我不相信。我不相信这是投入生产的测试代码。我觉得这是一个有意识的、具体的决定,让他们忽略了其他签名者。他们所做的,并将继续,只对威瑞信表示敬意。

但是对于我的生活,我想不出原因。

4

8 回答 8

14

好吧,我刚刚发布了另一个请求,基本上告诉他们我们不会参与,除非他们接受 Comodo 代码签名证书。

Microsoft 联系我们,告诉我们他们希望我们查看有关 Windows 7 的报告,但我们无法登录,因为我们不使用 Verisign。好的,你联系了我……我还需要多少认证?

我已经联系了产品经理,我们看看会发生什么。

并回答您上面的半反问问题 - 他们没有理由不能验证其他签名的 EXE。Windows 做到了,IE 做到了,代码已经在里面了。他们不需要做任何特别的事情来支持它。

更新:

在与 Microsoft 代表交谈后,我被告知您必须至少购买 99 美元的 versign 证书才能“验证”并获取您的错误报告。瘸。

于 2009-04-14T15:39:28.890 回答
12

我刚刚注册了 WinQual,我一直在思考这个问题;我想我现在有了答案。

简而言之:他们根本没有使用 VeriSign 作为证书:他们只是将验证您身份的任务外包出去。

Microsoft 不希望您在没有首先验证您的身份的情况下访问 WinQual 站点。所以他们需要一个身份验证过程。

他们可能有一个部门向您收取 99 美元的费用并进行验证。但他们已经在威瑞信拥有大量股份,而威瑞信已经拥有可以做到这一点的员工。因此,他们使用注册证书的过程来验证您的身份。它根本不使用证书,它只是委托 VeriSign 完成验证您的任务。

请注意,他们不需要您继续维护 VeriSign 证书来保留您的帐户:这只是加入该网站的一次性费用。

因为这是 Microsoft 验证您身份的案例,并且他们信任 VeriSign,因为他们参与其中,而且他们不太信任 Comodo,他们希望您为此目的使用 VeriSign,而不是任何其他证书。从开发人员的角度来看,这似乎有点傻,但从他们的角度来看,我可以理解。

于 2010-10-18T06:15:52.570 回答
8

完成代码签名和最近的 Winqual 注册后,这里有一些说明:

  1. 对于 Winqual 注册(注册),不会根据 Winqual 数据库检查您的签名本身。Winqual 仅检查来自 VeriSign 的证明 VeriSign 检查了您的身份的证书。然后他们从您的签名中获取您的公司名称。

  2. 在下一步中,您必须创建一个或多个“产品映射文件”(使用 Microsoft 的工具)并将它们上传到 Winqual。之后,Winqual 服务器会针对所有地图文件检查数 TB 的崩溃数据库,并为您提供“事件”列表。(因此,您用于代码签名的签名是无关紧要的。)

  3. Microsoft 不能接受其他证书颁发机构也没有技术原因。但是:他们将如何从中受益?还有一个特价计划,只需 99 美元即可从 VeriSign 获得为期一年的代码签名证书,如果将其与开发工具链或 MSDN/TechNet 会员资格的成本进行比较,它并不十分昂贵。

  4. 在我们的案例中,从 VeriSign 获得证书非常简单且非常快速 - 整个过程在两天内完成。(我们不在美国,所以我预计会延迟。) [只是为了澄清:您自己生成签名,它由 company_private_key(用于签名)和 company_public_key(用于验证您的代码签名)组成。任何证书颁发机构(如 VeriSign)只需使用其私钥对您的 company_public_key 进行反签名。这使您的证书可验证。]

  5. 我们不知道 VeriSign 99 美元的证书也可以用于代码签名(它不仅仅是一个组织 ID)。所以最初我们选择了另一个 CA 来进行代码签名。然后我们获得了用于 Winqual 注册的 VeriSign 证书。

  6. Microsoft 在 WHDC 和 Winqual 上发布了哪些签名提供者可以接受哪些类型的签名的信息。在从另一个 CA 获得证书之前,您不能真的责怪他们自己没有阅读此内容,对吗?

希望这可能有助于阐明一些观点。

于 2010-08-09T09:57:46.143 回答
6

同样的故事,我正在认证 Win7 徽标的申请,以获得 MS 合作伙伴计划的积分。我购买了 Comodo 代码签名证书。该应用程序通过了测试,现在我正在尝试设置一个 Winqual 帐户,在最初对必须购买另一个签名证书感到生气之后,我延迟了 5 天,试图以 99 美元的价格实际购买这个“组织证书”。没办法,“ VeriSign SSL 证书注册暂时不可用。请稍后再试。”,而且支持也可能是我遇到过的最糟糕的。OMG ...请至少尝试阅读问题描述,甚至尝试重现步骤,不要只是给我一些愚蠢的知识库解决方案来解决另一个问题还是说服务不可用,5天后就可以了。好郁闷……

如果有人有同样的问题,只是一个更新,我终于得到了注册问题的答案并下订单。(我想你需要找到合适的技术支持人员:)

在颁发证书之前,我们将在我们的系统中编辑订单并为您输入正确的公司和国家/地区值。我们发给您的证书将包含正确的信息。”

于 2009-11-04T23:09:15.973 回答
4

哈!我遇到了与我们的 Comodo 证书完全相同的方案。这是典型的欺凌行为,他们的回答完全是胡说八道。如果有的话,我不信任 Verisign,而不是 Comodo 和 Thawte 等。让我们不要忘记他们前一段时间尝试过的东西。

于 2009-06-22T15:58:28.920 回答
4

这是一个支持更改的地方:https ://connect.microsoft.com/site831/feedback/details/531903/allow-other-certificates-in-winqual-not-only-verisign

于 2010-02-08T12:34:56.793 回答
3

我们遇到了同样的问题。他们不会接受 Comodo 代码签名证书。很可能是为了增加他们的团体收入(MS 拥有的 VeriSign/VeriTest)。我不相信他们没有收到大量使用非 VeriSign 证书的请求。但是你有什么选择......?

于 2009-03-04T16:59:31.317 回答
2

问题实际上更深。

为了保持特殊地位,必须对我们的一种产品进行重新认证。当然,这只能通过 VeriTest 来完成。为了节省资金并能够在他们注意到问题之前对其做出响应,我们决定选择自测选项,该选项允许我们使用 Microsoft 的所谓“Works with”工具自行测试我们的软件。

虽然文档说您需要使用身份验证证书对所有二进制代码进行签名才能通过 Windows Server 2008 R2 的验证,但没有人提到这实际上是可选的并且不会对测试结果产生影响(直到您实际使用报告页面说此步骤是可选的,不会对测试结果产生影响)。

然而,在那之前我们已经购买了 Comodo 证书,因为它只是 VeriSign 证书价格的四分之一,而且无论如何都做同样的事情。

在成功重新认证后不久,我们收到了来自微软的关于当前虚拟发布活动的通知,以及参与其中的可能性(这是一件很棒的事情)。但是,要注册,我们需要输入 WinQual 并猜测什么……当然,我们需要 VeriSign WinQual 公司证书(至少)。

现在真正有趣的是,至少有两天时间,相应的 VeriSign 网站都无法访问。再过三天,不可能获得这样的证书,直到现在他们甚至没有回应支持请求。

如果其他公司开始托管类似于 WinQual 的平台,除了它确实接受所有严肃出版商的证书,那不是很好吗?

乔尔......杰夫,......来吧。那是给你的东西:

“[...] exhandler.com 就像 winqual,...但没有邪恶。”

于 2009-10-27T07:02:39.487 回答