web-dev-qa-db-ja.com

TCPハンドシェイク後のIPアドレスのなりすまし

なりすましIPアドレスでTCPハンドシェイクを正常に実行できないことを知っています。

しかし、私は不思議に思います:TCPハンドシェイクが正常に実行されたら、IPを偽装することは可能ですか?

例えば:

  1. 握手をする

  2. (別のIPで)セッションを使用してリクエストを送信する

  3. 応答はスプーフィングされたIPに配信されます

前もって感謝します!

8
alive-and-well

TCPハンドシェイクが正常に実行されたら、IPを偽装することは可能ですか?

いいえ

TCPセッションは4つの項目によって定義されます:

  • 送信元IPアドレス
  • 送信元IPポート
  • 宛先IPアドレス
  • 宛先ポート

これは RFC 79 から来ています:

各TCP内で一意のアドレスを提供するために、TCPを識別するインターネットアドレスをポート識別子と連結して、接続されているすべてのネットワーク全体で一意になるソケットを作成します。

接続は、両端のソケットのペアによって完全に指定されます。

あなたがするなら:

2)セッションを使用して(異なるIPで)、リクエストを送信します

ソースIPのようなこれら4つのパラメーターのいずれかを変更すると、新しいパケットはそのTCPセッションの一部ではなくなり、「配信」されません。セッション定義。代わりに、それは状態外のパケットになり、ドロップまたは拒否されます。

14
gowenfawr

Gowenfawrの回答で説明されているように、TCPセッションのIPを変更することはできません。ただし、ソースのスプーフィング中にTCP接続を行うには、いくつかのオプションがあります。 IP。

IPスプーフィングが行うことは、送信するパケットの送信元IPアドレスを変更することだけです。これは、ネットワークスタックのルーティング(IP)レイヤーで行われます。サーバーは、他のパケットと同様に、この偽装されたパケットを脅迫し​​ます。送信元IPアドレスに返信します。これは、スプーフィングされたときに「所有」されていない可能性が高いため、応答を受け取りません。

では、自分宛てでないパケットをどのようにして受信できるでしょうか。いくつかのオプションが思い浮かびます:

  • 保護されていない(または保護されていない)ワイヤレスネットワーク上にあり、宛先もこのネットワーク上にいる。宛先はパケットを無視しますが、ネットワーク上のすべてのパケットをリッスンしている場合は、パケットが表示されるため、適切に返信したり、返信された情報を使用したりできます。

  • 宛先のマシンにアクセスできます。この場合、パケットをスプーフィングする代わりに、ここからパケットを送信することもできます。

  • パケットがたどる経路に沿ってルーターにアクセスできます。これにより、ルーターに複製を送信させることができます。ただし、パケットがどの方向に移動するかを知ることは簡単ではありません。

理論的には可能ですが、パケット自体のルーティングを変更してあなたに送信することは、私の意見では実現不可能です。

したがって、簡単な答えは、IPスプーフィングされたパケットの応答をいくつかの追加の手段なしに受信することはできないということです。

3
Selenog