1.时间戳服务器TSA的概念:
作为一个权威的、可信赖的、公正的第三方数字证书颁发机构,其时间戳服务就是将经过时间戳服务器签名的一个可信赖的日期和时间与特定电子数据绑定在一起,为服务器端和客户端应用提供可信的时间证明。
2.网上能看到的泛滥的时间戳工作示意图:
我之前找到的资料里都有这个图。这个图从概念上讲述了时间戳服务的流程。但是如果我们要从代码上模拟一个TSA出来,这个图并没有本质上的帮助。
3.网上能找到的另一个泛滥的"时间戳服务工作流程":
1.用户对文件数据进行Hash摘要处理
2.用户提出时间戳的请求,Hash值被传递给时间戳服务器
3.时间戳服务器对哈希值和一个日期/时间记录进行签名,生成时间戳
4.时间戳数据和文件信息绑定后返还,用户进行下一步电子交易操作
那么我们都知道了TSA就是把时间绑定到文件的摘要中,可是怎么绑定?过程如何?
wikipedia为我们解密了这个流程,下面2幅图可以很清晰的看出具体的操作:
第一幅是加时间戳的过程:
第二幅是时间戳验证的过程
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.相关资料:
分享到:
相关推荐
一片数字时间戳系统的硕士论文:本论文将在介绍已有数字时问戳技术的基础上,对时间戳系统的描述和定义进行分析,并着重对数字时间戳的安全性和效率方面进行了改进。
时间戳记 RFC3161作为Java HTTPServlet的pki时间戳服务// TODO实现了所有TimeStamp条目的区块链数据库?
pki_java相关代码实现,有兴趣的可以看下
PKI体系具体流程图解,通俗易懂,很有用
本PPT详细介绍的PKI公开密钥体系的加解密过程、数字签名的过程,并说明如何获取数字证书以及数字证书的备份、导入等操作。
HTTPS权威指南:在服务器和Web应用上部署SSL&TLS;和PKI
介绍了PKI体系的一列知识,对大家了解密钥很有好处! 是一本介绍密钥体系相关知识的好书!
基于Elgamal实现的PKI算法,实现了CA功能,利用CA进行发布密钥,并对密钥进行认证,可以进行加密。
这是ISO7816和相关PKI标准的开源Java Card实现。 一个根据ISO7816规范[3]的第15部分存储PKI文件的ISO7816文件系统:私钥目录,证书目录,CA和用户证书等。下载所有文件,您可以访问:
全书共32章,分6篇,主要内容包括pki基础知识、openssl开发、crytoapi开发、 java security开发、电子商务网站应用、pki技术应用等,涉及c语言、java语言、jsp、asp/asp.net、php等开发语言。为了方便读者深入了解...
PKI认证体系原理,对PKI体系及应用的简要说明
PKI作为一种安全基础设施,可为不同的用户按不同的安全需求提供多种安全服务,主要包括认证、数据完整性、数据保密性、不可否认性、安全时间戳和存取控制等服务。而安全认证服务融合了上述服务中所采用的主要技术,...
书中具体内容包括:密码学基础,TLS协议,PKI体系及其安全性,HTTP和浏览器问题,协议漏洞;最新的攻击形式,如BEAST、CRIME、BREACH、Lucky 13等;详尽的部署建议;如何使用OpenSSL生成密钥和确认信息;如何使用...
大飞哥网络安全第一阶段课程,适合0基础/初学者体系化学习,也适合老手巩固基础观看,希望大家在学习过程中理解技术原理,为更深层次的防御攻击等学习打好基础。最好别用mac,好多工具不兼容。
介绍我国PKI研究的架构,电子政务PKI,研究现状。
介绍pki-ca体系最全面最简单的一份ppt
全书共32章,分6篇,主要内容包括pki基础知识、openssl开发、crytoapi开发、 java security开发、电子商务网站应用、pki技术应用等,涉及c语言、java语言、jsp、asp/asp.net、php等开发语言。为了方便读者深入了解...
全书共32章,分6篇,主要内容包括pki基础知识、openssl开发、crytoapi开发、 java security开发、电子商务网站应用、pki技术应用等,涉及c语言、java语言、jsp、asp/asp.net、php等开发语言。为了方便读者深入了解...
基于PKI的Web单点登录系统的设计与实现