一、HTTPS的概念

HTTPS (全称:Hyper Text Transfer Protocol over SecureSocket Layer),是以安全为目标的 HTTP 通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性 。HTTPS 在HTTP 的基础下加入SSL 层,HTTPS 的安全基础是 SSL,因此加密的详细内容就需要 SSL。 HTTPS 存在不同于 HTTP 的默认端口及一个加密/身份验证层(在 HTTP与 TCP 之间)。这个系统提供了身份验证与加密通讯方法。现在它被广泛用于万维网上安全敏感的通讯,例如交易支付等方面。

二、与HTTP原理区别

HTTPS 主要由两部分组成:HTTP + SSL / TLS,也就是在 HTTP 上又加了一层处理加密信息的模块。服务端和客户端的信息传输都会通过 TLS 进行加密,所以传输的数据都是加密后的数据。

1.HTTP 原理

  • ① 客户端的浏览器首先要通过网络与服务器建立连接,该连接是通过TCP 来完成的,一般 TCP 连接的端口号是80。 建立连接后,客户机发送一个请求给服务器,请求方式的格式为:统一资源标识符(URL)、协议版本号,后边是 MIME 信息包括请求修饰符、客户机信息和许可内容 [2]  。
  • ② 服务器接到请求后,给予相应的响应信息,其格式为一个状态行,包括信息的协议版本号、一个成功或错误的代码,后边是 MIME 信息包括服务器信息、实体信息和可能的内容 [2]  。

2.HTTPS 原理

  • ① 客户端将它所支持的算法列表和一个用作产生密钥的随机数发送给服务器;
  • ② 服务器从算法列表中选择一种加密算法,并将它和一份包含服务器公用密钥的证书发送给客户端;该证书还包含了用于认证目的的服务器标识,服务器同时还提供了一个用作产生密钥的随机数;
  • ③ 客户端对服务器的证书进行验证(有关验证证书,可以参考数字签名),并抽取服务器的公用密钥;然后,再产生一个称作 pre_master_secret 的随机密码串,并使用服务器的公用密钥对其进行加密(参考非对称加 / 解密),并将加密后的信息发送给服务器;
  • ④ 客户端与服务器端根据 pre_master_secret 以及客户端与服务器的随机数值独立计算出加密和 MAC密钥(参考 DH密钥交换算法);
  • ⑤ 客户端将所有握手消息的 MAC 值发送给服务器;
  • ⑥ 服务器将所有握手消息的 MAC 值发送给客户端。

三、HTTPS的优缺点

1.优点

  1. 使用 HTTPS 协议可认证用户和服务器,确保数据发送到正确的客户机和服务器。
  2. HTTPS 协议是由 SSL+HTTP 协议构建的可进行加密传输、身份认证的网络协议,要比 HTTP 协议安全,可防止数据在传输过程中不被窃取、改变,确保数据的完整性。
  3. HTTPS 是现行架构下最安全的解决方案,虽然不是绝对安全,但它大幅增加了中间人攻击的成本。

2.缺点

  1. 相同网络环境下,HTTPS 协议会使页面的加载时间延长近 50%,增加 10%到 20%的耗电。此外,HTTPS 协议还会影响缓存,增加数据开销和功耗。
  2. HTTPS 协议的安全是有范围的,在黑客攻击、拒绝服务攻击和服务器劫持等方面几乎起不到什么作用。
  3. 最关键的是,SSL 证书的信用链体系并不安全。特别是在某些国家可以控制 CA 根证书的情况下,中间人攻击一样可行。
  4. 成本增加。部署 HTTPS 后,因为 HTTPS 协议的工作要增加额外的计算资源消耗,例如 SSL 协议加密算法和 SSL 交互次数将占用一定的计算资源和服务器成本。在大规模用户访问应用的场景下,服务器需要频繁地做加密和解密操作,几乎每一个字节都需要做加解密,这就产生了服务器成本。随着云计算技术的发展,数据中心部署的服务器使用成本在规模增加后逐步下降,相对于用户访问的安全提升,其投入成本已经下降到可接受程度。

四、应用方案实践

现有互联网环境中仍大约有65%的网站使用 HTTP 协议,此部分的互联网站的用户访问会存在很高的安全 隐患,导致信息泄露、木马植入等情况出现。针对这一情况,为互联网提供安全服务而采用 HTTPS 已是大势所趋。HTTP 到 HTTPS 的转向可以帮助企业网提升用 户访问安全水平,特别是对于有敏感信息保存和提供金融交易等服务的企业更有帮助。

  1. 从 HTTP 转向 HTTPS 的应用改造要点:HTTP 页面分析评估信息数据安全等级;WEB 页面访问改造;站点证书申请和部署;启用 HTTPS 协议支持,增加 TCP-443 端口,对外服务。
  2. 从 HTTP 转向 HTTPS 的 CDN 服务改造要点: CDN 侧调整网络服务;CDN 站点增加对 HTTPS 协议支持;CDN 站点对 HTTPS 加速技术进行优化提升稳定性; CDN 站点支持端到端的全链路 HTTPS 支持能力;CDN 站点增加 CA 证书部署的实施方案。

