嗅探器可以重建我传输的文件吗?

Can sniffers rebuild my transmitted file?

我有以下代码:

// in = InputStream inputStream = filePart.getInputStream()
// out = OutputStream out = socket.getOutputStream()

int read = 0;
byte[] bytes = new byte[25 * 1024];
while ((read = inputStream.read(bytes)) != -1) {
    out.write(bytes, 0, read);
}

现在,假设有人在嗅探我的数据,他们能否以某种方式重建我传输的每个字节以重建我传输的文件?我想是的。

视情况而定。

我们假设 socket 指的是网络套接字,即 java.net.Socket。然后它取决于套接字连接到的接口。例如,如果这是相当常见的:

  • 该接口是此设备中的网络端口,连接到普通 jane 商用家用电缆调制解调器的电缆连接到该接口,然后连接到街道上的分线器盒,再从那里连接到玻璃上光纤,到广泛的互联网上,例如靠近拥有大量数据中心的地方的数据中心交换站,通过管道到这些数据中心之一,通过它们的交换基础设施向右'room',到路由器,到壁橱中的集线器,最后到服务器。

然后在几乎任何地方都可以是'snooped'。这就是为什么大多数互联网流量都被加密的原因。特别是可以在壁橱中的那个集线器上窥探,如果他们以混杂模式打开他们的卡,可能那个盒子里的所有其他服务器都可以看到它。如果有人在外面闲逛并夹在您的房子和街道尽头的分线器之间的电缆上,他们可能会听到。通过使用例如解决此问题https.

但是,如果它是这样的:套接字连接到 VPN 驱动程序生成的虚拟接口,那么,关于它如何到达另一端的其他故事可能并不重要。至少在信号跳出 VPN 之前的整个网段都在 VPN 'space' 内,并且正在通过间接层进行物理路由。除非你有一些奇怪的 VPN 实现,否则该层将被加密。唯一可以 'sniff' 如果有人在您的 PC 上安装了窥探驱动程序。如果有人在您不知情或未同意的情况下安装根级访问软件,您就会被套牢,您所做的任何事情都不会安全。

所以如果我们可以忽略这种情况,那么在后一种情况下:不,没有人可以窥探。