时间戳
1.什么是时间戳
时间戳是指使用数字签名技术对包含原始文件信息、签名参数、签名时间等信息构成的对象进行数字签名而产生的数据,用以证明原始文件在签名时间之前已经存在。通过使用如网络时间协议(NTP)的机制,计算机维系准确的当前时间,校准到分钟中的秒。这种精确的时间使网络计算机和应用有效的通信变为可能。时间戳机制是为了不同的同步目的而使用的,如为多事件事务安排连续的顺序,这样当发生错误时事务便无效。另一种使用时间戳的方法是记录相对于某个开始点的时间。在IP电话技术中,实时传输协议(RTP)为语音包安排连续的时间戳,这样接收方可以进行缓存,重新组合和无差错传递。当编写程序时,程序员可以使用操作系统在程序执行时提供的时间戳应用程序接口。
时间戳服务遵循请求/响应模型。希望得到时间戳的用户实体发送一个请求给时间戳服务系统,请求中包含了待签发时间戳的数据摘要值。时间戳服务系统从权威时间源取得当前时间,与数据摘要值按特定格式编码,并用时间戳服务系统的私钥进行签名并产生时间戳,然后返回给请求实体,同时将此时间戳数据存储于数据库中,以备日后查证。而请求实体接收到时间戳以后,需要验证时间戳的有效性,并根据业务需求决定是否自行保存数据原文及相应时间戳。这样,时间戳就与原始文件绑定在一起,作为该文件的时间证据,完成了时间戳的签发过程。
2.时间戳的组成
时间戳是一份能够表示一份数据在一个特定时间点已经存在的完整的可验证的数据。它的提出主要是为用户提供一份电子证据,以证明用户的某些数据的产生时间。在实际应用上,它可以使用在包括电子商务、金融活动的各个方面,尤其可以用来支撑公开密钥基础设施的“不可否认”服务。
时间戳服务的本质是将用户的数据和当前准确时间绑定,在此基础上用时间戳系统的数字证书进行签名,凭借时间戳系统在法律上的权威授权地位,产生可用于法律证据的时间戳,用来证明用户数据的产生时间,达到“不可否认”或“抗抵赖”的目标。
时间戳系统的组成主要包括三个部分:可信时间源、签名系统和时间戳数据库:
(1)可信时间源就是时间戳系统的时间来源,TSA系统中的所有部件的时间都必须以这个可信时间源为标准,尤其在颁发的时间戳中填写的时间必须严格按照可信时间源填写。而作为可信时间源自身,其或者就是国家权威时间部门发布
的时间,或者是用国家权威时间部门认可的硬件和方法获得的时间。
(2)签名系统负责接收时间戳申请、验证申请合法性以及产生和颁发时间戳,最后将时间戳存储到数据库中。这个过程中,申请消息和颁发时间戳格式、时间戳的产生和颁发期乳必须符合规范中给出的要求。用户向签名系统发起时间戳申请,签名系统获取用户的文件数据摘要后,再验证申请的合法性,最后将当前时间和文件摘要按一定格式绑定后签名返回,并保存在数据库中。
(3)时间戳数据库负责保存TSA系统颁发的时间戳,而且必须定期备份,以便用户需要时可以申请从中取得时间戳。对时间戳数据库的存储、备份和检索也要求符合规范中给出的规定。
3.时间戳的产生和颁发
标准中规定了时间戳的申请和颁发方式、可信时间的产生方法、时间的同步和申请和颁发过程。可以通过不同的方式接收时间戳申请和颁发时间戳,但应至少支持下列四种方式的其中一种:用户通过电子邮件申请;用户通过文件传输申请;用户通过套接字(Socket )申请;用户通过HTTP申请。
一般来说,由于WEB服务在网络中应用的普及,TSA最少应支持用户通过HTTP申请时间戳。无论支持哪种申请方式,“时间戳规范”规定了整个申请和颁发时间戳的过程至少应该包括的一系列基本过程。
可信时间源是整个系统工作的基础。可信时间的源头可以使用以下的一种或多种方法获得:使用某种无线接收装置;使用某种时间同步协议从一个指定网络地址获得时间;使用某种通过国家权威时间部门认证的硬件获得时间。
通过多种方法产生最终可信时间应该是产生的多个可信时间的折中。由于系统可能由多个部件组成,各部件还应根据可信时间同步部件自身的时间。在同步过程中,“时间戳规范”规定了部件同步应满足的一系列条件。
4.时间戳的管理
时间戳的保存包括在其他方的保存和在用户方的保存。保存涉及到时间戳数据库的管理和时间戳记录应当包含的信息项,一般最少应包括入库时间、序列号、完整编码等。时间戳在用户方一般由用户自行保存。时间戳的备份在标准中规定了一系列要求,如定期备份、备份介质等。时间戳的检索在标准中规定了至少三种检索方式,包括分别按照入库时间、序列号、完整编码检索。
当系统由于内部错误或者外部攻击导致产生错误的时间戳时,标准规定了删除时应遵循的要求。在确定某时间戳已经丧失其价值后,标准规定了销毁时应遵循的要求。时间戳的查看和验证在标准中规定了应该给用户提供一个方便安全的方法查看其颁发的时间戳,例如提供一个查看软件等。还应该给用户提供一个方便安全的方法对其颁发的时间戳进行验证,例如提供一个验证软件或者通过互联网验证等。