2009-02-06 71 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。