私はしばらくの間、ブラウザーのフィンガープリンティングを研究しており、その分野である程度の知識を獲得しています。ブラウザーのフィンガープリンティングのデモは、panopticlick.eff.orgにあります。しかし、私の懸念の 1 つは、それらがいかに簡単に操作できるかということだと思います。私が理解していることから、それらを操作できる方法は2つあります。
1. それらを直接操作する
これは当然のことです。フィンガープリントを変更するには、そのようなフィンガープリンティング スクリプトが収集するブラウザーの値を偽装するだけです。たとえば、次のように偽装できます。
a) 他のヘッダーに含まれるUser-Agent文字列。
b) ObjectDefineProperty を使用して値を編集することによるJS-Elements-and-API
c)フィンガープリントを操作する拡張機能をインストールすることにより、Canvas フィンガープリントのようなより具体的なフィンガープリンティングの方法
等々......
ただし、この方法は、簡単にスプーフィングできないため、WebGL フィンガープリンティングなどのアクティブなフィンガープリント法に対してはあまり効果的ではありません。
しかし、2 番目の方法はもう少し興味深いものであり、残念なことに、それがもっともらしいかどうかについての情報はあまりありません。
2. サーバーに送信する前にデータを編集する
つまり、基本的には、スクリプトがすべての情報を収集した後、スクリプトは (ここでは推測していますが) その場でハッシュを作成してサーバーに送信するか、データをサーバーに送信してそこでハッシュを作成します。悪意のある目的で、特定のサイトでブラウザーのフィンガープリントを無効にすることに決めた場合、Fiddlerなどのアプリケーションを起動し、データがサーバーに送信される (おそらく) POST を見つけて、編集するだけです。データ。Fiddler が何であるかを知らない人のために説明すると、Fiddler は、ネットワーク経由で行われたすべての要求と応答をプロキシからルーティングするアプリであるため、ブラウザー/サーバーに送信する前に要求を表示および編集できます。簡単そうです。
私の質問
今、私はすべての要求と応答に関する知識があまりないため、方法 2 を疑うようになります。最後に私が聞きたいのは:
1)ブラウザーのフィンガープリントがサーバーに送信される方法についての私の知識は正しいですか? つまり、POST 経由です。それがサーバーにデータを転送できる唯一の方法であるため、そうあるべきだと思いますか?
2)可能であれば、サーバーに送信される前にデータが変更されていないことを確認するために、または少なくともそれを困難にするために、サイトがどのような対策を実装できるか(または実装したか)行われなければ?
3)そのようなメソッドをキャッチする確実な方法はありますか?