问答题173/1053https原理,工作流程

难度:
2022-04-09 创建

参考答案:

HTTPS原理与工作流程

HTTPS(Hypertext Transfer Protocol Secure)是基于 HTTP(超文本传输协议)的安全版本,使用 SSL/TLS 协议在网络上加密和保护数据的传输,确保了数据的安全性、完整性和身份认证。

1. HTTPS工作原理

HTTPS 的工作原理基于 SSL/TLS 协议,它在 HTTP 协议的基础上加入了加密和身份验证层,使得数据在客户端和服务器之间传输时不容易被窃取或篡改。HTTPS 通过两种关键技术来实现这一点:

  • 加密:使用对称加密和非对称加密确保数据在传输过程中的保密性。
  • 身份认证:通过数字证书确认服务器的身份,防止中间人攻击(MITM)。

2. HTTPS工作流程

HTTPS 的工作流程涉及到 SSL/TLS 握手加密数据传输 两个主要阶段。以下是一个典型的 HTTPS 工作流程:

2.1 SSL/TLS 握手阶段(建立连接)

  1. 客户端发起请求

    • 客户端(如浏览器)发起 HTTPS 请求,并向服务器发送 Client Hello 消息。这条消息包含以下信息:
      • 支持的 SSL/TLS 协议版本(如 TLS 1.2, TLS 1.3)。
      • 支持的加密算法(如 RSA, AES 等)。
      • 客户端生成的随机数,用于后续会话密钥的生成。
  2. 服务器响应

    • 服务器收到客户端的请求后,首先会选择一种双方都支持的加密算法和 SSL/TLS 版本,之后发送 Server Hello 消息,消息中包含以下内容:
      • 选择的 SSL/TLS 协议版本。
      • 选择的加密算法。
      • 服务器生成的随机数。
      • 服务器的数字证书(通常由认证机构 CA 签发,包含公钥等信息)。
  3. 验证服务器证书

    • 客户端收到服务器的 Server Hello 后,会验证服务器提供的数字证书的有效性。验证过程包括:
      • 检查证书是否由受信任的 CA 签发。
      • 检查证书的有效期。
      • 检查证书是否已被吊销。
    • 如果证书无效,客户端将终止连接,否则继续建立连接。
  4. 客户端生成会话密钥

    • 在验证完证书后,客户端会使用服务器公钥加密一个 预主密钥(Pre-Master Secret)并发送给服务器。只有服务器可以使用其私钥解密该预主密钥。
    • 然后,客户端和服务器都基于该预主密钥和之前交换的随机数,使用 对称加密算法(如 AES)生成 会话密钥。此会话密钥将用于加密和解密接下来的通信内容。
  5. 服务器确认会话密钥

    • 服务器收到客户端发送的加密数据后,使用私钥解密预主密钥,并使用该密钥生成会话密钥。
    • 服务器通过 Server Finished 消息告知客户端,所有握手过程完成,接下来可以开始加密数据的传输。
  6. 客户端确认

    • 客户端也会使用会话密钥加密一条 Client Finished 消息,确认客户端和服务器的会话密钥一致。

到此为止,SSL/TLS 握手完成,客户端和服务器之间建立了安全的通信信道。

2.2 数据加密传输阶段

  • 加密通信:在握手完成后,客户端和服务器之间的所有数据都将通过 对称加密(如 AES)进行加密。对称加密使用相同的密钥加密和解密数据,性能较好,适用于大量数据的加密传输。
  • 消息认证码(MAC):为了确保数据的完整性和防止篡改,传输的数据还会进行 消息认证码(MAC) 验证。每个加密的数据块都包含一个哈希值,用来确认数据是否在传输过程中被篡改。
  • 会话结束:当通信结束时,客户端和服务器通过 close_notify 消息来结束加密通道。之后,双方可以销毁会话密钥,避免再次使用。

3. SSL/TLS握手过程的简化示意

11. 客户端发送 Client Hello 22. 服务器发送 Server Hello + 证书 33. 客户端验证证书 44. 客户端生成预主密钥,并使用服务器的公钥加密后发送给服务器 55. 服务器解密预主密钥,生成会话密钥 66. 客户端和服务器交换加密确认信息(Finished) 77. 数据传输使用对称加密的会话密钥

4. HTTPS的主要安全特点

  • 数据加密:使用 对称加密(如 AES)和 非对称加密(如 RSA)对数据进行加密,确保数据在传输过程中不会被窃取。
  • 身份认证:通过 数字证书(由受信任的 CA 签发)验证服务器的身份,防止中间人攻击(MITM)。
  • 数据完整性:使用 消息认证码(MAC)哈希函数 确保数据在传输过程中不被篡改。

5. HTTPS与HTTP的区别

特性HTTPHTTPS
加密不加密,明文传输数据使用 SSL/TLS 协议加密,数据传输安全
端口默认端口是 80默认端口是 443
性能相对较快,因无加密和解密过程由于加密和解密操作,性能稍慢
安全性容易受到攻击(如中间人攻击、数据篡改等)高度安全,防止数据泄露和篡改
证书无需证书认证需要数字证书(SSL/TLS证书)

6. HTTPS的优势

  • 保密性:数据经过加密,防止第三方窃取数据,特别适用于传输敏感信息(如密码、信用卡信息等)。
  • 完整性:通过消息认证码(MAC)确保数据在传输过程中不被篡改。
  • 身份认证:通过数字证书验证服务器的身份,防止假冒网站的钓鱼攻击。
  • 防止中间人攻击:使用 SSL/TLS 协议加密通信,可以防止中间人(MITM)窃取或篡改传输内容。

最近更新时间:2024-12-25