加密算法发展简介

1:对称加密算法

客户端加密数据和服务端解密数据,使用的相同的秘钥:
固定秘钥:双方约定好一个固定秘钥;
随机秘钥:双方约定每次建立连接的时候,某固定BYTE为秘钥;

缺点:秘钥固定,容易被破解;

客户端 服务端 发送加密数据 1 数据解密 2 返回响应 3 数据解密 4 客户端 服务端

2:非对称秘钥算法

非对称加密有两个秘钥,一个公开的叫公钥,一个私藏的叫私钥;公钥加密后只能用私钥解开,反过来也一样;
缺点:1:公钥是公开的,一般不会用私钥加密,公钥解密;所以为了保证数据通信,客户端还需要把客户端公钥,发送给服务端;
2:每次需要使用秘钥对进行加解密,比较浪费时间;

客户端 服务端 公钥,私钥 建立连接请求 1 返回连接请求 2 发送公钥数据 3 发送使用公钥加密的数据 4 使用私钥进行解密 5 客户端 服务端

3:非对称与对称加密结合

先建立连接,来传输秘钥对的公钥和私钥;然后使用秘钥对来传输 对称加密的秘钥,后续传输数据再使用 对称加密算法;
缺点:对称加密的秘钥是一个随机数,存在被预测出来的可能性,尽管可能性非常低;

客户端 服务端 公钥,私钥 建立连接请求 1 返回连接请求 2 发送公钥数据 3 发送使用公钥加密的 对称秘钥 4 使用私钥解密 对称秘钥 5 使用对称加密算法传输数据 6 使用对称解密算法 数据解密 7 客户端 服务端

4:秘钥计算

客户端和服务端各自生成一个随机数发给对方,客户端再额外加密传输一个随机数给服务器,然后双方都用这三个随机数生产真正的秘钥;并且在正式传输数据之前,要先进行秘钥交互,确认双方计算出来的秘钥是一样的;

客户端 服务端 公钥,私钥 建立连接请求 1 返回连接请求 2 发送随机数1 3 发送随机数2 4 发送公钥 5 发送使用公钥加密的 随机数3 6 利用三个随机数,计算秘钥 7 利用三个随机数,计算秘钥 8 双方交换确认计算的秘钥一致 9 使用对称加密算法传输数据 10 使用对称解密算法 数据解密 11 客户端 服务端

缺点:会存在中间人攻击漏洞,即有一个中间人在客户端和服务端转发了所有的数据,但是客户端和服务端并不知情,导致数据泄漏;

客户端 中间人 服务端 发送数据 1 转发数据 2 发送数据 3 转发数据 4 客户端 中间人 服务端

5:数字证书

客户端和服务端利用公证人的身份进行非对称加密,利用hash值,进行数字签名加密验证;除了中间人偷到了公证人的私钥,否则中间人是没办法伪造 数字证书的;
利用数字证书加密的连接,都从http变为了https;

客户端 公证人 服务端 准备一队非对称加密的秘钥,,并公开公钥 1 登记自己的公钥,名称等信息 2 根据服务端信息,计算hash值, 用私钥把hash值进行加密,机密后的结构就是数字签名 3 返回数字证书,即把 登记信息和数字签名封装为一个新文件; 4 建立https连接请求 5 返回数字证书 6 把证书里面的信息也计算一遍hash值1; 利用公证人的公钥,将证书里面的数字签名进行解密,得到公证人计算的hash值2; 将hash值1和hash值2进行对比,如果相等则验证通过; 7 客户端 公证人 服务端

6:信任链

当客户端和服务端越来越多的时候,一个 公证人就忙不过来;就通过层层分包,设立多级公证人信息;

根证书1
二级证书1
二级证书2
三级证书1
三级证书2
三级证书3
三级证书4

以后在验证网站服务器证书时,就要先去验证证书的签发者,然后一层层向上验证,查看最终的签发者是否在操作系统安装的 根证书列表中;

一级公证人是安装的根证书,预先安装在我们的操作系统中;可通过‘“控制面板”->“证书” 进行查看
加密算法发展简介_第1张图片

你可能感兴趣的:(通讯网络,服务器,安全)