概述
HTTP 是超文本传输协议,是明文传输的,存在安全风险。HTTPS 解决了 HTTP 不安全的缺陷,在 TCP 和 HTTP 层之间加入了 SSL/TLS 安全协议,使得报文能够加密传输
HTTPS 在 TCP 三次握手后,还需要进行 SSL/TLS 握手才能进行加密报文传输
HTTP 默认端口为 80,HTTPS 默认端口为 443
HTTPS 需要申请 CA 证书,来保证服务器的身份是可信的
客户端与服务端使用非对称加密将一个秘钥传递给对方,双方使用此秘钥通过对称加密通信。
HTTPS 的原理
HTTP 由于是明文传输,存在监听、篡改、冒充等风险
HTTPS 如何解决以上风险?
- 混合加密的方式实现信息的机密性,解决了窃听的风险。
- 摘要算法的方式来实现完整性,它能够为数据生成独一无二的「指纹」,指纹用于校验数据的完整性,解决了篡改的风险。
- 将服务器公钥放入到数字证书中,解决了冒充的风险。
1. 混合加密
HTTPS 使用对称加密和非对称加密结合的混合加密方式:
- 在通信建立前采用非对称加密的方式来交换会话密钥
- 在通信过程中全部使用对称加密的会话密钥的方式加密明文数据