2009-04-09 3 views
3

私はセッションIDにキー入力されたDBバックアップユーザーセッションを使用するパブリックサイトで作業しています。セッションのハイジャックや改ざんを防止しようとしています。私がクライアントに返すセッションデータは、それ自体では価値が限られていますが、私は卸売の盗難を防止したいと思います。私はここで少し計画を策定しましたが、私はいくつかのフィードバックと批判をしたいと思います。セッションセキュリティ

  • セッションが開始されると、クライアントにセッションのデータの一意のキーとハッシュが与えられます。
  • その後の各要求で、クライアントはセッションキー+セッションデータのハッシュを送信します。
  • セッションデータが変更された場合、クライアントにはセッションデータを反映した新しいハッシュ値が提供されます。
  • データベースと一致しない不正なハッシュが要求された場合、セッションには侵害されたとフラグが立てられます。要求とそのセッションに対するすべての後続の要求により、侵害されたセッションをコピーすることによって新しいセッションが作成されます。新しいセッションは、セキュリティ監査のためにコピーされたセッションを参照します。

私は大規模な攻撃をスキャンするために侵害された要求を見ることができます。

事前に感謝します。

答えて

2

これは比較的安全なようだが、いくつかの方法が、この存在を回避することができます。

  • セッション鍵が盗まれた場合、ハッシュはあまりにも盗まれる可能性があります。正当なクライアントが何もしない限り、ハイジャッカーは単に引き継ぎ、キー/ハッシュ/データの一貫性を維持することができます。合法的なクライアントが目を覚ますまで、あなたは物事を見ることはありません。

  • いずれにしても、ハッシュが十分に秘密ではない場合、単にデータから推測することができます(おそらく盗聴される可能性があります)。おそらく、推測が困難であることを確認するために、何らかの種類のランダムな塩を使用するべきです(セッションごと、ユーザーごと、時間枠ごと...)。

+0

セキュリティは完全にタイトではありません...あなたのシステムをそれが破られた場合の費用。セキュリティがあまりにも高すぎると、コストがかかりすぎる可能性があります。 – Varkhan

0

これは問題ありません。

認証アルゴリズムに投げかけたいことの1つは、ユーザーの所在地のIPアドレスです。

現在のユーザー認証にはあまり適していない可能性がありますが、セッションが侵害された場合、別のIPが巨大なフラグになりますが、その情報を使用して潜在的な悪意のあるユーザーをブロックするIPテーブルルールを追加できます。

もう1つの考えは、参照URLを追跡することです。悪意のある行為に関して、誰かがどこから来ているのかを見ると、プログラム内に穴が空いている可能性があります。

2

私は、セッションデータのハッシュのポイントが何であるかを理解していません。どのような問題が解決しますか?

おそらく原因に問題があります。 2つのタブを同時に2つのタブに読み込むときに使用します。最初の要求がセッションデータを変更したが、もう1つの要求がすでに送信されている場合、不正なハッシュが返されます。

また、古いセッションをコピーすると、これで何が達成されたのか分かりません。

するだけの簡単なセッションIDを持っていると:セッション固定と

  • を回避するために、ログイン時に

    • 変更はサイドジャッキングを介して制御を想定した攻撃を避けるために、IPにそれをロックします。

    攻撃者にデータが表示されないようにするには、SSLを使用する必要があります。

  • +0

    ハッシュの背後にある考え方は、クライアント以外の誰かがセッションを改ざんしたことを検出することです。セッションをコピー(分岐)することで、セッションがハイジャックされたとしてもクライアントは続行できます。 (あるいは、私はVarkhanのコメントを読むまで考えていました) – Paul

    +0

    あなた自身のセキュリティメカニズムを発明せず、代わりに実績のあるものを使うことをお勧めします。あなたが理解したように、ハッシュは価値を追加しません。しかし、それは問題を引き起こすでしょう。 –

    0

    一意であるか変更されていないIPアドレスを数えることはできません。企業ファイアウォールは、NAT変換によってIPアドレスを定期的に合体させたり、ランダムに変更したりします。システムをより安全にすることができますが、同じIPアドレスを要求しようとするサーバーの認証方式に大きな影響を与えます。

    ここ数年で、システムは以前よりもはるかにモバイル性があります。私は日常的にノートブックをシャットダウンするのではなく、休眠状態にしていますが、家庭、仕事、スターバックスなどのIPアドレスの異なるものから来ていることを意味します。これは、セッションタイムアウトが15〜私のオフィスから昼食などに行く時間がかかります。