web-dev-qa-db-ja.com

ブラウザのフィンガープリントは、匿名ユーザーを識別するための実行可能な手法ですか?

ブラウザのフィンガープリントは、匿名ユーザーを一意に識別するのに十分な方法ですか?マウスジェスチャーや入力パターンなどの生体認証データを組み込むとどうなりますか?

先日、私は Panopticlick実験EFFがブラウザーの指紋で実行されています に遭遇しました。

もちろん、私はすぐにプライバシーの影響とそれが悪にどのように使用されるかを考えました。しかし、その一方で、これは大きな利益のために使用することができ、少なくとも、作業するのは魅力的な問題です。

トピックを調査しているときに、ブラウザのフィンガープリントを使用して不正を攻撃している企業がいくつか見つかりました。そして、いくつかのメールを送信した後、少なくとも1つの主要な出会い系サイトがブラウザーのフィンガープリントを使用していることを確認できますが、偽のアカウントを検出する1つのメカニズムです。 (注:何百万ものユーザーにスケールアップするときに、IDとして機能するのに十分なほどユニークではないことがわかっています。しかし、私のプログラマの頭脳はそれらを信じたくありません)。

詐欺の検出と防止のためにブラウザの指紋を使用している1つの会社を次に示します。
http://www.bluecava.com/

以下は、ブラウザで一意の識別子として使用できるもののかなり包括的なリストです。
http://browserspy.dk/

98
SMrF

まず、ユーザーが最新のWebでJavaScriptを無効にすることを期待するのは現実的ではないと思います。それでは、 Panopticlick がJavaScriptだけで収集できるものと、私の特定のブラウザーの一意性スコアを見てみましょう。

  • ユーザーエージェント(4,184に1)
  • HTTP_ACCEPTヘッダー(14に1)
  • ブラウザプラグインの詳細(180万分の1)
  • タイムゾーン(24分の1)
  • 画面サイズと色深度(1,700に1)
  • システムフォント(11に1)
  • Cookieは有効ですか? (1.3に1)
  • 限定的なSuperCookieテスト(2分の1)

独自性の傑出は、明らかにユーザーエージェントとブラウザプラグインです。これらのアイテムは、ブラウザの指紋を形成するためにtogetherが使用されるため、個々のスコアと同じくらい強力です。ここでの累積一意性は次のとおりです:4,184 x 14 x 1.8 million x 24 x 1,700 x 11 x 1.3 x 2別名本当に大きな数。それは...かなりユニークです。

現時点では、「クリックしてアクティブにする」という方法でFlashを無効にしています。 Flashを有効にすると、以下が追加されます。

  • システムフォント(374kに1つ)

Flashは2番目にユニークな検出可能な要素を提供しますが、PanopticlickのデフォルトのJavaScript検出が生成する膨大な数を考えると、この種のブラウザーフィンガープリントを機能させるためにFlashが必要かどうかはわかりません。 JavaScriptを有効にするだけで十分です。

ただし、ブラウザのフィンガープリントは、話の一部にすぎません。匿名ユーザーから検出できるすべてのものの合計を検討してください。これは、匿名ユーザーをフィンガープリントするためにすべて連携して機能できるためです。検出されたデータを収集して使用することはどのくらい難しいですか?

  1. 上記のように、ブラウザの詳細をスニッフィング(簡単)
  2. IPアドレス。長所と短所を備えた既知のレベルの信頼性があります(簡単)。
  3. 使用法(時刻)、タイピング、マウスまたは指の動き、Wordの使用(ハード、一部のサーバー側、一部のクライアント側)などのユーザー動作パターン

私がブラウザのスニッフィングだけで心配することの1つは、ユーザーがブラウザを切り替えるのが非常に簡単であることです。少なくとも4つの優れた無料のブラウザ代替があります。ほとんどのプラットフォーム:Chrome、Opera、Firefox、Safari。そのため、ブラウザのスニッフィングを壊す、または少なくとも中断するために、ブラウザを頻繁に切り替えることができます。

実際には機能するため、ここでは いわゆるSuperCookies を使用する価値があります。ブラウザを切り替えてもおよびJavaScript、HTML 5ローカルストレージの場合でも、Flashが無効になっています

