Skip to content

HTTPS 加密算法和加解密过程是啥?

Posted on:2024年8月14日 at 20:31

HTTPS 使用 SSL/TLS 协议来加密传输的数据,确保数据的机密性和完整性。HTTPS 的加解密过程主要包括以下几个步骤和算法:

1. 加密算法和密钥类型

2. SSL/TLS 握手过程

握手阶段

  1. 客户端发起连接

    • 客户端发送一个 “ClientHello” 消息,包含客户端支持的 TLS 版本、加密套件(加密算法组合)、压缩方法和其他信息。
  2. 服务器响应

    • 服务器回应一个 “ServerHello” 消息,选择客户端支持的加密套件和 TLS 版本。
    • 服务器发送其数字证书给客户端。数字证书包含服务器的公钥,由证书颁发机构(CA)签名。
  3. 证书验证

    • 客户端验证服务器的数字证书的有效性和真实性。如果证书有效,客户端继续执行。
    • 客户端生成一个随机的“pre-master secret”并用服务器的公钥加密,然后发送给服务器。这个“pre-master secret”将在后续的步骤中用于生成对称加密密钥。
  4. 密钥交换

    • 服务器使用其私钥解密“pre-master secret”并生成一个对称加密密钥(session key)。
    • 客户端和服务器使用“pre-master secret”生成相同的对称加密密钥(session key),用于加密后续的通信数据。
  5. 完成握手

    • 双方用对称加密密钥加密并交换“Finished”消息,表示握手过程完成。
    • 从这一点开始,客户端和服务器使用对称加密密钥加密和解密数据。

3. 数据加密和传输

4. 连接关闭

常见的加密套件

在 TLS 握手过程中,客户端和服务器会协商一个加密套件(cipher suite),这是一个加密算法的组合。常见的加密套件包括:

原文转自:https://fe.ecool.fun/topic/88f3b671-5906-4aa8-9f68-8df711d582f3