markdown绘图理解HTTPS原理

593 阅读1分钟

介绍

本文使用了 Markdown mermaid 绘制了两张时序图。希望能和读者朋友们一起理解,使用 HTTPS 的原因。

第一张图是使用 HTTP 时,会遭受到的中间人攻击,第二张图是 HTTPS 原理的时序图,可对比体会。

本文只展示了时序图,更具体的解释,您可以前往阅读 理解 HTTPS

中间人攻击

实现代码如下

sequenceDiagram
participant C as Client
participant H as Hacker
participant S as Server

C->>S: 1. 用户发起 HTTTPS 请求
S->>H: 2. 给黑客非对称加密的公钥A
H->>C: 3. 黑客给用户非对称加密的公钥A'
C->>H: 4. 用户用公钥A' 加密 对称加密密钥B
H->>S: 5. 黑客用公钥A 加密 对称加密密钥B

HTTPS 原理

实现代码如下

sequenceDiagram
participant C as Client
participant S as Server
participant CA as Certificate Authority

Note over CA: 生成非对称密钥对 公钥 C 和 私钥 c
CA->> C: 0. 浏览器、操作系统预置公钥 C

Note over CA,S: 开始颁发证书...
Note over S: 生成非对称密钥对 公钥 A 和 私钥 a
S->> CA: 1. 请求 https 证书, 提交公钥 A

Note over CA: 私钥 c 加密 公钥 A = 公钥 A+
CA->> S: 2. 颁发证书(公钥 A+ )

Note over CA,S: 颁发证书完成。

C->> S: 1. 发起 https 请求
S->> C: 2. 返回证书(公钥 A+ )
Note over C: 公钥C 解密公钥 A+  = 公钥 A 和 域名