当服务器是https时,有没有办法查看发送的数据?

时间:2017-04-18 17:52:40

标签: ssl tcp https tls1.2

我正在尝试查看我的浏览器发送到使用https协议的服务器的数据(使用tcpdump) tcpdump -i any -w /tmp/http.log
但是应用程序数据是加密的(正如预期的那样)。 我想知道有什么方法可以在服务器是https时加密之前查看数据吗?

编辑:加密流量由常见的网络浏览器创建,如Firefox,Chrome,IE ......

2 个答案:

答案 0 :(得分:1)

如果您控制服务器,则可以将其设置为允许空密码,然后强制您的客户端使用相同的密码。空密码只是一种说“未加密”的奇特方式。这应该永远不会被部署,因为即使将它作为密码列表中的一个选项也是非常不安全的。

您还可以向客户端添加可信密钥,并让客户端使用代理。与代理的通信使用您创建的可信密钥,并且可以在发送之前查看数据,并使用目标服务器的密钥加密。实际上,这是一个“中间人攻击”,可以被证书固定等东西击败。一些公司使用它来跟踪员工的计算机使用情况(以这种方式使用时,它有点争议)。

严格来说,这两种攻击都是为了解决加密问题,而不是在数据加密之前查看数据。要在加密之前查看它,您通常必须修改客户端或服务器以记录它发送的内容(或者可能使用调试器),因为通常加密是由直接链接到程序的库完成的。

编辑:Chrome和Firefox中的开发人员工具可能正是您所寻找的:如果您单击“网络”选项卡上的页面(在Chrome中,我没有FF,但它几乎完全是同样的事情)你几乎可以看到发送和接收信息的所有方面。

答案 1 :(得分:0)

只需在您的计算机上使用Charles Proxy(免费试用版)即可。如果证书被固定,那么这对于浏览器来说可能不是那么有效。