时间戳是指格林威治时间1970年01月01日00时00分00秒起至当下的总秒数。通俗的讲, 时间戳是一份能够表示一份数据在一个特定时间点已经存在的完整的可验证的数据。 它的提出主要是为用户提供一份电子证据, 以证明用户的某些数据的产生时间。 在实际应用上, 它可以使用在包括电子商务、 金融活动的各个方面, 尤其可以用来支撑公开密钥基础设施的 “不可否认” 服务。1
时间戳(timestamp)作为一个能表示一份数据在某个特定时间之前已经存在的、 完整的、 可验证的数据,通常是一个字符序列,唯一地标识某一刻的时间。使用数字签名技术产生的数据, 签名的对象包括了原始文件信息、 签名参数、 签名时间等信息。广泛的运用在知识产权保护、 合同签字、 金融帐务、 电子报价投标、 股票交易等方面。2
原理时间戳的主要目的在于通过一定的技术手段,对数据产生的时间进行认证,从而验证这段数据在产生后是否经过篡改。所以时间戳服务的提供者必须证明服务中使用的时间源是可信的,所提供的时间戳服务是安全的。下面介绍最常见的几种时间戳协议,并对各个协议的原理进行分析。5
简单的时间戳协议在使用时间戳服务时,所涉及到的角色一般有以下几种:提供时间戳服务的机构(Time-Stamping Authoritor),申请时间戳服务的用户(Subscriber)和时间戳证书的验证者(Relying Party)。2时间戳机构的主要职责是为一段数据申请时间戳证书,证明这段数据在申请时间戳证书的时间点之前真实存在,在这个时间点之后对数据的更改都是可以追查的,这样就可以防止伪造数据来进行欺骗。证书持有者把需要申请时间戳证书的数据发送给时间戳机构,时间戳机构将生成时间戳证书发送给证书持有者。在需要证明该数据未被篡改时,证书持有者展示数据所对应的时间戳证书,时间戳证书的验证者来验证它的真实性,而从确认该数据是否经过篡改。5
最基本的时间戳协议的工作流程如下;申请时间戳服务的用户将需要认证的数据传输给时间戳服务的提供者;时间戳服务的提供者将经过认证后的时间戳证书返还给用户。5
简单时间戳协议的工作流程如右图所示:用户将需要认证的数据传输给时间戳机构,数据经过 Hash 运算得到 m=Hash(M),时间戳机构将 m 和收到数据的时间 t 一起进行数字签名,然后将生成的时间戳证书 Sign(m,t)返还给用户。在需要验证时间戳证书时,首先验证时间戳证书 Sign(m,t)是否为时间戳机构签发的,其次验证 m 是否为用户数据经过Hash 运算得到的结果。如果两项验证中有任何一项不通过,就证明用户的数据经过了篡改;如果都通过,说明用户的数据在时间 t 之后没有进行过任何修改。这个方法通过对数据进行 Hash 运算,保护了用户数据的隐私,在另一方面也减少了时间戳机构的存储容量,为时间戳机构削减了成本。5
线性链接协议线性链接协议是为了解决时间戳机构必须完全信任这一问题而提出的。5
这个协议的设计思想是为了建立起时间戳证书之间的紧密联系,像链表一样将用户申请的时间戳证书按照顺序链接起来。时间戳机构将收到的数据的Hash值用链表链接起来,把第n组数据的时间戳证书链表链接到第n-1组数据的时间戳证书链表之后。5
为了验证时间戳机构是否存在欺骗行为,机构设定一个固定的时间,通过不同渠道将最近通过的时间戳证书列表公布出来。任何人都可以通过时间戳机构公布的证书列表来验证时间戳链表的有效性,从而确定时间戳机构是否公正可靠。5
右图给出了8个数据的时间戳链表的结构示意图,通过这种方法,时间戳机构将不同用户的时间戳证书按照申请服务的顺序链接起来,从而得到了一条完整的时间戳证书链接。一方面,时间戳机构就可以通过完整的时间戳证书链接来确认两个数据申请时间戳服务的先后顺序;另一方面,由于用户的时间戳证书中会包含前一个用户申请时间戳证书时的部分信息,而时间戳机构也无法决定用户申请时间戳服务的次序,所以即便时间戳机构与用户相互串通,也无法改变整个时间戳证书链接中用户证书的位置。5
树型协议树型协议是线性链接协议的优化协议,这个协议把时间戳证书链接分解成很多小的组。在每组中,时间戳服务的使用者可以向TSA提出时间戳证书申请。可以通过建立一棵树型结构实现整个流程,其中树型结构的叶子是使用者的时间戳证书申请,TSA使用一个安全的Hash函数来计算树型结构中的节点值。树型结构如右图所示。5
树型协议减少了时间戳机构中时间戳证书的存储数量。要验证Hni是否是在第n轮中申请的时间戳证书,只需要验证能否通过Hni推算出Ni。同时此协议还可以防止对时间戳证书的篡改,用户要同TSA互相串通,才可能对第n组中的某个时间戳证书进行篡改。但第n组的信息包含在了n+1组的时间戳中,所以可以通过n+1组的时间戳审查第n组的时间戳是否正确。5
但是树型协议也有它自己的问题。树型协议不能验证同组中两个时间戳证书的相对次序,因为同组的时间戳证书都是在第n组结束时发布,但他们却不是同时被时间戳机构收到的。所以树型协议无法确定同一组中时间戳证书的正确顺序。除非绝对相信TSA能够保持同一组时间戳的正确次序或者减少每一组内的数据个数,但如果个数太少,系统的效率就会随之降低。同线性链接协议相同,如果待验证的时间戳证书与参考的时间戳证书中存在的时间戳证书较多时,可用性就会大大降低。5
二进制协议在线性链接协议的基础上,人们又提出了二进制链接协议。相比于线性链接协议,二进制链接协议更具有建设性,并且实际可用。二进制链接协议可以定义为一个有向无环的链接图。右图给出了构造一个二进制链接图Hk的步骤:5
为了更直观的看出二进制链接图的构造过程,我们通过例子来说明,如右图所示,就是一个二进制链接图H5的构建过程:5
对于任意的两个顶点a和b,若k>2,且0
因为二进制链接协议由一个常数来划分组,然后按照上述方案来构造各个组之间的时间戳证书链接。所以,在验证链接有效性时,二进制链接协议的时间复杂度要远远小于线性链接协议的时间复杂度,它的时间复杂度仅为O(logn)。5
线索认证树协议右图显示的是线索认证树协议[[W3]]的构建过程,W3链接很简单,由树的后序遍历可 得 2 → 3 → 10 → 4 → 5 → 11 → 14 → 6 → 7 → 12 → 8 → 9 → 13 → 15 → 16 , 那么ℎead(4) = (1,4,10) ,tail(4)=(5,15),ℎead(8)= (1, 8, 12,14) ,tail(8)=(9),则单一的时间戳为sign(4)= (4;L1,L4,L10;L5,L15),sign(8)= (8;L1,L8,L12,L14;L9)。5
与二进制链接协议相比,线索认证树协议的时间戳长度为klogn2,二进制链接协议为6klogn2。相比之下,线索认证树协议大大减小了单个时间戳的大小。所以线索认证树协议有着高效的验证效率。但该协议存在的问题和二进制链接协议一样,由于协议所使用的算法很复杂,所以在工程实现上具有一定的难度。5
分布式协议分布式协议的设计思想为在整个申请时间戳证书的工作流程中,涉及到了以下几种角色:一组自愿的时间戳证书签发者、一个安全的Hash算法和一个随机挑选签发人员的随机算法。5
当用户想对数据申请时间戳证书时,用户先用Hash算法计算数据的Hash值,得到一个随机数;在用随机算法挑选随机的签发者。然后用户将计算出的Hash值发送给通过算法随机得到的各个签发者。等签发者收到用户发来的Hash值后将收到数据的时间添加到Hash值后面,再对Hash值和时间整体进行签名,返回签名结果给用户,用户把所有的签名作为时间戳证书存储起来。5
在此协议中,由于所有对数据Hash值进行签名的签发者是通过算法随机产生的,所以对于随机选出的签发者,用户一般不可能与之串通伪造时间戳,除非所有人都与用户串通,但这显然是不可能的。5
在此协议的使用过程中,用户必须要与所有选出的签发者进行实时联系,及时了解签发者发生变动的情况。当签发者无法即时对数据签名时,需要有一种备用机制进行处理。在此协议中,别的协议中必须的时间戳机构是不存在的。每一个用户在自愿的情况下都可以当做签发者使用。5
分布式协议的描述如下:5
计算数据M的Hash值m=Hash(M),通过随机算法挑选签发者,他们收到数据M的Hash值m;5
签发者ID组G(y)中的各个签发者给(t,ID,m)签名,并返回时间戳签名Sign;5
最后得到的时间戳证书为[(m,ID),(Sign1,Sign2,……, Signk)]。5
此协议的优点是不可能提前知道进行签名的签发组G(m)。为了伪造一个时间戳,用户不可能为了伪造一个时间戳,就能与k个随机选取的签发者串通。但是另一方面,分布式方案也有很明显的缺点。第一、需要提前建立签发组,而且只能从预先建立的签发者集合中使用算法随机选出签发者。第二、网络带宽要求k倍于简单时间戳协议。第三、如何在法律层面定义不同时间源的时间认证和可信度也是一个棘手的问题。因此,分布式时间戳协议如果实现仍存在相当大的难度。5
分类自建时间戳此类时间戳是通过时间接收设备(如GPS,CDMA,北斗卫星)来获取时间到时间戳服务器上,并通过时间戳服务器签发时间戳证书。此种时间戳可用来企业内部责任认定,在法庭认证时并不具备法律效力。因其在通过时间接收设备接收时间时存在被篡改的可能,故此不能做为法律依据。2
具有法律的效力的时间戳它是由我国中科院国家授时中心与北京联合信任技术服务有限公司负责建设的我国第三方可信时间戳认证服务。由国家授时中心负责时间的授时与守时监测。因其守时监测功能而保障时间戳证书中的时间的准确性和不被篡改。获取时间戳平台有“大众版权保护平台”,可与我国中科院国家授时中心时间同步。2
组成部分时间戳(time-stamp)是一个经加密后形成的凭证文档,它包括三个部分:1
需加时间戳的文件的摘要(digest);1
DTS收到文件的日期和时间;1
DTS的数字签名。1
一般来说,时间戳产生的过程为:用户首先将需要加时间戳的文件用Hash编码加密形成摘要,然后将该摘要发送到DTS,DTS在加入了收到文件摘要的日期和时间信息后再对该文件加密(数字签名),然后送回用户。书面签署文件的时间是由签署人自己写上的,而数字时间戳则不然,它是由认证单位DTS来加的,以DTS收到文件的时间为依据。时间戳产生流程图如右图所示。1
函数Unix时间戳(Unix timestamp),或称Unix时间(Unix time)、POSIX时间(POSIX time),是一种时间表示方式,定义为从格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数。Unix时间戳不仅被使用在Unix系统、类Unix系统中(比如Linux系统),也在许多其他操作系统中被广泛采用。1
php中获取时间戳的方法是:time();Date();1
Linux中获取时间戳的方法是:date +%s1
Linux中将时间戳转换为日期: date -d "@"1
法律效力自建时间戳不具备法律效力。4
可信时间戳即由国家法定时间源来负责保障时间的授时和守时监测,任何机构包括时间戳中心自己不能对时间进行修改以保障时间的权威,只有这样产生的时间戳才具有法律效力。4
可信 时间戳司法判例:4
首例时间戳司法应用案例判决书发生法律效力****附该案件裁判文书4
2008年11月25日,深圳市龙岗区法院依据最高法院“知识产权司法保护活动月”的要求公开宣判知识产权纠纷案,其中“利龙湖”一案系国内首例时间戳技术司法应用案例,宣判后双方当事人均未提起上诉,该案判决书已经发生法律效力。4
时间戳在医疗领域进程:4
2010年11月14日下午,卫生部在国2招第五会议室组织部有关部门和专家召开了"可信时间戳与电子病历法律效力研讨论证会",医政司、政策法规司、 医院管理研究所、卫生部统计信息中心、协和医院、北大人民医院、北医三院、北京市西城法院法官、中国医院协会自律维权部、国家法官学院、国家授时中心、联合信任时间戳服务中心的有关领导和专家等参加了论证会。会议听取了国家授时中心副主任窦忠和联合信任时间戳服务中心董事长张昌利的汇报。与会专家对可信时间戳在解决我国电子病历法律效力问题进行了深入的探讨和论证,认为TSA+CA的模式是一种有效解决电子病历法律效力的方法,建议在医院广泛采用,将选择部分试点医院开展试点应用,并作相关技术标准和法规的研究。4
2011年5月4日健康报发表《可信时间戳为电子病历法律效力提供保证》的文章。4
首次颁发档案管理系统接入可信时间戳核准证书4
为规范和保障可信时间戳在档案领域的正确使用,日前,国家档案局档案科学技术研究所按照国家档案局技术部审核通过的可信时间戳档案应用方案要求,组织专家对首批3家公司开发的档案管理软件中的可信时间戳接入功能进行了检测,并向通过检测的软件开发商颁发可信时间戳接入核准书。国家授时中心负责授时和守时保障的联合信任时间戳服务中心将依据接入核准书,向相关档案软件用户提供可信时间戳的服务。 可信时间戳是由联合信任时间戳服务中心签发的一个电子凭证,用于证明电子数据文件自申请可信时间戳后内容保持完整、未被更改。可信时间戳接入核准书的颁发,标志着可信时间戳在档案领域规范化应用已经开始,并将起到电子档案和档案数字化副本内容防篡改、保障档案的法律凭证的作用。根据《电子签名法》有关数据电文原件形式的要求,申请了可信时间戳认证的电子文件、电子档案或纸质档案的数字化副本等可视为法规规定的原件形式。4
时间戳的管理《时间戳规范》的标准中规定了时间戳的保存、 时间戳的备份、 时间戳的检索、 时间戳的删除和销毁、 时间戳的查看和验证。3
时间戳的保存包括在TSA (时间戳机构)方的保存和在用户方的保存。 在TSA方的保存涉及到时间戳数据库的管理和时间戳记录应当包含的信息项, 一般最少应包括入库时间、 序列号、 完整编码等。 时间戳在用户方一般由用户自行保存。3
时间戳的备份在标准中规定了一系列要求, 如定期备份、 备份介质等。3
时间戳的检索在标准中规定了至少三种检索方式, 包括分别按照入库时间、 序列号、 完整编码检索。3
当 TSA系统由于内部错误或者外部攻击导致产生错误的时间戳时, 标准规定了删除时应遵循的要求。 在确定某时间戳已经丧失其价值后, 标准规定了销毁时应遵循的要求。3
时间戳的查看和验证在标准中规定了TSA应该给用户提供一个方便安全的方法查看其颁发的时间戳, 例如提供一个查看软件等。 TSA还应该给用户提供一个方便安全的方法对其颁发的时间戳进行验证, 例如提供一个验证软件或者通过互联网验证等。3
安全由于时间戳在电子取证中的重要作用及其法律地位,时间戳系统必须拥有极高的安全级别, 安全保护应包括物理环境安全和软件安全。3
物理环境安全包括机房安全、 设备安全和记录介质安全。软件安全包括运行环境、 可信时间源、 签名系统、 时间戳数据库和审计。 其中, 审计对于错误的查找和责任的跟踪具有重要作用, 标准中详细的规定了审计数据产生、审计查阅、 审计事件存储、 可信时间、 审计日志签名的要求。 对于证书和密钥的管理应按国家密码管理部门相关标准与规定执行。3
本词条内容贡献者为:
尚轶伦 - 副教授 - 同济大学数学科学学院