为什么如此安全的https协议却仍然可以被抓包呢?(1)

这篇具有很好参考价值的文章主要介绍了为什么如此安全的https协议却仍然可以被抓包呢?(1)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

好了,阅读到了这里,说明你对https已经非常熟悉了,那么你一定知道,https协议是结合了非对称加密和对称加密一起工作,从而保证数据传输的安全性的。

非对称加密用于确保客户端可以安全地获取到服务器的真实公钥。对称加密用于确保客户端和服务器之间的数据传输不会被任何人监听和解密,因为对称加密使用的密钥只有客户端和服务器这两者知道,其他任何人在不知道密钥的情况下都无法对传输数据进行解密。

那么看似固若金汤的https协议,抓包工具是如何在这其中找到一个“破绽”,从而实现对https请求进行抓包的呢?

其实严格来说,这也算不上是一个破绽,而是用户的一个主动行为。还记得我们在上篇文章中讲到的,如果想要对https请求进行抓包,必须在手机上安装一个由Fiddler提供的证书吗?这个证书就是整个工作原理的核心,如果没有它,那么https就是不可能被抓包的。而安装证书需要由用户主动去操作,说明用户知道自己在干什么,自然也应该承担相应的风险。这也是为什么我一直在说,https是非常安全的,但https也是可以被抓包的,它们两者之间并不冲突。

接下来,我们就具体研究一下,为什么只需要额外安装一个证书,抓包工具就可以实现对https请求进行抓包。

我们将实现原理分成两个部分来解析,第一部分是客户端如何安全地获取服务器的真实公钥,第二部分是客户端如何与服务器商定用于对称加密的密钥。

借助那些可信赖的CA机构,客户端是可以安全地获取到服务器的真实公钥的。

CA机构专门用于给各个服务器签发数字证书,从而保证客户端可以安全地获得服务器的公钥。

服务器的管理员可以向CA机构进行申请,将自己的公钥提交给CA机构。CA机构则会帮忙制作证书,并使用自己的私钥对其加密,然后将加密后的信息返回给服务器。

这样,当客户端想要去获取某个服务器的公钥时,服务器会将CA机构签发的那段加密信息返回。那么客户端要如何解密这段信息呢?放心,主流CA机构的公钥都是被内置到操作系统当中的,所以只要是服务器的数字证书是由正规CA机构签发的,那么就一定可以被解密成功,从而客户端也就能安全地获取到服务器的公钥了。示意图如下:

为什么如此安全的https协议却仍然可以被抓包呢?(1),程序员,安全,https,网络协议

而抓包工具在这个过程中可以做什么事情呢?我们还是以Fiddler举例。Fiddler的工作是介于客户端和服务器中间的,它会先于客户端接收到服务器返回的加密数据,然后它也可以使用操作系统内置的CA公钥对这段数据解密,从而得到服务器的公钥,并先将这个公钥保存起来。

接下来,Fiddler会将解密出来的数据进行调包,将其中服务器返回的公钥替换成自己的一个公钥,然后使用自己的非对称加密私钥对数据重新加密,并将这段重新加密后的数据返回给客户端。示意图如下:

为什么如此安全的https协议却仍然可以被抓包呢?(1),程序员,安全,https,网络协议

但是我们知道,用Fiddler自己的私钥加密后的数据,客户端肯定解密不出来呀,因为Fiddler的公钥并没有内置到操作系统当中,这个时候就会出现我们在上篇文章看到的错误。

为什么如此安全的https协议却仍然可以被抓包呢?(1),程序员,安全,https,网络协议

那么接下来要怎么办你应该很清楚了吧?这也是为什么我们一定要在手机上安装一个Fiddler提供的证书才行,只是为了让客户端能够解密出Fiddler调包之后的数据。如下图所示:

为什么如此安全的https协议却仍然可以被抓包呢?(1),程序员,安全,https,网络协议

这样客户端仍然获得了一个公钥,并且还以为这个公钥是服务器返回的,实际上这是一个被Fiddler调包之后的公钥。而服务器返回的真实公钥则被Fiddler保存了起来。

到这里为止,获取服务器公钥的流程就结束了,目前各部分的状态如下:

为什么如此安全的https协议却仍然可以被抓包呢?(1),程序员,安全,https,网络协议

接下来是客户端与服务器商定对称加密密钥的过程。

