写在前面
要不是学习https,咱可能也不会了解到这~
大家可以先看下这篇加密方式👉常见的加密方式,不然可能对本文章充满疑惑~
一、数字签名
1.介绍
签名是什么,是Signature(废话)
我们先把签名带入自己的日常生活中,签名用来保证所承诺的一些内容,在法律上,具有不可抵赖性~【一般是指签合同啦】
那么,网络中要什么签名???
网络中签名主要保证数据的完整性,主要指的是给数据签名。
这个完整性,一般是指的你发送的报文是不能被修改的~
2.如何实现签名
这就涉及到了加密技术,我们知道非对称加密是公钥加密私钥解密。数字签名也用到了对称加密技术。
具体是如何实现的,接着来看吧:
🎈1.首先Sender对要发送的文件,经过哈希函数的处理形成一个数据的摘要
🎈2.用自己手里的私钥对摘要进行加密,然后加自己的公钥,源文件,和加密后的摘要发送到Receiver
🎈3.Reciver用收到的公钥解密出原文的摘要,对接收的文件进行哈希函数处理,形成一个文件摘要,比较这两个文件摘要是否相同,不同,则说明源文件被修改,丢弃即可…
看到这里,是不是大概的了解了数字签名是如何实现的了~
其实,这里用公钥解密的过程不叫解密,而是较验证会更贴合场景一点。
一般我们都会称为私钥加密,公钥验证
二、数字认证
1.引入
通过数字签名技术,我们是实现了数据的完整性,但是,在传输过程中,如果有人伪造了公钥怎么办?如果判断公钥就是发送方的公钥呢?
于是我们引入了数字认证技术
2.介绍
数字认证就是用来标识通信双方的身份的~,和身份证的作用一样
如何实现数字认证呢?
目前主要采用的是选择相信第三方机构,一般我们称为CA。那又是如何实现的?
流程:
🎈1.Sender在发送数据前,先将自己的公钥交给CA,CA用自己的私钥对于Sender的公钥进行加密,形成属于Sender的公钥的签名
🎈2.Sender将自己的公钥,原数据,以及原数据的摘要发送到Receiver
🎈3.Receiver从CA获取CA的公钥,验证Sender的公钥是否被替换,接着再验证数据摘要是否被修改
聪明的你一定看出来,其实就是CA使用数字签名技术,对于公钥进行签名。那么CA就一定安全吗,CA的公钥也有被替换的可能性啊
这话是不假,但是CA还是较于安全的,因为当前CA签名的上面,还有CA对于当前的公钥进行签名…是一个树的结构。所以,想要破解还是相对于复杂的。
好了,本次分享就到这里,学完这些,我们就可以看到https的安全通信是如何实现了,那么我们下次再见~