HTTPS协议
1、HTTPS介绍
- HTTPS (全称:超文本传输安全协议),是以安全为目标的 HTTP 通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性。
- HTTPS 在HTTP 的基础下加入SSL和TLS,HTTPS 的安全基础是 SSL,因此加密的详细内容就需要 SSL。
- 默认端口号443
- SSL(安全套接层),tcp协议,他能提供可靠的端对端的安全服务,利用了对称密钥和非对称密钥中的公开密钥。
- TLS(安全传输层协议),前身是SSL,TLS的产生是为了让SSL更安全,更新了加密算法
2、SSL(TLS)
- SSL:安全套接层
- TLS:安全的传输层
- SSL3.0版本变成TLS1.0,目前常用版本1.2或1.3
- TLS:在原本不安全协议上加上了加密过程
3、TLS交互过程
- 首先三次握手连接
- client->server发送client Hello报文:客户机支持的版本,加密套件列表,压缩算法,客户机的随机数
- server->client发送server Hello报文:服务器选择版本,选择加密套件,压缩算法,服务器的随机数,会话ID
- server->client发送Certificates:服务端证书
- server->client发送Server Key Exchange:服务器密钥交换信息
- server->client发送server hello done:服务端握手报文结束
- client->server发送client Key Exchange:客户端完成密钥交换过程
- client->server发送change cipher spec:改变密码规范
- client->server发送encrypted handshake mesage:加密握手消息
- server->client发送change cipher spec:改变密码规范
- server->client发送encrypted handshake mesage:加密握手消息
- application data开始传输
4、加解密
- 对称加密:采用相同的密钥进行加解密
- 缺点:密钥传输问题;和不同对象发送加密信息,采用不同密钥,密钥多,难管理
- 优点:解密效率高,适用于针对大数据量的加解密
- 常见的对称加密算法:DES、3DES、AES
- 非对称加密:公钥和私钥,公钥加密私钥解密、私钥加密公钥解密
- 缺点:针对大数据量加解密效率很低
- 优点:安全性高,无法通过一个密钥推出另一个密钥,不可逆
- 常见的非对称加密算法:RSA、DH(密钥交换算法)、Elgamal
- 数据安全传输
- 使用非对称加密算法对对称密钥算法的密钥进行加解密得到密钥信封,在使用对称加密的密钥进行加密数据得到密文
- 对方收到密文和密钥信封后,用私钥对密钥信封解密得到对称密钥,在使用对称密钥解密密文得到数据
5、数据完整性校验
- 校验(摘要)算法(MD5 SHA HASH)
6、HTTPS改进
- 双方身份认证(使用证书来确定对方身份)
- 机密性(采用加密算法)
- 完整性(有完整性校验)
7、数据安全传输
后续更新