天道酬勤,学无止境

trusted-timestamp

Whether/how to avoid SHA-1 signed timestamp when code signing?

We just switched from a SHA-1 to a SHA-2 code signing certificate. (As background info, we sign .exe and .xap files on Windows with signtool.exe, using COMODO code signing certificates.) We do this using a certified timestamp, to make sure that Windows keeps trusting the code signature after the code signing certificate expires. Now I noticed that the timestamp certificate is still a SHA-1 certificate, when using http://timestamp.comodoca.com/authenticode. (Details: It is df946a5... with Subject 'CN=COMODO Time Stamping Signer,O=COMODO CA Limited,L=Salford, S=Greater Manchester,C=GB'.) (On

2021-11-28 17:01:48    分类:问答    code-signing   sha1   sha2   trusted-timestamp   timestamping

How Can I Prevent Needing to Re-sign My Code Every 1 or 2 Years?

I was reading What happens when a code signing certificate expires - Stack Overflow and wondering about a more solid answer. The answer provided was more about setting up your own CA. Even with your own CA you will still need to deal with expiring code certificates. If you signed the code without using a time stamping service, after the certificate expires your code will no longer be trusted, and depending on security settings it may not be allowed to run. You will need to re-sign all of your code with a new certificate, or with a renewed certificate, every 1 or 2 years. Trusted (digital)

2021-11-21 08:16:21    分类:问答    powershell   certificate   code-signing   trusted-timestamp

可信时间戳 - 了解格式 (rfc3161)(Trusted Timestamps - understanding the format (rfc3161))

问题 [编辑:我写了一篇博文,详细解释了一切:看这里] 你好! 我正在拼命尝试为基于 rfc3161 的可信时间戳构建服务。 我决定使用zeitstempel.dfn.de 上的免费可信时间戳服务。 我的问题是我将如何联系该服务以获得有效回复。 关于请求格式,RFC 说明: TimeStampReq ::= SEQUENCE { version INTEGER { v1(1) }, messageImprint MessageImprint, --a hash algorithm OID and the hash value of the data to be --time-stamped reqPolicy TSAPolicyId OPTIONAL, nonce INTEGER OPTIONAL, certReq BOOLEAN DEFAULT FALSE, extensions [0] IMPLICIT Extensions OPTIONAL } 在哪里 MessageImprint ::= SEQUENCE { hashAlgorithm AlgorithmIdentifier, hashedMessage OCTET STRING } 我找到了一个对我有帮助的客户。 尽管如此,我仍然不知道我应该如何构造时间戳服务的请求。 问候! 回答1 我很高兴您发现我们的软件很有帮助。

2021-10-23 05:32:05    分类:技术分享    trusted-timestamp   timestamping   rfc3161

为什么我们在进行代码签名时要设置时间戳?(Why should we set a timestamp when we do a codesigning?)

问题 如果我在签名时设置时间戳,会发生什么? 如果我不设置呢? 它是必不可少的吗? 为什么推荐? 回答1 时间戳用于指定进行数字签名的时间。 这是正确验证签名所必需的。 如果存在签名时间戳,则验证(验证)签名的应用程序将检查签名验证所涉及的证书在签名时是否有效。 如果签名没有时间戳,则在签名验证时检查证书有效性,这并不总是可以接受的。 Example: Certificate is valid from: 1st of January, 2008 Certificate is valid to: 31st of December, 2010 Signature is made on: 4th of July, 2009 Signature is verified on: 30th of April, 2012 有时间戳:签名正常(在证书有效期内签名) 无时间戳:签名无效(签名验证时证书已过期)。 如果签名需要长期使用(以证明文件作者或数据创建者的真实性),即超过一天或几天,则应使用时间戳。 例如,当您向同事发送简短的签名便条时,不需要时间戳,并且该便条应在撰写当天阅读和处理。 当然,当签名技术不支持时间戳或时间戳权限不可用时,不能使用时间戳。 另一方面,当您为广泛分发或长期存储和存档目的创建签名文档时,时间戳是必须的。 在签署软件应用程序的可执行模块时也使用时间戳。 更新

2021-10-15 12:49:46    分类:技术分享    cryptography   code-signing   portable-executable   trusted-timestamp

如何检查证书过期后 Java Web Start 应用程序是否会继续工作(How to check if Java Web Start app will continue working after certificate expires)

