Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

HTTPS协议

  1. HTTP存在的问题

    • 【问题1】无法验证通信方
      • 不知道通信方是真实服务器,还是中间人伪装的
    • 【问题2】明文传输
      • 中间人可以监听内容,甚至篡改内容
  2. HTTPS如何解决

    • 【问题1方案】引入SSL/TLS层,采用非对称加密技术和证书签发机制,验证通信方身份,并交换对称加密密钥
    • 【问题2方案】使用对称加密密钥,对传输内容进行加密
  3. 三个概念

    • 对称加密
      • 用同一个对称密钥,进行加密解密
      • 加解密速度快,但无法在不可信情况下安全完成密钥交换,需要引入非对称加密,协商生成对称密钥
    • 非对称加密
      • 分为公钥和私钥
        • 用公开的公钥加密后的内容,只有服务器持有的私钥才能解密
        • 用服务器持有的私钥签名后的内容,公开的公钥可以做验证
      • 加解密速度慢
      • 需要引入证书机制,证明公钥是真实服务器的,而不是中间人的,否则就是在跟中间人“安全地”交换信息
    • 证书机制
      • 需要权威机构,受理真实服务器的证书申请,用权威私钥给这个含有服务器公钥的证书签名
      • 同时浏览器厂商把权威机构含有权威公钥的根证书内置到浏览器中,由浏览器完成验证操作,证明证书有效
      • 这个过程可以由多级的证书链验证完成