美文网首页
为什么能看到https报文的明文?

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

作者: 白花蛇草可乐 | 来源:发表于2019-09-28 16:01 被阅读0次

    一、问题的提出

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

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

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

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

    二、网络七层协议

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

    OSI模型

    其中的应用层、表示层、会话层有时候会被合并起来统称“应用层”,变成五层协议。

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

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

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

    三、问题的答案

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

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

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

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

    四、多说几句

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

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

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

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

    相关文章

      网友评论

          本文标题:为什么能看到https报文的明文?

          本文链接:https://www.haomeiwen.com/subject/nynzectx.html