用語集 · フィンガープリント
ユーザーエージェント (User-Agent文字列)
ブラウザとOSの識別情報が、ブラウザによってUser-Agentヘッダーで送信され、JavaScriptに公開されます。
定義
HTTPにおいて、ユーザーエージェントとはリクエストを行うクライアントソフトウェアのことであり、User-Agentリクエストヘッダーは、サーバーがアプリケーション、オペレーティングシステム、ベンダー、およびバージョンを識別できるように送信されるテキスト文字列です。MDNは、この情報がフィンガープリント作成に使用される可能性があるため、歴史的にプライバシーの懸念を引き起こしてきたと指摘しています。現代のChromiumブラウザは、削減された文字列を送信し、詳細な値はUser-Agent Client Hints(Sec-CH-UA-* ヘッダーおよび navigator.userAgentData)に移動しています。
仕組み
- ブラウザはすべてのリクエストでUser-Agentを送信します。典型的なChromeデスクトップの値は "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36" のようになります。"Mozilla/5.0"、"KHTML, like Gecko"、および"Safari"のトークンは、歴史的な互換性のために保持されています。
- User-Agentの削減(Chrome 101から110へ展開)以降、Chromeはマイナーバージョンを0.0.0に固定し、固定されたデスクトッププラットフォーム文字列を使用し、Androidでは実際のOSバージョンやデバイスモデルの代わりに、固定された "Android 10; K" を送信します。同じ削減された値が navigator.userAgent および navigator.platform にも表示されます。
- Chromium ブラウザはデフォルトで、低エントロピーの Client Hints(Sec-CH-UA (ブランドとメジャーバージョン)、Sec-CH-UA-Mobile、Sec-CH-UA-Platform)も送信します。サーバーは Accept-CH レスポンスヘッダーを使用して、プラットフォームのバージョン、モデル、アーキテクチャ、または完全なバージョンリストなどの高エントロピーのヒントを要求でき、ブラウザが何を返すかを決定します。
なぜ重要なのか
- ユーザーエージェントは、ブラウザフィンガープリントにおける受動的なシグナルの1つです。これは、スクリプトを実行することなく、すべてのリクエストで送信されます。
- 検知システムは、User-Agent 文字列を Client Hints や JavaScript の値(navigator.platform、画面サイズ、タッチサポート)と比較できます。値が一致しないプロファイルは、単に一般的なプロファイルよりも目立ちます。
- アンチディテクトブラウザは、各プロファイルに独自のユーザーエージェントを設定できます。優れたツールは、一致する Client Hints、プラットフォーム、およびブラウザエンジンのバージョンをそれと一貫させます。
制限とよくある誤解
- 「User-Agent 文字列を変更すれば、ブラウザフィンガープリントが変わる」——それは1つの値を変更するだけです。Client Hints、JavaScript API、Canvas/WebGL の出力、フォントも一貫して変更されない限り、依然として実際のセットアップを記述してしまいます。
- 「User-Agent 文字列は、私の正確な OS とデバイスを表示する」——削減された Chrome では、もはやそうではありません。Windows 8.1 と Windows 11 はどちらも "Windows NT 10.0" を報告し、Android デバイスは "Android 10; K" を報告します。
- 「珍しい、あるいは非常に新しいユーザーエージェントの方が安全である」——珍しい値や不一致のある値は、あなたを特定しやすくします。一般的で内部的に一貫性のある組み合わせは、特徴が少なくなります。
例: あるプロファイルが User-Agent で "Macintosh; Intel Mac OS X 10_15_7" と主張しているものの、その Sec-CH-UA-Platform ヒントが "Windows" で、navigator.platform が "Win32" を返す場合。これら3つの値を比較するサイトは、そのプロファイルが主張しているものとは異なることを見抜くことができます。
いかなるブラウザやプロキシも、アカウントが制限されないことを保証することはできません。各プラットフォームのルールに従ってください。
関連用語
- ブラウザ・フィンガープリント — クッキーなしでブラウザを特定できる、ブラウザとデバイスの特性の組み合わせ。
- Canvasフィンガープリント — HTMLキャンバスの描画方法のわずかな違いからデバイスを特定すること。
- ブラウザプロファイル — 他のプロファイルとは別に保持される、ブラウザデータ(クッキー、履歴、設定、拡張機能)の独立したセット。
ソース
- MDN: User-Agent ヘッダー (ブラウザドキュメント)
- MDN: HTTP Client hints (ブラウザドキュメント)
- Chromium: User-Agent Reduction (ブラウザドキュメント)
- Chrome for Developers: User-Agent Client Hints (ブラウザドキュメント)
確認済み 2026-11-07。