Files
rikako-note/computer networks/https.md
2022-04-13 15:53:57 +08:00

1.6 KiB
Raw Blame History

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. 服务器端向客户端告知协商部分已经结束

    (以上步骤客户端和服务器之间交换数据是明文的)


  1. CLient Key Exchange客户端向服务端发送

    1. 在验证服务器证书可信后客户端生成另一个密钥交换算法参数Client Params根据之前服务端发送过来的Server Params结合会生成一个随机数R3。由于之前客户端和服务器端都生成过自己的随机数故而结合3个随机数会生成会话密钥。生成的会话密钥会通过服务器端公钥加密后发送给服务器端
  2. 之后客户端和服务器端之间的http通信都会通过会话密钥进行对称加密