一意のセッションを識別するために、セッション識別子に加えて ブラウザの拇印 を使用することにはセキュリティ上の利点がありますか?
次に、拇印が変更された場合に、ユーザーに再認証(または単にセッショントークンを更新)するよう依頼することをお勧めしますか?
編集1
誰かが自分のプロジェクトに組み込むことができるサーバー側の実装(DLL)を知っていますか?
理想的には、C#ASP.NET MVC互換バージョンが欲しいのですが、他のプラットフォームにもメリットがあるように、オープンエンドのままにしておきます。
編集2
これらの回答の多くは、拇印の特定の側面(画面解像度など)に関する問題を説明しています。これらの「安全でない」値は、セッションのサムプリントから省略できます。または、セッションの有効期限/更新がどのように機能するかによって、問題とならない場合があります。
また、panopticlick Webサイトに 値が存在しない が含まれている場合もあります。これは、セッションに結び付けるのにも役立つ場合があります。
拇印が定義されている多くのものは、かなり頻繁に変更される可能性があります。たとえば、サポートされているフォントのリスト。また、一部のブラウザは透過的な更新を実装しています。 Chrome is notorious for that :一部のアップデートは、ユーザーがWebブラウザを再起動することなく適用できます。このようなアップデートは、サムプリントを変更する可能性があります。
「セキュリティで保護された」サイト(オンラインバンキングなどのセキュリティが明らかに必要なサイト)のユーザーとして、このように見せかけの「セキュリティリセット」を行うと、私は緊張してびくびくします。ユーザーを緊張させるのは良いことだとは思いません。また、これは資格情報をランダムなタイミングで再入力するようにトレーニングします。これにより、不注意でフィッシングに対して脆弱になります。
したがって、サムプリントの変更のため、セッションを非アクティブにすることはしないことをお勧めします。とにかく、攻撃者がセッションを盗むことができる場合、彼はおそらく拇印も模倣できるため、想定されるセキュリティ機能は非攻撃者のみをキャッチするため、全体的な効率には疑問があります。
はい、可能性のある利点があります。サムプリントの変更は、サイトにアクセスしているマシンの変更の可能性を示しています。これは、接続スニッフィング/ハイジャックと有名な FireSheep の症状です。欠点は、ユーザーが再ログインする必要がある誤検知です。それが頻繁に発生する場合、それはユーザーにとって迷惑です。
一般的な変更(マイナーなブラウザーまたはOSのアップグレード、モニターを使用するラップトップユーザーの画面解像度の変更)をフィルターで除外することもできますが、資格情報がIEからMozillaまたはMacからWindowsに移行する場合)おそらくフラグを立てる価値があります。
USBドライブにブラウザープロファイルを持ち歩いているユーザーのEdgeケースはまだありますが、それは私がおそらく無視するEdgeケースです。
私は強力なセキュリティ手段としてブラウザのフィンガープリントに依存しません。あいまいさによるセキュリティのみです(データからあなたの子供姉妹を遠ざけるのに役立つかもしれませんが、それが敗北するのがわずかに煩わしいだけの強い敵を締め出すことはありません)。 SSLと安全なCookieを使用します。
Webブラウザーを変更してそのフィンガープリントを変更し、別のブラウザーのフィンガープリントを模倣することは、かなり簡単なことのようです。たとえば、UserAgent文字列/タイムゾーン/画面サイズ/その他を変更します。
プラグインリスト/システムフォントリストを偽造するためのツールがすぐに利用できるかどうかはわかりませんが、原則として偽造することは難しくありません。ブラウザのフィンガープリントはJavaScriptで行われるため、その内容を正確に把握することはそれほど難しくありませんカスタムブラウザーを確認して、他のブラウザーから正しい設定を再生させる。