数字签名时间戳服务器的原理

时间戳服务工作流程:

◆ 用户对文件数据进行Hash摘要处理;

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

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

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

验证工作流程 

一、用时间戳标记顺序

时间戳服务:time-stamp service
时间戳标记:time-stamp token
可信第三方:trusted third part,TTP
时间戳服务机构:time-stamp authority,TSA

我们知道,对数据做数字签名可以保证其完整性,进行数据源鉴别,提供抗抵赖性,但这些还不够。

比如:假设A和B因为发表了内容完全相同的两篇小说作品,从而产生了著作权归属的争议。在这种情况下,两人都能够出示“自己的”小说的签名,但对解决争端毫无作用,这是因为缺少了判断著作权归属的重要依据——时间先后顺序。

再比如:假设C丢失了自己私钥,于是向CA申请撤销了自己的证书。此后,D声称C与自己签订了一项合同却未依约执行,且经验证,合同的数字签名是用C的私钥签署的,C却表示改签名是自己的私钥丢失后有人冒充所为。已知CA签发的CRL中有证书撤销的时间,在这种情况下,如果能通过合理可靠渠道证明合同所签订时间,从而判定合同签订和证书撤销(私钥失效)的时间,那么问题就迎刃而解了。

在数字业务中,标记一份文档出现的时间或一件事的发生顺序是很有必要的,这就像对原始数据加盖了一枚包含权威时间信息的印章,故被称为“时间戳”。在PKI中,时间戳服务可由第三方提供,并不失去公正性和权威性。

时间戳服务提供的结果称为“时间戳标记”,它将当时的时间(可以是一个代表顺序的数字)和原始数据绑定在一起,需要验证的时候可作为证据证明原始数据在时间戳标明的时间之前已经存在,根据时间的不可重复性,时间戳就可用来判断原始数据出现的(或其代表的时间的发生的)顺序。

二、时间戳原理

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

1、时间戳标记中提供的时间信息是“权威”的。这里包含两层意思:C提供的日期和时间是准确的;C只会用当时的真实时间标记,而不会故意标记虚假的信息。简单说来,就是C必须是“可信第三方”。基于X.509 PKI,这点可用C的证书来保证,即相信了签署其证书的CA,也就相信了C。

2、时间戳标记可提供数据来源鉴别以及完整性保护,即B可确信时间戳标记来自C且传输过程中未被篡改,这可依靠数字签名来实现。一般情况下,使用非对称密码技术进行数字签名。

3、时间信息与原文内容绑定在一起,以证明该时间正是C收到A此篇原文的时间。即,时间戳标记中要充分地包含原文的信息,加盖时间戳之后原文不应再有改动,不论是自己做的改动还是别人篡改的。

为了即不透露原文又能抵抗篡改,可以使用杂凑算法。A自己计算原文件的杂凑值并交给C加盖时间戳,在出示时间戳标记的时候,验证者B根据收到的文件计算杂凑值并与时间戳标记中的比较,如果相同则证明与时间戳标记中的时间信息绑定的正是原文件。这样,如果修改原文,哪怕只有一个比特,杂凑值也会有显著的变化,而且其“碰撞自由”(collision-free,或称“抗碰撞”,collision-resistant)的性质可避免他人或A自己在加盖时间戳之后对原始数据的伪造或篡改。

根据以上原理,基于X.509 PKI的时间戳服务过程如下:
1、用户对原始数据做杂凑运算。
2、用户将杂凑值发给TSA

3、TSA将接收时间列在杂凑结果之后,并对整体进行数字签名。

4、TSA将带有数字签名的杂凑值和时间信息发回给用户。

三、时间戳服务机构(TSA)

TSA拥有用于数字签名的私钥和CA签署的数字证书,其证书除了是合法的末端实体证书以外,还必须满足以下两个条件:

1、必须含有Extended Key Usage扩展,并且KeyPurposeId字段等于1.3.6.1.5.5.7.3.8,表明该证书主体可以担任TSA,该密钥可以用于时间戳服务。
2、如果含有Key Usage扩展,则digitalSignature位必须等于1,表明对应的密钥可用作数字签名。

