gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 18:13:04 25 4
gpt4 key购买 nike

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

WinQual 仍然拒绝签名:

enter image description here

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

enter image description here

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

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

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

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

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

  • 自签名
  • Wells Fargo
  • 数字证书
  • 安全信托
  • Trustware
  • QuoVadis
  • GoDaddy
  • Entrust
  • Cybertrust
  • GeoTrust
  • GlobalSign
  • Comodo
  • Thawte
  • 威瑞信

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

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

    Why Is a Digital Certificate Required for Winqual Membership?

    A digital certificate helps protect your company from individuals who seek to impersonate members of your staff or who would otherwise commit acts of fraud against your company. Using a digital certificate enables proof of an identity for a user or an organization.



    Thawte 数字证书不知何故不安全?

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

    Hello,

    Thanks for the reminder. We have notified the appropriate people that this is still a request.



    2008年我 asked this question在 Microsoft 支持论坛中,回复是:

    We are only setup to accept VeriSign Certificates at this point. We have not had an overwhelming demand to support other types of certificates.



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

    如果签署 WinQual.exe 测试应用程序的 key 的指纹与签署您在野外获得的崩溃转储的可执行文件的指纹相同:事实证明 - 它们是我的崩溃转储,请将它们给我。

    与所有其他数字签名相反,它不像有一个特殊的 API 来检查 Verisign 数字签名是否有效。无论是谁生成了 key ,有效的签名都是有效的。

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

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

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

    Not that I know but I would assume that the team running the winQual system is a live team and not a dev team - as in, personality and skillset geared towards maintenance of existing systems. I could be wrong though.



    他们不想做工作来改变它。但是有人能想到需要改变的东西吗?无论生成 key 的原因是什么,都是相同的逻辑:“指纹是否匹配”。

    我错过了什么?

    更新

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

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

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

    如果有人可以指向任何博客条目,程序经理或开发人员在其中解释 为什么 ,也许我会感到满意。

    更新二

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

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

    alt text

    Windows 默认附带“thawte”证书:

    alt text

    Thawte 高级服务器 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美元
  • 所以你不能放手买一个威瑞信吗?

  • ……这样就好了。除了我不相信。我不相信它是投入生产的测试代码。我觉得这是一个有意识的、具体的决定,让他们忽略了其他签名者。而且他们确实并将继续尊重威瑞信。

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

    最佳答案

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

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

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

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

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

    因为这是 Microsoft 验证您的身份的一个案例,他们信任 VeriSign,因为他们在那个馅饼中占有一席之地,而且他们不太信任 Comodo,所以他们希望您为此目的使用 VeriSign,而不是任何其他证书。从开发者的角度来看似乎有点傻,但我可以从他们的角度理解。

    关于windows - WinQual:为什么 WER 不接受代码签名证书?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/611472/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com