简介
HTTPS(Hyper Text Transfer Protocol over SecureSocket Layer),是以安全为目标的 HTTP 通道,在HTTP 的基础下加入SSL。
如上图所示 HTTPS 相比 HTTP 多了一层 SSL/TLS,用于保证传输安全。0
加密
对称加密
对称加密是指加密和解密都用同一份密钥。
对称加密的优点是运算速度快,缺点是互联网环境下无法将密钥安全的传送给对方。
非对称加密
非对称加密对应于一对密钥,称为私钥和公钥,用私钥加密后需要用公钥解密,用公钥加密后需要用私钥解密。
非对称加密的优点是可以安全的将公钥传递给对方,但是运算速度慢。
实现原理
证书验证阶段
- 客户端发起HTTPS请求;
- 服务端回应HTTPS请求,返回证书;
- 客户端验证证书是否合法,如果不合法则提示告警。
数据传输阶段
- 当证书验证合法后,在本地生成随机数;
- 通过公钥加密随机数,并将加密后的随机数传到服务端;
- 服务端通过私钥对随机数进行解密;
- 服务端通过客户端传入的随机数构造对称加密算法,对返回结果内容进行加密后传输;
数据传输选择对称加密的原因
非对称加密的效率是非常低的,HTTP场景中存在大量端与端的交互,非对称加密的效率无法接受。
HTTPS场景中只有服务端保存了私钥,一对公私钥只能实现单向的加解密,所以HTTPS中内容传输采取对称加密。
HTTPS抓包
HTTPS会被抓包,但仅限于用户主动授信,构建”中间人”网络,代会对传输内容解密。