HTTPS通信机制笔记

文章中的图片都来自于图解HTTP

1. 简单概念:HTTPS=HTTP+加密+认证+完整性保护

HTTPS并不是应用层的一种新协议,而是HTTP通信接口部分用SSL和TLS协议代替。如图所示:


HTTPS通信机制笔记_第1张图片

2. HTTPS采用混合加密机制:

  1. 使用公开密钥加密方式安全地交换稍后在共享密钥加密中要使用的密钥

  2. 使用共享密钥加密方式进行通信

    好处是使用非对称加密确保安全性,再利用对称加密提高效率。

有一个问题,如何保证公开密钥的正确性?
HTTPS通信机制笔记_第2张图片

做法是引入数字证书认证机构。具体流程如下:

1. 服务端将公钥上传到数字证书认证机构
2. 认证机构对公钥进行签名,将签名后的公钥返给服务端
3. 客户端第一次请求,服务端将签名后的公钥发给客户端
4. 客户端拿到证书后使用认证机构的公钥验证服务器公钥上的签名,确认服务器公钥的真实性
5. 客户端使用服务器公钥对报文进行加密发送
6. 服务器端用私钥对报文解密

3. HTTPS通信机制

HTTPS通信机制笔记_第3张图片
HTTPS通信

流程如下:

  1. 客户端通过发送Client Hello报文开始SSL通信。报文中包含客户端支持的SSL的指定版本、加密组件列表(算法及密钥长度)
  2. 服务器进行SSL通信时会议Server Hello作为应答,在报文中包含SSL版本以及加密组件。
  3. 服务器发送Certificate报文。报文中包含公开密钥证书。
  4. 服务器发送Server Hello Done通知客户端,最初阶段的SSL握手协议结束。
  5. SSL第一次握手结束之后,客户端以Client Key Exchange报文作为回应。报文中包含了一段随机密码串,该报文用获取到的公开密钥进行加密。
  6. 客户端继续发送Change Cipher Spec,来通知服务器,此后的通信会采用Pre-master secret随机密码串加密。
  7. 客户端发送Finished报文。此报文包含了连接至今全部报文的整体校验值(保证完整性)
  8. 服务器同样发送Change Cipher Spec报文
  9. 服务器发送Finished报文。
  10. 服务器和客户端的Finished报文交换完毕后,SSL连接就算建立完成了 。通信会受到SSL的保护。从此处开始进行应用层协议的通信。发送HTTP请求

你可能感兴趣的:(HTTPS通信机制笔记)