アンチディテクトブラウザとは? わかりやすく解説

アンチディテクトブラウザは、アカウントごとに専用のストレージ、専用のデバイスID、専用のネットワーク経路を与えます。実際に何ができて何ができないのかを説明します。
通常のウェブブラウザは、「使う人は一人」という前提で設計されています。この前提は多くの人が思うよりはるかに深く組み込まれており、1つのブラウザで複数のアカウントを扱うとうまくいかない理由もそこにあります。
アンチディテクトブラウザは、その前提を取り除きます。アンチフィンガープリントブラウザやマルチアカウントブラウザと呼ばれることもあります。1つのブラウザが複数の人物を装うのではなく、アカウントごとに完全に独立した環境を与えます。
通常のブラウザがアカウント間で共有するもの
1つのブラウザで2つのアカウントを開くと、たとえ2つのウィンドウでも、タブから想像する以上に多くのものを共有します。
- Cookieの保管場所は一つです。一方のアカウントを使っている間にサイトが設定したCookieを、同じサイトがもう一方のアカウントを使っている間にも読み取ります。
- ストレージ領域は一つです。Local Storage、Session Storage、IndexedDBはアカウント単位ではなくサイト単位で管理されるため、両方のセッションが同じレコードを読み書きします。
- デバイスIDは一つです。画面サイズ、タイムゾーン、言語、フォント、グラフィックアダプタ、CanvasやWebGLのAPIが返す値はマシンの属性です。2つのアカウントはまったく同じものを報告します。
- ネットワーク経路は一つです。他に介在するものがなければ、どちらも同じアドレスからパソコンを出ていきます。
プライベートウィンドウは最初の2つには効果がありますが、後の2つには何もしません。また、閉じるとストレージが消えるため、ログインの手間が毎回無駄になります。
アンチディテクトブラウザにおけるプロファイルとは
プロファイルはブックマークフォルダでも、保存したログインでもありません。ブラウザ環境そのものです。1つのアカウントのブラウザ状態をすべて保持するディスク上のディレクトリと、その状態が使うIDおよびネットワーク経路を合わせたものです。
PowerOpsのプロファイルは4つの要素を持ち、それぞれが他のプロファイルから独立しています。
| 要素 | 保持するもの |
|---|---|
| ブラウザディレクトリ | Cookie、Local Storage、IndexedDB、キャッシュ、履歴、拡張機能の状態を、専用のフォルダに保持 |
| デバイスID | サイトに報告される画面、プラットフォーム、ロケール、タイムゾーン、フォント、グラフィックスの値 |
| ネットワーク経路 | このプロファイルが接続するプロキシ。ライブラリから割り当てられ、使用前に検証される |
| ブラウザビルド | プロファイルの作成時に使われたブラウザの正確なバージョン。明日も同じ状態で開けるよう記録される |
隠すことよりも一貫性が重要な理由
よくある間違いは、フィンガープリントを隠す対象として扱うことです。むしろ一貫性を保つ対象として扱うほうが有益です。
サイトは数十の値を読み取ります。個々の値は目立ちません。しかし組み合わせると一つの形になり、注意を引くのは珍しい形ではなく矛盾した形です。たとえば、Windowsプラットフォームを名乗りながらmacOSにしかないフォントを報告するブラウザや、ある国のタイムゾーンと別の国のアドレスの組み合わせです。食い違う値は、単独のどの値よりも強いシグナルになります。
アンチディテクトブラウザにできないこと
この分野の記事の多くは率直ではないため、ここではっきり書いておく価値があります。
- プロファイルを特定不可能にすることはできません。そう主張する人は推測で話しており、裏付けとなる測定もありません。
- プラットフォームの規則を上書きすることはできません。サービスが複数アカウントの保有を禁じているなら、アカウントを分離しても許可が与えられるわけではありません。
- プラットフォームが問題視する行動をとるアカウントを修復することはできません。分離は環境を切り分けるだけで、その中で行うことを変えるものではありません。
できることは具体的で、確認可能です。独立したストレージ、整合性があり安定したデバイスID、プロファイルごとのネットワーク経路、そしてアカウントを開くたびに同じ環境であることです。
実際に必要なのは誰か
互いに見えてはならない複数の環境をまたいで、一人または一つのチームが作業するあらゆる場面です。クライアントの作業を分けて管理する代理店。固定されたブラウザ、ロケール、画面サイズでバグを再現するQAエンジニア。マーケットプレイス、サプライヤー、ストアフロントの管理画面を分けるEC担当チーム。何かからログアウトして別のものにログインすることが日常の人すべてです。
1つのサービスで1つのアカウントしか持たないなら、通常のブラウザで十分です。2つになった時点から、共有のCookieの保管場所が時間のコストを生み始めます。

