HTTPS协议:并不是一个新的协议,而是在HTTP协议基础上进行了一层加密
https协议就是基于ssl进行加密实现加密传输
https 加密流程,ssl 加密流程
目的:实现数据的安全传输
安全传输:需要考虑两个问题
1.身份验证问题:防止伪装
2.数据加密问题:防止监听
身份验证实现:
CA认证:通信双方在通信前先到权威机构请求给自己办法一个CA证书
CA证书(权威机构信息,自己的信息,。。。。。)
通信两方建立连接后,在通信之前先将证书发送给对方
收到对方的证书后,查看这个权威机构是否是自己信任的权威机构,如果是,则到权威机构进行这个公司的身份验证,验证通过后进行通信,不通过可以自行选择是否添加信任
身份验证通过,但是通信依然有可能被监听,存在风险,因此需要加密传输实现;
对称加密:加解密使用相同的密钥
优点:加解密效率高
缺点:密钥一旦被劫持加密形同虚设和
非对称加密:加密和解密使用不同的密钥
思路:通信中,每一端在通信前都可以生成一对密钥(公钥和私钥)在通信前,将公钥发送给对方,对方使用收到的公钥进行加密数据然后传输,自己收到数据后,使用私钥进行解密
实现算法:RSA加密算法–
优点:安全度更高
缺点:加解密效率低下
混合加密:
通信双方。先使用非对称加密保护对称密钥的协商过程。
对称密钥协商完毕后,使用对称密钥加密传输
https加密流程:(将ca认证和混合加密结合)
1.服务器先生成一对密钥(公钥和私钥)到权威机构请求颁发一个证书(权威机构,本身机构,公钥信息,到期时间。。。)
2.通信双方建立连接后,服务器将证书发送给客户端
3.客户端对证书进行解析,根据信息进行身份验证
4.身份验证通过后,使用公钥加密(一个随机数+自己支持的对称加密算法列表)发送给服务器。
5.服务器收到数据使用私钥进行解密,并且给客户端回复一个随机数+自己支持的对称加密算法列表。
6.双方通过自己的随机数与对方发送过来的随机数配合对称加密算法表进行计算得到一个对称密钥
7.往后通信使用对称密钥进行通信