证书学习(六)TSA 时间戳服务器原理 + 7 个免费时间戳服务器地址 ...

打印 上一主题 下一主题

主题 828|帖子 828|积分 2484



  • 时间戳在线工具: https://www.freetsa.org/index_zh.php#tcp
   背景:
  当我们在浏览器上进行数字署名的时候,时间戳服务(TSA)可以帮我们办理了如何证实签订时间的有效性标题,署名时间不可篡改。那么它的实现原理是什么呢?让我们一起来看下。
  一、简介

1.1 什么是时间戳服务器



  • 时间戳服务器,即 Time-Stamp Authority(TSA),是一种 用于为数字署名或其他数据提供时间戳的服务。时间戳服务器的主要作用是 确保数据在特定时间点的存在性和完整性,从而增加数字署名的法律效力和不能否认性。时间戳服务器 利用 RFC 3161 尺度 生成的时间戳令牌,确保了时间信息的可信度。
1.2 名词扩展



  • Time-Stamp Service:时间戳服务
  • Time-Stamp Token:时间戳标记
  • Trusted Third Part(TTP):可信第三方
  • Time-Stamp Authority(TSA):时间戳服务机构
1.3 用时间戳标记顺序

众所周知,对数据做数字署名可以保证其完整性,进行数据源鉴别,提供抵赖性,但这些还不够。
比方下面的场景:


  • 假设 A 和 B 由于发表了内容完全雷同的两篇小说作品,从而产生了著作权归属的争议。在这种情况下,两人都可以或许出示 “自己” 小说的署名,但对办理争端毫无作用,这是由于 缺少了判定著作权归属的紧张依据——时间先后顺序
再比方下面这个场景:


  • 假设 C 丢失了自己的私钥,于是向 CA 申请撤销了自己的证书。今后,D 声称 C 与自己签订了一项合同却未依约进行,且经验证,合同的数字署名是用 C 的私钥签订的,C 却标识该署名是自己的私钥丢失后有人冒充所为。已知 CA 签发的 CRL 中有证书撤销的时间,在这种情况下,如果能通过公道可靠渠道证实合同所签订时间,从而判定合同签订和证书撤销(私钥失效)的时间,那么标题就迎刃而解了
在数字业务中,标记一份文档出现的时间或一件事的发生顺序是很有必要的,这就像对原始数据加盖了一枚包含权势巨子时间信息的印章,故被称为 时间戳。在 PKI 中,时间戳服务可由第三方提供,并不失去公正性和权势巨子性。
时间戳服务提供的结果称为 时间戳标记,它将当前的时间(可以是一个代表顺序的数字)和原始数据绑定在一起,需要验证的时候可作为证据证实原始数据在时间戳标明的时间之前已经存在,根据时间的不可重复性,时间戳就可用来判定原始数据出现(或其代表的时间发生的)的顺序。
   什么是PKI?
  
      
  • PKI(Public Key Infrastructure,公钥基础设施)是一种用于创建、管理、分发、利用、存储和撤销数字证书及公钥的技能体系。PKI 的 主要目的是确保数字证书和公钥的安全性和可信度,广泛应用于网络安全、身份验证、数据加密和数字署名等领域。
  PKI 的根本组成:
  
      
  • 证书颁发机构(CA, Certificate Authority)  
  • 注册机构(RA, Registration Authority)  
  • 证书库(Certificate Repository)  
  • 证书吊销列表(CRL, Certificate Revocation List)  
  • 在线证书状态协议(OCSP, Online Certificate Status Protocol)  
  • 证书政策(CP, Certificate Policy)  
  • 证书实践声明(CPS, Certification Practice Statement)
  PKI 的工作流程:
  
      
  • 证书申请、证书签发、证书利用、证书吊销、证书更新。
  1.4 7 个免费TSA时间戳服务器地址(亲测可用)


  • http://timestamp.digicert.com
  • http://aatl-timestamp.globalsign.com/tsa/aohfewat2389535fnasgnlg5m23
  • https://timestamp.sectigo.com
  • http://timestamp.entrust.net/TSS/RFC3161sha2TS
  • http://tsa.swisssign.net
  • http://tsa.quovadisglobal.com/TSS/HttpTspServer
  • http://timestamp.apple.com/ts01
   时间戳地址的 利用方法 参考下面的 “三、代码实现”。
  1.5 RFC 3161 尺度



  • RFC 3161 尺度,界说了一种用于获取和验证时间戳的协议,旨在为数字署名和其他数据提供可信的时间戳服务。
