https协议
首先它并不是一个新的协议,这里的s指的是ssl(secure sockets layer),套接字安全层,就是加密后的http协议,http协议是一个字符串明文协议,通信很容易被监听劫持,不安全,因此加密能够保证安全可靠传输
https加密流程
身份验证
需要保证与你通信的这个服务器真的就是那个正确的服务器
思想
找到一个第三方权威机构(双方都信任的机构),进行身份验证;
实现
CA认证(电子认证服务),需要被验证身份一方,去权威机构颁发一个CA证书(权威机构信息,当前的机构信息,有效期,公钥信息…)在连接建立完成,通信前,需要被验证身份的一方,将证书发送给对端,对端收到证书,解析证书,得到各个元素信息
- 判断权威机构是否是自己信任的机构
- 通信的机构是否是想要通信的机构
- 向权威机构进行当前通信机构的身份认证
- 验证成功后通信
加密传输
身份验证成功后,只能保证与你通信的这个人是对的,但是没法保证通信过程是否被黑客监听,所以我们对传输进行加密,就算被监听劫持也无法获知通信的数据
对称加密
通信双方采用相同的密匙进行通信,使用相同的密钥进行加解密(双方进行密钥协商时,本身就有可能被劫持,但效率高)
非对称加密
加密和解密采用不同的密钥,每一方生成一对密钥(公钥+私钥),通信前,先将公钥发送给对方,对方使用公钥对传输内容加密,自己使用私钥解密,就算黑客劫持了公钥,也没法使用公钥进行解密,公钥加密后的数据只能使用私钥解密(安全性高,加解密效率低)
ssl采用混合加密
先使用非对称加密算法加密传输过程,传输过程中协商一个对称密钥,往后的数据使用对称加密完成,保证对称密钥的协商不会被劫持,往后的通信使用对称加密,既高效又安全