daily commit

This commit is contained in:
2022-04-10 00:43:15 +08:00
parent d3ea70738f
commit 1763f67e34
14 changed files with 741 additions and 0 deletions

View File

@@ -0,0 +1,21 @@
# HTTPS原理
* ## HTTPS加密步骤
1. ### client hello客户端向服务器):
1. 客户端支持的TLS版本
2. 客户端支持的加密组件Cipher Suites内含支持的加密算法信息
3. 客户端生成的随机数
2. ### server hello服务器端向客户端发送
1. 服务器端的TLS版本
2. 服务器端从客户端支持的加密组件中挑选中的组件Cipher Suite
3. 服务器端生成的随机数
3. ### Certificate服务器向客户端发送
1. 服务器会向客户端发送其被CA签名的证书
4. ### Server Key Exchange服务器端向客户端发送
1. 服务器向客户端发送密钥交换算法的参数Server Params服务器会用自己的私钥对Server Params进行签名防止客户端收到的Server Params被伪造
5. ### Server hello Done服务器端向客户端发送
1. 服务器端向客户端告知协商部分已经结束
### (以上步骤客户端和服务器之间交换数据是明文的)
***
6. ### CLient Key Exchange客户端向服务端发送
1. 在验证服务器证书可信后客户端生成另一个密钥交换算法参数Client Params根据之前服务端发送过来的Server Params结合会生成一个随机数R3。由于之前客户端和服务器端都生成过自己的随机数故而结合3个随机数会生成会话密钥。生成的会话密钥会通过服务器端公钥加密后发送给服务器端
7. ### 之后客户端和服务器端之间的http通信都会通过会话密钥进行对称加密