3

线鲨截图

我已经编写了一个 Android 应用程序来通过 HTTPS 获取 JSON 数据,并且我想使用 Wireshark 来捕获数据。

如何查看加密的应用程序数据?

4

2 回答 2

2

我花了很长时间研究它,但它不起作用。我使用另一个工具来做到这一点:Fiddler,它就在这里,效果很好。

于 2013-08-30T08:38:20.567 回答
1

使用密钥日志文件

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

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

export SSLKEYLOGFILE=~/.ssl-key.log

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

然后,将 Wireshark 指向该文件:

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

带有 (Pre)-Master-Secret 日志文件名的 Wireshark TLS 首选项

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

带有解密数据的 Wireshark 数据包

SSLKEYLOGFILE将包含如下行:

CLIENT_RANDOM c1299911e65097c367c0124fb97548f81b618cbdc9c270c10a350c4fd39f3eb6 0d7523a42610316250b7a72fe2881daa6aff1bedf5955c64a747fc43bd93cbf1bf3650eeabb8f47b350feaedd7209952

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


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

于 2021-06-23T07:15:31.607 回答