code-signing - 如何验证签名代码的时间戳是否正确完成

标签 code-signing signing trusted-timestamp

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

签名过程进行得很顺利,我得到了一个安装程序 exe,Windows 不再提示来自未知发布者。这很棒!

然而,我试图确保时间戳也能像宣传的那样工作,所以我将我的 PC 日期移到了 2012 年,在我的代码签名证书到期日期之后。

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

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

谷歌搜索没有给我任何东西,只是如果你在时间戳字段中看到日期,那么一切都很好。我无法相信这一点,我的具有高级日期的 PC 提示它不正常。

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

谢谢。

最佳答案

StartSSL 颁发的代码签名证书包含增强型 key 使用 (EKU) 属性“Lifetime Signing”(1.3.6.1.4.1.311.10.3.13),这会导致文件签名在证书过期时过期,而不管任何时间戳。

关于code-signing - 如何验证签名代码的时间戳是否正确完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2213784/

相关文章:

c++ - 加密 API - CryptRetrieveTimeStamp

xcode - 此应用程序的包标识符与其代码签名标识符不匹配

ios - Codesign 将我的框架签名为目录。为什么?

ios - get-task-allow 在 Xcode 中做什么?

java - 奇怪的黑莓问题 - 新版本突然请求访问权限

c# - 使用 C# 在签名中添加 LTV 会使 pdf 无效

ios - flutter 。 IOS 签名问题。 "Runner"需要具有推送通知功能的配置文件

java - 使用给定证书在 JWS 应用程序中设置发布者名称

java - 我必须传递来自 CMSSignedData 对象的哪些数据才能生成有效的时间戳?

c++ - 将 TSA 的响应添加到 CryptSignMessage 的 CRYPT_SIGN_MESSAGE_PARA(c++,Crypto Api)