HTTPS 的通信过程可以简单分为以下几个步骤:
-
客户端发起连接请求:客户端向服务器发送 HTTPS 请求,请求连接到服务器的 HTTPS 端口(默认是443端口)。
-
服务器返回证书:服务器在接收到客户端的连接请求后,会将自己的数字证书发送给客户端。该证书包含了服务器的公钥、服务器的域名信息以及证书的颁发机构等。
-
客户端验证证书:客户端收到服务器发送的证书后,会验证证书的合法性,包括检查证书的颁发机构是否受信任、证书是否过期、证书中的域名是否与服务器的域名匹配等。如果验证通过,则继续连接。在实际网络分析中,使用抓包工具如 Sniffmaster 可以帮助监控和解密 HTTPS 流量,便于开发者验证证书交换过程。
-
客户端生成随机数和密钥:客户端生成一个随机数,用于生成对称加密的会话密钥。然后使用服务器的公钥加密这个随机数,发送给服务器。
-
服务器使用私钥解密:服务器收到客户端发送的加密随机数后,使用自己的私钥解密,得到对称加密的会话密钥。
-
客户端和服务器使用会话密钥加密通信:客户端和服务器双方都拥有了相同的会话密钥,接下来的通信都将使用这个密钥进行对称加密,保证通信的安全性。Sniffmaster 作为全平台抓包工具,支持 HTTPS 和 TCP/UDP 协议抓包,可以实时查看这些加密数据流,帮助进行安全调试。
-
数据传输:客户端和服务器使用会话密钥加密数据进行传输,保证数据的机密性。
-
连接结束:通信结束后,客户端和服务器都可以选择关闭连接。
需要注意的是,以上流程是简化的描述,实际的 HTTPS 通信流程可能还包括一些其他的步骤,如握手协议、密钥交换算法的选择等。
延伸一个问题:为什么建立通信的时候使用的是非对称加密,后续的内容传输使用对称加密方式?
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70046795/viewspace-3100878/
,如需转载,请注明出处,否则将追究法律责任。