我的微信公众号:架构真经(id:gentoo666),分享Java干货,高并发编程,热门技术教程,微服务及分布式技术,架构设计,区块链技术,人工智能,大数据,Java面试题,以及前沿热门资讯等。每日更新哦!

参考资料:

  1. https://baike.baidu.com/item/https/285356?fr=aladdin

网络(9)-HTTPS协议相关推荐

  1. 网络篇 - https协议中的数据是否需要二次加密

    随着互联网整体的发展,https 也被越来越多的应用.甚至苹果去年还曾经放言要强制所有的 app 都使用 https,可见在如今的互联网它的重要性.前面的文章说了 OSI 七层模型,https 可以保 ...

  2. 网络编程-HTTPS协议的实现原理

    HTTP传输协议缺点 之前几篇文章中详细讲解了TCP/IP协议栈中的几个协议,其中个就有对HTTP做了一个比较详细的讲解.HTTP是基于TCP进行传输的,其中传输的内容都是明文报文数据,如果我是一个黑 ...

  3. 【网络】https协议

  4. 【网络】HTTPS协议详解

  5. 网络编程知识预备(4) ——了解应用层的HTTP协议与HTTPS协议

    参考:简单了解HTTP协议与HTTPS协议 作者:丶PURSUING 发布时间: 2021-03-15 10:55:13 网址:https://blog.csdn.net/weixin_4474282 ...

  6. 【网络协议趣谈】HTTPS协议加密证书和工作模式

    用HTTP协议,看个新闻还没有问题,但是换到更加严肃的场景中就存在很多的安全风险. 例如,下单做一次支付,如果还是使用普通的HTTP协议,那很可能会被黑客盯上 发送一个请求说要点个外卖,但是这个网络包 ...

  7. 02.Python网络爬虫第二弹(http和https协议)

    02.Python网络爬虫第二弹<http和https协议> 一.HTTP协议 1.官方概念: HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩 ...

  8. 11.网络协议-HTTP及HTTPS协议

    1.HTTP需求背景 万维网(www) • Http是一种网络协议,也是互联网上应用最为广泛的一种,http也叫超文本传输协议,所有的html文件都是遵循这个标准进行传输的. • HTTP的出现是为了 ...

  9. 网络协议:透彻解析HTTPS协议

    本篇内容包括:HTTPS 协议概述,SSL 与 TLS(SSL 与 TLS 概述.SSL证书 和 SSL 与 TLS 二者之间关系),以及 HTTPS 下浏览器访问一个网站的全过程的内容! 文章目录 ...

最新文章

  1. 美国AI博士一针见血:Python这样学最容易成为高手!
  2. 计算机专业教学团队建设规划,计信学院教学团队建设方案
  3. redhat5安装oracle详细步骤,redhat5安装oracle11g详细教程
  4. linux内网穿透局域网frp(实现有网就能访问你的局域网台式机服务器)
  5. 关于ARM的22个常用概念介绍
  6. 在博客园的博客插入代码块(高亮、行号、缩进、着色)
  7. 一个脚本实现全量增量备份,并推送到远端备份中心服务器
  8. Ubuntu下安装Gerrit
  9. Vue.set()详解
  10. git reflog
  11. Win 10 安装 Maven 与 Maven 知识点扫盲
  12. UCDOS SDK FOR C/C++ 1.0 说明文件
  13. 蒙特卡洛仿真的5个实例
  14. 做软件测试学编程的十大误区
  15. RTI_DDS自定义插件开发 9 API NDDS_Transport_Unshare_RecvResource_Fcn_rrEA
  16. Qt的对话框与窗口--自定义的对话框
  17. raid服务器怎么装win7系统安装,安装win7系统时怎么加载SATARAID驱动
  18. mysql 手机号省份_根据手机号 判断省份和运营商
  19. springboot 集成kafka 实现多个customer不同group
  20. vue获取qq音乐歌曲音频资源

热门文章

  1. CreateThread线程函数
  2. DirectShow--A.枚举设备
  3. 关于T4,正在发生的...
  4. 浅析Kubernetes资源管理
  5. 使用Docker高效搭建开发环境
  6. 天猫精灵 python_python爬天猫
  7. c++ opencv实现区域填充_Python+OpenCV基础教程2:平滑图像
  8. WebRTC通信流程
  9. swiper根据图片切换不同的背景色
  10. php-fpm进程利用CPU不均问题的优化过程