由于使用什么对称加密密钥是由客户端这边来决定的,客户端可以利用随机算法在本地生成一个对称加密密钥,并用服务器返回的公钥进行加密,然后发送给服务器。由于公钥加密的数据只能用私钥解密,因此没有任何人能破解出客户端生成的对称加密密钥到底是什么。

然后服务器这边使用自己的私钥将客户端发来的数据进行解密,这样客户端和服务器就都知道对称加密的密钥是什么了,并且绝对没有第三个人能知道,这样双方之后都使用对称加密来进行通讯即可,从而保证了数据传输的安全。示意图如下:

为什么如此安全的https协议却仍然可以被抓包呢?(1),程序员,安全,https,网络协议

然而现在有了Fiddler,一切就都不一样了。

客户端这边拿到的其实根本就不是服务器的公钥,而是由Fiddler调包后的公钥。所以,客户端这边生成一个对称加密密钥后,使用的也是Fiddler调包后的公钥来进行加密的,这样这段加密后的数据只有用Fiddler自己的私钥才能解开。

那么很显然,Fiddler当然是有自己的私钥的,因此它能够解密出这段数据,这样Fiddler就知道客户端生成的对称加密密钥是什么了。

接下来不要忘记,Fiddler还在之前就保存了服务器返回的真实公钥,那么现在Fiddler可以用真实的服务器公钥再次加密这段数据,然后将加密后的数据发送给服务器。

对于服务器而言,它并不知道客户端这边发生了什么事,也不知道Fiddler的存在。它只知道,用自己的私钥是可以解密出客户端发来的数据,并能从中获得对称加密的密钥。示意图如下:

为什么如此安全的https协议却仍然可以被抓包呢?(1),程序员,安全,https,网络协议

到这里,对称加密密钥的商定过程也就结束了,目前各部分的状态如下:

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

为什么如此安全的https协议却仍然可以被抓包呢?(1),程序员,安全,https,网络协议

为什么如此安全的https协议却仍然可以被抓包呢?(1),程序员,安全,https,网络协议

为什么如此安全的https协议却仍然可以被抓包呢?(1),程序员,安全,https,网络协议

为什么如此安全的https协议却仍然可以被抓包呢?(1),程序员,安全,https,网络协议

为什么如此安全的https协议却仍然可以被抓包呢?(1),程序员,安全,https,网络协议

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:Android)

为什么如此安全的https协议却仍然可以被抓包呢?(1),程序员,安全,https,网络协议

最后

为了方便有学习需要的朋友,我把资料都整理成了视频教程(实际上比预期多花了不少精力)

当程序员容易,当一个优秀的程序员是需要不断学习的,从初级程序员到高级程序员,从初级架构师到资深架构师,或者走向管理,从技术经理到技术总监,每个阶段都需要掌握不同的能力。早早确定自己的职业方向,才能在工作和能力提升中甩开同龄人。

  • 无论你现在水平怎么样一定要 持续学习 没有鸡汤,别人看起来的毫不费力,其实费了很大力,这四个字就是我的建议!!
  • 我希望每一个努力生活的IT工程师,都会得到自己想要的,因为我们很辛苦,我们应得的。

当程序员容易,当一个优秀的程序员是需要不断学习的,从初级程序员到高级程序员,从初级架构师到资深架构师,或者走向管理,从技术经理到技术总监,每个阶段都需要掌握不同的能力。早早确定自己的职业方向,才能在工作和能力提升中甩开同龄人。

无论你现在水平怎么样一定要 持续学习 没有鸡汤,别人看起来的毫不费力,其实费了很大力,没有人能随随便便成功。

加油,共勉。文章来源地址https://www.toymoban.com/news/detail-858419.html

《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门即可获取!

无论你现在水平怎么样一定要 持续学习 没有鸡汤,别人看起来的毫不费力,其实费了很大力,没有人能随随便便成功。

加油,共勉。

《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门即可获取!

