时间戳
时间戳是通过数字签名技术生成的数据,它是事件日期和时间的数字记录。签名的对象包括原始文件信息、签名参数、签名时间等信息。时间戳机构对此进行数字签名并生成时间戳,以证明原始文件在签名时间之前就已存在。时间戳具有准确性、不可篡改性和可验证性的特点。
时间戳来自办公室用来记录文件收到时间的橡皮戳。随着数字系统的发展,时间戳的应用范围已经扩展到指附加在数字数据上的数字日期和时间信息。20世纪60年代末,开发了Unix操作系统。为了统一内存存储时间和处理日期的计算,肯·汤普森决定将时间戳标准化。在20世纪90年代,推出了时间戳协议。1988年,ISO 8601对时间和日期的表示进行了标准化。2001年,IIETF发布了RFC 3161,它定义了公钥基础设施时间戳协议。2002年,RFC 3339进一步优化和改进了ISO 8601。2014年,法国eIDAS法规(第42条)制定了电子时间戳指南,该指南被定义为以电子方式将日期和时间附加到任何数字数据的过程。
时间戳广泛应用于知识产权、合同签署、金融、电子招投标、股票交易和个人档案管理等领域。在计算中,它通常用于跟踪数据的创建、修改或访问时间。然而,时间戳正面临着物理安全和软件安全等挑战。随着应用需求的增加,缺乏统一标准已成为电子签名应用发展的障碍。
发展历史 编辑本段
“时间戳”一词来自办公室使用的橡皮图章,用于在纸质文件上盖章,有时还会印上时间以记录收到文件的时间。随着数字数据系统的出现,该术语已经扩展到指附加在数字数据上的数字日期和时间信息。例如,计算机文件包含指示文件上次修改时间的时间戳,而数码相机将时间戳添加到拍摄的照片中以记录照片拍摄的日期和时间。
在计算机系统中,为了节省磁盘空间,早期的日期格式大多采用4字节或32位的存储空间编码,但在精度和范围上都有一定的限制。20世纪60年代末,在贝尔实验室开发了Unix操作系统,需要一种一致的方式在操作系统中存储时间和处理日期计算,因此Ken Thompson决定使用1970年1月1日00:00:00(UTC)作为Unix时间的起点,这确保了时间戳对于大多数32位时间都是正的,因此Unix时间戳的计算基于世界时(UTC)1970。
据预测,2038年1月19日,Unix时间戳将因32位溢出而停止工作,成千上万的应用程序将需要采用新的时间戳约定。为了解决32位时间表示的限制,一些系统开始使用64位时间表示,从而允许更大的时间范围。尽管有其局限性,Unix时代的时间戳仍因其简单性和兼容性而被广泛使用。
为了规范和统一时间戳格式,许多时间标准和协议开始出现。1985年,网络时间协议(NTP)开始使用,它具有低网络开销和低服务响应延迟,可用于时间戳开发。1988年,国际标准组织ISO发布了ISO 8601标准,该标准在国际上对时间和日期的表达进行了标准化和统一,有助于人和机器理解和消除影响全球操作的各种日期约定、文化和时区所造成的差异。
20世纪90年代,时间戳协议的工作得以开展,美国出现了许多关于时间戳的专利,如数字文档的安全时间戳方法、数字文档认证系统等。直到21世纪,时间戳才引起了人们的广泛关注。2001年,IETF制定了RFC 3161,即公钥基础设施时间戳协议,它描述了发送到时间戳机构(TSA)的请求和返回的响应的格式。2002年,IEEE发布了精确时间协议(PTP),同年,IETF发布了RFC 3339标准Internet上的日期和时间:时间戳,该标准改进和完善了日期和时间格式的ISO 8601标准。2014年,法国eIDAS法规(第42条)制定了电子时间戳指南,规定了以电子方式将日期和时间附加到任何数字数据的流程。
随着数字技术的不断成熟,时间戳被应用于司法实践等其他领域,时间戳认证在知识产权纠纷中的应用显著增加。2021年,新一轮科技革命和产业变革进一步深化,区块链科技快速发展。时间戳在区块链被广泛用作底层技术,因为它可以确保交易的有效性,而区块链数据库允许整个网络的记录者在每个块中加盖时间戳,从而形成一个不可破解和不可伪造的数据库。
系统组成 编辑本段
时间戳是一个完整且可验证的数据,可以表明某个数据在某个时间之前已经存在,时间戳系统是用于生成时间戳的可信第三方。时间戳系统可以作为数字证书认证系统的一个组件提供服务,也可以独立提供服务。
时间戳服务的本质是将用户的数据与当前的准确时间绑定,然后用时间戳系统的数字证书进行签名。凭借时间戳系统在法律上的权威地位,生成一个可用于法律证据的时间戳,以证明用户数据的生成时间,从而达到“不可否认”或“反否认”的目的。
时间戳系统至少需要包括三个部分:可信时间源、签名系统和时间戳数据库;
可信时间源:可信时间源是时间戳系统的时间来源,TSA系统中所有组件的时间都必须基于此可信时间源,尤其是签发的时间戳中填写的时间必须严格按照可信时间源填写。作为可信时间源本身,要么是国家权威时间部门发布的时间,要么是国家权威时间部门认可的硬件和方法获得的时间。
签名系统:签名系统负责接收时间戳申请,验证申请的合法性,生成和发布时间戳,并最终将时间戳存储在数据库中。在此过程中,应用消息和发布时间戳的格式以及时间戳的生成和发布必须满足规范中给出的要求。用户向签名系统发起时间戳应用。签名系统获取用户的文件数据摘要后,验证应用程序的有效性。最后,将当前时间和文件摘要以一定的格式绑定并签回并保存在数据库中。
时间戳数据库:时间戳数据库负责保存TSA系统发布的时间戳,它必须定期备份,以便用户在需要时可以从中申请时间戳。时间戳数据库的存储、备份和检索也应符合规范中的规定。
协议原则 编辑本段
时间戳由应用程序编程接口(API)和操作系统提供的系统调用管理,这些接口用于读取和设置文件时间戳,以及检索当前时间生成的时间戳。
时间戳的主要目的是通过一定的技术手段验证数据生成的时间,以验证该数据在生成后是否被篡改。因此,时间戳服务提供商必须证明服务中使用的时间源是可靠的,并且所提供的时间戳服务是安全的。时间戳协议的原理包括简单时间戳协议、线性连接协议、树形协议、二进制协议、分布式协议等。
简单时间戳协议:使用时间戳服务时,将涉及三个角色,即时间戳作者(TSA)、申请时间戳服务的用户(Subcriber)和时间戳证书的验证方。美国运输安全管理局为一段数据申请了时间戳证书,以证明这段数据在申请时间戳证书之前确实存在。在此时间之后,可以跟踪对数据的更改,这可以防止伪造数据进行欺骗。证书持有人将需要申请时间证书的数据发送给时间戳机构,时间戳机构将生成的时间戳证书发送给证书持有人。当需要证明数据未被篡改时,证书持有者出示数据对应的时间戳证书,时间戳证书的验证者验证其真实性,从而确认数据是否被篡改。最基本的时间戳协议的工作流程是:申请时间戳服务的用户将需要认证的数据传输给时间戳服务的提供者,然后时间戳服务的提供者将经过认证的时间戳证书返回给用户。但该协议存在一些隐患,主要体现在隐私、带宽、时间戳结构的错误操作、信任等方面。
树形协议:树协议是线性链路协议的优化协议。该协议将时间戳证书链接分解成许多小组。在每个组中,时间戳服务的用户可以向TSA申请时间戳证书,整个过程通过建立一个树结构来实现,其中树结构的叶子是用户的时间戳证书申请。TSA使用基于身份认证的可信时间戳服务系统来研究安全哈希函数,以计算树结构中的节点值。
分布式协议:在分布式协议中,TSA包括两种服务器:一个接收服务器和多个部分签名服务器。每个部分签名服务器拥有TSA签名密钥的一部分。当接收服务器接收到时间戳服务请求时,它向每个部分签名服务器发送请求的副本和接收请求的时间。当部分签名服务器接收到签名请求时,它将检查附加到该请求的时间,并将其与本地时间进行比较。如果它们相似,每个部分签名服务器用它们的部分密钥对文件和时间进行签名,然后将该部分签名传输到接收服务器,接收服务器将所有部分签名组合成最终的完整签名。
线性连接协议:线性链接协议是为了解决时间戳机构必须完全信任的问题而提出的。该协议的设计思想是在时间戳证书之间建立紧密的联系,并像链表一样将用户申请的时间戳证书按顺序链接起来。为了验证时间戳机制是否作弊,该机制设置了一个固定的时间,并通过不同的渠道发布最近通过的时间戳证书列表。任何人都可以通过时间戳机制发布的证书列表来验证时间戳链表的有效性,从而确定时间戳机制是否公平可靠。
分级请求时间戳协议:提出了分层请求时间戳协议,使局域网中的用户能够获得及时可信的时间戳。在该协议中,用户组和本地时间戳机构(LTSA)位于局域网中,形成第一级时间戳请求层;公共时间戳机构(PTSA)单独构成二级时间戳请求层,对用户组透明;用户组从LTSA获得LTS(本地时间戳),并将时间戳完全标记在局域网中,这可以避免网络中的用户访问公共网络。
格式标准 编辑本段
通用标准时间(UTC)格式是时间戳最常用的格式,其精度至少为秒。其语法结构为:YYYYMMDDhhmmss【。s..】Z】Z例如:20240219001326.34352Z(其中YYYY为年份;MM是月份;DD是天;Hh是小时;Mm是分钟;Ss是秒;[.s..】是可选的,表示秒的小数部分;z表示UTC时间)。
计算机的内部时钟和时间戳值是根据时代确定的。计算机的日期和时间是根据自计算机定义的纪元以来经过的秒数来确定的。纪元时间对应于UTC的0小时0分0秒,纪元日期取决于所使用的操作系统。Unix的纪元日期是1970年1月1日,而Windows计算机的纪元日期是1601年1月1日00:00:00(UTC)。如果Unix的纪元时间是1639172876秒,则为2021年12月10日星期五晚上9:47:56。
ISO 8601:国际标准ISO 8601指定了日期和时间的数字表示形式,可用于构造时间戳值。该标准符号有助于避免国际交流中许多不同国家符号造成的混乱,并增加计算机用户界面的可移植性。国际标准日期的表达式为:YYYY-MM-DD,其中YYYY是指公历的年份,MM是一年中01至12之间的月份,DD是一个月中01至31之间的日期。例如,2016年9月1日在标准符号中被写成2016-09-01。一天的国际表示法是:hh: mm: ss,其中hh是00到24之间的小时数,mm是00到59之间的分钟数,ss是00到60之间的秒数。ISO 3601标准时间值之前通常有一个测试指示器。例如,下午1: 31: 16可以表示为T13:31:16。
RFC 2822:RFC 2822标准对日期和时间进行了标准化,该标准用于在HTTP和电子邮件标题中统一表示日期和时间。RFC 2822的日期显示格式包括星期几、数字日期、月份、年份、时间和时区的三个字母缩写,如01 Jun 2016 14:31:46 -0700,表示时间为2016年9月1日14:31:46。“-0700”表示比世界标准时间晚7小时,具体格式为“+”或“-”hhmm,“+”表示早于世界标准时间,“-”表示晚于世界标准时间。
RFC 3339:RFC 3339中的时间戳规范完善了ISO8601标准和RFC2822标准。它将日期、时间和日期格式化为单个紧凑字符串,表示为2016-09-01t 14:31:16-0700 2016年9月1日14: 31: 46,其中ISO8601中的指示器“t”可以替换为其他字符,包括
RFC 3161:RFC 3161描述了发送到时间戳机构(TSA)的请求和返回的响应的格式,时间格式的表示没有变化。客户向TSA发送一个带有哈希值Y的时间戳请求。TSA将当时的标准时间值、此请求的序列号和一些状态参数附加到Y上,并签名后发送给客户。此外,该协议还结合了COSE保护和时间戳,并且有两种组合格式:TTC(时间戳然后是COSE)和CTT(COSE然后是时间戳)。
eIDAS:法国的eIDAS法制定了电子时间戳指南。合格的电子时间戳应准确显示日期和时间以及与日期和时间相关联的数据完整性的推定,并且需要满足以下要求:将日期和时间与数据绑定,以合理排除数据被潜移默化更改的可能性;使用高级电子签名签名,或使用合格的信托服务提供商的高级电子印章盖章,或使用某种等效方法签名;基于与协调世界时相关的精确时间源。
其他格式:如果数据存储是DB2,则可以使用日期、时间和时间戳类型的DB2字符串来表示时间,日期或时间的字符串表示形式可以是ISO、美国、欧洲或JIS格式。时间戳的字符串表示形式使用ISO格式。
生成发行 编辑本段
可信时间的生成:可信时间的原始来源来自国家权威时间部门(如国家授时中心),或使用国家权威时间部门认可的硬件和方法获得的时间。获取方式包括:使用一定的无线接收设备通过无线方式获取国家权威时间部门的时间发布,如长波信号、卫星信号等;使用某种时间同步协议从指定的网络地址获取时间;使用国家权威时间部门认证的某种硬件来获取时间,例如使用子时钟。
TSA接待方式:时间戳机构(TSA)通过电子邮件、文件传输、套接字和HTTP接受和发布时间戳申请。
相关技术 编辑本段
时区处理:时区是一套确定当地时间的规则,与特定地理区域的增量时间有关。操作系统使用用户系统上的区域设置将世界标准时间转换为用户的本地时区。
时钟同步:基于网络通信的时钟同步主要通过同步节点之间交换时间戳信息来完成。从每个节点的角度来看,它们有自己的时钟,并且可以从参考时钟中知道传输时间间隔。分布式系统中的所有节点定期更新其时钟值并维护与时间相关的信息的过程,以使每个节点显示的时间在适当更改后仍接近相同。
夏令时调整:夏令时(DST)是在美国和加拿大的大部分地区以及其他一些国家和地区实施的一小时时钟调整。Linux将DST偏移量添加到时间戳中。如果DST处于文件时间戳中指定的时间,Linux将添加偏移量,并且DST期间创建的文件总是提前一小时显示。Windows不关心文件所在的时间环境,并以相同的方式处理DST。如果当前系统时间包含DST偏移量,它会将DST偏移量添加到时间戳中。您也可以通过自己更改系统上的时间来修改夏令时的开始时间或结束时间。
散列算法:密码学中的哈希算法确保接收方收到的数据没有经过第三方攻击者篡改数据的完整性验证。其基本思想是通过哈希函数计算任意长度数据的短定长二进制值,这个结果称为哈希值。对数据进行任何修改后,计算出的哈希值都会不同,因此可以通过数据的哈希值来验证数据是否完整。
数字签名:时间戳是通过数字签名技术生成的数据,数字签名的过程如下:发送方使用哈希函数处理消息以形成固定长度的消息摘要,通过DSA算法计算其私钥和消息摘要以生成数字签名,然后将数字签名和消息一起发送。接收方使用相同的哈希函数计算消息以生成消息摘要,并使用DSA算法计算消息摘要和发送方的公钥以生成数字签名A,同时从接收的消息中获得数字签名B。如果数字签名A和数字签名B相等,则数字签名通过验证,否则验证失败。
相关应用 编辑本段
时间戳显示创建、交换、修改或删除某些信息的时间。它可以用来显示社交媒体帖子的发布日期、发送在线聊天和查看信息的日期以及数码相机拍照的日期。它还可以用于计算机系统、法律认证、区块链技术和数据管理。
区块链技术:区块链区块使用时间戳来确保交易的有效性,例如加密货币。在区块链技术中,数据以电子记录的形式永久存储,存储这些电子记录的文件称为数据块。区块链数据库允许全网的记录者在每个区块上加盖一个时间戳,该时间戳为区块链每个区块的信息生产增加了时间验证,每个数据的输入都追溯到来源,按时间顺序排列,经过验证,并确保数据是真实的,不可篡改的,从而证明了数据的原始性和所有权。
数据库管理:数据管理依靠时间戳来确保数据的完整性和质量。时间戳用于跟踪数据库管理系统中的数据变化。通过使用时间戳,数据库可以记录插入或更新记录的时间,从而实现高效的数据检索和审计。它们还用于实现时态数据库中基于时间的查询和数据版本控制。
计算机系统:在分布式系统中,时间戳用于管理并发操作并保持多个节点之间的一致性。Lamport时间戳和vector时间戳是分布式系统中排序事件的常用技术,它们允许进程协调操作并避免冲突。此外,时间戳可以帮助识别软件漏洞。通过分析日志文件中的时间戳和监控系统活动,安全专业人员可以检测可疑模式、潜在攻击媒介和异常行为。
法律认证:时间戳可用于数字版权保护。通过给数字内容打上时间戳,创作者可以证明他们的所有权和创作时间,并可以解决知识产权的法律纠纷。带有时间戳的数据可以作为版权归属的可靠证据。此外,数字合同和数字签名使用时间戳来显示文档的签署时间。
附件列表
词条内容仅供参考,如果您需要解决具体问题
(尤其在法律、医学等领域),建议您咨询相关领域专业人士。