`

PKI体系简易JAVA实现(一):时间戳服务器TSA

阅读更多

1.时间戳服务器TSA的概念:

作为一个权威的、可信赖的、公正的第三方数字证书颁发机构,其时间戳服务就是将经过时间戳服务器签名的一个可信赖的日期和时间与特定电子数据绑定在一起,为服务器端和客户端应用提供可信的时间证明。

 

2.网上能看到的泛滥的时间戳工作示意图:

代码签名证书时间戳

我之前找到的资料里都有这个图。这个图从概念上讲述了时间戳服务的流程。但是如果我们要从代码上模拟一个TSA出来,这个图并没有本质上的帮助。

 

3.网上能找到的另一个泛滥的"时间戳服务工作流程":

1.用户对文件数据进行Hash摘要处理

2.用户提出时间戳的请求,Hash值被传递给时间戳服务器

3.时间戳服务器对哈希值和一个日期/时间记录进行签名,生成时间戳

4.时间戳数据和文件信息绑定后返还,用户进行下一步电子交易操作

 

那么我们都知道了TSA就是把时间绑定到文件的摘要中,可是怎么绑定?过程如何?

wikipedia为我们解密了这个流程,下面2幅图可以很清晰的看出具体的操作:

第一幅是加时间戳的过程

File:Trusted timestamping.gif

 

第二幅是时间戳验证的过程

File:Checking timestamp.gif

 

4.从图中可以总结出的TSA详细流程:

盖时间戳:

(1) 对欲发送的文件做Hash得到消息摘要

(2) 将消息摘要发送给TSA

(3) TSA把 (消息摘要+当前时间)—》Hash = 带有时间戳的消息摘要的hash值

(4) 将带有时间戳的消息摘要hash值 用TSA的私钥加密

(5) 将 私钥加密后的数据 + 明文时间 (就是第3步的那个“当前时间”) 返回给用户A

(6) 用户A爱怎么玩怎么玩。。。

 

时间戳验证:

(1) 用户B收到了用户A加入了TSA私钥加密的消息时间摘要的消息,把这个TSA时间戳拿出来(涉及其他解密,这里略去)

(2) 接下来这步在我们个人的简易实现里是没有的: 将TSA私钥加密的消息时间摘要重新发回TSA验证此摘要真实性

(3) 验证真的是那个TSA发布的,然后就拿TSA的公钥对 "TSA私钥加密的消息时间摘要"中的 私钥加密后的数据 进行解密,明文时间留着备用

(4) 解密完得到   带有时间戳的消息摘要的hash值 (标准值)

(5) 使用收到的文件解密完再次hash得到消息摘要

(6)  (消息摘要+当前时间)—》Hash = 带有时间戳的消息摘要的hash值 (验证值)

(7) 标准值 ?= 验证值 可以验证消息是否受到重放攻击等

 

这样,有了详细的流程,用JAVA模拟TSA加盖时间戳的代码就很容易实现了。代码之后附上。

 

5.相关资料:

 

Trusted timestamping:http://en.wikipedia.org/wiki/Trusted_timestamping

 

1
1
分享到:
评论
1 楼 u011110982 2017-12-22  
楼主,代码呢?

相关推荐

    时间戳服务器并行数据处理的设计与实现.pdf

    文章《时间戳服务器并行数据处理的设计与实现》主要讨论了数字时间戳技术在信息安全领域的应用,以及为提升系统性能,如何在时间戳服务器(Timestamp Server, TSS)中实现高效的数据处理。文章首先介绍了数字时间戳...

    数字时间戳协议RFC的设计与实现

    在数字时间戳服务中,PKI确保了TSA的公钥能够被验证,从而使客户端能够确认时间戳的有效性。 ##### 时间戳权威(TSA) 时间戳权威(TSA)负责接收用户的请求,并为其提供时间戳服务。TSA必须具备高度的信任度,通常由...

    LINUX平台下公钥基础设施(PKI)的研究.pdf

    总的来说,LINUX平台上的PKI研究深入探讨了PKI的体系结构、实现过程以及安全模型,对于理解如何在开放源码环境中构建安全网络环境具有重要参考价值。这一研究也强调了PKI在电子商务和电子政务中的关键作用,以及在...

    timestamp-standard.zip

    2. **JAVA实现TSA的API和库**:如Java Cryptography Extension (JCE)和Bouncy Castle库的使用方法,以及如何创建和配置TSA服务器。 3. **PDF签章的流程**:如何使用JAVA API对PDF文档进行签名,以及如何检查和验证...

    公钥基础设施PKI篇

    例如,HTTPS协议就利用PKI技术,通过SSL/TLS协议实现服务器和客户端之间的安全通信,确保数据在传输过程中不被窃取或篡改。 总结起来,公钥基础设施PKI是一种通过数字证书和公钥加密技术保障网络安全的框架,它涉及...

    timestamp:RFC3161中指定的Go时间戳协议(TSP)实现

    Go 的 RFC3161 时间戳协议 (TSP) 包 Go的时间戳协议(TSP)软件包 一般的 包时间戳实现了 RFC3161(Internet X.509 公钥基础设施时间戳协议 (TSP))中指定的时间戳协议 (TSP)。

    TSAclientLIB-开源

    RFC3161,全称“Internet X.509 Public Key Infrastructure Time-Stamp Protocol (TSP)”,是互联网工程任务组(IETF)制定的一个标准,定义了如何使用公钥基础设施(PKI)来生成和验证时间戳。这个协议允许用户在...

    电子商务安全基础-ppt(中职)第5章-数字证书与PKI技术.pptx

    数字时间戳服务(TSA)由时间戳权威提供,可以证明文件在特定时间的存在,防止事后伪造,增加了交易的法律效力和时间的不可篡改性。 总结起来,数字证书和PKI技术是电子商务安全的基础,它们通过数字签名和相关算法...

    itextpdf签章示例

    在实际应用中,你可能还需要处理一些额外的细节,如处理多个签章、设置时间戳服务(TSA)以记录签章的时间,以及处理不同类型的证书存储(如JKS或PKCS12)。 总结一下,iTextPDF提供了一套完整的解决方案来实现PDF...

    密码技术与公钥基础设施

    6. 时间戳服务(Time-Stamping Authority,TSA):为数字签名提供时间戳,确保即使CA失效,签名仍然有效。 在实际应用中,例如HTTPS协议,浏览器通过验证服务器的数字证书,确保与之通信的是预期的网站,并且通信...

Global site tag (gtag.js) - Google Analytics