2016-02-24 35 views
0

在跳入问题之前,我想分享一下,我的网络结构如何。我有3台电脑,其中1台充当服务器,剩下的机器充当客户端。服务器连接到互联网并与其他两台机器共享。 我一直在尝试使用Jnetpcap库在我的服务器上记录所有的HTTPS请求。我很轻松地记录了来自HTTP的所有请求。但是,无法控制HTTPS请求。使用jNetPcap解码服务器上的HTTPS请求负载

我PacketHandler片段是:

PcapPacketHandler<String> jpacketHandler = new PcapPacketHandler<String>() { 

      public void nextPacket(PcapPacket packet, String user) { 

       System.out.printf("Received packet at %s caplen=%-4d len=%-4d %s\n", 
         new Date(packet.getCaptureHeader().timestampInMillis()), 
         packet.getCaptureHeader().caplen(), // Length actually captured 
         packet.getCaptureHeader().wirelen(), // Original length 
         user // User supplied object 
       ); 
      } 
     }; 

在响应返回

youtube.com.https ......等等等等

但是,没返回我愿意捕捉的YouTube视频ID。

回答

1

这就是问题所在的“HTTPS”中的“S”。

HTTP请求和回复是纯文本。 HTTPS是HTTP-over- {SSL,TLS},并且在这些请求和回复中发送的纯文本几乎都是加密的。你不得不解密它,这是不容易的 - Wireshark有代码,可以有时做到这一点,如果你提供了正确的信息,但如the Wireshark Wiki entry for SSL所示,并且看看Wireshark代码来做解密将显示,涉及的工作量很大。

+0

如果我想捕获通过我的服务器传递的SSL流量。我可以不访问它吗?由于我是服务提供商,想知道谁在访问什么? –

+0

“如果我想捕获通过我的服务器传递的SSL流量,我可以不访问它吗?因为我是服务提供商,并且想知道谁正在访问什么?”有“可以”,有“可能”。是的,如果它是你的服务器,人们可能会说你*可以*访问它,就像“他们认为你访问它不认为是错误的”,但是只有当你嗅探流量并且可以解密它时你才能* *或*如果您将日志记录功能*放入您的服务器*(如果它尚未拥有它)并使用* that *而不是第三方数据包嗅探。 –

+0

你正在运行哪些服务器软件?你能配置它来记录所有客户端的流量吗? –

相关问题