IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 形象理解数字证书的基本安全功能 -> 正文阅读

[网络协议]形象理解数字证书的基本安全功能

利用数字证书,可以实现在网络世界中保证4个基本的安全功能,分别是身份验证、保密性、完整性和抗抵赖性。下面形象地总结一下这4中特性以及实现的大概原理。

一、身份验证

我们说数字证书是“网络身份证”,显然的,首要任务是有力地证明我是谁这个问题。身份验证包括:验证我是不是确实拥有这个证书的私钥;这个证书是不是盗版的,即是否是权威机构(CA)颁发的;这个证书是不是在有效期内等。

举个例子,数字证书又俗称U盾,我想在家的电脑上登陆我的网上银行,那我插上U盾,打开网银登录网页,输入登录密码,点击登录。点这一下,程序干啥了?

首先,得验证我的登录密码对不对吧,好,对着呢。

在打开网银登录页面的时候呢,网银那边的服务器就生成一段随机数发到我电脑这边了,现在登录程序就拿我的U盾里的私钥给这段随机数加密,也叫签名。

最后,把我证书和签名一起送到服务器。

所有用户在验证数字签名之前,都应该先验证证书的有效性。

服务器收到后,用CA公钥来验证CA签名(证书的一部分)的真实性来验证是否权威。也即验证了我公钥的真实性。再通过CRL或者OCSP查询证书的状态就可以验证有效期。

然后进行签名校验,拿我的公钥去解密签名。得到的随机数和服务器留底的一比,一样的话就证明我的私钥是真的。

以上验证都通过后,就完成了对我的身份验证。

二、保密性

我想给你送个价值连城的宝贝,这肯定不能让别人截胡了,我就想只有你能收到,别人拿不到。这时就用上了数字信封。

灵魂画手配图:

我先用一个对称密钥把宝贝锁起来,上图的覆盖色对应用什么颜色的密钥加密的,小椭圆(锁孔)的颜色表示需要用什么颜色的密钥解锁。然后我拿个锦盒把我的对称密钥装起来,用你的公钥锁上。然后一起打包发快递给你。

你收到之后,先拿你的私钥把锦盒打开,取得里面的对称密钥,再拿对称密钥解锁,得到宝贝。

因为锦盒是用你的公钥锁的,只有你才有开锦盒的私钥,这就保证了只有指定的接收方你才能拿到宝贝,这就是保密性。

三、完整性

上面的保密性只能保证是你本人收到的,但却不能保证发送方我的身份真实性,以及我给你的东西有没有被人动过手脚。

保证完整性,有两个层面,首先保证确实是我发的,其次东西被别人改了能立马察觉。

(1)利用数字签名保证发件人身份

我用我的私钥对文本内容加密,这个过程就产生了数字签名,然后文本内容与数字签名一起打包发送。你收到后,先拿我的公钥去解密数字签名,能解开,就说明确实是我发的,没被人冒充。数字签名解开之后,就得到一份解密版文本,和原文一对比,就能判断有没有被篡改。

内容少点还好,但非对称密钥的加密解密过程是很慢的,内容一多就效率低下了。

(2)利用摘要算法保证内容被篡改立马察觉

摘要算法是啥?它将任意长度的输入消息数据转化成固定长度的数据输出,将复杂数据和简单数据的对应起来。实际上它是一个哈希算法,输入原文数据,输出哈希值。

简单来讲,它有几个重要的特征,第一,它不可逆的,就是说你想从摘要数据反推原始数据是非常难的;第二,它对输入数据变化非常敏感,哪怕你就改了个标点符号,我摘要数据都变得天差地别,一眼就看出来了;第三,不同输入得到相同输出的概率极低,很难用不同的输入数据伪造相同的摘要数据。

因此,摘要算法和数字签名结合,就能很好的保证数据的完整性。

我首先用摘要算法将原文计算成摘要数据,然后用我的私钥对摘要数据进行加密,形成数字签名。将数字签名附在原文底下一起发给你。

你收到后,先用我的公钥解开数字签名,能解开,说明确实是我发的;解开之后得到我做的摘要数据,然后你把原文用摘要算法计算一遍,得到你做的摘要数据,两个摘要数据对比,一致表示未被篡改。

四、抗抵赖性

一般正规的文件,签名下面必须写上签名的时间。比如一份产品测试验收文件,我是验收人,9月1日测试的时候我没认真看我就签名了,没写日期,第二天同事就发现了产品故障,找到我,我抵赖说那是我8月15签的名,那会产品确实是合格的。

数字签名只能保证确实是我这个人,但并不能确定什么时候签的。所以要使用时间戳服务。

通过数字签名技术将数据和时间绑定后的结果叫做时间戳,由权威的第三方机构TSA(time stamping authority)提供。

我先计算出原文的摘要数据,再用我的私钥进行加密,形成我的数字签名。然后发给TSA,TSA把当前时间附在我的数字签名上,再用TSA的私钥对数据进行签名,形成时间戳。

五、总结

一个可能的发送-接受流程如下:

?

?

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-11-14 22:06:46  更:2021-11-14 22:07:16 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 5:46:20-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码