HTTPS是在原http的基础上加上一层用于数据加密、解密、身份认证的安全层TLS/SSL;
通讯数据明文传输,速度快,不安全;
通讯数据加密传输,但是速度可能会稍微慢一点。
对称加密速度快,加密时CPU资源消耗少;
非对称加密对待加密的数据的不能太长,传输比对称加密慢;
因此HTTPS选择了对称加密进行数据传输。
TLS加密有三对秘钥对:
- CA证书(非对称加密秘钥对),公钥存在于各大浏览器和OS中
- 服务端生成的非对称加密秘钥对
- 客户端生成的对称加密秘钥对
加密过程
- 服务端向权威机构买来CA证书(非对称CA)。
- 客户端向服务端申请非对称加密的秘钥的公钥。
- 服务端生成非对称加密的秘钥对S
- 服务端将公钥(S.PUB)用CA证书的私钥(CA.PRI)进行加密后发送给客户端。
- 客户端用CA证书的公钥(CA.PUB)解密后取得服务端的公钥(S.PUB)
- 客户端生成对称加密秘钥对C
- 客户端用服务端的公钥(S.PUB)对对称加密的秘钥对(C)进行加密
- 客户端将密文发送给服务端
- 服务端接收到密文用S.PRI解密后得到对称加密秘钥对C
- 服务端和客户端可以用C愉快的安全的通讯了