【问题标题】:How to verify that timestamping is done correctly for signed code如何验证签名代码的时间戳是否正确
【发布时间】:2011-06-21 01:08:05
【问题描述】:

我刚刚从 StartSSL 获得了我的代码签名证书,并且正在尝试签署我们的安装程序。

签名过程顺利,我得到了一个安装程序 exe,Windows 不再抱怨来自未知发布者。这太棒了!

但是,我尝试确保时间戳也像宣传的那样有效,因此我将我的 PC 日期移到了 2012 年,在我的代码签名证书到期日期之后。

这应该没有任何区别,但是当我运行相同的安装程序 exe 时,我现在收到了同样令人讨厌的“未知发布者”警告。

查看“数字签名”选项卡中 exe 的属性,我可以肯定地看到时间戳显示为今天(2010 年),但这似乎根本没有帮助。

谷歌搜索没有给我任何信息,只是如果您在时间戳字段中看到日期,则一切正常。我不敢相信,我的电脑有提前的日期抱怨它不行。

有谁知道这个时间戳概念是否有效,以及如何确保我正确签署了可执行文件?

谢谢。

【问题讨论】:

  • "rem" 似乎有正确的答案。您可以在download.microsoft.com/download/9/c/5/… 阅读有关“终身签名语义”的更多信息。
  • 请注意 Mark Berry 对 rem 回答的评论。这显然取决于您对 StartSSL 是否支持时间戳的验证级别。

标签: code-signing signing trusted-timestamp


【解决方案1】:

StartSSL 颁发的代码签名证书包含增强型密钥使用 (EKU) 属性“终身签名”(1.3.6.1.4.1.311.10.3.13),这会导致文件签名在证书到期时到期,无论任何时间戳。

【讨论】:

【解决方案2】:

抱歉,我无法为您提供答案,但根据Comodo's Instant SSL FAQ 的说法,您似乎不应该看到自己的行为。

时间戳代码在 a 之后是否有效 代码签名证书 过期了吗?
时间戳确保 该代码不会过期 证书过期。如果您的代码是 时间戳的数字签名是 即使证书有 已到期。新证书只是 如果你想签名是必要的 附加代码。如果你没有使用 期间的时间戳选项 签名,您必须重新签署您的代码 并将其重新发送给您的客户。

Comodo 似乎在这个问题上是权威的,所以我倾向于相信他们所说的话。

我自己也在焦急地等待这个答案,因为我非常想自己从 StartSSL 购买代码签名证书。我确实在他们的网站上注意到,代码证书是“测试版”,所以也许这是他们需要解决的问题。

【讨论】:

  • StartSSL 也是如此 - 我认为 OP 应该与他们的客户支持人员交谈,看看他们要说什么。
【解决方案3】:

“Signing Time”和“Stamping Signer”的时间戳之间存在差异。签名时间是您实际签署代码的时间,时间戳来自“stamping signer”(证书服务器)。

使用证书颁发者时间戳签名实际上将确保您的签名仍然有效,即使您的证书已经过期。

【讨论】:

  • Windows 会说证书已过期(这对用户来说看起来很糟糕),还是 Windows 会恢复到通常会收到的标准“未知发布者”警告?
猜你喜欢
  • 1970-01-01
  • 2015-08-17
  • 1970-01-01
  • 2014-01-03
  • 2011-04-25
  • 2022-07-08
  • 1970-01-01
  • 2011-08-19
  • 2017-12-11
相关资源
最近更新 更多