为什么能看到https报文的明文?

一、问题的提出

昨天发生了一个跟https有关的生产bug。

事后有的小伙伴表示虽然看了一些网上的资料,但是还是不太理解https通讯的全流程,我就用比较通俗的说法给他整体讲了一遍。

然后小伙伴突然问了一个很有意思的问题:既然使用https发送报文,又非对称加密,又对称加密(会话秘钥)的,反正各种加密,那为什么我按个F12还是能看到明文?这密都加到哪儿去了?

这是一个挺好的问题,说明他真的动脑子在想了。

二、网络七层协议

学习过基础网络知识的软件工程师们,应该都了解这个经典的网络七层协议(OSI模型)。

OSI模型

其中的应用层、表示层、会话层有时候也会合并起来简单地表示为“应用层”,变成五层协议。

这五层协议的分工,曾经在知乎上面看到过一个非常通俗形象的总结,借用过来:

  • 买东西时候要封装打包(应用层)
  • 打包后要在包裹上贴快递单(传输层)
  • 在快递单上要写源地址目的地址(网络层)
  • 让快递小哥来取件(数据链路层)
  • 快递小哥骑车送件到收货人(物理层)

原回答地址 作者ID:后生)

三、问题的答案

所谓的 https ,其实就是 http + SSL/TLS 两种协议的合体。

同时,http协议是应用层协议,而SSL/TLS是传输层协议。

那问题的答案就很清晰了,在你能够在浏览器上面查看网页之前,报文经过了你的传输层,SSL/TLS已经对报文进行了解密处理(快递已经开包)。

之后所以不管是在浏览器上呈现,还是你按F12查看源码,都是http协议的事情(快递里面的东西都已经到你手上了,对你而言不会再有啥秘密)。

四、多说几句

现在转行而来的软件工程师和产品设计师的比重在行业内非常高。

对于这一现象我既有正面的看法,不可避免也有负面看法,在这里暂且不提。

但是对于一些只经过了基础编程训练,而缺乏计算机基础知识(各种算法、原理等等)的软件工程师,我经常会劝他们多补补课。

这些基础知识可能在你工作的99%时间里一点作用也起不到,但是它们可以在潜移默化之间提升你能力的天花板,让你解决问题的思路更为广阔。

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Wireshark是一款功能强大的网络抓包工具,它可以用来分析和捕获网络数据包。SSL(Secure Sockets Layer)是一种常用的加密协议,用于确保在网络上的数据传输过程中的安全性。 要解密SSL报文明文,首先需要获取目标服务器的私钥。这可以通过多种方式实现,例如,凭借管理员权限从服务器上获取私钥,或者通过社会工程学手段获取私钥的副本。 一旦获得了服务器的私钥,我们就可以使用Wireshark进行解密操作。以下是解密SSL报文的步骤: 1. 打开Wireshark并导入包含SSL报文的数据包文件。 2. 在Wireshark窗口中,选择“Edit”(编辑),然后选择“Preferences”(首选项)。 3. 在弹出的“Preferences”窗口中,选择“Protocols”(协议)。 4. 找到并展开“SSL”协议选项,并选择“RSA keys list”(RSA密钥列表)。 5. 点击“Edit”(编辑)按钮来配置RSA密钥列表。 6. 在“SSL RSA keys”窗口中,点击“+”按钮添加服务器的IP地址和私钥文件路径。 7. 确认配置后,关闭所有配置窗口。 8. 重新打开SSL加密的数据包,Wireshark将自动使用私钥解密SSL报文,解密后的明文将显示在相应的数据包中。 需要注意的是,解密SSL报文涉及到私钥的使用,私钥的保护和安全是至关重要的。任何未经授权的获取私钥都是非法行为,可能引发法律问题。因此,在解密SSL报文之前,请确保您已获得合法的权限或得到相关授权,以遵守法律和道德准则。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值