Cookieなしのデバイスフィンガープリンティング:その仕組み
Cookieは終わりを迎えつつあります。デバイスフィンガープリンティングが、いかなるクライアントサイドストレージも使わずに、永続的な識別をどのように提供するかを解説します。
Cookieは終わりを迎えつつあります。SafariのIntelligent Tracking Prevention(ITP)は、Cookieの寿命を7日間に制限します。FirefoxのEnhanced Tracking Protectionは、サードパーティCookieを完全にブロックします。ChromeのPrivacy Sandboxは、サードパーティCookieを廃止しつつあります。GDPRの同意要件により、ユーザーはますますCookieバナーを拒否するようになっています。
不正防止にとって、これは問題です。デバイスを永続的に識別できなければ、常習犯を追跡することも、複数アカウント不正を検知することも、疑わしいセッションを互いに紐付けることもできません。デバイスフィンガープリンティングは、デバイスをその技術的特性を通じて識別することでこれを解決します——Cookieもなく、localStorageもなく、いかなる種類のクライアントサイドストレージもありません。
シグナルのカテゴリー
パッシブフィンガープリンティング(JavaScript不要)
あなたのページがロードされる前にも、ブラウザはネットワークレベルのシグナルを通じて情報を明かします。
TLSフィンガープリンティング(JA4)。 TLS Client Helloメッセージには、暗号スイート、拡張機能、楕円曲線、署名アルゴリズムが含まれます。当社はJA4ハッシュ——より優れた粒度を持つJA3の現代的な代替——を使用します。
TCP/IPスタック分析。 TCPウィンドウサイズ、TTL値、MSS設定は、オペレーティングシステム間で異なります。Linux、Windows、macOSは、それぞれ特徴的なTCPスタック構成を持っています。
HTTPヘッダー分析。 ヘッダーの順序、Accept-Language値、接続の優先順位は、ブラウザ間で異なります。
アクティブフィンガープリンティング(クライアントサイドJavaScript)
canvasフィンガープリンティング。 当社は入念に設計されたシーン——特定のテキスト、幾何学的な図形、グラデーション——を描画します。異なるGPUは、アンチエイリアシング、サブピクセルレンダリング、色のブレンディングの違いにより、これを微妙なピクセルレベルの差異とともにレンダリングします。当社はピクセルデータをハッシュ化します。
WebGLフィンガープリンティング。 WebGLは、GPUのベンダー/レンダラー文字列、最大テクスチャサイズ、サポートされる拡張機能、シェーダー能力を露出させます。このデータは、GPUモデルとドライバーバージョンを強く識別します。
AudioContextフィンガープリンティング。 当社はテスト信号を生成し、それがどう処理されるかを分析します。異なるオーディオハードウェアは、浮動小数点精度の違いにより、測定可能なほど異なる出力を生成します。
フォント列挙。 利用可能なシステムフォントは、OS、言語パック、インストールされたソフトウェアによって異なります。当社はcanvas測定技術を用いて、約300の診断用フォントをテストします。
navigatorプロパティ。 CPUコア数、デバイスメモリ、platform、言語、タイムゾーン、画面解像度、色深度、ポインターおよびタッチ能力。
エントロピー分析
すべてのシグナルが等しい重みを持つわけではありません。当社は各シグナルのエントロピーを測定します。
| シグナルカテゴリー | 概算エントロピー |
|---|---|
| canvas + WebGL 合計 | 約18ビット |
| フォントリスト | 約8ビット |
| AudioContext | 約5ビット |
| navigatorプロパティ | 約7ビット |
| TLSフィンガープリント | 約6ビット |
| 画面 + ディスプレイ | 約4ビット |
| タイムゾーン + 言語 | 約3ビット |
組み合わせると、当社の130+のシグナルはおよそ50+ビットのエントロピーを提供します——1000兆を超える別個のデバイスを一意に識別するのに十分です。
シグナルから安定したハッシュへ
生のシグナル収集は問題の半分にすぎません。ブラウザの更新はuser agent文字列を変えます。ドライバーの更新はWebGLパラメータを変えます。フォントのインストールはフォントリストを変えます。
ファジーマッチング
厳密な一致を要求するのではなく、当社はシグナルを安定性とエントロピーで重み付けするファジーマッチングアルゴリズムを使用します。安定したシグナル(canvas、GPUモデル)は、揮発性のシグナル(user agent、画面解像度)よりも大きな重みを持ちます。
候補生成は、最も安定したシグナルに対して局所性鋭敏型ハッシュ(LSH)を用いて、潜在的なマッチを特定します。類似度スコアリングは、すべてのシグナルカテゴリーにわたる重み付けスコアを計算し、通常のデバイスの変化では訪問者IDが変わらず、実際のデバイスの変化では変わるよう較正されています。
これにより99.5%の精度を達成します——ブラウザ更新、Cookieの消去、シークレットモード、ブラウザの切り替えをまたいで、再訪者を正しく識別します。
プライバシーを保護するアーキテクチャ
サーバーサイド処理。 すべてのフィンガープリント計算は当社のサーバー上で行われます。クライアントサイドのエージェントは生のシグナルを収集しますが、フィンガープリントハッシュを計算したり保存したりしません。
PIIを保存しない。 当社は生のシグナルではなく、フィンガープリントハッシュを保存します。ハッシュは一方向関数です。
データレジデンシー。 EUの顧客データは、EUのデータセンターで処理・保存されます。GDPR第6条1項(f)は、正当な利益として不正防止をカバーしています。
クロスブラウザ識別
最も難しい課題は、異なるブラウザをまたいで同一デバイスを識別することです。当社はブラウザに依存しないシグナルに頼ります。GPUハードウェア、画面特性、タイムゾーン、言語設定、インストールされたフォント(OSレベル)、そしてTCP/IPスタック特性です。
クロスブラウザリンクの精度は約94%です——同一ブラウザの識別より低いものの、同一デバイス上でブラウザをまたいだ複数アカウント不正を検知するには十分です。
統合
デバイスフィンガープリンティングの追加には、3行のコードで済みます。エージェントは非同期でロードされ、50ms未満でシグナルを収集し、当社のAPIに送信します。サーバーレスポンスには、訪問者ID、信頼度スコア、そしてすべての24個のSmart Signalsが含まれます。