从客户端程序中嗅探HTTPS流量

时间:2011-12-05 20:18:55

标签: c++ security http https

这可能是一个愚蠢的问题......

我编写了一个C ++客户端程序,在cURL库的帮助下通过HTTPS与Web服务进行通信。

我想知道使用客户端的人是否可以使用某些嗅探程序清楚地看到来自他的计算机的流量?

或者他会看到加密数据吗?

谢谢!

6 个答案:

答案 0 :(得分:4)

使用netcat之类的实用程序来搜索线路上的数据,用户只能看到加密数据。查看原始数据的唯一方法是在将应用程序传递给cURL之前将其记录在应用程序内部,或者在计算机的活动RAM中找到它(因为它很可能是碎片化的,因此更加困难)。

答案 1 :(得分:2)

如果您的应用检查有效证书,则不会。

如果您的用户能够在您的应用中使用代理服务器,他们可以使用fiddler的解密https会话功能来执行此操作,但会导致无效的证书,可以使其在检测到时停止工作。 / p>

答案 2 :(得分:1)

他会看到加密数据。嗅探器只能查看数据包,因此如果HTTPS正常工作,数据包应该加密,这是程序可以看到的。

如果您想自己尝试一下,请了解ettercap-ng。

答案 3 :(得分:1)

我怀疑一般用户能够做到这一点......

但有很多方法可以做到这一点:

  • 用代理替换cURL库(如果动态链接)
  • 在调试器下运行程序并在cURL函数上放置断点
  • 用代理替换cURL程序(如果将其用作命令行实用程序)
  • 深入挖掘并在运行时检测内存

从我的POV来看,这是不可能的(因为你需要一些技能+知识+对客户环境的一些控制才能解决这个问题),但可能......

答案 4 :(得分:0)

SSL / TLS协议通常在应用层实施,因此数据在发送之前就已加密。

答案 5 :(得分:0)

如果用户有权访问用于加密/解密数据的证书密钥,那么他/她可以将它们插入WireShark,然后它就可以解除线路上的嗅探HTTPS数据包。