プライバシー研究者は、すべてのCookieストレージが無効にされ、ブラウザーのプライバシーモードを使用してサイトが表示された場合でも、500以上のサイトにわたってユーザーを追跡できる営利目的のWeb分析サービスの背後にある悪の天才を明らかにしました。

(もし興味があれば、TL; DRバージョンは ETagヘッダー のあいまいな原則を利用してこれを行うというものです。)

とにかく、ブラウザのスニッフィングに戻ると、これを克服するためにユーザーが実行できる2つのやや不便なことがいくつかあります。

  1. 常にブラウザを切り替えます。
  2. JavaScriptとFlashを無効にして閲覧してください。

ただし、ユーザーが自分のブラウザー設定が盗聴され、それらをフィンガープリントする方法の一部として使用されていることを知らない場合、私はhighlyこれらの2つのことを実行する問題に必ずしも行くとは思えません。それは仕事です。

上記のデータに基づいて、ブラウザスニッフィングcanは典型的な匿名インターネットユーザーの識別に役立つと思います-しかし、これは、IPアドレスのような匿名インターネットユーザーから通常検出される他のものとの組み合わせでのみ効果的です。

92
Jeff Atwood

ブラウザーのフィンガープリントは、非常に異種のブラウザー/デバイスエコシステムに依存しています。考慮すべきことの1つは、スマートフォンとタブレット/パッドで行われるサーフィンがますます多くなるにつれて、より均質なエコシステムに向かっているということです。たとえば、iPhone/iPadはすべて基本的に同じに見えます。

11
pap

ブラウザのフィンガープリントは、匿名ユーザーを一意に識別するのに十分な方法ですか?

いいえ、bestでは、Computerを一意に識別できます。 cookie\sessionなしで同じネットワーク(同じIP)にある2つの新しい(および同様の)コンピューターを区別する方法はありません。

マウスジェスチャーや入力パターンなどの生体認証データを組み込むとどうなりますか?

これは現実的ではないようです。 「生体認証データ」はすべてクライアント側であるため、JavaScriptでほぼ完全にコーディングする必要があります。ユーザーはそれを遮断できます。また、「生体認証データ」はPerl Script


そうは言っても、詐欺と戦うためにこの種の戦術を使用することは良い考えです、それが100%である必要はありません。たとえ5%の改善であっても、詐欺の減少は良いです。

詐欺との戦いは漸進的なものであり、詐欺と戦うための単一の弾丸ソリューションはありません、それを探す気にさえしないでください。


編集:以下のコメントに返信するため(そしてそれは非常に関連があるため)、フィンガープリントが異なるプロファイルを処理するという事実は、私の信念では、正味のネガティブ*です。これは、悪意のあるユーザーが指紋メカニズムをだますために使用するものですユーザーが指紋で使用されるすべての変数を制御できるという事実は、それ自体が重大な欠陥です

*これが、せいぜい1つのコンピューターを識別できると私が言う理由です。これは、コンピューター上の単一のアカウントを識別した方が良いためです。両方できるなら、それは素晴らしいことです。

10
Morons

@ vincentcr に同意しますが、検討する環境をもう1つ追加します。それは、企業ネットワークです。

ここでは、まったく同じブラウザ、プラグイン、フォントなどを持つ数十または数百の(潜在的な)ユーザーを見つける可能性があります。追加の要素 @ vincentcr もここで失敗することを示唆しています-IPアドレスがユーザーが企業のファイアウォールの内側にいる場合も、ユーザーの報告された場所と同じです。

マウスジェスチャーやタイピングパターンを考慮に入れても、これらの手法を使用して、セキュリティを問わずユニークユーザーを識別できるかどうか、またユーザーアカウントを、ユーザーがブラウザーを変更しても存続できるようにするには、それをバックアップする必要があります。とにかく、より伝統的な認証システムを使用してください。

他の人が言ったように、それはスパムボットなどを検出するのにいくらか役立つかもしれません。たとえば、WordPress plugin "Bad Behaviour" は、スパムロボットを検出するために、HTTPヘッダーを(他の要因とともに)分析します。

