スキームを見てみましょう:
と私は2つのケースを検討したいと思います:
すべてのIPアドレスはパブリックです。クラウドはインナーネットのシンボルです。
H
は確立済みTCP接続:C = (210.10.10.10,9999,98.98.98.98,9999)
です。この接続はHTTP通信に使用されます。いくつかのHTTP
フレームが接続C
から送信されました。
したがって、H
はいくつかのHTTPメッセージを送信するだけです。
ここで、MH
がHTTP
の代わりにH
メッセージを送信しようとしています。だから、それはTCP.SequenceNumber
およびその他のTCP
のヘッダーフィールド。次にMH
は適切なTCPメッセージをIP.srcAddress set to
H`のアドレスとHTTPのメッセージ:「私はばかです」(スキームを見てください)。
接続C
で次のパケットとしてパケットが受信されました。
私の質問は:それは可能なシナリオですか?
状況は上記と同じです。ただし、H
とServer
はhttpsによって通信します。 MH
は、以前と同様にHTTPメッセージの送信を試みます。 MH
はキーを知らないため、暗号化できません。したがって、サーバーで正しく復号化することはできません。コンテンツは正しい形式に解読されないため、サーバーはパケットが悪意のあるものであると判断できます。
パケットが悪意のあるonly症状ですか?滑りやすいようです。
「攻撃者が好むすべての確率」シナリオ
攻撃者は被害者と同じネットワークにいて、ネットワークを監視でき、接続を盗聴できるだけでなく、接続を妨害することもできます。これは、攻撃者が被害者に対して ARPスプーフィング 攻撃を実行できる場合です。
この場合、攻撃は可能であり、HTTPなどの暗号化されていないプロトコルに対しては簡単です。攻撃者は被害者とサーバーからすべてのパケットを読み取ることができ、必要に応じて変更を加えることができます。彼は自分がゲートウェイであることをH
に伝え、サーバーに送信されるパケットを変更できます。パケット全体を手に持っているので、彼はTCP=シーケンス番号、すべてのフラグ、オプション、その他すべてを知っています。これはManと呼ばれますミドルアタック。
別のネットワークの攻撃者
32ビットの数値を推測するよりも困難です。この場合、MH
は正しいシーケンス番号(32ビット番号)[〜#〜]および[〜#〜]正しいフラグ[〜#〜]および[〜#〜]で正しいオプションを使用して、注入されたパケットを作成します[〜#〜]と[〜#〜]は、パケットがH
からのパッケージの前にサーバーに到達するようにします。 H
とMH
は同じネットワーク内にないため、MH
はIP spoofing
を使用する必要があり、実行することはほとんど不可能です。多くのルーターは Egress Filtering を備えているため、発信元アドレスが偽装されたパケットを破棄します。
暗号化されたプロトコル
他のシナリオと同じ制約ですが、複雑です。攻撃者は暗号化されたパケットを偽造し、暗号スイート、すべての暗号化パラメーター、パディング、IV、チェックサムを推測し、クライアントからの次のパケットとシームレスにマージする必要があります。 ..いいえ、暗号化されたプロトコルにデータを挿入して、サーバーまたはクライアントに受け入れられることを期待することはできません。
コンテンツは正しい形式に解読されないため、サーバーはパケットが悪意のあるものであると判断できます。
いいえ、TCPシーケンス番号が正しくない、または正しいが遅れている(新しいパケットがすでに到着している)、または予期された番号と伝送ウィンドウをはるかに上回っている)ため、サーバーは悪意のあるパケットを検出します。値を偽装することは不可能であり、暗号化が採用されているため、リモートで有効なパケットのように見えないため、サーバーはパケットを破棄します。
TCPは複雑なプロトコルであるため、実際にバイパスするのは困難です。その上にさらに複雑なプロトコル(TLS/SSL)を追加すると、スプーフィングされたパケットを通信に注入しようとする不可能なタスクがあります。