形象理解数字证书的基本安全功能
利用数字证书,可以实现在网络世界中保证4个基本的安全功能,分别是身份验证、保密性、完整性和抗抵赖性。下面形象地总结一下这4中特性以及实现的大概原理。
一、身份验证
我们说数字证书是“网络身份证”,显然的,首要任务是有力地证明我是谁这个问题。身份验证包括:验证我是不是确实拥有这个证书的私钥;这个证书是不是盗版的,即是否是权威机构(CA)颁发的;这个证书是不是在有效期内等。
举个例子,数字证书又俗称U盾,我想在家的电脑上登陆我的网上银行,那我插上U盾,打开网银登录网页,输入登录密码,点击登录。点这一下,程序干啥了?
首先,得验证我的登录密码对不对吧,好,对着呢。
在打开网银登录页面的时候呢,网银那边的服务器就生成一段随机数发到我电脑这边了,现在登录程序就拿我的U盾里的私钥给这段随机数加密,也叫签名。
最后,把我证书和签名一起送到服务器。
所有用户在验证数字签名之前,都应该先验证证书的有效性。
服务器收到后,用CA公钥来验证CA签名(证书的一部分)的真实性来验证是否权威。也即验证了我公钥的真实性。再通过CRL或者OCSP查询证书的状态就可以验证有效期。
然后进行签名校验,拿我的公钥去解密签名。得到的随机数和服务器留底的一比,一样的话就证明我的私钥是真的。
以上验证都通过后,就完成了对我的身份验证。
二、保密性
我想给你送个价值连城的宝贝,这肯定不能让别人截胡了,我就想只有你能收到,别人拿不到。这时就用上了数字信封。
灵魂画手配图:
我先用一个对称密钥把宝贝锁起来,上图的覆盖色对应用什么颜色的密钥加密的,小椭圆(锁孔)的颜色表示需要用什么颜色的密钥解锁。然后我拿个锦盒把我的对称密钥装起来,用你的公钥锁上。然后一起打包发快递给你。
你收到之后,先拿你的私钥把锦盒打开,取得里面的对称密钥,再拿对称密钥解锁,得到宝贝。
因为锦盒是用你的公钥锁的,只有你才有开锦盒的私钥,这就保证了只有指定的接收方你才能拿到宝贝,这就是保密性。
三、完整性
上面的保密性只能保证是你本人收到的,但却不能保证发送方我的身份真实性,以及我给你的东西有没有被人动过手脚。
保证完整性,有两个层面,首先保证确实是我发的,其次东西被别人改了能立马察觉。
(1)利用数字签名保证发件人身份
我用我的私钥对文本内容加密,这个过程就产生了数字签名,然后文本内容与数字签名一起打包发送。你收到后,先拿我的公钥去解密数字签名,能解开,就说明确实是我发的,没被人冒充。数字签名解开之后,就得到一份解密版文本,和原文一对比,就能判断有没有被篡改。
内容少点还好,但非对称密钥的加密解密过程是很慢的,内容一多就效率低下了。
(2)利用摘要算法保证内容被篡改立马察觉
摘要算法是啥?它将任意长度的输入消息数据转化成固定长度的数据输出,将复杂数据和简单数据的对应起来。实际上它是一个哈希算法,输入原文数据,输出哈希值。
简单来讲,它有几个重要的特征,第一,它不可逆的,就是说你想从摘要数据反推原始数据是非常难的;第二,它对输入数据变化非常敏感,哪怕你就改了个标点符号,我摘要数据都变得天差地别,一眼就看出来了;第三,不同输入得到相同输出的概率极低,很难用不同的输入数据伪造相同的摘要数据。
因此,摘要算法和数字签名结合,就能很好的保证数据的完整性。
我首先用摘要算法将原文计算成摘要数据,然后用我的私钥对摘要数据进行加密,形成数字签名。将数字签名附在原文底下一起发给你。
你收到后,先用我的公钥解开数字签名,能解开,说明确实是我发的;解开之后得到我做的摘要数据,然后你把原文用摘要算法计算一遍,得到你做的摘要数据,两个摘要数据对比,一致表示未被篡改。
四、抗抵赖性
一般正规的文件,签名下面必须写上签名的时间。比如一份产品测试验收文件,我是验收人,9月1日测试的时候我没认真看我就签名了,没写日期,第二天同事就发现了产品故障,找到我,我抵赖说那是我8月15签的名,那会产品确实是合格的。
数字签名只能保证确实是我这个人,但并不能确定什么时候签的。所以要使用时间戳服务。
通过数字签名技术将数据和时间绑定后的结果叫做时间戳,由权威的第三方机构TSA(time stamping authority)提供。
我先计算出原文的摘要数据,再用我的私钥进行加密,形成我的数字签名。然后发给TSA,TSA把当前时间附在我的数字签名上,再用TSA的私钥对数据进行签名,形成时间戳。
五、总结
一个可能的发送-接受流程如下:
形象理解数字证书的基本安全功能相关推荐
- 数字证书、签名到底是什么?这篇文章讲得太好了
前段时间整理了关于数字证书和数字签名的一些内容,今天整理一下发出来. 我们都知道 HTTP 协议都是明文传输内容,为了保证数据传输的安全,HTTPS 协议就应运而生了,但它其实并不是一个全新的协议,而 ...
- 基于开源CA系统ejbca community 6.3.1.1构建私有CA管理数字证书
最后更新于2017年01月24日 一.为什么 为什么写这篇文章?ca是什么?数字证书是什么?ejbca又是什么? 让我们从http与https说起.http是超文本传输协议(HyperText Tra ...
- SSL数字证书是什么?
SSL数字证书是什么? 现在是一个网络发达的时代,网站也开始变得非常的普遍,很多人在创业或者是其他事情中都会用到网站,但是很多朋友可能对于网站中的一些安全证书不太了解.SSL数字证书就是其中的一种,所 ...
- 动态口令与数字证书简介
1.动态口令 动态口令,又叫动态令牌.动态密码.20 世纪80 年代初,美国科学家LeslieLamport 针对静态口令认证的缺陷,首次提出了利用散列函数产生动态口令(OTP:One Time Pa ...
- 什么是RSA国产数字证书?
一位朋友向我打听什么是RSA国产证书? 我们用的较多说法是,国际算法的RSA证书,国密算法的SM2证书,那么有没有RSA国产证书呢? RSA国产证书的提法并不标准,它来源一个安全通告,2019年11月 ...
- 消息摘要(Digest),数字签名(Signature),数字证书(Certificate)是什么?
1. 消息摘要(Digest) 1. 什么是消息摘要? 对一份数据,进行一个单向的 Hash 函数,生成一个固定长度的 Hash 值,这个值就是这份数据的摘要,也称为指纹. 2. 摘要算法 常见的摘要 ...
- SSL数字证书(二)使用makecert.exe签发证书
数字证书原理(〇)认识SSL SSL数字证书(一)CA.根证书与数字证书 SSL数字证书(二)使用makecert.exe签发证书 SSL数字证书(三)使用 openssl 生成证书 首先放出几个参考 ...
- 关于数字证书理解的简单整理以及12306站点证书简单分析
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/sundacheng1989/article/details/25540601 首先简单理解一下什么是 ...
- 【数据安全】一、通俗理解数字签名,数字证书和https
通俗理解数字签名,数字证书和https 前言 最近在开发关于PDF合同文档电子签章的功能,大概意思就是在一份PDF合同上签名,盖章,使其具有法律效应.签章有法律效应必须满足两个条件: 能够证明签名,盖 ...
- 数字签名与数字证书形象解释
前言 先看一下百度百科对数字签名和数字证书的解释: 数字签名: 将 报文按双方约定的HASH 算法计算得到一个固定位数的 报文摘要.在 数学上保证:只要改动报文中任何一位,重新计算出的 报文摘要值就会 ...
最新文章
- 尚硅谷Docker---1、docker杂记
- 谁动了我的奶酪?--java实例初始化的顺序问题
- Blocking/Non-Blocking VS Sync/Async VS Overlapped
- 利用BP神经网络预测水道浅滩演变
- Nlpir Parser智能语义平台全文搜索
- python生成.exe文件
- linux page buffer cache深入理解
- for循环次数太多的时间优化_for循环关于对象长度优化思考
- 关于现代计算机的知识,从资本经济到知识经济:现代计算机的知识革命
- 第014讲 CSS 定位
- 【优化调度】基于matlab粒子群算法求解水火电系统经济、环境运行单目标调度优化问题【含Matlab源码 1138期】
- C#习题——三角形或者长方形的边长,计算其周长和面积
- 【转ITAA上justdoit的一篇帖子】 验证OSPF中对外部路由路由的选择规则【留档】
- ecshop 模版写php,ecshop 模板直接使用运算符
- 计算机编程年纪大了会被淘汰吗,这些“吃青春饭”的专业,年纪大了容易被淘汰,应届生更受欢迎...
- Android手机APN简介
- 微信小程序 模仿华为音乐 列表界面
- 泵站和水闸无人值守系统
- 手机iphone项-测试崩溃问题总结
- redis杂乱小知识