代码签名(Microsoft Authenticode)[关闭]

Posted

技术标签:

【中文标题】代码签名(Microsoft Authenticode)[关闭]【英文标题】:Code signing (Microsoft Authenticode) [closed] 【发布时间】:2011-04-04 13:36:28 【问题描述】:

我有一个程序被很多并不总是超级计算机精通的人使用。我想确保不是让我的可执行文件说它来自未知作者,而是说它是由我签名的。

据我所知,这可以通过 Microsoft Authenticode 完成。我知道我需要一张证书才能做到这一点,并且正在寻找价格合理的证书。我偶然发现了页面Microsoft Authenticode Certificates

看起来GlobalSign 拥有我需要的一切。他们的证书有什么经验或有更好的公司吗?第一次做这件事的人有什么好的教程吗?

【问题讨论】:

仍在寻找价格低于每年 500 美元的值得信赖的公司,用于非盈利性软件。 @Daisetsu:转到MSDN: get a code signing certificate,向下滚动并查看列出的供应商之一是否提供折扣。这样我节省了 50%。 【参考方案1】:

Comodo 是寻找最便宜的代码签名证书的良好起点,但从经销商处可以获得最优惠的价格。

我刚刚验证了https://author.tucows.com/ 的价格。它们是:

Comodo 代码签名证书 - 1 年:75 美元 Comodo 代码签名证书 - 2 年:140 美元 Comodo 代码签名证书 - 3 年:195 美元

附加条件是

提供最具成本效益的完全验证和完全支持的 SSL 证书 与 Verisign 和 Thawte 一样值得信赖,但价格却只有一小部分 99% 的浏览器无处不在 行业标准 128 位 验证过程与 Verisign 一样强大,并且比 GeoTrust 强大得多 30 天退款保证 30 天免费更换和补发政策 针对特定站点需求的不同保修级别 免费的 SecuritySpace 安全审计 每张 InstantSSL Pro 和 PremiumSSL 证书均可免费获得 TrustLogo(价值 119 美元)

获得价格的唯一技巧:您必须在 author.tucows.com 上免费注册。

再说一句。与价格问题无关,我想添加一个重要信息,以确保您正确理解为什么需要时间戳。如果您使用代码签名证书对文件进行签名,您可以使用来自任何时间戳服务器(如 timestamp.verisign.com)的免费时间戳(请参阅 SignTool.exe 实用程序的 /T 参数)。时间戳的实际优势如下:例如,如果您使用到 2010 年底合法的代码签名证书,则文件签名将在 2010 年底后保持正常。如果没有时间戳,您必须辞职与新证书一起归档。时间戳服务器只是确认签名日期。因为您的证书在该日期是可以的,所以您以后不会有任何问题。因此,如果您只需要一次销售软件的证书,您可以在最短的时间内获得证书:一年。您可以在 SSL Certificate Authority and Digital IDsTrusted timestamping 中阅读有关时间戳的更多信息。

关于您问题的另一个子问题:获得证书后,我建议您使用SignTool.exe 实用程序。它很简单,免费且易于使用。您可以在 Using SignTool to Sign a FileAssembly Signing Example 中找到 SignTool.exe 的用法示例,或者直接开始 SignTool.exe sign -?

【讨论】:

您能否再次验证 2013 年的价格。否则我需要提供详细信息,包括我的地址,才能登录(我的小毛病)。 @DanW:我验证了。今天的价格还是一样的。 我今天验证了 - 还是一样($75/$140/$195)。【参考方案2】:

我使用Thawte 多年,现在我使用Comodo(最便宜的,179.95 美元)。购买证书时,请不要忘记保存您的私钥。你需要 教程Code Signing for Developers - An Authenticode How-To.

【讨论】:

【参考方案3】:

我正在为我的项目使用来自Certum 的证书。与其他一些公司相比,价格合理,支持速度很快,实际上相当不错。

如果您将证书用于开源项目,他们会免费提供证书。但是你必须要求它,他们不会在他们的网站上做广告(或者我只是没有找到它)。

