問題タブ [fingerprinting]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - サーバーに送信する前にデータ (特にブラウザの指紋) を編集しますか?
私はしばらくの間、ブラウザーのフィンガープリンティングを研究しており、その分野である程度の知識を獲得しています。ブラウザーのフィンガープリンティングのデモは、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)そのようなメソッドをキャッチする確実な方法はありますか?
php - libsodiumでクレジットカードをハッシュする
将来の認識のためにユーザーのクレジット カード ハッシュ (指紋) を保存する必要があります。これにより、支払いプロバイダーのカード ルックアップを経由せずに常に簡単に注文を表示できます。
PHPで非常に短いアルゴリズムが必要ですが、sodium_crypto_shorthash
衝突に強いわけではないため、疑わしくなります。
bin2hexの後に最大12の長さを出力できる安全な衝突のないPHP 7ハッシュアルゴリズムはありますか?
java - Android - センサーのない指紋のような疑い
私は多くの調査を行い、必要なものを見つけることができませんでした。Samsung S5やMotorola G3
などの古いデバイスなど、指紋センサーを持たないデバイスで指紋を作成する必要があります...生体認証センサーを持たないデバイス。
タッチ スクリーンとカメラのどちらを持っているか考えていたの
ですが、それを行う方法はありますか?
またはあなたが示すことができるいくつかのライブラリ?
data-structures - 高速構造同定
データ構造を別のデータ構造と区別するスマートで効率的な方法について疑問に思っています。
データ構造が JSON ツリーとして配列に格納されていると仮定すると、問題は次のように要約できます。
私が思いついた可能な解決策は次のとおりです。
- のような手作りのハードコーディングされたルールです
if 'another_key' in data
が、データ エントリの数とさまざまな型の数が増えると、維持するのが大変になります。 - 構造フィンガープリンティング: 葉を除くツリー全体をハッシュし、ハッシュを使用して一意のデータ構造を識別します。
"data" : [ ... ]
のエントリ数が固定されている場合、これは良い解決策です。 - スキーマ ( JSON スキーマ、XML スキーマ、...) ですが、これは問題の問題に対して少し「過剰に設計されている」と感じています。
この問題や同様の問題を解決するためのより良い方法を知っていますか?
編集:その他の例
の (壊れた) 連載があり、Book[] books
本の種類に関する情報がなく、元の形式 (または同等のもの) を復元する必要があると想像してください。
また、簡単にするために C# を使用しました。これは一般的な質問です。