问题 我们使用来自 CA (Thawte) 的代码签名证书签署了 Java Web Start 应用程序。 签名带有时间戳(我们将 -tca https://timestamp.geotrust.com/tsa 参数传递给 jarsigner 工具)在证书过期后有效。 目前,当证书有效时,该应用程序运行良好。 但是当我们尝试将本地时间向前更改以模拟证书到期时,应用程序将无法启动。 我们得到以下异常: java.security.cert.CertificateException: java.security.cert.CertPathValidatorException: Responder's certificate not within the validity period at com.sun.deploy.security.RevocationChecker.checkOCSP(Unknown Source) at com.sun.deploy.security.RevocationChecker.check(Unknown Source) at com.sun.deploy.security.TrustDecider.checkRevocationStatus(Unknown Source) at com.sun.deploy.security.TrustDecider

2021-10-10 15:44:37    分类:技术分享    java   certificate   code-signing   trusted-timestamp

How to check if Java Web Start app will continue working after certificate expires

We signed our Java Web Start app with a code signing certificate from CA (Thawte). The signature is timestamped (we pass the -tca https://timestamp.geotrust.com/tsa argument to the jarsigner tool) to be valid after the certificate expires. At present, when the certificate is valid, the app works perfect. But when we try to change the local time forward to simulate expiration of the certificate then the app won't start. We get following exception: java.security.cert.CertificateException: java.security.cert.CertPathValidatorException: Responder's certificate not within the validity period at com

2021-10-10 15:35:01    分类:问答    java   certificate   code-signing   trusted-timestamp

Python 中的时间戳服务器 rfc3161 响应令牌生成(Timestamp server rfc3161 response token generation in Python)

问题 我正在尝试使用扭曲在 python 上实现 tsa 服务器。 目前我正在使用 openssl 二进制文件来生成响应,但这对我来说似乎很难看,这就是为什么我试图弄清楚如何使用 m2crypto 制作响应令牌。 预先感谢您的帮助! 马里斯。 编辑: 如何使用 m2crypto 实现?: openssl ts -reply -section tsa_config1 -queryfile query.tsq -out response.tsr 回答1 M2Crypto 尚未包装这些 openssl,因此您不能将 M2Crypto 用于使用 openssl 命令行客户端的内容。 回答2 您可能也对 PyASN1 项目感兴趣,但是,我应该承认今天没有足够的库来在 Python 中实现 RFC3161 功能。 我会转向 Perl。

2021-09-18 15:52:16    分类:技术分享    python   m2crypto   trusted-timestamp   timestamping   rfc3161

如何验证签名代码的时间戳是否正确完成(How to verify that timestamping is done correctly for signed code)

问题 我刚刚从 StartSSL 获得了我的代码签名证书,并且正在尝试对我们的安装程序进行签名。 签名过程进行得很顺利,我得到了一个安装程序 exe,Windows 不再抱怨来自未知发布者。 这很棒! 然而,我试图确保时间戳也能像宣传的那样工作,所以我将我的 PC 日期移到了 2012 年,在我的代码签名证书到期日期之后。 这应该没有任何区别,但是当我运行相同的安装程序 exe 时,我现在收到同样令人讨厌的“未知发布者”警告。 查看“数字签名”选项卡中 exe 的属性,我绝对可以看到时间戳显示为今天(2010 年),但这似乎根本没有帮助。 谷歌搜索没有给我任何东西,只是如果你在时间戳字段中看到日期,那么一切都很好。 我无法相信这一点,我的具有高级日期的 PC 抱怨它不正常。 有谁知道这个时间戳概念是否有效,以及如何确保我正确签署了可执行文件? 谢谢。 回答1 StartSSL 颁发的代码签名证书包含增强型密钥使用 (EKU) 属性“Lifetime Signing”(1.3.6.1.4.1.311.10.3.13),这会导致文件签名在证书过期时过期,而不管任何时间戳。 回答2 抱歉,我没有答案,但根据 Comodo 的 Instant SSL 常见问题解答,您似乎不应该看到自己的行为。 代码签名证书过期后带时间戳的代码是否有效? 时间戳可确保代码在证书过期时不会过期。

2021-08-30 05:17:08    分类:技术分享    code-signing   signing   trusted-timestamp

IllegalAccessError with Android and BouncyCastle

I am trying to implement a timestamp request as seen here: http://bouncy-castle.1462172.n4.nabble.com/Timestamp-request-and-response-td1558231.html In j2se it works fine, but on android I get an IllegalAccessError. Logcat output : FATAL EXCEPTION: main java.lang.IllegalAccessError: tried to access method org.bouncycastle.asn1.DERBoolean.<init>:(Z)V from class org.bouncycastle.tsp.TimeStampRequestGenerator at org.bouncycastle.tsp.TimeStampRequestGenerator.setCertReq(Unknown Source) at org.ats.ats.onCreate(ats.java:30) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047

2021-06-11 23:46:23    分类:问答    android   bouncycastle   trusted-timestamp

Timestamp server rfc3161 response token generation in Python

I'm trying to implement tsa server on python using twisted. Currently I'm using openssl binary to generate response, but this seems ugly to me, that's why I'm trying to figure out how to make response token with m2crypto. Thanks in advance for help! Maris. EDITED: how to achieve with m2crypto?: openssl ts -reply -section tsa_config1 -queryfile query.tsq -out response.tsr

2021-06-11 09:54:50    分类:问答    python   m2crypto   trusted-timestamp   timestamping   rfc3161