《图解HTTP》第七章 -- HTTPS 笔记

147 阅读3分钟

总结:

  • HTTP 的缺点:

    • 明文传输
    • 不验证通信双方的身份
    • 无法证明报文完整性
  • 什么是 HTTPS

    基于 SSL/TLS (提供加密、认证和完整性保护) 的 HTTP 通信 称为 HTTPS;


第七章、HTTPS

1、HTTP 的缺点

1、通信使用明文

因为 TCP/IP 是使用明文传输的网络,所以基于 TCP/IP 的 HTTP 可能被窃听;

解决方法是加密,加密的对象可分为:

  • 通信的加密(http通过和 SSL(Secure Socket Layer,安全套接层)和 TLS(Transport Layer Security,安全层传输协议) 组合使用)
  • 内容的加密(对内容加密依然有被篡改的风险)
2、不验证通信方的身份

HTTP 协议不存在确认通信方的处理步骤,所以通信双方的身份可能被伪造;

解决办法是使用 SSL 等其它协议来确定通信方:

  • SSL 不仅提供加密处理,还使用了一种称为证书(一对公钥密钥)的手段来确认通信方的身份;
3、无法证明报文完整性

HTTP 协议无法证明通信的报文完整性,因此在通信过程中的内容有可能被篡改(中间人攻击);

解决方法:

  • HTTP 自身增加 MD5 和 SHA-1 等方法来对文件的数字签名(eg:使用 PGP 来创建数字签名)做散列处理;

    (无法保证确认结果完全正确,因为 PGP 和 MD5 本身可能被改写)

  • 使用 SSL 提供的 认证 和 加密处理 及 摘要功能;




2、HTTPS(HTTP Secure)

HTTP + 提供 加密、认证 和 完整性保护(使用SSL、TSL) = HTTPS

当使用 HTTPS 时,HTTP 经由 SSL/TSL 和 TCP 通信;

1、HTTPS 采用 对称加密 和 非称加密 并用的混合机制
  1. 加密方法

    • 对称加密
    • 非对称加密(公开密钥加密)
  2. HTTPS 采用 对称加密 和 非称加密 并用的混合机制

    因为 非对称加密 和 对称加密 相比,其处理速度要慢,单纯使用 非对称加密对于访问量大服务器来说要消耗大量资源(建立 SSL 通信、信息的加解密);

    所以在 HTTPS 在建立传输前先使用 非对称加密 获取 传输过程中需要使用的 对称加密的密钥;

    然后在信息传输过程中使用 对称加密的方式通信;(前一阶段保证了数据通信 所用的对称加密密钥不被第三方获得)

    • HTTPS 使用非对称加密时的问题

      • 无法证明 公钥 本身是 客户需要连接的 服务器 的公钥,即无法验证服务器的合法性;

        解决方法:使用 CA (第三方数字证书认证机构) 颁发的 公钥证书;

  3. HTTPS 引入 CA 进行通信的具体过程

    image-20211019165117018.png

  4. 客户端证书

    提供和公钥证书类似的效果,但是是用来证明客户端的;

    银行的网上银行采用了 客户端证书 来确认用户是否从特定的终端访问网银;

    因为客户端证书的安装和费用问题,普通情况下极少使用;

  5. 自签名证书

    每个人都可以构建一套属于自己的认证机构,从而自己给自己颁发服务器证书;

    但这在互联网上是 无用 的签名证书;

2、HTTPS 的通信步骤

image-20211019172427859.png

image-20211019172509985.png