一、为什么需要HTTPS
HTTP在安全性上主要有以下不足:
1、使用明文(不加密)发送报文->内容可能被窃听
在相同的频段上,窃听明文传输本身并不是一件难事
只需要借助抓包工具(例如Wireshark),就能收集网络上流动的数据包
2、不验证通信双方的身份->身份可能被伪装
在HTTP协议通信时,任何人都可以发起请求
而服务器只要接收到请求,都会返回响应
因为不存在确认通信双方的处理步骤,所以会存在以下隐患:
- 服务器有可能是伪装的
- 客户端有可能是伪装的
- 无法阻止海量请求下的Dos攻击
3、无法验证报文的完整性->内容可能已遭篡改
在HTTP协议通信中,唯一的数据完整性校验就是在报文头部包含了本次传输数据的长度,而无法确认报文主体的内容是否被篡改
因此攻击者可以轻易地发动中间人攻击(MITM),修改传输的数据,甚至插入恶意代码
为了统一解决上述问题,确保网络应用的安全,有必要使用HTTPS
二、 HTTPS是什么
SSL(Secure Sockets Layer)是安全套接字协议
它位于TCP/IP协议与各种应用层协议之间,为数据通讯提供安全支持
TLS(Transport Layer Security)是安全传输层协议,可以简单理解为升级版的SSL
而HTTPS是HTTP和SSL/TLS的组合
也就是说,HTTPS = HTTP + 加密 + 认证 + 完整性保护
HTTPS使用443作为默认端口