daily commit
This commit is contained in:
21
computer networks/https.md
Normal file
21
computer networks/https.md
Normal 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通信都会通过会话密钥进行对称加密
|
||||
Reference in New Issue
Block a user