HTTPS协议工作原理

HTTPS协议工作原理

  1. client向server发送请求,然后连接到server的443端口,发送的报文主要是随机值1和客户端支持的加密组件列表。
  2. server响应报文中,主要包含随机值2和匹配好的协商加密算法,该算法是从客户端发来的加密组件列表中筛选出来的。
  3. server给client发送第二个响应报文是数字证书。这套证书其实就是一对公钥和私钥。证书中包含了很多信息,如证书的颁发机构,过期时间、服务端的公钥,第三方证书认证机构(CA)的签名,服务端的域名信息等内容。
  4. 客户端解析证书,这部分工作是由客户端的TLS来完成的,首先会验证公钥是否有效,比如颁发机构,过期时间等等,如果发现异常,则会弹出一个警告框,提示证书存在问题。如果证书没有问题,客户端生成一个Pre-master secret随机密码串(预主秘钥)。随机密码串其实就是之后通信要用的对称密钥,并用服务器的公开密钥进行加密,发送给服务器,以此通知服务器,之后的报文都会通过这个对称密钥来加密。
  5. 客户端认证证书通过,接下来是通过随机值1、随机值2和预主秘钥组装会话秘钥。然后通过证书的公钥加密会话秘钥。
  6. 传送加密信息,这部分传送的是用证书加密后的会话秘钥,目的就是让服务端使用秘钥解密得到随机值1、随机值2和预主秘钥。
  7. 服务端解密得到随机值1、随机值2和预主秘钥,然后组装会话秘钥,跟客户端会话秘钥相同。
  8. 客户端通过会话秘钥加密一条消息发送给服务端,主要验证服务端是否正常接受客户端加密的消息。
  9. 同样服务端也会通过会话秘钥加密一条消息回传给客户端,如果客户端能够正常接受的话表明SSL层连接建立完成了。

在这里插入图片描述

参考于网上资料

猜你喜欢

转载自blog.csdn.net/qq_43589852/article/details/121457951