或者
$ open -a google Chrome #在mac里打开chrome浏览器
此时会看到在/Users/xiaobaidebug/
下会多了一个ssl.key
文件 。
这时候跟着下面的操作修改wireshark
的配置项 。
文章插图
打开wireshark的配置项
找到Protocols之后,使劲往下翻,找到
TLS
那一项 。文章插图
在配置项中找到Protocols
将导出的
ssl.key
文件路径输入到这里头 。文章插图
在Protocols中找到TLS那一栏
点击确定后,就能看到18号和20号数据包已经被解密 。
文章插图
解密后的数据包内容
此时再用
http.host == "baidu.com"
,就能过滤出数据了 。文章插图
解密后的数据包中可以过滤出baidu的数据包
到这里,其实看不了数据包的问题就解决了 。
但是,新的问题又来了 。
ssl.key文件是个啥?
这就要从HTTPS的加密原理说起了 。
HTTPS握手过程
HTTPS的握手过程比较繁琐,我们来回顾下 。
先是建立TCP连接,毕竟HTTP是基于TCP的应用层协议 。
在TCP成功建立完协议后,就可以开始进入HTTPS阶段 。
HTTPS可以用TLS或者SSL啥的进行加密,下面我们以
TLS1.2
为例 。总的来说 。整个加密流程其实分为两阶段 。
第一阶段是TLS四次握手,这一阶段主要是利用非对称加密的特性各种交换信息,最后得到一个"会话秘钥" 。
第二阶段是则是在第一阶段的"会话秘钥"基础上,进行对称加密通信 。
文章插图
TLS四次握手
我们先来看下第一阶段的TLS四次握手是怎么样的 。
第一次握手:
-
•Client Hello
:是客户端告诉服务端,它支持什么样的加密协议版本,比如TLS1.2
,使用什么样的加密套件,比如最常见的RSA
,同时还给出一个客户端随机数 。
第二次握手:
-
•Server Hello
:服务端告诉客户端,服务器随机数 + 服务器证书 + 确定的加密协议版本(比如就是TLS1.2) 。
第三次握手:
-
•Client Key Exchange
: 此时客户端再生成一个随机数,叫pre_master_key
。从第二次握手的服务器证书里取出服务器公钥,用公钥加密pre_master_key
,发给服务器 。
-
•Change Cipher Spec
: 客户端这边已经拥有三个随机数:客户端随机数,服务器随机数和pre_master_key,用这三个随机数进行计算得到一个"会话秘钥" 。此时客户端通知服务端,后面会用这个会话秘钥进行对称机密通信 。
-
•Encrypted Handshake Message
:客户端会把迄今为止的通信数据内容生成一个摘要,用"会话秘钥"加密一下,发给服务器做校验,此时客户端这边的握手流程就结束了,因此也叫Finished报文 。
第四次握手:
-
•Change Cipher Spec
:服务端此时拿到客户端传来的
推荐阅读
- 为什么Java线程没有Running状态?
- 为什么短短两周之后就鲜有人继续讨论ChatGPT了?
- 为什么有些腕表被称为医生表?
- cmpunk出场曲?wwe CMPUNK 的GTS 永远沉睡 怎么用 我为什么每次扔人都是 仰着头下去的而不是面朝下呢?
- 戴燕妮|一路走好!阿星因病去世,22岁妻子也随他而去,女儿还不到2岁
- 银元|为什么钱币收藏非常适合大众而且可以一直收藏
- 诸葛亮为什么要七擒七纵孟获? 七擒七纵孟获
- 宋祖儿|李连杰又去拜佛,61岁利智和2个女儿陪同,他为什么如此热衷佛学
- 玛莎百货在英国现状?为什么玛莎百货全面退出中国?
- 请问现在58同城,百姓网,赶集网为什么看不到企业招聘的电话啊 呼伦贝尔百姓赶集网