HTTPS 工作原理
💖The Begin💖点点关注,收藏不迷路💖 |
HTTPS(HyperText Transfer Protocol Secure)是一种通过加密通道进行安全通信的HTTP协议。
一、首先 HTTP 请求服务端生成证书,客户端对证书的有效期、合法性、域名是否与请求的域名一致、证书的公钥(RSA 加密)等进行校验;
二、客户端如果校验通过后,就根据证书的公钥的有效, 生成随机数,随机数使用公钥进行加密(RSA 加密);
三、消息体产生的后,对它的摘要进行 MD5(或者 SHA1)算法加密,此时就得到了 RSA签名;
四、发送给服务端,此时只有服务端(RSA 私钥)能解密。
五、解密得到的随机数,再用 AES 加密,作为密钥(此时的密钥只有客户端和服务端知道)。
它的工作原理主要包括以下几个步骤:
1、握手阶段(Handshake)
1、客户端向服务器发送一个请求,请求建立安全连接。
2、服务器将自己的数字证书(包含公钥)发送给客户端。证书中包含了服务器的身份信息、公钥、证书的有效期等信息。
3、客户端接收到服务器的证书后,会验证证书的有效性,包括检查证书是否过期、域名是否匹配、是否由可信任的证书颁发机构签发等。
4、客户端生成一个随机数,使用服务器的公钥进行加密,然后将加密后的随机数发送给服务器。这个随机数将用于后续的对称加密密钥的生成。
2、密钥协商阶段
1、服务器接收到客户端发送的加密后的随机数后,使用自己的私钥进行解密,得到客户端生成的随机数。
2、服务器也生成一个随机数,并与客户端生成的随机数一起使用一种密钥协商算法(如Diffie-Hellman算法)生成一个共享的对称加密密钥。这个对称加密密钥将用于后续的数据传输加密和解密。
3、加密通信阶段
1、客户端和服务器使用协商好的对称加密密钥进行加密和解密通信数据。
2、客户端和服务器之间的所有HTTP请求和响应数据都经过加密处理,保证了数据的机密性和完整性。
3、使用对称加密算法(如AES)来加密和解密通信数据,这样可以保证数据传输的效率和安全性。
4、结束通信阶段
1、通信结束后,客户端和服务器可以选择终止连接或者重新进行握手过程建立新的连接。
2、在某些情况下,可以使用会话缓存和会话恢复等技术来提高HTTPS连接的性能和效率。
总之,HTTPS通过在HTTP协议和TCP/IP协议之间增加一层SSL/TLS协议来保护通信安全,实现了数据的加密传输和身份验证,有效防止了网络中的数据窃取和篡改攻击。
💖The End💖点点关注,收藏不迷路💖 |