问题标签 [bumptop]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
windows - WinQual:为什么 WER 不接受代码签名证书?
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 美元
- 所以你不能放手去买一个威瑞信吗?
……这样就好了。除了我不相信。我不相信这是投入生产的测试代码。我觉得这是一个有意识的、具体的决定,让他们忽略了其他签名者。他们所做的,并将继续,只对威瑞信表示敬意。
但是对于我的生活,我想不出原因。
actionscript-3 - 需要一些帮助来完成一个颠簸的选择工具
我正在创建一个 Bumptop 风格的选择工具。现在我已经创建了工具本身(实际上效果很好)并在舞台上散布了一些随机的方形物品。这是创建选择工具的类:
这是实现它的文档类:
我尝试过通过 BitmapData 使用碰撞检测,甚至使用 CDK 之类的碰撞库,但我什么也做不了。有人知道我应该在中使用handleToolUpdate(e:MouseEvent);
什么吗?谢谢!
更新:
我会分解它。基本上我正在尝试创建 BumpTop 套索或选择工具的原型。
我需要帮助找出哪些物体发生碰撞或在绘制的套索范围内有一个点。
我已经将到目前为止的内容上传到我的服务器:http: //labs.reyco1.com/bumptop/SelectionToolPrototype.html。您可以通过右键单击并选择“查看源”来查看源。
就像我在之前的帖子中所说的那样,我尝试使用 Bitmapdata 碰撞测试,甚至尝试使用 Collision Detection Kit 均无济于事。提前致谢。