很多工具都允许我们查看 HTTPS 流量。是否有任何工具可以解密 TLS 并允许我查看 Gtalk 等应用程序的网络流量?
答案1
标准做法是使用代理,该代理将向您的浏览器提供自己的 TLS 证书,而不是合法证书(在本例中为 Google)。如果您的浏览器信任该证书,则网站应该可以正常运行;但是,代理将透明地解密来自浏览器的流量,显示并记录它,然后使用正确的 Google 证书重新加密它以传输到 Gmail 服务器。这实际上是进行一次有意识的中间人攻击你自己。
可以执行此操作的两个流行代理是打嗝和帕罗斯岛; 我喜欢他们两个。
使用 Burp 进行此操作的方法如下:
- 安装 Burp
- 按照 Burp 帮助中的说明进行操作安装 PortSwiggerCA 证书作为受信任的根证书;这将允许 Burp 为您浏览的任何网站创建“有效”证书(这对 GChat 很重要,将允许 XHR 请求通过 Burp 证书成功发送)。对于 Firefox,导出类似,但导入证书的相关区域是:工具>选项>高级>加密选项卡>查看证书>导入按钮。
- 启动 Burp 并设置浏览器代理以匹配 Burp 设置(通常为 localhost:8080)
- 登录 Gmail(您可能需要一个临时帐户;)
- 发送一些 GChat 消息。您将看到它们出现在您的 Burp 日志中(查看“代理选项卡/历史记录”子选项卡;您必须单击“拦截”子选项卡上的“转发”才能使请求真正通过。只需尝试一下,它就会有意义)
解密的 GChat 数据示例:
POST /mail/channel/bind?VER=8&<redacted> HTTP/1.1
Host: mail.google.com
User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:2.0) Gecko/20100101 Firefox/4.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip, deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Referer: https://mail.google.com/mail/?<redacted>
Cookie: <redacted>
Pragma: no-cache
Cache-Control: no-cache
Content-Length: 167
count=1&ofs=82&req0_type=m&req0_to=example%40gmail.com&req0_id=C96E78D465862AEC_1&req0_text=testing%20proxy....&req0_chatstate=active&req0_iconset=classic&req0__sc=c
我强烈建议您为此工作设置一个特定的浏览器配置文件,甚至一个完全独立的浏览器,因为您的浏览器完全信任这些代理根证书。
答案2
你可以用 wireshark 来做这个(http://wiki.wireshark.org/SSL),但它依赖于您是否有权访问浏览器和服务器密钥。