使用多个时间戳服务器进行代码签名



关于时间戳和使用signtool的代码签名,将来自多个时间戳颁发机构的戳应用于签名代码是否被认为是最佳实践?可能有助于我理解的进一步相关问题:

  • 是否可以使用不同的时间戳服务器应用多个时间戳?如果我从这篇文章中的理解是正确的,答案是肯定的请参阅:Authenticode 的替代时间戳服务

  • 如果是,多个时间戳是否提供了时间戳的验证"故障转移">
    例如,一段代码由comodo和verisign签名,然后加上时间戳。如果系统无法连接到verisign,如果它可以连接到comodo来验证时间戳,它仍然有效吗?我假设,当验证代码并检测到时间戳时,系统会将网络流量发送到时间戳管理局以验证时间戳。如果不是这样的话,它只是在本地验证时间戳(其中一个?)是由受信任的CA针对本地存储发布的,这可能会回答这个问题。

  • 也许还有一个问题需要问,当检查时间戳时,这是一个"AND"(所有时间戳都必须是可验证的,代码才能通过检查)还是一个"or"(其中一个时间戳必须是可核实的,代码才会通过检查)。

对于1),他们谈论的是故障转移,这意味着如果第一台服务器无法访问,他们只需从第一台服务器切换到第二台服务器。无论如何,结果只是一个时间戳。

然而,有些人试图应用两个签名,每个签名都有其时间戳:

  • 如何正确地对带有时间戳的代码进行双重签名
  • signtool无法使用时间戳对SHA2和SHA1进行双重签名

对于2),一旦时间戳成为可执行文件的一部分,就不再需要连接到服务器。正如您已经假设的那样,时间戳本身就是一个签名,如果Windows信任该签名,则它被视为有效。

对于3),由于缺乏可用的样本,我目前无法对此给出答案。

最新更新