https协议加密流程:使用ssl加密。
一、HTTPS协议
对HTTP协议进行加密后的一个新的协议。
1、加密概念
单说数据加密过去狭义,更多的是防止数据被监听劫持。
加密包含俩个方面:身份验证,加密传输。
1.1身份验证
验证对端的身份是否是受信任的。
eg:黑客劫持客户端的请求,然后伪装服务器向客户端发送响应。
解决方案:CA认证——使用第三方权威机构进行身份验证
通信双方需要被验证的一方或俩方,先到权威机构颁发一个CA证书,建立连接后,双方或需要被验证身份的一方将自己的CA证书发送给对端,对端对证书进行解析,先判断证书颁发机构是否是自己信任的权威机构,然后到权威机构对对方的身份进行验证。
1.2加密传输
让外界无法直接获取到通信内容。
1.2.1 对称加密
加密和解密使用相同的密钥,加解密效率高,但是密钥的协商过程容易被监听劫持,不安全。
1.2.2非对称加密
加密和解密使用的秘钥不同,秘钥分为公钥和私钥。
公钥是通信前交给对方的秘钥,对方使用公钥进行数据加密,自己收到公钥加密的数据之后,使用私钥进行解密(公钥无法解密数据)。
优点是安全度更高,缺点是加解密效率低下。
1.2.3 混合加密
过程:
- 建立连接后,先使用非对称加密,将自己的公钥发送给对方
- 双方使用对方的公钥,对“对称秘钥”协商过程进行加密
- 对称秘钥协商完毕后,往后通信使用对称加密
2、ssl加密流程
假设服务器需要被验证身份。
- 服务器首先自己生成一对秘钥(公钥和私钥),拿着公钥去权威机构颁发CA证书,CA证书包含了:权威机构信息,机构信息,公钥信息......
- 连接建立成功后,服务器将自己的CA证书发给客户端
- 客户端对证书进行解析
- 判断权威机构是否是自己信任机构
- 如果是则去权威机构进行身份验证
- 客户端拿着证书中的公钥,将一个随机数+自己支持的对称算法列表发送给服务器
- 服务器收到之后,使用私钥进行解密,给客户端也回复一个随机数+自己支持的对称算法列表
- 双方使用俩个随机数以及双方支持的算法列表,计算得到一个对称秘钥
http协议使用的端口是80端口
https协议使用的端口是443端口