如果程序的签名过期会发生什么?

如果程序的签名过期会发生什么?

签名过期后程序还能安装吗?还是必须重新签名?

答案1

这取决于签名格式。

当相应的证书过期或被撤销时,基本签名(例如 PGP 中的签名)将不再有效,因为您无法知道签名是否已完成之前或之后有效期——由于签名是在签名者自己的计算机上进行的,因此他们可以非常轻松地为其设置自定义日期。

(例如,如果你发现签名密钥已被盗并在周二将其撤销,那么周五的签名必定无效 - 但无论是谁盗取了签名,都可以将签名追溯到周一。)

但是,某些格式(例如 Authenticode(用于 Windows 和 UEFI))使用时间戳以避免出现此问题。您下载的大多数 .exe 文件都带有时间戳 - 也就是说,签名本身由外部时间戳服务进行签名,该服务始终包含准确的时间。如果存在这样的时间戳,则签名可以永远有效,因为您知道证书曾是签署时有效。

例如,这是一个文件属于 Office 2003,其签名证书于当年晚些时候过期,但签名由 VeriSign 加盖时间戳并且仍然有效。

(当然,对于常规应用程序而言,即使签名无效,您也可以完全绕过检查并安装程序,就好像它根本没有签名一样 - 对于驱动程序和其他必须签名的文件来说,时间戳更为重要。)

答案2

签名的目的是为了表明程序在签名后没有被篡改。以任何方式修改程序(例如插入恶意软件)都会破坏保护性签名。

签名并不是为了证明程序是安全的,而只是证明程序自签名以来没有被修改过。

即使签名已过期,也并不意味着它不再可信,只要开发人员保管好私钥,文件就不会被修改来伪造签名。开发人员只是没有更新他的密钥,也没有用新密钥重新签名。

如果证书来自受尊敬的证书颁发机构 (CA),则在颁发证书之前会验证开发者的身份,并且详细信息存储在证书本身中。这些详细信息在颁发证书时是正确的,并且现在和当时一样值得信赖。

答案:该程序可以安全安装和使用,并且该签名值得信赖(除了一些广为人知的特殊情况)。

相关内容