发布时间:2020-03-21 18:51:11来源:阅读:
由于需要定位一个问题,在服务器上tcpdump抓取http数据包,然后下载到本地打开wireshark分析。然后我们下载域名私钥配置到wireshark,发现数据包居然无法解密。是wireshark配置密钥的方法不对?但谷歌了好多文章都是说这样配置的。由于对HTTPS认识不够深,一时不知道如何入手解决。没办法,只能先了解tls这个协议了,于是查看了TLS1.2的RFC文档,终于勉强解答了这个疑惑。
在解决这个问题之前,先整体了解一下TLS的握手全过程。省略了不常见的过程。如图:
下面按顺序介绍各握手步骤。
这是TLS握手的第一步,由客户端发起请求。此协议主要包括了一个客户端生成的随机字符串(用来下面生成session key),还有客户端支持的加密套件列表。如图:
服务器收到客户端的Client Hello数据包之后,根据客户端发来的加密套件列表,选择一个加密套件,也生成一个随机字符串返回给客户端。我们看到下图中的加密套件为,密钥交换算法使用ECDHE_RSA,对称加密算法使用AES_256_GCM_SHA384,如图:
接着服务器再返回证书列表,包括证书链及域名证书。返回的证书用来给客户端验证当前连接服务器的身份,防止中间人攻击。
Server Key Exchange协议包,由服务器返回,主要目的是与客户端交换用于数据对称加密的密钥。如图:
服务器返回此协议数据,告诉客户端已经完成返回所需用于密钥交换的数据。服务器等待客户端响应。
客户端根据服务器返回的DH密钥数据生成DH公共数据也发给服务器,用来生成最终的pre-master-secret。如图:
此协议用于客户端和服务器相互告知也完成密钥交换过程,可以切换到对称加密过程。
到这里大概的TLS握手过程就结束了。为解决本文中的问题,还需要了解密钥交换的算法,RSA和Diffie–Hellman。
密钥交换算法目前常用的有RSA和Diffie-Hellman。
对于密钥交换使用RSA算法,pre-master-secret由客户端生成,并使用公钥加密传输给服务器。
对于密钥交换使用Diffie-Hellman算法,pre-master-secret则通过在Key Exchange阶段交换的信息,由各自计算出pre-master-secret。所以pre-master-secret没有存到硬盘,也没有在网络上传输,wireshark就无法获取session key,也就无法解密应用数据。那我们是否可以反向计算出pre-master-secret呢?理论上可以,但是非常困难。
对Diffie-Hellman算法感兴趣的可以参考http://en.wikipedia.org/wiki/Diffie%E2%80%93Hellman_key_exchange
说了这么多,究竟有什么办法可以让wireshark解密数据?我们可以通过下面几种方法来使wireshark能解密http数据包。
下一篇:802.11ac无线技术
Wireshark抓包工具
56.78 MB
HTTPSniffer下载
255.1K
HeidiSQL(MySQL服务器数据管理工具) v11.0.0.6055 免费版
10.1M
PDF解密工具下载
15.4M
activesync(电脑数据同步工具) v6.1 免费版
22.72MB
pdf解密软件下载
2.7M
pl sql developer(Oracle数据库存储程序单元的开发软件)2021 免费版
25.2M
互盾安卓恢复大师(手机数据恢复工具) v2.8.7.1 破解版
529KB
后羿采集器(网页数据采集软件) v3.5.3 免费版
45.0M
小牛文件恢复软件(数据恢复工具) v4.8.0 最新版
6.1M
手机管理软件(手机数据传输管理工具) v5.1.3.317最新免费版
24.5M
阿里云盘(数据同步软件) v1.4 电脑版
42.4M
顶尖数据恢复软件下载
7.5M
EasyRecovery 13 下载
12.99MB
activesync下载
22.72MB
easyrecovery pro下载
78.6M
easyrecovery pro下载
87.8M
powerdesigner下载
615.07MB
硬盘保护卡克星下载
0.11MB
2020-05-30
如何开启S10-2的杜比耳机功能
宽带连接拨号报错711问题的解决方案
Jenkins运行多个步骤的配置
V826手机随机没有同步软件,如何实现电话簿备份到电脑?
IdeaPad Y450/Y550/Y650充电灯状态汇总及PC BEEP关闭方法
Windows Vista下使用QQ游戏斗地主时报错无法继续如何解决?
Debian 8使用Apache部署Ruby on Rails
LVS三种负载均衡方式对比
联想小新打印机通过USB连接方式安装本地打印机驱动方法的介绍