另外,TSA也可以有多个策略,同一个TSA可以根据不同的策略拥有多个签名算法,对应多个有不同安全需求的场景。

用户与TSA的通信过程很简单:
1、用户向TSA发送时间戳请求
2、TSA返回包含时间戳标记或出错信息的时间戳应答。
 

参考:中宇万通时间戳服务器 - 时间戳服务器 - 北京中宇万通科技股份有限公司

参考:数字证书基础知识:时间戳服务简介,时间戳服务为服务器端和客户端应用提供可信的时间证明

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/496110.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

android x86 笔记本卡屏,笔记本死机卡屏怎么办

笔记本死机卡屏的解决方法:首先按住键盘上ctrlaltdel,弹出任务管理器;然后在弹出任务管理器中选择explorer.exe;接着右键点击explorer.exe,在弹出菜单中选择“结束进程”;最后输如explorer.exe即可。首先&a…

scrapy 伪装代理和 fake_userAgent 的使用

From:https://www.cnblogs.com/hellangels333/p/8918938.html fake-useragent 下载 和 使用方法:https://pypi.org/project/fake-useragent 伪装浏览器代理 在爬取网页是有些服务器对请求过滤的不是很高可以不用ip来伪装请求直接将自己的浏览器信息给伪…

readyState的五种状态详解【转】

在《Pragmatic Ajax A Web 2.0 Primer 》中偶然看到对readyStae状态的介绍,感觉这个介绍很实在,摘译如下: 0: (Uninitialized) the send( ) method has not yet been invoked. 1: (Loading) the send( ) method has been invoked, request i…

【读书笔记】《框架设计(第2版)CLR Via C#》中两个比较有趣的知识点

本季度公司要求阅读《框架设计(第2版)CLR Via C#》这本书,由于前两个月一直很忙,也没有时间阅读,偶尔阅读也是很晚回家以后临睡前拿起这经典之作读那么一个小节。最近利用周末可以说一鼓作气的看了大半本,感…

Python 使用 Scrapy 发送 post 请求的坑

From:https://www.jb51.net/article/146769.htm 使用 requests 发送 post 请求 先来看看使用requests来发送post请求是多少好用,发送请求 Requests 简便的 API 意味着所有 HTTP 请求类型都是显而易见的。 例如,你可以这样发送一个 HTTP POST …

Effective Java~46. 优先选择Stream 中无副作用的函数

纯函数&#xff08;pure function&#xff09;的结果仅取决于其输入&#xff1a;它不依赖于任何可变状态&#xff0c;也不更新任何状态。 坏味道 // Uses the streams API but not the paradigm--Dont do this! Map<String, Long> freq new HashMap<>(); try (S…

android applybatch,android – 使用applyBatch插入成千上万的联系人条目很慢

我正在开发一个应用程序&#xff0c;我需要插入大量的联系人条目。在当前时间约600个联系人&#xff0c;共有6000个电话号码。最大的联系人有1800个电话号码。截至今天的状态是&#xff0c;我创建了一个自定义帐户来保存联系人&#xff0c;因此用户可以选择在联系人视图中查看联…

[译]How to make searching faster

Here are some things to try to speed up the seaching speed of your Lucene application. Please see ImproveIndexingSpeed for how to speed up indexing. 以下是一些尝试提高lucene程序检索速度的方法. 如果需要提高索引速度,请看提高索引速度. Be sure you really need …

8个最高效的Python爬虫框架,你用过几个?

From&#xff1a;https://segmentfault.com/a/1190000015131017 1.Scrapy Scrapy是一个为了爬取网站数据&#xff0c;提取结构性数据而编写的应用框架。 可以应用在包括数据挖掘&#xff0c;信息处理或存储历史数据等一系列的程序中。。用这个框架可以轻松爬下来如亚马逊商品信…

android oreo 源码,android – Oreo:如何在源代码中找到所有受限制的系统调用?

哪些Syscalls在Android 8.0 Oreo中受限制&#xff1f;编辑&#xff1a;Syscall过滤背景过滤本身是Linux内核提供的标准功能,称为seccomp.所有AOSP都使用此功能来过滤上面链接的应用黑名单中列出的系统调用.脚本处理将黑名单列入特定于平台的自动生成过滤器,然后将其提供给secco…

