2017-02-26 4 views
0

私は、この質問に対する答えが「いいえ」であることを完全に認識しています。コンピュータを一意に識別し、ハッカーを防ぎます

何千ものコンピュータで実行されるクライアント/サーバープログラムのクライアント部分を作成しており、システムの設定と構成で定期的にサーバーに報告します。コンピュータが最初に起動すると、現在、クライアントコードは独立してUUID値を生成し、そのIDを持つサーバに報告して、自身を一意に識別します。サーバーは、IPアドレスやその他の関連データが変更された場合でも、このID番号を使用してマシンを識別します。

各セッションはTLSで保護されていますが、ハッカーがプロトコルを慎重に識別し、数千の新しいUUID値でスパムして、ネットワーク上に指数関数的な数の新しいマシンがあると思うようにサーバーを誘導します。 DBをいっぱいにしてDoS状態を引き起こします。

ハッカーが「ファントム」マシンを作成できないように、サーバー/ワークステーションを一意に識別する方法に関するアイデアはありますか?

アイデア?繰り返しますが、答えが「いいえ」である可能性があることを十分に理解しています。 TPMチップの使用はオプションではありません。主に、すべてのマシン、アーキテクチャ、またはOSがこのオプションを許可しているとは限らないためです。

+0

プログラムを実行しているマシンだけがサーバに意味のあるメッセージを送信できるように、非対称暗号化を使用してプロトコルを暗号化します... –

+0

どうすれば問題を解決できますか?攻撃者は依然としてクライアントを無限に高い回数実行する可能性があります。ファントム・マシンの各「登録」は暗号化される。 –

+0

**鍵**で暗号化すると、サーバと実際のマシンだけが知ることができます。実際のマシンであるかどうかをリクエストで確認できるので、データベースに他のマシンを保存することはありません。 –

答えて

0

あなたのサーバーをDOS/DDOSにはるかに簡単で効果的な方法があります。あなたが家に帰るために多くの努力をするときには、このことを覚えておいてください。

ここには、(部分的に)有効な2つのアイデアがあります。

  • レートはグローバルにUUIDの作成を制限します。これを行うと、あなたのDBがいっぱいになるまでどれくらい近づいているのかを監視すれば、その潜在的なDOSベクトルより先に進むことができます。

  • 任意のクライアントIPアドレスによって作成されたUUIDを厳しく制限します。しかし、これに注意する必要があります。多くの/ほとんどの場合、HTTPプロキシやNATなどのために、実際のクライアントIPアドレスは表示されません。

実際には、要求を制限する方法はいくつかあります。

  • リクエストを数えることができ、指定された間隔のカウントが所定のしきい値を超えたときにリクエストを拒否できます。
  • 最後の要求以降の時間を記録し、間隔が小さすぎる場合は要求を拒否できます。 (これは前のバージョンの縮約版です)
  • 単純に要求を処理することができます。例えばそれらをキューに入れて固定レートで処理します。

しかし、あなたの防御が代替のDDOSメカニズムを作成していないことにも注意する必要があります。例えば実際のユーザーがUUIDを取得できないようにするために、UUIDリクエストを使用してサーバーを攻撃します。

関連する問題