如何使用多个时间戳对符号进行编码-我的邮票被覆盖

Lin*_*eak -1 timestamp code-signing signtool

问题

虽然我在Windows可执行文件上的详细SignTool(手动)命令上没有出现任何错误,但时间戳被覆盖了,我希望有多个时间戳,这可能吗?

  • 如果可能,那怎么办?
  • 如果没有可能,我只使用1个单时间戳,那么你会从长远来看,推荐哪个服务器?(DigiCert现在浮现在我的脑海。)

这是我尝试过的

PowerShell功能

function sign32exe([string]$arg)
{
    & 'C:\Program Files (x86)\Windows Kits\10\bin\x86\signtool.exe' sign /fd sha256 /a $arg
    Start-Sleep -Seconds 5
    & 'C:\Program Files (x86)\Windows Kits\10\bin\x86\signtool.exe' timestamp /tr http://timestamp.globalsign.com/?signature=sha2 /td sha256 /v $arg
    Start-Sleep -Seconds 5
    & 'C:\Program Files (x86)\Windows Kits\10\bin\x86\signtool.exe' timestamp /tr http://sha256timestamp.ws.symantec.com/sha256/timestamp /td sha256 /v $arg
    Start-Sleep -Seconds 5
    & 'C:\Program Files (x86)\Windows Kits\10\bin\x86\signtool.exe' timestamp /tr http://time.certum.pl /td sha256 /v $arg
}
Run Code Online (Sandbox Code Playgroud)

PowerShell输出

我从SignTool得到了肯定的输出,但是每次调用都会覆盖时间戳(为了更好的可读性而对其进行了重组):

签名过程进行顺利:

Done Adding Additional Store
Successfully signed: .\my.exe
Run Code Online (Sandbox Code Playgroud)

紧接着是时间戳记,这些时间戳记分别没有问题:

Successfully timestamped: .\my.exe
Number of files successfully timestamped: 1
Number of errors: 0

Successfully timestamped: .\my.exe
Number of files successfully timestamped: 1
Number of errors: 0

Successfully timestamped: .\my.exe
Number of files successfully timestamped: 1
Number of errors: 0
Run Code Online (Sandbox Code Playgroud)

文字图片

仅存在最后一个时间戳


基本原理

我拥有的证书来自Certum当局,称为标准代码签名。由于它即将过期,因此我想确保我的Windows可执行文件在我的签名证书到期后不会遇到麻烦。我认为,如果一台服务器及时不可用或服务停止,则使用更多时间戳会更好,例如,Certum授权将消失。


附加细节

我理想的解决方案应该解决上述问题:

  • 通过为多个服务器加盖时间戳;要么

  • 通过引用一些可靠的消息来源,这是不可能的

Grz*_*lko 5

这个问题看起来像是使用多个时间戳服务器进行代码签名的副本。

简短的答案是:不,时间戳记不能超过一次。

但是,可以使用不同的算法进行签名(双重签名),但这意味着将生成两个单独的签名,每个签名都有自己的时间戳。

实际上,多个时间戳意味着什么?时间戳记会告诉消费者资产签署的时间。签名的单个动作不可能在两个不同的时刻完成。除非应用了两个不同的签名,否则每个签名都有自己的时间戳(双签名)。

另外,让我们想象一下可以将两个时间戳应用于同一签名。假设文件在2019年1月1日签名,第一个时间戳在2/1/2019应用,第二个时间戳在3/3/2020。对验证签名的客户意味着什么?这真的没有多大意义,对吗?如果证书仍然有效,则只有后者的时间戳才是真正重要的-这就是SignTool覆盖先前时间戳的原因。

顺便说一句,通常有很多关于时间戳的文章,其中没有一篇提到为证书分配多个时间戳,例如: