2009-02-06 103 views
14

如果PC也连接到网络(无线或有线),可以使用环回IP 127.0.0.1(localhost)在本地计算机上交换的任何数据是否被数据包嗅探?环回时的流量可以被数据包嗅探吗?

想知道作为本地运行进程的进程间通信手段的回送是否可以被视为交换数据的安全手段(即,不知道驻留在网络外部的任何人的易丢与数据包嗅探器程序)。

这个问题被问对于所有相关操作系统平台:

  • 的Win2K/WinXP的
  • Vista的
  • 的Windows 7
  • 的Mac OS X
  • Linux的

回答

14

它应该是安全的数据包嗅探离开网络,因为tr交通绝不会在电线(或电波)上传播。

该本地机器上的进程可能会嗅探数据包。

+0

+1。但为什么麻烦在同一台机器上嗅探?如果它在同一台机器上,并且可以劫持回环,则可能已经拥有root用户。只需直接阅读进程内存:) – JaredPar 2009-02-06 20:25:22

+0

我已经被告知Windows环回流量在网络上不可见,但后来我听说Linux环回的实现方式不同,并且可能很容易在网络上被嗅探。因此试图看看人群的集体智慧如何说。 :-) – RogerV 2009-02-06 20:26:56

+3

我个人没有意识到Linux通过网络发送回送数据包的问题。 (它将如何获得这些数据包与每个设备具有相同的回送地址?) – VBNight 2009-02-06 20:30:59

0

环回接口对于外部网络可以被认为是安全的。它在同一主机内不安全。

1

我非常肯定,流行的数据包嗅探器不能嗅探回送接口(在本地主机上调试东西时导致很多悲伤和烦恼的原因)。

0

到目前为止的答案是正确的,但我会用不同的方式来描述它。可以在本地主机本身上嗅探回送适配器通信,但通常需要特殊的驱动程序,具体取决于操作系统。尽管如此,环回通信对外部嗅探器是安全的。

我曾经遇到过需要嗅探环回通信的情况,并且它不容易设置,但是有可能(至少在Windows上,我也会用Linux来打赌)。

23

是的,这是安全的。如VBNight所述,流量不会触及电线或空气。

但是,您实际上可以在本地计算机上嗅探本地主机流量。例如在我的Linux机器我做了以下内容:

sudo tcpdump -i lo 

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode 
listening on lo, link-type EN10MB (Ethernet), capture size 96 bytes 
15:29:58.056585 IP localhost.56010 > localhost.16001: S 3572335637:3572335637(0) win 32792 <mss 16396,sackOK,timestamp 132126218 0,nop,wscale 6> 
15:29:58.056604 IP localhost.16001 > localhost.56010: R 0:0(0) ack 3572335638 win 0 
15:29:59.026016 IP localhost.41664 > localhost.41664: UDP, length 1 
15:29:59.026346 IP localhost.41664 > localhost.41664: UDP, length 1 
15:29:59.126838 IP localhost.41664 > localhost.41664: UDP, length 1 
15:29:59.127486 IP localhost.41664 > localhost.41664: UDP, length 1 

所以,你可以用它来嗅出自己的流量/ IPC消息,但没有人能看到它在网络上。

这是一个很常见的情况,在系统上通过lo接口使用TCP或UDP等协议用于本地IPC。