如何识别 Authenticode 时间戳与符合 RFC 3161 的时间戳?

Gre*_*ary 5 digital-signatures timestamp

使用 Microsoft 的Signtool签署代码时,指定时间戳 URL、/t 和 /tr 时有几个不同的选项。

/t 可以指定 Authenticode 时间戳 URL,而 /tr 应该与符合 RFC 3161 的时间戳服务器一起使用。

有没有办法分析文件上的时间戳以确定是否使用了 /t 或 /tr ?是 Authenticode 还是 RFC 3161?

小智 3

是的。当使用以下语法调用时,Microsoft 的signtool.exe 将打印先前签名文件上的数字签名摘要,包括用于创建时间戳的标准:

Signtool 验证 /all /pa文件名

为了说明这一点,请将您自己的文件之一置于赛门铁克应用双重签名的过程中。这将在您的文件上生成 2 个数字签名,每个签名都有相应的时间戳。一个时间戳将使用 Authenticode 应用,另一个时间戳将使用 RFC 3161 应用。

请注意,赛门铁克的程序建议通过查看文件的人民币属性的“数字签名”选项卡来验证结果。该选项卡提供时间戳值(日期和时间),但不提供时间戳标准。

完成该过程后,请按照上面的建议使用 Signtool verify 命令查看数字签名的摘要。时间戳标准将显示在“时间戳”字段中。例如,如果对名为MyDigitallySigned.dll的文件进行双重签名,您将看到以下内容:

C:\Users\myusername>signtool verify /all /pa MyDigitallySigned.dll
文件:MyDigitallySigned.dll
索引==算法==时间戳====
=========================================
0 sha1 验证码
1 sha256 RFC3161