GlobalSign 博客

什么是时间戳?

当一个事件的日期和时间被记录下来时,我们称之为时间戳。数码相机会记录照片拍摄的时间和日期,电脑会记录文件保存和编辑的时间和日期。社交媒体上的帖子可能会记录日期和时间。这些都是时间戳的例子。

时间戳对于记录信息何时交换、何时在线创建或删除非常重要。在很多情况下,这些记录只是对我们有用。但在某些情况下,时间戳更有价值。

想象一下这个场景:您的组织通过电子方式与另一个组织或承包商签署法律协议或保密协议。后来,人们发现承包商泄露了签署保密协议的项目的信息。承包商对保密协议提出异议,认为信息在签署保密协议之前就已经共享了。在这里,知道文件的实际签署时间至关重要。

在这样的法律环境下,只有时间戳是不够的。如果你的参数涉及到保密协议的签署时间,你需要能够证明签名的时间戳是有效的,证明文档是在实际签署的时候签署的。依赖于系统时钟的时间戳是不够的,因为在机器上本地修改日期和时间并不困难。此外,还有许多在线工具可以让你更改文档或PDF的修改、创建和最后访问日期。那么,我们如何知道是否可以信任时间戳呢?

什么是可信时间戳?


这就是` 可信 `时间戳的作用。这些类型的时间戳是由使用安全FIPS兼容硬件的可信第三方生成的,因此本地用户不会操纵它们。可信的时间戳意味着你可以非常肯定地说时间戳上的日期是准确的,没有被篡改。



RFC 3161概述了第三方作为时间戳机构(TSA)运营必须满足的要求。


时间戳是如何工作的?

TSAs使用公钥基础设施(Public Key Infrastructure, PKI)技术来应用时间戳。下面是所涉及步骤的高级总结。

  1. 客户端应用程序创建一个哈希值(作为需要时间戳的数据或文件的唯一标识符),并将其发送给TSA。
  2. 从现在开始,原始文件中的任何更改(哪怕是一点点信息)都需要与TSA服务器进行更改通信。
  3. TSA结合了哈希和其他信息,包括权威时间。使用TSA的私钥对结果进行数字签名,创建一个时间戳令牌,并将其发送回客户端。时间戳令牌包含客户端应用程序稍后验证时间戳所需的信息。
  4. 客户端应用程序接收到时间戳令牌,并记录在文档或代码签名中。

当将来打开带有时间戳的数据或文件时,客户端应用程序将使用TSA的公钥来验证TSA(即验证时间戳来自可信的TSA),并重新计算原始数据的哈希值。将这个新散列与最初创建的散列进行比较(上面的第1步)。如果自应用时间戳以来对数据进行了任何更改,则此哈希检查将失败,并显示警告消息,表示数据已被更改,不应信任该数据。

 What is timestamping

时间戳最常用于哪种类型的事务?

可信的时间戳为电子签名、数字签名和代码增加了额外的安全性。

电子签署文件

电子签名正在全球范围内和各行各业迅速得到采用;然而,要使电子签名具有与湿墨签名相同的法律约束力,它必须满足法律的要求,包括合规性和审核要求。

文档的接收者可以验证文档何时被电子签名,以及验证文档在时间戳证明的日期之后没有被更改。通过使用时间戳,组织可以保护其知识产权,并将时间戳作为强有力的法律可审计证据。

数字签署文档

当你对文档进行数字签名时,包含可信时间戳主要有两个原因——确保签名的长期验证(LTV),以及在实际应用签名时增加不可否认性或置信度。

注意:数字签名验证过程的一部分涉及内容完整性检查,因此虽然时间戳也提供了这一好处(知道自签名应用以来文档没有更改),但它不是电子签名的主要驱动因素。

长期验证(LTV)

LTV意味着你可以确认签名在应用时是有效的,而不管证书当前的状态(即过期或被吊销)。例如,如果我今天用有效的证书和可信的时间戳签署了一个文档,但是我的证书在两个月内被吊销或过期,我签署的文档在此后的任何时间都应该仍然有效。

根据你用于应用签名的程序,你可能需要在签名中包含一个可信的时间戳,以实现LTV。在这些情况下,时间戳被用作检查签名有效性的参考点。如果程序看到当前证书状态被吊销或过期,但签名是在吊销或过期之前申请的,它会显示签名仍然有效。大多数程序都需要一个可信的第三方时间戳;使用计算机的系统时钟是不可靠的,因为它可以被操纵。

Microsoft Office程序和Adobe版本6、7和8需要LTV时间戳。adobe9 +在签名时嵌入了吊销信息(CRL或OCSP),实现了在应用签名时验证证书有效性的相同目标,因此LTV不需要时间戳。

增加了对文件签署日期和时间的信心

正如文章前面的例子所强调的那样,有时你需要高度自信地知道文档何时真正签名了。这对于涉及时间敏感事务和审计跟踪的场景尤其重要。

可信时间戳支持这些场景,因为它们是使用独立验证和可审计的日期和UTC (Coordinated Universal Time)源应用的。这意味着它们不会像本地系统时钟那样受到篡改,因此您可以确定签名何时被应用。

数字签名代码

如上所述,数字签名需要LTV才能在未来状态更改(例如过期或撤销)时仍然有效。对于代码签名来说,这是通过添加可信时间戳来实现的。

如果没有时间戳,当证书过期或被撤销时,签名就会过期或失效,最终用户将看到警告消息,他们不应该信任这些代码。使用时间戳(和LTV),签名仍然是可信的,因为在应用签名时,签名证书是有效的。

近期博客