6
Ian Renton

非常に多くの組み合わせがあったとしても、それらはすべて均等に分散されているわけではありません。

Macbookなどで、ストック構成を使用する人数を考えてみてください。または、プラグインをインストールしたことがない人:私はそれらが大多数のユーザーだと思います。

そして、極端に言えば、デバイスのセグメントが最も急速に成長しています。携帯電話とタブレットのユーザー、特にiPhoneとiPadの場合、メーカーとバージョン番号の2つの変数に限られます。

したがって、他の要因(IPアドレスや利用可能な場合は場所など)と組み合わせると、適切なヒューリスティックになる可能性がありますが、それ以上のものではありません。

4
vincentcr

ブラウザのフィンガープリントを使用すると、Web上の個々のユーザーを識別できます。唯一の欠点は、すべてのユーザーに対してJavaScriptを必須にする必要があることです。

2つの原則に基づいて動作します。

  1. 8つのパラメーターに基づいてブラウザーの指紋を検出する
  2. パラメータを変更して、誰かが指紋を変更したかどうかを検出します。

フィンガープリントの成功は、2番目の原則に依存します。誰かが指紋を変更したかどうかを検出します。

詳細は 利用可能なコード を試してください。 https://panopticlick.eff.org/ で使用されるアルゴリズムは現在100%効率的ではないため、リピーターを検出するために独自のアルゴリズムを開発する必要があります。

3
chetan

一部のブラウザは、HSTS Supercookiesを介しても識別できます。

これは、訪問者ごとに安全なリソースと安全でないリソースのランダムなセットへのリクエストを含むページを埋め込んでから、再訪問時のリクエストのパターンを監視できる場所です。各リソースが同じパターンでリクエストされた場合、その情報を使用してユーザーを識別できます。

これらは、さもなければ一般的なブラウザのフィンガープリントをより多く持つiPhone/iPadを識別するのに特に役立ちます。このアプローチは、HSTSがサポートされていないInternet Explorerではあまり役に立ちません。

この記事では、このアプローチについて説明します。 http://www.radicalresearch.co.uk/lab/hstssupercookies/

この記事は、HSTS Supercookieを利用してユーザーを識別する方法の良い例です。 https://nakedsecurity.sophos.com/2015/02/02/anatomy-of-a-browser-dilemma-how-hsts-supercookies-make-you-choose-between-privacy-or-security/

2
Matt

JavaScriptは必須ではありません。PHPから嗅ぎつける他の多くのパラメーターがあります。つまり、ユーザーの99%がJSを持っているので、なぜわざわざ

フィンガープリントは十分にユニークな識別を提供できますか?私はそう信じています。そして、www.visitor-intelligence.comは、その継続的なスクリーニングの哲学を述べています。それについて考えてください。

あなたの個人的な銀河は私たちの惑星全体ほど大きくありません。

フレンチアクセントの背の高い、茶色の髪、青い目をした少女があなたの街をいくつ歩いていますか?地球規模では、数百万。しかし、彼女はあなたのストリートではかなりユニークだと思います(またはあなたの店を訪れます)。

シャンゼリゼに住んでいない限り。その後、よく見てください。彼女はスリムでモデルのように歩きますか?彼女は高価なハンドバッグを着ていますか?わかりました、彼女は今完全にユニークです:-)

ブラウザのバージョン番号と非常に可変的なパラメータが含まれているため、ヘッダーだけを見るのは間違っています。

現在Chrome 27とFirefox 21です。気づくことなくブラウザのバージョンを更新しています。

今、完全なプラグインリストを見るのもかなり間違っています。それを試してください:Firefoxをインストールし、Acrobatリーダーをインストールしてから、Chromeをインストールします。私はアクロバットリーダーがあなたのChromeプラグインリストに表示されないでしょう:-)

つまり、結論としては、標準サイズのショップ向けのまともな識別システムを探す場合、フィンガープリントは十分であり、Cookieよりも安定しています(私は個人的にすべてのCookieをほぼ毎日削除しています)。

ちょうど私の2セント

0
user2435894