到了这里,关于为什么如此安全的https协议却仍然可以被抓包呢?(1)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • HTTPS——HTTPS如何加密数据,“证书“为什么可以应对 “中间人攻击“

    本人是一个普通程序猿!分享一点自己的见解,如果有错误的地方欢迎各位大佬莅临指导,如果你也对编程感兴趣的话,互关一下,以后互相学习,共同进步。这篇文章能够帮助到你的话,劳请大家点赞转发支持一下! HTTPS 也是一个应用层协议, 是在 HTTP 协议的基础上引入了一个加

    2024年02月15日
    浏览(48)
  • 什么是https?https为什么安全?

    随着互联网的发展,HTTPS 协议在互联网通信中的应用越来越广泛,被越来越多的网站采用。相比于 HTTP 协议,HTTPS 协议的安全性更高,使得网络通信更加安全。那么,为什么 HTTPS 协议能够保证通信安全呢? 本文将从以下几个方面进行探讨:HTTPS 协议的基本原理,HTTPS 协议与

    2023年04月09日
    浏览(45)
  • HTTPS为什么安全,流程?

    对称、非对称混合加密 首先,我们先来看 HTTP 为什么 不安全 。 HTTP没有对通信内容进行加密,是 明文传输 ,信息可能会被 劫持、篡改 等,相当于在互联网上裸奔,所以是不安全的。 那么HTTPS主要就是为了解决这个问题,而解决这个问题肯定要对传输的明文进行 加密 ,让

    2023年04月20日
    浏览(50)
  • 为什么HTTPS是安全的?

    1.1 HTTP 协议介绍 HTTP 协议是一种基于文本的传输协议,它位于 OSI 网络模型中的应用层。  HTTP 协议是通过客户端和服务器的请求应答来进行通讯,目前协议由之前的 RFC 2616 拆分成立六个单独的协议说明(RFC 7230、RFC 7231、RFC 7232、RFC 7233、RFC 7234、RFC 7235),通讯报文如下: 请

    2024年02月08日
    浏览(44)
  • 【计算机网络】什么是HTTPS?HTTPS为什么是安全的?

    【面试经典题】 前言: HTTP最初的设计就是用于数据的共享和传输,并没有考虑到数据的安全性,如窃听风险,篡改风险和冒充风险。HTTPS是在 HTTP 的基础上引入了一个加密层。HTTPS通过数据加密,数据完整性检验和身份认证有效的保证了数据传输的安全性。HTTP默认端口号8

    2024年02月08日
    浏览(44)
  • 为什么 HTTPS 比 HTTP 安全

    HTTP(超文本传输协议)是目前互联网应用最广泛的协议,伴随着人们网络安全意识的加强,HTTPS 被越来越多地采纳。不论是访问一些购物网站,或是登录一些博客、论坛等,我们都被 HTTPS 保护着,甚至 Google Chrome、Firefox 等主流浏览器已经将所有基于 HTTP 的站点都标记为不安全

    2024年02月19日
    浏览(47)
  • 为什么说 HTTPS 是安全的?

    在这个数字化高速发展的时代,网络安全变得前所未有的重要。 个人信息、金融交易、国家安全乃至民生便捷,几乎每一个环节都与网络安全息息相关。 HTTPS作为当今网络传输协议中的重要一员,是保障网络传输安全的基石之一。 本文将深入探讨HTTPS的安全性,解析其背后的

    2024年01月19日
    浏览(45)
  • 为什么 https 比 http 更安全?

    http 和 https 在许多网站都有用到,但是现在都是极力倡导使用 https ,究其原因就是 http 的安全性不够高,在数据传输过程中可能会遭到黑客窃取。 本篇文章会先讲解 http 缺点,然后再讲解 https 是如何解决这些问题来保证安全的。 一、http 缺点 通信使用明文(不加密),内容

    2024年01月24日
    浏览(47)
  • HTTPS 为什么是安全的 _ (下)

    有了这些前置知识,下面就来深入剖析 HTTPS 。 为什么需要 HTTPS ? 因为 HTTP 在裸奔 。 针对上篇文章中提到过的安全传输信息的几个要素: 保证传输内容的安全,即不传输明文 防止传输内容被篡改,即可以识别篡改 确认对方真的是对方,即通信双方身份的认证 由于 HTTP 是

    2024年04月11日
    浏览(45)
  • 为什么说HTTPS比HTTP安全? HTTPS是如何保证安全的?

    在上篇文章中,我们了解到 HTTP 在通信过程中,存在以下问题: 通信使用明文(不加密),内容可能被窃听 不验证通信方的身份,因此有可能遭遇伪装 而 HTTPS 的出现正是解决这些问题, HTTPS 是建立在 SSL 之上,其安全性由 SSL 来保证 在采用 SSL 后, HTTP 就拥有了 HTTPS 的加密

    2024年03月19日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包