0

たとえば、Google TV や Apple TV で実行されるアプリケーションがあり、HTTP 要求を私のサービスに送信します。

誰かがこのリクエストを傍受した場合、彼らはそれを再生し、サービス拒否 (DOS) 攻撃を実行できます。

各リクエストを一意にして、リプレイできないようにする方法はありますか?

リクエストで暗号化された時間を送信し、サーバー時間とリクエストが送信された時間の差を確認することを考えましたが、時間差が大きすぎて比較できません。

誰かがより良いアイデアを持っていますか?

4

1 に答える 1

1

サーバー側とクライアント側の両方で制御できるため、良い状況にあります (アプリケーションが話している)。メッセージに含める

  • ミリ秒単位の現在の時間 + 乱数
  • これらの値と (3 番目の入力として) アプリケーションだけが知っているいくつかのキーによって生成された結合ハッシュ。優れた一方向ハッシュ アルゴリズムを使用します。

上記のキーを知っているコードだけが正しいハッシュを計算できます。使用されたリクエスト レコード (ハッシュとタイム スタンプ) は、長い有効期限まで保存できます。非常に古いリクエスト レコードは、タイム スタンプが含まれているため、簡単に失効する可能性があります。

提案されたアプローチの良い点は、トークンを受け取るために事前に接続する必要がなく、認証や登録が不要で、オープン プロトコルを使用できることです。トークンを単独で使用しても、DoS に対してはあまり効果がありません。攻撃者は、事前に接続してトークンを取得するためのスクリプトをすばやく作成するからです。

于 2013-01-30T09:37:45.980 に答える