HTTPS的工作原理

  HTTPS并非是新协议,而是 HTTP + SSL = HTTPS。

SSL/TLS 的握手过程

  1、TLS是什么?

    为 Internet 提供通信安全的加密协议。

  2、什么是TLS握手?
    TLS握手启动和使用TLS加密通信会话的过程。在TLS握手期间,Internet中的通信双方会彼此交换信息,验证密码套件,交换会话秘钥。

  3、什么时候进行TLS握手?
    每当用户通过HTTPS导航到具体的网站发送请求时,就会进行TLS握手。

  4、具体的TLS握手过程是怎样的?

    具体的TLS握手过程会根据使用的密钥交换算法的类型 和双方支持的密码套件 不同而不同。

  RSA 非对称加密

  1. 通信前会进行HTTP的三次握手,握手完成后,在进行TLS握手。
  2. ClientHello:客户端通过向服务器发送 hello 消息(客户端支持的TLS版本号+客户端支持的加密方法+客户端的随机数+支持的压缩方法)发起握手过程。
  3. ServerHello:在客户端发送hello消息后,服务器也会发送一条消息(服务器的SSL证书+服务器选择的加密方法+服务器生成的随机数+服务器选择的TLS版本)。
  4. 客户端认证证书:客户端的证书颁发机构会认证SSL证书(是否可信机构颁发、证书域名与实际域名是否相符、证书是否已过期),然后发送 Certificate 报文(包含公钥证书)。
  5. SeverHelloDone:服务器发送ServerHelloDone作为hello请求的响应,第一部分握手阶段结束。
  6. 客户端加密过程
    1. 客户端发送 ClientKeyExchange (包含了使用公钥加密的字符串)响应服务器。
    2. 客户端发送 ChangeCiepherSpec告诉服务端使用私钥解密以上字符串。
    3. 发送 Finished 告诉服务器我已经发送完成。
  7. 服务端加密过程
    1. 服务端发送ChangeCipherSpec
    2. 服务端发送Fnished。 

  

以上总结参考:https://mp.weixin.qq.com/s/qetBsYmDqwi_nJVnKmBw8Q、https://www.cnblogs.com/jjzd/p/9346260.html  

原文地址:https://www.cnblogs.com/smallzhen/p/14124363.html