Https - LawlietNot/Note GitHub Wiki

Https

  • A-思者or困惑or问题

    • 什么是Https?
    • 为什么会出现?
    • 用来解决什么问题?
    • 运用什么方法解决问题?
    • 性能问题?
  • B-认知or原理or规律or原则

    • 安全的Http协议,普通的http由于不进行加密处理,都可以通过抓包窃听,篡改,伪造身份与服务器进行通信。
    • 基于SSL/TLS的HTTP通信,所有信息都是加密传播,第三方无法窃听;具有校验机制,一旦被篡改,通信双方会立刻发现;配备身份证书,防止身份被冒充。
  • B-观点or道理or逻辑or建议

  • B-概念or数据or信息or案例or实证

    • SSL/TLS协议的基本思路是采用公钥加密法,也就是说,客户端先向服务器端索要公钥,然后用公钥加密信息,服务器收到密文后,用自己的私钥解密。

      • 公钥如何保证不被篡改

        使用数字证书,证书可信,公钥就是可信

      • 公钥使用非对称加密相比对称加密性能差,如何保证通信性能问题

        通信两方通过公钥传递对称秘钥,以对称加密方式进行通信

  • B-方法or工具or流程

    • 可以使用抓包工具,观察浏览器完整的请求流程

    • 基本流程

      • 客户端向服务器端索要并验证公钥。

      • 双方协商生成"对话密钥"。

      • 双方采用"对话密钥"进行加密通信。

      • 客户端请求:
        1. 支持的协议版本,比如TLS 1.0版。
        2. 一个客户端生成的随机数,稍后用于生成"对话密钥"。
        3. 支持的加密方法,比如RSA公钥加密。
        4. 支持的压缩方法。
      • 服务器响应
        1. 确认使用的加密通信协议版本,比如TLS 1.0版本。如果浏览器与服务器支持的版本不一致,服务器关闭加密通信。
        2. 一个服务器生成的随机数,稍后用于生成"对话密钥"。
        3. 确认使用的加密方法,比如RSA公钥加密。
        4. 服务器证书。
      • 客户端回应
        1. 一个随机数。该随机数用服务器公钥加密,防止被窃听。
        2. 编码改变通知,表示随后的信息都将用双方商定的加密方法和密钥发送。
        3. 客户端握手结束通知,表示客户端的握手阶段已经结束。这一项同时也是前面发送的所有内容的hash值,用来供服务器校验。
      • 服务器最后响应
        1. 编码改变通知,表示随后的信息都将用双方商定的加密方法和密钥发送。
        2. 服务器握手结束通知,表示服务器的握手阶段已经结束。这一项同时也是前面发送的所有内容的hash值,用来供客户端校验。
  • B-体验or感知or金句

  • C-总结or启示or应用

    非对称加密使用的RSA算法,运用了数论中的因素分解,但此种算法还是可以使用穷举破解,但就目前的计算机运算,只要数够大就无法破解。

    非对称加密在解决各种安全性问题上得到了大量应用,由于不需要传递密钥给对方,保证了密码安全性,但同时,非对称加密的算法相较于对称加密复杂,加解密速度就下降了,所以在很多应用的时候,非对称加密只会在保证对称加密的秘钥传输的可靠性上。

    https加密方式多种多样,在不同阶段都可以配合不同加密方式进行检验。

  • 来源