JavaScriptフィンガープリンティングとボット検出: ウェブサイトがあなたを特定する方法

3,421 回閲覧 · いいね · 42 シェア
共有
読了時間17分
JavaScript Fingerprinting & Bot Detection: How Websites Identify You

重要なポイント

  • JavaScriptフィンガープリンティングは50以上のブラウザ特性を収集し、ユニークな識別子を作成します。これはクッキーよりも持続性が高く、ブロックが難しいです。
  • 主要なフィンガープリンティング信号には、Canvas、WebGL、AudioContext、フォント、画面特性、ナビゲータAPIデータが含まれます。
  • アンチボットシステムは、JSフィンガープリンティングをTLSフィンガープリンティング(JA3/JA4)や行動分析と組み合わせて、高精度なボット検出を行います。
  • ヘッドレスブラウザ(Puppeteer、Playwright)や自動化ツールは、フィンガープリンティングによって露出される検出可能な痕跡を残します - APIの欠如、同一の出力、タイミングの異常など。
  • フィンガープリントの偽装は可能ですが、ますます困難になっています。アンチボットシステムは、一貫性チェックを使用して、不一致の偽装値を検出します。

あなたがウェブサイトを訪れるたびに、ブラウザはあなたの画面解像度、GPUモデル、インストールされたフォント、音声処理の癖、そしてブラウザが見えないキャンバス要素をどのようにレンダリングするかといった、数十のユニークな特性を静かに明らかにします。これらの信号を組み合わせることで、ブラウザフィンガープリントが作成され、人間の指紋と同じくらいユニークです。

この技術は、現代のボット検出システム、詐欺防止、そして自動化防御を支えています。自分のウェブサイトをボットから守る場合でも、特定のセキュリティシステムがなぜトラフィックに挑戦するのかを理解しようとする場合でも、その仕組みを理解することが重要です。

2026年における有料メディアのパフォーマンス向上の最大のレバーは、アカウントの衛生です。古いアカウント、クリーンな支払い手段、そして隔離されたブラウザプロファイルは、同じクリエイティブで30〜50%のCPA1つのコンバージョン(販売、サインアップ、リード)に支払う価格。用語集で詳しく見る →の優位性に結びつきます。

Sergey M., Unled Networkのシニアメディアバイヤー

JavaScriptフィンガープリンティングとは?

JavaScriptフィンガープリンティングは、ブラウザ側のJavaScript APIを使用してデバイスと環境の特性を収集し、各ブラウザセッションのためにユニークな識別子を作成する技術です。ユーザーが削除できるクッキーや変更されるIPアドレスとは異なり、フィンガープリントは次のような特性を持ちます:

ユニーク性の統計: EFFのPanopticlickプロジェクトによる研究では、83.6%のブラウザがユニークなフィンガープリントを持つことがわかりました。キャンバスフィンガープリンティングを含めると、ユニーク性は95%を超えます。50以上の信号を使用する現代のシステムは、典型的なユーザー集団でほぼ100%のユニーク性を達成しています。

ブラウザフィンガープリンティングの仕組み

フィンガープリンティングスクリプトは通常、3つのフェーズで実行されます:

  1. 収集: JavaScript APIがブラウザプロパティをクエリする - ナビゲーターオブジェクト、画面特性、キャンバスレンダリング、WebGL機能、AudioContext処理など
  2. ハッシュ化: 収集された値を組み合わせてハッシュ化し(通常SHA-256またはMurmurHash3)、コンパクトなフィンガープリント文字列を生成
  3. 比較: ハッシュを既知のフィンガープリントと比較し、以前の訪問者、既知のボットツール、または偽装された環境を特定

主要なフィンガープリンティング信号

キャンバスフィンガープリンティング

最も強力なフィンガープリンティング信号です。隠された<canvas>要素がテキスト、形状、グラデーションを描画します。このピクセルバイピクセルあなたのサイト上で訪問者の行動(ページビュー、カート追加、購入)を記録する小さなトラッキングスニペット。プラットフォームが最適化できるようにします。用語集で詳しく見る →出力は、GPU、ドライババージョン、フォントレンダリングエンジン、アンチエイリアスの実装に基づいて異なります。2つの異なるデバイスが同一のキャンバス出力を生成することはほとんどありません。

WebGLフィンガープリンティング

WebGLはGPU情報(レンダラー、ベンダー)を公開し、ユニークなレンダリング出力を生成します。WEBGL_debug_renderer_info拡張機能は、正確なGPUモデルを明らかにします。WebGLレンダリングテストと組み合わせることで、強力なハードウェアフィンガープリントが作成されます。

AudioContextフィンガープリンティング

Web Audio APIは、ハードウェアとソフトウェアの違いにより、各デバイスで異なるオーディオ信号を処理します。オシレーターを生成し、その出力を分析することで、フィンガープリンティングスクリプトはユニークなオーディオ処理特性をキャプチャします。

フォントフィンガープリンティング

異なるOSバージョン、言語パック、インストールされたアプリケーションは、ユニークなフォントコレクションを追加します。さまざまなフォントでテキストのレンダリング幅/高さを測定することで、スクリプトはインストールされているフォントを特定し、フォントベースのフィンガープリントを作成します。

ナビゲータとスクリーンの特性

