时间戳的最佳实践

代码签名证书是保护软件代码的完整性,免受第三方的修改以及损坏。随着代码证书的大量使用,越来越多的操作系统通过代码签名证书保护软件代码安全,帮助使用识别软件发行商的身份,获取安全的软件代码。

与HTTPS证书(SSL证书)一样,代码签名证书也是由数字证书颁发机构(CA)对企业或者个人身份核实无误后颁发,然后签署到软件代码被主要的操作系统识别其代码是安全、完整的。

代码签名证书最重要的部分之一是时间戳,即使证书到期后,软件和用户也可以识别有效的代码签名证书。

当软件因为过期的代码签证书而失效时,不仅对用户带来极大的不便,也会对发行商带来严重的影响。因此软件发行者在代码签名过程做好记录,且用软件的时间戳来保留签名。

时间戳不仅是软件持续可用性的最佳实践,它还有良好的安全优势。如当出现密钥泄露而需撤销证书,在撤销日期之前,签署的文件可持续运行。

下面介绍时间戳的背景和遵循的最佳实践,确保开发者不会遇到软件签名意外问题。

什么是时间戳?

时间戳会一直留在软件上的签名,在代码签名证书过期后,保证软件仍旧被操作系统或其他平台兼容,并能正常运行。当签名被检验时,时间戳会允许系统检查签名的有效性,而不是签名时间,或软件运行的当前时间。

如果没有时间戳,签名就会根据当前日期进行检测。如果开发者的软件时几年前分发的,当其代码签名证书过期时,该签名就不在有效。那么用户在运行该软件时,就会受到平台的拦截运行。

每次用户运行时,系统都会检查可执行文件上的签名。这意味着如果软件的代码签名证书过期并且没有时间戳的话,软件将突然停止为所有用户工作。

对于大多数软件开发者说来,都希望其开发的软件能够被用户长期使用。因此代码签名证书的时间戳具有重要的功能,因为它可确保软件能长期运行。

时间戳本身是由CA签名并加以保护,使其不受篡改或欺骗以及密码保护。

在Windows上,如果软件提供代码签名证书的CA不受信任,时间戳还可确保签名保持有效。

最佳实践

1、使用时间戳!在许多工具中,例如Microsoft的SignTool,时间戳是可选的。

2、检查平台支持:SHA-2是用于时间戳签名的现代标准算法。但是,仍有一些操作系统默认不支持SHA-2,开发者可考虑使用SHA-1签名或具有两个证书的双重签名来支持这两种算法。

3、使其成为构建过程的一部分:在更新软件时,开发者将构建并发布新的可执行文件。确保签名和时间戳是该过程的一部分,以避免每个软件版本出现任意意外问题和错误。

4、记录流程:时间戳在签名过程中需要额外的标志和命令,包括从CA检索时间戳签名的URL。确保员工或程序的更改都不会忘记正确签署软件。

5、关键损害的受损限制:无论颁发证书吊销之前或之后,时间戳可为操作系统提供了一种识别签名的方法。如果开发者因密钥泄露而需要吊销证书,则可以执行此操作,并且不会影响已经合法生成的签名(如果开发者已加盖时间戳)。时间戳将与撤销日期进行核对,并且在该日期之前发布的任何内容都将继续有效。

证书到期的重要影响

用户常对代码签名证书有一种误解,认为证书到期,就是证书颁发机构(CA)收取费用的另一个借口。但从技术角度来看,证书到期是PKI的基本组成部分,在系统上运行必须存在的,尤其是在多个独立方进行交互的Web PKI中。

PKI的主要目的之一是将身份(如域名,组织或其他)绑定到公钥上。对于任何类型的可信证书,申请者的身份都需经过验证,CA机构确保其准确性后,就会向该申请者颁发属于他的证书。申请代码签名,SSL和电子邮件证书都需如此。

如申请者在收到代码签名证书之前。CA供应商必须确保该公司真正存在,已经正确注册并且与具备良好的信誉,并且该公司需提供证书的相关的负责人信息。

已到期的代码签名证书,申请者申请续期是,CA机构需对申请者信息重新检查,以确保身份和公钥之间的绑定仍然正确。通过这种方式,将可信证书视为与护照或驾驶执照类似的身份证件。

撤销是一种额外的机制,可以指示何时不再信任证书,但这其中有多种原因(包括性能,客户端软件中缺少撤销状态检查以及可用性),因此不能将撤销作为主要使证书失效的方法。

证书过期还有其他原因,但为了减少证书收到恶意攻击的机率,在使用新密钥对重新验证证书,并升级到当前的加密方法,如新的签名算法或更强大的密钥。

 

 

 

上一篇:

下一篇:

相关新闻

在线客服
QQ咨询
工作时间:周一至周五9:00-18:00
QR code