如何在wireshark中查看加密的应用程序数据

时间:2013-08-27 04:27:59

标签: ssl https wireshark

screenshot of wireshark

我使用https编写了一个Android应用程序,通过https协议获取json数据,我想使用Wireshark捕获数据,如何查看加密的应用程序数据。

2 个答案:

答案 0 :(得分:1)

我加快了研究它的时间,但它不起作用,我使用另一种工具来做到这一点。 fiddler,it's here运作良好。

答案 1 :(得分:0)

使用密钥日志文件

如果您提供包含在 TLS 连接期间交换的主密钥的文件,Wireshark 可以解密 TLS 数据。

使用环境变量定义日志文件的位置:

export SSLKEYLOGFILE=~/.ssl-key.log

您可以通过将该行放入您的 .bashrcbash_profile 来使其永久化,但保留这些秘密会带来安全风险。

然后,将 Wireshark 指向该文件:

  1. 转到首选项(按 Ctrl+Shift+p)→ 协议 → TLS(无需一直向下滚动,您可以输入“TLS”)
  2. 在“(Pre)-Master-Secret log filename”中输入日志文件的路径

Wireshark TLS preferences with (Pre)-Master-Secret log filename

开始使用 Wireshark 捕获数据包,创建一些 TLS 流量(例如使用 curl),并检查解密的数据:

Wireshark packets with decrypted data

您的 SSLKEYLOGFILE 将包含如下几行:

CLIENT_RANDOM c1299911e65097c367c0124fb97548f81b618cbdc9c270c10a350c4fd39f3eb6 0d7523a42610316250b7a72fe2881daa6aff1bedf5955c64a747fc43bd93cbf1bf3650eeabb8f47b350feaedd7209952

以下是有关 Wireshark 中 TLS 的一些资源:


本回答中的 Wireshark 版本是 3.4.6,运行在 Arch Linux 5.12.9 上。