HTTPS协议

前置知识

加密分为对称加密和非对称加密,HTTPS兼顾两者。

关于非对称加密,可以查阅相关资料。这里只提一点:

公钥加密,私钥解密!

为什么需要HTTPS

HTTP 主要有这些不足:

  • 通信使用明文(不加密),内容可能会被窃听;
  • 不验证通信方的身份,因此有可能遭遇伪装;
  • 无法证明报文的完整性,所以有可能已遭篡改;

为了解决这些问题,HTTPS顺应而生。

HTTPS介绍

HTTP+ 加密 + 认证 + 完整性保护=HTTPS

可以这么理解,HTTPS是安全版的HTTP,它不是一个新的协议,而是HTTP 加上加密处理(解决HTTP通信使用明文的问题)和认证(解决HTTP不验证通信方的身份问题)以及完整性保护(解决HTTP无法证明报文完整性的问题)后的东西。

端口:443

HTTP和HTTPS对比

注:上图并不代表顺序。也就是说HTTPS是先建立TCP连接,再进行TLS/SSL握手。

HTTPS通信

直接上图

HTTPS通信

上图基本把HTTPS的通信流程说的非常清晰了,补充两点:

  1. 这里对比HASH是为了防止握手消息被篡改。浏览器与网站互相发送加密的握手消息并验证,目的是为了保证双方都获得了一致的密码,并且可以正常的加密解密数据,为后续真正数据的传输做一次测试。
  2. 因为对称加密要比非对称加密的计算快很多,所以HTTPS没有全程使用非对称加密,而是先使用非对称加密交换对称密钥,再使用对称加密手段通信。
  3. 证书确保了双方身份。

另外,HTTPS一般使用的加密与HASH算法如下:

  • 非对称加密算法:RSA,DSA/DSS
  • 对称加密算法:AES,RC4,3DES
  • HASH算法:MD5,SHA1,SHA256

HTTPS 的优缺点?

优点

  • 安全性:

    • 使用HTTPS协议可认证用户和服务器,确保数据发送到正确的客户机和服务器;
    • HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全,可防止数据在传输过程中不被窃取、改变,确保数据的完整性。
    • HTTPS是现行架构下最安全的解决方案,虽然不是绝对安全,但它大幅增加了中间人攻击的成本。
  • SEO方面:谷歌曾在2014年8月份调整搜索引擎算法,并称“比起同等HTTP网站,采用HTTPS加密的网站在搜索结果中的排名将会更高”。

缺点

  • 在相同网络环境中,HTTPS 相比 HTTP 无论是响应时间还是耗电量都有大幅度上升。
  • HTTPS 的安全是有范围的,在黑客攻击、服务器劫持等情况下几乎起不到作用。
  • 在现有的证书机制下,中间人攻击依然有可能发生。
  • HTTPS 需要更多的服务器资源,也会导致成本的升高。

Refs

  1. SSL/TLS协议运行机制的概述
  2. HTTPS 原理解析
  3. HTTPS 建立连接的详细过程
  4. HTTPS连接过程
  5. HTTPS详细介绍
文章作者: Met Guo
文章链接: https://guoyujian.github.io/2022/09/24/HTTPS%E5%8D%8F%E8%AE%AE/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Gmet's Blog