HTTPS

文章目录

  • HTTPS
    • HTTP的缺点
      • 通信使用明文可能被窃听
      • 不验证通信方的身份就可能遭遇伪装
      • 无法证明报文完整性,可能以遭篡改
    • HTTPS = HTTP + 加密 + 认证 + 完整性保护
      • HTTPS是HTTP+SSL
      • HTTP的安全通信机制
      • HTTPS缺点

HTTPS

HTTP的缺点

缺点:

  • 通信使用明文(不加密),内容可能会被窃听。
  • 不验证通信方的身份,因此有可能遭遇伪装。
  • 无法证明报文的完整性,所以有可能已遭篡改。

通信使用明文可能被窃听

由于HTTP本身不具备加密的功能,所以也无法做到对通信整体进行加密。也就是说TCP/IP的工作机制,通信内容在所有的通信线路上都可能遭到窥视,可以通过通信加密和内容加密解决。

通信加密

可以通过SSL(Secure Socket Layer,安全套接层)和TLS(Transport Layer Security,安全传输层协议)的组合使用,加密HTTP的通信内容。

HTTPS_第1张图片

内容加密

还有一种将参与通信的内容本身加密的方式。由于HTTP协议中没有加密机制,那么就对HTTP协议传输的内容本身加密。即把HTTP报文里所含的内容进行加密处理。

不验证通信方的身份就可能遭遇伪装

HTTP协议中的请求和响应不会对通信方进行确认,也就是说任何人都可以发起请求,可以通过查明对手的证书方式解决,使用SSL不仅提供加密处理,还使用证书用于确定对方。

无法证明报文完整性,可能以遭篡改

HTTP协议无法证明通信的报文完整性。也就是说在请求或响应直到对方接收之前的这段时间内,即使请求或响应的内容遭到篡改,也没有办法获悉,为了解决这些问题,可以使用SSL提供认证和加密处理及摘要功能,确保报文完整性。

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

HTTPS_第2张图片

HTTPS是HTTP+SSL

HTTPS_第3张图片

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

HTTP的安全通信机制

HTTPS_第4张图片

  1. 客户端发送ClientHello报文开始SSL通信。报文中包含:客户端支持的SSL的指定版本、加密组件列表(加密算法和密钥长度等)。
  2. 服务器可进行SSL通信时,会以ServerHello报文作为应答。和客户端一样,在报文中包含SSL版本已经加密组件。服务器的加密组件内容是从接收到的客户端加密组件筛选出来的。
  3. 服务器发送Certificate报文。报文中包含公开密钥证书。
  4. 最后服务器发送ServerHelloDone报文通知客户端,最初阶段的SSL握手协商部分结束。
  5. SSL第一次握手结束之后,客户端回应ClientKeyExchange报文给服务器。报文中包含通信加密中使用的一种被称为Pre-master secret的随机密码串。该报文已用步骤3中的公开密钥进行加密。
  6. 接着客户端继续发送ChangeCipherSpec报文。该报文会提示服务器,在此报文之后的通信会采用Pre-master secret密钥加密。
  7. 客户端发送Finished报文。该报文包含连接至今全部报文的整体校验值。这次握手协商是否能够成功,要以服务器是否能够正确解密该报文作为判定标准。
  8. 服务器同样发送ChangeCipherSpec报文。
  9. 服务器同样发送Finished报文。
  10. 服务器和客户端的Finished报文交换完毕之后,SSL连接计算建立完成。当然,通信会受到SSL的保护。从此处开始进行应用层协议的通信,即发送HTTP请求。
  11. 应用层协议通信,及发送HTTP响应。
  12. 最后由客户端断开连接。断开连接时,发送close_notify报文,之后再发送TCP/FIN标志的报文来关闭与TCP的通信。

HTTPS通信的详细过程:

HTTPS_第5张图片

HTTPS缺点

HTTPS_第6张图片

HTTPS缺点:

  • 通信慢。
  • 处理速度慢。

通信慢:

与HTTP通信相比,网络负载可能会变慢2~100倍。除去TCP连接、发送HTTP请-响应以外,还必须进行SSL通信,因此会消耗更多的网络资源。

处理速度慢:

在服务器和客户端都需要进行加密和解密的运算处理,因此会消耗更多的服务器和客户端的硬件资源。

你可能感兴趣的:(图解HTTP,https,ssl,网络)