文章目录
HTTPS
- HTTPS = HTTP + SSL(安全套接层)
【1】HTTP缺点
- 通信使用明文(不加密),内容可能会被窃听‘
- 不验证通信方身份,可能遭遇伪装
- 无法验证报文完整性,可能遭遇篡改
【2】TCP/IP可能被窃听
- 窃听:只需要收集互联网上流动的数据包(帧)——抓包
【3】加密防止窃听
通信加密
- 通过SSL(Secure Socket Layer 安全套接层) 或者TCL(Transport Security 安全传输协议),对HTTP通信加密。
-
利用SSL建立一条安全通信线路——HTTPS(HTTP Secure 超文本安全传输协议)
内容加密
由于不是对整个通信过程的加密,所以依然存在很大风险
【4】不验证通信身份
- 任何人都可以发起请求,并且服务器都会返回响应
- 隐患:
(1)遭遇伪装的服务器
(2)遭遇伪装的客户端
(3)无法判定请求的来源
(4)无法确定通信对方是否具备访问权限
(5)既使是无意义的请求也会照单全收,无法组织海量请求下的Dos攻击
查明对方证书确认身份zhnegshu
- HTTP协议不能确认身份,但SSL可以,SSL协议不仅提供了加密手段还提供了证书手段
- 证书:是由值得信任的第三方机构颁发,用于证明client和server的身份
【5】无法验证报文完整性
- 遭遇中间人攻击(man-in-the-middle attack MITM)
- SSL提供了摘要功能
小结
HTTP的四个缺点,都可以由SSL来解决
(1)不加密问题——SSL通信加密,先简历安全通道
(2)不验证身份问题——SSL通过证书手段
(3)不验证报文完整性——SSL通过摘要功能
【6】HTTPS = HTTP +加密+认证+完整性保护
HTTPS是一种安全技术手段:http:// ——> https://
【7】HTTPS是身披SSL的HTTP
- HTTP先跟SSL通信,SSL再与TCP建立连接
- SSL是独立于HTTP协议存在的,其他运行在应用层的协议都可以与SSL结合
SSL是目前全世界应用最广泛的网络安全技术
【8】SSL的加密技术——公开**加密
- 近代的加密方法:
加密算法公开
**保密
- 加密和解密都需要**,不能让攻击者得到**
共享**和公开**
- 共享**加密:加密解密都使用同一个**,发送信息时**也要发送给对方去解密
- 公开**加密
2个**:私有**和公开**
发送方使用公开**
接收方使用私有**
公开**和私有**是一套**(实际存在很多套),发送方使用公开**加密信息后,也要告诉接收方是哪一套的,这样接收方就利用对应的私有**解密
共享**由于发送加密信息时也需要发送**,所以被截取之后啥用也没有
【9】HTTPS采用混合加密方法
- 共享加密方法:速度快,安全性差
- 公开加密方法:速度慢,安全性高
- HTTPS:交换**阶段采用公开**加密方法,之后建立通信交换报文阶段采用共享**加密方法
- 交换公开**阶段:让server拥有私有**过程
证明公开**的证书
如何确定使用的公开**就是对应服务器发行的那套
- 利用公开**证书(数字认证机构颁布)
EV SSL证书
- 证明运营企业真实存在
客户端证书
- 例如:网上银行采用了客户端证书,用户除了输入ID、密码还会要求客户端证书确认用户是否是从特定的终端访问的网银
【10】HTTPS完整通信
【11】为什么不一直使用HTTPS
- 加密通信消耗更多内存和CPU
- 节约购买证书的成本
- 敏感信息才使用HTTPS