HTTPS 加密通信过程中,主要涉及到以下几个步骤:
握手阶段(handshake phase):
- 客户端向服务器端发送一个加密通信请求,并提供自己的加密能力列表,以及一个随机生成的密钥(Pre-master secret)。
- 服务器端接收到客户端的请求后,选择最合适的加密算法,在回复中包含服务器证书(包含公钥),用于验证服务器身份和加密通信的公钥。
- 客户端验证服务器证书的合法性,并生成一个随机的会话密钥(Session Key),使用服务器的公钥加密这个会话密钥,并发送给服务器。
- 服务器使用私钥来解密客户端发送过来的会话密钥,从而得到客户端和服务器双方均知道的会话密钥。
数据传输阶段(data transfer phase):
- 客户端和服务器双方使用这个会话密钥来加密和解密数据,实现加密通信。
- 数据传输阶段中,使用对称加密算法(如 AES)来加密数据,以及消息完整性检查机制(如 HMAC)来确保传输的数据在传输过程中没有被篡改或损坏。
总的来说,HTTPS 的加密解密过程通过公钥加密和私钥解密的方式来实现安全的传输,保护通信过程中的数据安全性和私密性。