## 客户端与服务端安全通讯
### 加密流程:
![客户端与服务端安全通讯](http://cdn.liuxf.live/20201223104046.jpg)
大致分为5步
1、客户端向服务端请求服务端的非对称公钥
2、服务端返还服务端非对称公钥(可捕获可见,可以截获服务端返还的公钥)
3、客户端自己也生成一套自己的非对称秘钥,用服务端的公钥加密自己的公钥发送到服务端(可捕获不可见,可以截获没有服务端私钥看不到客户端公钥)
4、服务端通过客户端公钥对通讯秘钥进行加密下发到客户端,客户端用私钥解密得到通讯秘钥(可捕获不可见,可以截获,没有客户端私钥,不能解析通讯秘钥)
5、双方通过通讯秘钥进行对称加密通讯(可捕获不可见)
### 扩展:
一 、
1、2、3 步是为了交换公钥(保护秘钥,用于保护传输秘钥)
4、步是为了下发传输秘钥
二、
可以双方约定一个根秘钥和一些注册参数,用于第一步的获取,提交安全性
可以在第五步以后传输的内容中加入加签、验签 以保证报文安全
服务端维护客户端所有秘钥和自己对应的秘钥对,可以现在每天拉取的次数和频率,调高安全性