【讨论】:

现在好像卖 14 欧元,所以对于开源项目来说仍然是一个很好的价格。 标准开发者需要 183.00 欧元。 现在税前 28 欧元,含税 34.44 欧元。税收 第一次花费更多... 86€ 因为你必须有硬件密钥 + 19.78€ 税 + 30€ 运费.. = 135.78€【参考方案4】:

证书方面,我们已经完全切换到 StartSSL.com 来满足我们所有的 SSL 代码签名需求,因为它们(据我所知)仍然是独特的验证和证书方法,可以在很大程度上实现更低的价格(2 年约 50 美元,无限制的证书)和更大的灵活性:请参阅 my answer on Pro Webmasters,了解他们的一般方法的一些优缺点,特别是 SSL 证书。

在相当长的一段时间内,他们确实也提供与 Authenticode 一起使用的代码签名证书,尽管仍标记为 beta - 我们已成功地将这些证书用于多个客户站点的 ClickOnce 部署应用程序,没有任何问题.绝对似乎是 beta 质量的一件事仍然是他们的time stamping server,尽管它始终没有响应,但到目前为止,只需将其替换为另一个供应商就可以完美地工作。虽然他们的文档 SSL 明智,但用于代码签名的文档绝对非常仍然很弱(几乎不存在),因此我们不得不从论坛中挖掘大部分信息或在其他地方提供一般性建议。 p>

如果证书的定价和灵活性是您最关心的问题,我认为您不会后悔尝试他们的产品;另一方面,如果完整的文档和已建立的代码签名流程和客户群对您来说更重要,那么这个相对较小且独特的供应商将无法满足您的需求(我个人从未对相应的产品感到满意更大和/或更昂贵的供应商)。


更新:

刚刚意识到related question linked by Kate Gregory 也已经具有answer recommending StartSSL,因此您可以在此线程中交叉检查提到的主题。

【讨论】:

他们的哪些计划http://www.startssl.com 适用于 Microsoft Authenticode?​​span> @nam - 暂时没有使用它,但我认为60.) How to get an object code signing certificate? 提供了您正在寻找的答案:对象代码签名证书至少需要 2 类身份验证。为了获得证书,必须事先准备证书签名请求。此后,必须将签名请求提交给 StartSSL™ 证书向导。 更新:所有 StartSSL 代码签名证书现在都支持时间戳! 警告:2016 年底,Google Chrome、Apple 和 Mozilla 停止信任来自 StartSSL / StartCom 的证书。目前,这些证书在 Microsoft 产品中仍然有效。这目前仅影响 Web 证书,但值得注意。更多信息请访问以下网站:en.wikipedia.org/wiki/StartCom#Trustworthinesstheregister.co.uk/2016/11/02/… Startcom 现在正在关闭,因为他们无法重新获得信任【参考方案5】:

我的组织使用了Verisign 和Comodo(我们现在使用前者,因为 Windows 错误报告服务不接受 Comodo 证书 - 需要考虑)。没有太多内容 - 您可以使用 SignTool.exe,它是 .NET SDK 的一部分(可能还有其他工具,但这个工具很容易获得,尤其是如果您有 Visual Studio)。

我们有一个运行以下内容的脚本(%_...% 变量在脚本中设置,%1 是您要签名的文件)

signtool.exe sign /f %_PFXFILE% /p %_PASSWORD% /v /t http://timestamp.verisign.com/scripts/timstamp.dll /d %_DESCRIPTION% /du %_URL% %1

【讨论】:

以上是关于代码签名(Microsoft Authenticode)[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

WPF 应用程序:Microsoft.Maintainability#CA1506 签名无效 FxCop 违规

我可以使用自签名证书在测试环境中部署 microsoft bot

Microsoft 根证书计划弃用 SHA-1 哈希算法

Microsoft 帐户 JWT 身份验证令牌如何签名?

Microsoft.LiveSDK 未使用 Apple 证书签名

代码签名有效期