2012-08-06 102 views
2

我有2個有關扭曲的UDP組播的安全性問題。扭曲的Python:UDP組播接口和組

class UDPProtocol(twisted.internet.protocol.DatagramProtocol): 
     def startProtocol(self): 
       self.transport.joinGroup('224.0.0.1') 
     def datagramReceived(self, data, (host, port)): 
      if host == '192.126.1.65': 
       print "UDPWebscriptProtocol: received %r from %s:%d" % (data, host, port) 

這是我聽:

reactor.listenMulticast(10222, UDPProtocol(), listenMultiple = True, interface = '224.0.0.1') 

注意接口的listenMulticast規範。

  1. 指定listenMulticast中的接口與在協議中加入組之間有什麼區別?
  2. 在協議中,我檢查主機接口是否具有正確的IP(在這種情況下,具有rfc 1918地址的專用接口)。有人可能欺騙這個IP並向我的組播放?或者它只能欺騙IP和不接口?

一般來說,這段代碼有多安全?

回答

1
  1. 監聽界面是你聽的那個。加入組會告訴內核和您想要接收該組的所有路由器,例如您的路由器將傳遞來自該組的消息,而不是像默認情況下那樣丟棄它們。

  2. 我不明白。你的意思是檢查傳入數據報的源IP地址嗎?我沒有看到你如何檢查別人的主機接口。如果允許的源地址是私有的,唯一可能的欺騙來自該私有子網內。

+0

1 /是一個物理接口的監聽接口?我知道這個小組可以是一個任意的地址。他們需要是一樣的,不是嗎? – 2012-08-07 17:22:29