信号何を明らかにするかエントロピー
navigator.userAgentブラウザバージョン、OS、デバイスタイプ中(偽装が容易)
navigator.language優先言語低-中
navigator.hardwareConcurrencyCPUコア数
navigator.deviceMemoryRAM量(概算)
screen.width/heightディスプレイ解像度
screen.colorDepth色深度能力
navigator.platformOSプラットフォーム文字列低(廃止予定)
navigator.maxTouchPointsタッチ機能
Intl.DateTimeFormat().resolvedOptions().timeZoneタイムゾーン

追加の高価値信号

TLSフィンガープリンティング (JA3/JA4)

TLSフィンガープリンティングは、接続レベルで動作します - JavaScriptが実行される前に:

JA3フィンガープリンティング

Salesforceによって作成されたJA3は、TLSクライアントハローメッセージのコンポーネントをハッシュ化します:SSLバージョン、暗号、拡張、楕円曲線、およびECポイントフォーマット。各HTTPクライアント(Chrome、Firefox、Pythonリクエスト、Go http、curl)はユニークなJA3ハッシュを生成します。これは、ユーザーエージェントヘッダーが偽装されていても、実際のクライアントソフトウェアを特定します。

JA4フィンガープリンティング

新しいJA4標準は、より人間が読める形式とより良いバージョントラッキングを提供して、JA3を改善します。それは、"t13d1715h2_8daaf6152771_b0da82dd1658"のようなフィンガープリント文字列を作成し、TLSバージョン、暗号数、拡張数、およびALPN値をエンコードします。

なぜTLSフィンガープリンティングはボットにとって壊滅的か: TLSフィンガープリントを偽装するには、C/C++レベルでTLSライブラリを変更する必要があります - ユーザーエージェント文字列を変更するよりはるかに複雑です。ほとんどのボットオペレーターは、Python、Go、またはNode.jsのHTTPライブラリを使用しており、それらは非ブラウザクライアントとしてすぐに識別される特徴的なJA3ハッシュを持っています。

アンチボットシステムのフィンガープリンティング活用法

現代のアンチボットソリューションは、Cloudflare Bot Management、Akamai Bot Manager、DataDomeなどがフィンガープリンティングを複数の検出レイヤーと組み合わせています:

  1. TLSフィンガープリントチェック: 接続が実際のブラウザから来ていることを確認し、HTTPライブラリではないことを確認
  2. JavaScript実行: フィンガープリント収集スクリプトを実行 - JSを実行できないボットは即座にフラグが立てられる
  3. 一貫性の検証: JSフィンガープリントがTLSフィンガープリントと一致することを確認(例:JA3がChromeと言っているのにキャンバスがヘッドレスと言っている場合はフラグが立てられる)
  4. 既知のボットとの比較: フィンガープリントを既知のボットツールのシグネチャデータベースと比較
  5. 行動オーバーレイ: フィンガープリントスコアをマウスの動き、クリックのタイミング、スクロールパターンと組み合わせる

ヘッドレスブラウザの検出

ヘッドレスブラウザ(Chromeヘッドレス、Puppeteer、Playwright)は、明白な兆候を残します:

フィンガープリントの偽装とアンチディテクション

いくつかのツールはブラウザフィンガープリントを変更しようとします:

ツールアプローチ検出リスク
GoLoginカスタムChromiumで設定可能なフィンガープリントプロファイル
Multiloginディープフィンガープリントカスタマイズでブラウザを模倣
Puppeteer Extra (Stealth)検出可能なPuppeteerアーティファクトを修正するプラグイン中-高
undetected-chromedriver一般的な検出を回避する修正済みChromeDriver中-高
ブラウザ拡張機能キャンバスブロッカー、WebGL偽装高(検出可能なアーティファクトを追加)
偽装の根本的な課題: 別のGPUに一致するようにキャンバス出力を変更するには、そのGPUのレンダリングパイプラインを完全にシミュレートする必要があります。アンチボットシステムは、偽装を一貫して行うことがほぼ不可能な数百の微細な変動をテストします。偽装された値の不一致は、元のフィンガープリントよりも検出されやすいことが多いです。

ウェブサイトオーナーのための防御戦略

ウェブサイトをボットから守る場合、フィンガープリンティングを層状防御の一部として実装します:

プライバシーへの影響

ブラウザフィンガープリンティングは、重大なプライバシー問題を引き起こします。主要なブラウザは、フィンガープリンティング機能を制限しつつあります:

ボット攻撃からウェブサイトを守る

当社のセキュリティチームは、ボット検出、フィンガープリンティング、DDoS保護、およびWAF構成を包括的に実装し、攻撃を受けているウェブサイトやアプリケーションを保護します。

Telegram: @unlednetwork →    WhatsAppで連絡 →

数値で見る

18
グロ

コメント

質問や体験がありますか?会話に参加してください。メールアドレスは公開されません。

    Maria S.

    We implemented this last month and already seeing positive signals.

    Author

    Appreciate you sharing this. We've refined our playbook for exactly this scenario and it aligns with the article.

会話に参加

HTMLは使えません。コメントは審査されます。

What You Get

High Trust Score

Pre-established account with positive activity history and cleared standing

Ready to Spend

Skip the warm-up phase - accounts are ready for immediate campaign launch

High Spend Ceiling

Elevated daily and monthly spend limits from day one

30-Day Replacement

Full replacement if account triggers suspension within 30 days

24h Delivery

Credentials delivered within 24 hours of payment confirmation

Dedicated Support

Direct Telegram/WhatsApp line to your account manager

WhatsApp Telegram