「图解HTTP」读书笔记我爱编程

「 图解HTTP 」 读书笔记 第 七 章

2018-01-02  本文已影响14人  13kmsteady

确保 Web 安全的 HTTPS

在 HTTP 协议中可能存在信息窃听或身份伪装等问题,使用 HTTPS 通信机制可有效的防止这些问题。

1. HTTP 的缺点

HTTP 主要有以下不足:

1.1 通信使用明文可能会被窃听

由于 HTTP 本身不具备加密的功能,所以也无法做到对通信整体(使用 HTTP 协议通信的请求和响应的内容)进行加密。即 HTTP 报文使用明文(指未经过加密的报文)方式发送 。

1.2 不验证通信方的身份就可能遭遇伪装
1.3 无法证明报文完整性,可能已造篡改

所谓完整性是指信息的准确度。若无法证明其完整性,通常也就意味着无法判断信息是否准确

2. HTTP + 加密 + 认证 + 完整性保护 = HTTPS

2.1 HTTP 加上加密处理和认证已经完整性保护后即是 HTTPS
HTTPS.png

经常会在 Web 的登录页面和购物结算页面等使用 HTTPS 通信。使用 HTTPS 通信时,不再使用 http://,而是改用 https://

当浏览器访问 HTTPS 通信有效的 Web 网站时,浏览器的地址栏会出现一个带锁的标记

访问 twitter.png
2.2 HTTPS 是身披 SSL 外壳的 HTTP

HTTPS 并非是应用层的一种协议。只是 HTTP 通信接口部分采用 SSL (Secure Socket Layer)和 TSL(Transport Layer Security) 协议代替而已

HTTPS 通信.png

在采用 SSL 后,HTTP 就拥有了 HTTPS 的加密、证书和完整性保护这些功能

SSL 是独立于 HTTP 的协议,不光是 HTTP 协议,其他运行在应用层的 SMTP 和 Telent 等协议均可配合 SSL 协议使用

2.3 相互交互密钥的公开密钥加密技术

SSL 采用一种叫做公开密钥加密(Public-key cryptography)的加密处理方式

近代的加密方法中加密算法是公开的,而密钥却是保密的。通过这种方式得以保持加密方法的安全性

加密和解密都会用到密钥,没有密钥就无法对密码解密

2.4 证明公开密钥正确性的证书

公开密钥加密方式无法证明公开密钥本身就是货真价实的公开密钥

使用数字证书认证机构和其相关机关颁发的公开密钥证书可解决上述问题

2.5 HTTPS 的安全通信机制

HTTPS 通信步骤

HTTPS 通信.png
  1. 客户端通过发送 Client Hello 报文开始 SSL 通信

  2. 服务器可进行 SSL通信时,会以 Server Hello 报文作为响应

  3. 之后服务器发送 Certificate 报文,报文中包含公开密钥证书

  4. 最后服务器发送 Server Hello Done 报文通知客户端,最初阶段的 SSL 握手协商部分结束

  5. SSL 第一次握手结束之后,客户端以 Client Key Exchange 报文作为回应

  6. 接着客户端继续发送 Client Cipher Spec 报文

  7. 客户端发送 Finished 报文,该报文包含连接至今全部报文的整体校验值

  8. 服务器同样发送 Client Cipher Spec 报文

  9. 服务器同样发送 Finished 报文

  10. 服务器和客户端的 Finished 报文交换完毕之后,SSL 连接就算建立完成

  11. 应用层协议通信,即发送 HTTP 响应

  12. 最后客户端断开连接,断开连接时,发送 close_notify 报文

在以上流程中,应用层发送数据时会附加一种叫做 MAC 的报文摘要。MAC 能够查知报文是否遭到篡改,从而保护报文的完整性

HTTPS 通信流程图解

HTTPS 通信流程.png

HTTPS 当使用 SSL 时,它的处理速度会变慢

SSL 变慢.png
上一篇 下一篇

猜你喜欢

热点阅读