ブラウザフィンガープリントとは何か、ウェブサイトは実際に何を読み取れるのか

ページを開くたびに、ブラウザは自分自身に関する長い事実の一覧をサイトに渡します。どれも秘密ではなく、許可を求めることもなく、その大半はページを正しく表示するために存在します。フィンガープリンティングとは、サイトがそれらの事実を表示のためではなく、あなたを見分けるために使い始めることです。
ページが尋ねずに読み取れるもの
通常のタブで動くスクリプトは、とりわけ次のものを読み取れます。ユーザーエージェント文字列、優先言語のリスト、タイムゾーン、画面サイズとピクセル密度、CPUスレッド数、丸められたデバイスメモリの数値、色深度、タッチ対応の有無、WebGLの背後にあるグラフィックスレンダラーの名前、そして小さな画像をcanvasに描画した結果や短いオーディオバッファをレンダリングした結果です。さらに、特定の処理にかかる時間、どのフォントがテキスト行の幅を変えるか、どのメディアデバイスが存在するか(アクセスを許可しない限り、名前ではなく数だけ)も観察できます。
これらは個別に見れば退屈なものです。タイムゾーンで絞り込めるのは数億人規模です。しかし組み合わせると、はるかに絞り込まれます。珍しいのは組み合わせだからです。特定のNVIDIAレンダラー文字列、12スレッド、2560×1440の画面、フランス語と英語をその順に並べた言語設定、そして特定のcanvasハッシュを持つWindowsマシンは、群衆ではありません。
シグナルが識別に役立つ条件
三つの性質が重要です。シグナルは安定していなければなりません。同じブラウザは明日も同じ値を返すべきです。多様でなければなりません。異なるブラウザは異なる値を返すべきです。そして安価でなければなりません。許可のプロンプトなしに、数ミリ秒で読めることです。canvasハッシュは三つすべてで高得点で、だからこそあらゆるフィンガープリントライブラリに登場します。画面サイズは最初の二つで高く、三つ目は満点です。ユーザーエージェントはかつて多様性で高得点でしたが、まさにその理由からブラウザベンダーが意図的に平坦化しました。
ページが読み取れないもの
この部分はよく誇張されます。プロキシの背後にいる場合、ページのスクリプトはあなたの本当のアドレスを見ることができません。見えるのはプロキシが示すものだけです。他のタブ、履歴、ブックマーク、保存されたパスワードも読めません。プライベートウィンドウかどうかを確実に判定することもできません。それを破れると主張するヒューリスティクスは、定期的に破られています。名前を知ることもできません。そして、アドレスがプロキシなのかデータセンターなのかを、自力で判断することもできません。その判定は、サイトが料金を払っているレピュテーションデータベースから来るもので、ブラウザが伝えた何かから来るものではありません。
「ボットスコア」や「プロキシ:あり」を表示するサイトは、ブラウザが報告した内容と、第三者のデータを組み合わせています。それは正当なことですが、どの半分が計測で、どの半分が照会なのかを知っておくことが大切です。
診断ページが存在する理由
PowerScanのような診断ページは、トラッカーと同じシグナルを読み取り、保存する代わりにあなたに見せます。目的はあなたを採点することではありません。二つのことを確認してもらうためです。隠れていると思っていたシグナルが見えているかどうか、そしてシグナル同士が互いに整合しているかどうかです。アカウントがフラグを立てられる原因は不整合です。ある国のアドレス、別の国のブラウザの時計、そしてアクセス元のアドレスと一致しないWebRTCの候補といったものです。
レポートを読むときは、すべての行を一つの質問への答えとして扱ってください。「このブラウザは、たった今このページに何を伝えたか?」。それ以上のものではありません。ハッシュは判定ではなく、読み取ったシグナルの数は、あなたがどれだけ本物らしく見えるかの尺度ではありません。