RFC 3161 的主要内容:

  • 协议概述
         
    • RFC 3161 描述了一种时间戳协议(TSP),用于向时间戳服务器(TSA, Time Stamping Authority)请求时间戳,并验证时间戳的有效性。   
    • 该协议基于 X.509 公钥基础设施(PKI),确保时间戳的完整性和不能否认性。  
      
  • 时间戳请求
         
    • 生成请求:客户端生成时间戳请求(TimeStampRequest),其中包含待时间戳的数据的哈希值(如 SHA-256)。   
    • 请求格式:时间戳请求利用 ASN.1 编码格式,符合《RFC 3161》中界说的结构。  
      
  • 时间戳响应
         
    • 生成响应:时间戳服务器接收到请求后,生成时间戳令牌(TimeStampToken),包含哈希值、时间戳和服务器的数字署名。   
    • 响应格式:时间戳响应(TimeStampResponse)也利用 ASN.1 编码格式,包含时间戳令牌和状态信息。  
      
  • 时间戳令牌
         
    • 时间戳令牌包含以下信息:
             
      • 哈希值:请求中的数据哈希值。   
           
             
      • 时间戳:服务器生成时间戳的时间。     
      • 署名:利用时间戳服务器的私钥对哈希值和时间戳进行署名,确保时间戳的完整性和不能否认性。   
         
       
         
    • 格式:时间戳令牌通常是一个 CMS(Cryptographic Message Syntax)格式的消息。  

时间戳与 RFC 3161 的关系:

  • 确保时间信息的可信度
         
    • 时间戳服务器利用 RFC 3161 尺度生成的时间戳令牌,确保了时间信息的可信度。时间戳令牌中的署名由时间戳服务器的私钥生成,客户端可以通过服务器的公钥验证署名的正确性。  
      
  • 防止篡改
         
    • 时间戳令牌中的哈希值和时间戳通过数字署名绑定在一起,确保了数据的完整性和时间信息的不可篡改性。即使数据被篡改,署名验证也会失败。  
      
  • 法律效力
         
    • 在许多国家和地区,符合 RFC 3161 尺度的时间戳被视为具有法律效力的电子证据。时间戳可以用于证实数据在特定时间点的存在性和完整性,常用于数字署名、电子合同、版权保护等领域。  

<hr> 二、时间戳原理

2.1 时间戳服务工作流程

时间戳服务工作流程,如下图所示:


  • 用户对文件数据进行 Hash 择要处理;
  • 用户提出时间戳的请求,Hash 值被传递给时间戳服务器;
  • 时间戳服务器对哈希值和一个日期/时间进行署名,生成时间戳;
  • 时间戳数据和文件信息绑定后返还,用户进行下一步电子交易操作。
2.2 验证工作流程

验证工作流程,如下图所示:

  • 用户对文件数据进行 Hash 择要处理;
  • 用户将具偶然间戳的 Hash 发送给时间戳服务器;
  • 时间戳服务器验证具偶然间戳的 Hash;
  • 验证成功,获得带偶然间戳消息择要的 Hash,进行比较;验证失败,返回结果。
2.3 举个例子

结合例子来说明,假设 A 预备向网站运营者 B 提交作品,这时 A 需要向 B 证实作品完成的时间,这就需要一个满意以下条件的时间戳服务提供者 C:

  • 时间戳标记中提供的时间信息是 “权势巨子” 的。这里包含两层意思:
         
    • C 提供的日期和时间是正确的;   
    • C 只会用当时的真及时间标记,而不会故意标记虚假的信息。  
    简单来说,就是 C 必须是 “可信第三方”。基于 X.509 PKI,这点可以用 C 的证书来保证,即信赖了签订其证书的 CA,也就信赖了 C。
      
  • 时间戳标记可提供数据来源鉴别以及完整性保护,即B可确信时间戳标记来自C且传输过程中未被篡改,这可依赖数字署名来实现。一样平常情况下,利用非对称密码技能进行数字署名。

  • 时间信息与原文内容绑定在一起,以证实该时间正是C收到A此篇原文的时间。即,时间戳标记中要充分地包含原文的信息,加盖时间戳之后原文不应再有改动,岂论是自己做的改动还是别人篡改的。
为了即不透露原文又能反抗篡改,可以利用杂凑算法。A自己计算原文件的杂凑值并交给C加盖时间戳,在出示时间戳标记的时候,验证者B根据收到的文件计算杂凑值并与时间戳标记中的比较,如果雷同则证实与时间戳标记中的时间信息绑定的正是原文件。如许,如果修改原文,哪怕只有一个比特,杂凑值也会有显著的变革,而且其 碰撞自由(collision-free,或称“抗碰撞”,collision-resistant)的性质可避免他人或A自己在加盖时间戳之后对原始数据的伪造或篡改。
2.4 时间戳原理总结

根据以上原理,基于X.509 PKI的时间戳服务过程如下:

  • 用户对原始数据做杂凑运算。
  • 用户将杂凑值发给TSA
  • TSA将接收时间列在杂凑结果之后,并对整体进行数字署名。
  • TSA将带有数字署名的杂凑值和时间信息发回给用户。
<hr> 三、代码实现

3.1 curl 命令请求时间戳

利用 curl 命令请求时间戳时,入参和出参均为 ASN.1 的二进制格式。其中入参文件的生成方式可以参考 java 代码实现中的逻辑,也可以直接利用下面的地址下载 tsareq.bin,是已经生成好的时间戳请求文件。


  • 时间戳请求文件: https://share.weiyun.com/KvM6psTd
  1. curl -v -X POST
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

欢乐狗

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表