WinQual:为什么WER不接受代码签名证书?

问题描述 投票:29回答:8

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

WinQual仍然拒绝签名:

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

为了完整起见,我将离开其他人所做的编辑;只是想指出他是多么的错。他可以忍受这种耻辱:


编辑截至2014年:现在可以使用其他受信任的证书颁发机构。问题和答案已经过时。


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


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

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

然而,Microsof的WinQual只接受Verisign生成的数字证书。甚至Verisign的子公司也不够好(Thawte)。

任何人都可以想到微软不想接受代码签名证书的任何技术,法律或道德原因吗? WinQual网站说:

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

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

某种程度上,Thawte数字证书不安全吗?


两年后,我向WinQual发出提醒通知,我一直在等待能够进入我的崩溃堆。 WinQual团队的回应是:

你好,

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


2008年,我在Microsoft支持论坛上发布了asked this question,回复是:

我们目前只接受VeriSign证书。我们没有压倒性的要求来支持其他类型的证书。

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

如果签署WinQual.exe测试应用程序的密钥的指纹与签署可执行文件的指纹相同,那就是你遇到的崩溃转储:它已被证明 - 它们是我的崩溃转储,将它们交给我。

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

微软可以自由地不信任签名者,但这与身份不同。


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

一个人认为答案是他们只是懒惰:

不是我知道,但我认为运行winQual系统的团队是一个现场团队,而不是一个开发团队 - 就像在个性和技能组合中一样,旨在维护现有系统。我可能错了。

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

我错过了什么?


更新

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

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

特别是微软可能没有使用已建立的加密基础设施,但仅限于Verisign?

如果有人可以指向任何博客条目,程序经理或开发人员解释原因,我或许会满意。


更新二

人们似乎忽略了我的问题。 Windows已经具有代码基础结构,以确保根权限信任数字签名证书。这是我们签名的可执行文件上的数字签名的屏幕截图。

您可以看到我们的证书是由Thawte的代码签名机构证书签署的,而证书又由Thawte签署:

alt text

默认情况下,“thawte”证书随Windows发布:

alt text

Thawte Premium Server CA足以让Windows和Internet Explorer的每个副本都信任它。并且已经有一个已建立的API来检查证书是否有效(即可信)。

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

而不是像其他人一样(Windows资源管理器,Firefox,Chrome,Internet Explorer,Opera,CertMgr等),它们只允许Verisign。我的问题是为什么。

Why would WER not accept code-signing certificates?

如果它只是:

  • 因为最初写这篇文章的人并不知道正确的方法
  • 而不是花费大量时间调查正确的方法
  • 他只是扔了一些东西
  • 只是为了测试,他只对一个签名者进行了硬编码
  • 完全有意回来并修复它
  • 但代码现在正在运行
  • 它没有被修复就上线了
  • 并且没有人愿意承担破坏它的责任
  • 并且没有人愿意花钱来解决它
  • 没有足够的客户抱怨将其作为高优先级
  • 即使有很多人抱怨,购买Verisign只需99美元
  • 所以你不能放手去购买Verisign吗?

......那没关系。除了我不相信。我不相信它是生产的测试代码。我觉得这是一个有意识的,具体的决定,让他们忽略了其他签名者。他们这样做,并将继续只尊重威瑞信。

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

windows error-reporting winqual bumptop
8个回答
12
投票

我刚刚签约WinQual,我一直在考虑这个问题;我想我现在有了答案。

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

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

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

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

因为这是微软验证您的身份的一个案例,并且他们信任VeriSign,因为他们有自己的手段,并且他们不太信任Comodo,他们希望您使用VeriSign用于此目的,而不是任何其他证书。从开发人员的角度来看,这似乎有点傻,但我可以从他们的角度来理解它。


14
投票

好吧,我刚刚发布了另一个请求,基本上告诉他们除非他们接受Comodo Code Signing证书,否则我们不会参加。

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

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

并回答上面的半修辞问题 - 他们没有理由不能对其他签名的EXE进行身份验证。 Windows做到了,IE做到了,代码已经存在。他们没有必要采取任何特殊措施来支持它。

更新:

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


8
投票

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

  1. 对于Winqual注册(注册),不会根据Winqual数据库检查您的签名本身。 Winqual仅检查VeriSign的证书,证明VeriSign检查了您的身份。然后他们从您的签名中获取您的公司名称。
  2. 在下一步中,您必须创建一个或多个“产品映射文件”(使用Microsoft的工具)并将这些文件上载到Winqual。之后,Winqual服务器会针对所有地图文件检查数TB的崩溃数据库,并为您提供“事件”列表。 (因此,您用于代码签名的签名非常无关紧要。)
  3. 微软也无法接受其他认证机构的技术原因。但是:他们将如何从中受益?还有一个特价商品计划,只需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获得证书之前,你不能真正责怪他们不读这个,是吗?

希望这可能有助于揭示一些亮点。


6
投票

同样的故事,我正在认证Win7 Logo的申请,以获得MS Partnership计划的积分。我买了Comodo代码签名证书。该应用程序通过了测试,现在我正在尝试建立一个Winqual帐户,并且在最初因为必须购买另一个签名证书而生气后,我花了5天时间试图以99美元的价格实际购买这个“组织证书”。没办法,“VeriSign SSL证书注册暂时不可用。请稍后再试。”,支持可能也是我遇到过的最糟糕的。 OMG ...请至少尝试阅读问题描述甚至尝试重现这些步骤,不要只是给我一些愚蠢的知识库解决另一个问题。或者只是说服务不可用,它将在5天内提供。太令人沮丧......

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

“我们诚挚地道歉。由于组织证书注册中的错误而发生此错误。如果在注册的”证书信息“(第3步)部分中输入了除美国以外的任何国家/地区,则会出现此错误。此问题已升级现在正在修理它的工程师。在此期间,您可以执行以下操作来解决错误并完成注册:在注册的“证书信息”部分,输入“US”和州所有其他信息都可以是正确的。一旦注册完成,请继续向我们发送您的证书的订单号以及贵公司的正确国家和州值以回复此电子邮件。我们将编辑在我们的系统中订购并在我们签发证书之前为您输入正确的公司和国家/地区值。我们发给您的证书将包含正确的信息。“


4
投票

哈!我使用我们的Comodo证书遇到了完全相同的方案。这是典型的欺负行为,他们的答案完全是胡说八道。如果有的话,我比Comodo和Thawte等更不信任Verisign。让我们不要忘记他们tried a while ago



3
投票

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


2
投票

问题实际上更深入。

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

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

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

成功重新认证后不久,我们就注意到微软目前的虚拟发布活动以及参与其中的可能性(这是一件好事)。但是,要注册我们需要输入WinQual并猜测...当然我们需要VeriSign WinQual公司证书(至少)。

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

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.