2

ツイストのUDPマルチキャストのセキュリティに関して2つの質問があります。

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をスプーフィングすることのみが可能であり、インターフェースは可能ではありませんか?

一般的に、このコードはどの程度安全ですか?

4

1 に答える 1

1
  1. リッスンインターフェイスは、リッスンするインターフェイスです。グループに参加すると、カーネルとすべてのルーターにこのグループを受信するように指示されます。たとえば、ルーターは、デフォルトのようにメッセージをドロップするのではなく、そのグループからのメッセージを渡します。

  2. 理解できない。受信データグラムの送信元IPアドレスを確認するということですか?他の人のホストインターフェイスを確認する方法がわかりません。許可された送信元アドレスがプライベートである場合、可能なスプーフィングはそのプライベートサブネット内からのみ発生します。

于 2012-08-06T23:14:38.567 に答える