Effective Java~57. 将局部变量的作用域最小化

优先选择 for 循环而不是 while 循环 例如&#xff0c;下面是遍历集合的首选方式 // Preferred idiom for iterating over a collection or array for (Element e : c) { ... // Do Something with e } 如果需要在循环中调用 remove 方法&#xff0c;首选传统的 for 循环代…

300+Jquery, CSS, MooTools 和 JS的导航菜单资源

如果你是网站前端开发人员&#xff0c;那么对你来说&#xff0c;也许做一个漂亮导航菜单会很得心应手。本文要为大家总结各种导航菜单的资源&#xff0c;以便让大家的网站前端开发的工作更方便更快速&#xff0c;只要选择现成的例子就可以应用于自己的网站了。本文收集的这些资…

轻量级分布式任务调度平台 XXL-JOB

From&#xff1a;https://www.cnblogs.com/xuxueli/p/5021979.html github 地址 及 中文文档地址&#xff1a;https://github.com/xuxueli/xxl-job 《分布式任务调度平台XXL-JOB》 一、简介 1.1 概述 XXL-JOB是一个轻量级分布式任务调度平台&#xff0c;其核心设计目标是开发…

畅玩4c刷android 9.0,华为畅玩4C电信版 CyanogenMod 13.0_Android_6.0.1 【HRT_chiwahfj】

本帖最后由 chiwah渔夫 于 2016-9-9 22:31 编辑【基本信息】ROM名称&#xff1a;华为畅玩4C电信版 CyanogenMod 13.0_Android_6.0.1ROM大小&#xff1a;617M适配版本&#xff1a;CyanogenMod 13.0_android_6.0.1测试机型&#xff1a;华为畅玩4C电信版作者简介&#xff1a;HRT团…

Effective Java~58. for-each 循环优先于传统的for 循环

传统的 for循环来遍历一个集合: // Not the best way to iterate over a collection! for (Iterator<Element> i c.iterator(); i.hasNext(); ) { Element e i.next();... // Do something with e } 迭代数组的传统 for 循环的实例 // Not the best way to iterate …

近期课余目标

http://acm.pku.edu.cn/JudgeOnline/ 按这个顺序做&#xff0c; 这些都是入门的水题 一.基本算法: (1)枚举. (poj1753,poj2965) (2)贪心(poj1328,poj2109,poj2586) (3)递归和分治法. (4)递推. (5)构造法.(poj3295) (6)模拟法.(poj1068,poj2632,poj1573,poj2993,poj2996) 二.图算…

html语言鼠标悬停特效,CSS3鼠标悬停文字幻影动画特效

这是一款CSS3鼠标悬停文字幻影动画特效。该特效利用before和after伪元素来制作当鼠标悬停在超链接文本上的时候的幻影效果。使用方法在页面中引入bootstrap.css、jquery和photoviewer.js文件。HTML结构在页面中添加一个元素&#xff0c;并设置它的data-hover属性和它的显示文字…

Python 爬虫 实例项目 大全

Github Python 爬虫&#xff1a;https://github.com/search?qpython爬虫 32个Python爬虫项目让你一次吃到撑&#xff1a;https://www.77169.com/html/170460.html 今天为大家整理了32个Python爬虫项目。 整理的原因是&#xff0c;爬虫入门简单快速&#xff0c;也非常适合新入…

Effective Java~23. 类层次优于标签类

标签类&#xff0c;包含一个标签属性&#xff08;tag field&#xff09;&#xff0c;表示实例的风格 // Tagged class - vastly inferior to a class hierarchy! class Figure {enum Shape { RECTANGLE, CIRCLE };// Tag field - the shape of this figurefinal Shape shape;/…

领导之所以是领导

最近系统很不安生&#xff0c;故障频出&#xff0c;12月30日下午15&#xff1a;00系统所有工单都无法在网元开通&#xff0c;用户缴费不能开机&#xff0c;只好手工执行&#xff0c;直到23&#xff1a;30才恢复。1月1日某个业务平台执行工单异常缓慢&#xff0c;导致系统1万多工…