Chromeプロファイルとアンチディテクトブラウザのプロファイル:本当の違い

Chromeプロファイルが分離するのはデータであり、デバイスも時計も接続も分離しません。その境界線がどこにあるのか、そして越える価値があるのはどんな場合かを解説します。
Chromeプロファイルが分離するのはデータであって、デバイスではありません。これが結論であり、Chromeプロファイルで構築した複数アカウント運用がしばらくは機能し、やがて静かに機能しなくなる理由でもあります。
Chromeで作成したプロファイルには、ディスク上にそれぞれ専用のフォルダが作られます。Cookie、履歴、保存したパスワード、拡張機能、ブックマークはそのフォルダの中に収まり、外には出ません。一方、フォルダより下の層はすべて共有されています。OSも、グラフィックスのスタックも、フォントセットも、時計も、インターネット接続も1つだけです。デバイスのシグナルを読み取るサイトからは、あなたのすべてのプロファイルを同じ1台のコンピュータが代弁しているように見えます。
Chromeプロファイルが実際に分離するもの
Chromeプロファイルは、1台のノートパソコンを家族で共有するために作られたもので、その用途にはよく働きます。提供される分離は、その範囲内では本物です。
- Cookieジャー。プロファイルごとに独立しているため、あるプロファイルでサイトにログインしても、他のプロファイルはログアウトしたままです。
- Local Storage、Session Storage、IndexedDB。サイトのストレージはプロファイルのフォルダ内に書き込まれるので、同じサイトに対して2つの独立したセッションを持てます。
- 履歴、ブックマーク、自動入力。あるプロファイルでの操作が他に現れることはありません。
- 拡張機能。プロファイルごとにインストールされ、設定もストレージも別々です。
- キャッシュとService Worker。これもプロファイルごとです。Service Worker は独自の識別子を保持できるため、思った以上に重要です。
これでアイデンティティのうちストレージ側の半分は、きちんとカバーされます。個人アカウントが同じブラウザにあるせいでクライアントのダッシュボードからログアウトされてしまう、という問題なら、Chromeプロファイルで解決します。ここで読むのをやめても構いません。
すべてのChromeプロファイルが共有するもの
多くの人が後から気づくのは、Chromeプロファイルが境界線を引くのはデータの周りだけで、それ以外には何も引かない、という点です。その境界より下では、すべてのプロファイルが同じマシンを報告します。実際に同じマシンなのですから。
デバイスのアイデンティティ
2つのChromeプロファイルを開き、それぞれに「あなたは何者か」と尋ねてみてください。返ってくる答えは同一です。画面サイズとピクセル比。報告されるプロセッサ数。プラットフォームとUser-Agent。WebGLが返すグラフィックスアダプタの文字列。ページが画面外にテキストを描画し、そのピクセルを読み戻して得られるCanvasハッシュ。ブラウザのオーディオグラフにオシレーターを通して得られるオーディオハッシュ。候補となる書体でテキストを計測して推定されるフォントリスト。これらの値はいずれもプロファイルのフォルダには存在しないため、プロファイルを切り替えても変わりません。
Canvasハッシュ、WebGLレンダラー文字列、フォントリストがすべて同一の2つのアカウントは、1台のコンピュータ上の2つのアカウントです。サイト側は推測する必要すらありません。事実を読み取っているだけです。
ネットワーク経路
すべてのChromeプロファイルは、同じアドレスからあなたのマシンを出ていきます。プロキシ設定はブラウザのインスタンスに属しており、そのインスタンス内にあるプロファイルが独自のプロキシを持つことはできません。ChromeはWindowsとmacOSではシステムのプロキシを使用し、コマンドラインフラグはブラウザの動作全体に適用されます。そのため、すべてのプロファイルが、同じ場所から、同じ国から、同じ瞬間にサイトへ到達します。
時計とロケール
タイムゾーンはOSから取得されます。ほとんどの環境では、主要言語も同様です。どちらかをあるプロファイルのために変更すれば、すべてのプロファイルが変わり、コンピュータ上の他のすべても変わります。これは目立たない落とし穴です。ある国のプロキシと別の国の時計という組み合わせは、はっきりした不一致です。しかもChromeには、経路の問題を別の方法で解決した後でも、単一のプロファイルだけ時計を直す手段がありません。
共有されている半分が重要な理由
関連付けは安上がりです。サイトは2つのアカウントが同一人物のものだと証明する必要はありません。調べる理由があれば十分で、無関係を装うアカウント同士でデバイス値が一致していること自体が、その理由になります。
もう1つ、より早く表面化するコストがあります。Chromeプロファイルは、数が一握りを超えると、それ自体に実用上の問題が出てきます。
- プロファイルピッカーは色付きの円が並んでいるだけです。検索もグループ分けもメモ欄もなく、そのプロファイルがどのアカウントのものかを記録する場所がありません。
- 同期はプロファイルをGoogleアカウントに結び付けるため、プロファイル同士を引き離すどころか、互いに引き寄せてしまいます。
- 間違ったウィンドウで操作するのは簡単です。2つのウィンドウを区別するのは、隅にある小さなアバターだけだからです。
- プロファイルのフォルダは、理論上は持ち運べますが、実際には扱いにくいものです。別のマシンにコピーすると、その下のデバイスが変わり、サイトからそれが見えてしまいます。
レイヤーごとの比較
| レイヤー | Chromeプロファイル | アンチディテクトのプロファイル |
|---|---|---|
| Cookieとサイトストレージ | プロファイルごとに分離 | プロファイルごとに分離 |
| 履歴、ブックマーク、拡張機能 | プロファイルごとに分離 | プロファイルごとに分離 |
| Canvas、WebGL、オーディオの値 | マシン上のすべてのプロファイルで共有 | プロファイルごとに生成して保存し、開くたびに同じ値になる |
| フォント、画面、プラットフォーム | マシン上のすべてのプロファイルで共有 | プロファイルごとに設定し、一貫したセットとして生成 |
| タイムゾーンとロケール | OSから取得 | プロファイルごとに設定し、経路が示す国に合わせる |
| ネットワーク経路 | ブラウザ全体で1つの経路 | プロファイルごとに1つのプロキシ。アカウントを紐付ける前にテスト済み |
| 整理 | アバターの列 | 名前、番号、メモ、グループ、フォルダ、検索 |
| 自動化 | 起動フラグ | プロファイルを起動してデバッグ用エンドポイントを返すローカルAPI |
Chromeプロファイルで十分なケース
多くの場合は十分です。長い売り込みよりも、そう言い切ることのほうが価値があります。
- 誰にも何も隠していない状況で、1台のコンピュータの仕事用と私用を分けたい場合。
- 家族で1台のノートパソコンを共有している場合。
- 開発者が、自分たちが運用するサービス上で、テスト用アカウントと本番アカウントを分けたい場合。
- 複数アカウントを公式に認めているサービスで、同一人物が同じ自宅回線から2つのアカウントを使う場合。
こうしたケースでは、共有されたデバイスのアイデンティティは正確です。あなたは1台のコンピュータを使う1人の人間であり、すべてのプロファイルが同じマシンを報告するのは世界について真実を述べているにすぎません。もともとそうでなかったことが推測されるわけではないのです。
アカウント同士が無関係であるべき場合、つまり別々のクライアント、別々の店舗、それぞれ別のユーザーに見えるべき別々のテスト環境では、共有部分はもはや正確ではなくなります。同一のデバイス値が、意図していなかった関係性を表してしまうからです。
アンチディテクトのプロファイルが加えるもの
アンチディテクトのプロファイルは、Chromeプロファイルがすでに行っていることをすべて維持したうえで、Chromeが共有のまま残している3つのレイヤーを引き受けます。
- 専用のデバイスアイデンティティ。プラットフォーム、画面、フォント、グラフィックス文字列、Canvas、WebGL、オーディオは、1台の現実的なマシンを表すようにまとめて生成され、保存されるので、プロファイルは開くたびに同じマシンを提示します。
- 専用のネットワーク経路。プロキシはブラウザではなくプロファイルに紐付くため、各プロファイルが専用のアドレスを持ち、そのアドレスはアカウントを紐付ける前に検証されます。
- 専用のタイムゾーンとロケール。プロファイルごとに設定されるため、いま座っているデスクではなく、経路に合わせることができます。
この3つに共通する要点は一貫性です。開くたびに違うデバイスを報告するプロファイルは、誰も持っていないハードウェアを名乗っていることになります。目指すべきは、ごく普通に見えるデバイスが、訪問のたびに寸分違わず同じ場所に居続けることです。
整理の面は、それなしで運用した経験がある人でなければ過小評価されがちです。プロファイルには名前、番号、メモ、タグがあります。グループやフォルダに入れられ、検索もできるので、「プロファイル42」と口に出せば同僚はどれのことか分かります。行からプロファイルを開けば、そのアイデンティティと経路も一緒についてくるため、誰かが何かを設定し忘れずに済むような手順は存在しません。
Chromeプロファイルからの移行
つい、Chromeのプロファイルフォルダをそのままコピーして続行したくなります。やめておきましょう。コピーしたフォルダはCookieと生きたセッションを持ち込みますが、それを、セッションが確立されたときとは別のデバイスを報告するブラウザに渡すことになります。その変化は目に見えるもので、しかも最初の起動時、つまり最悪のタイミングで現れます。
時間をかける方法のほうが確実です。
- アカウントごとに1行を書き出します。現在1つのChromeプロファイルに複数のアカウントが入っている場合も、1アカウントずつ数えます。
- 最初にプロキシライブラリを構築します。エンドポイントを追加してテストし、それぞれが実際にどの国を報告するかを記録します。プロバイダはエンドポイントを楽観的に説明するものです。
- アカウントごとに1つのプロファイルを作成し、最初のログインの前に経路を割り当てます。最初のセッションがそのアカウントにとっての「普通」を決めるので、最初から正しくしておく価値があります。
- タイムゾーンとロケールを、経路が報告する国に合わせて設定し、その後は触らないでください。
- 新しいプロファイルの中で、あらためてログインします。つまり、すべてのアカウントで2要素認証と、場合によってはメール確認が必要になります。これは一度きりのコストで、その代わりに、今後使い続けるデバイス上で本当に確立されたセッションが手に入ります。
- アカウントは数週間かけて、少しずつ移行します。ある火曜日の午後にすべてを移行すると、すべてのアカウントで同時にパターンが変わることになります。
- Chromeは、Chromeが得意なことに使い続けましょう。自分のメール、自分の銀行口座、誰が見ても正真正銘あなた自身のアカウントです。
古いプロファイルを閉じる前に、必要なものをエクスポートしてください。ブックマークや保存したパスワードはChromeから問題なく取り出せます。Cookieは置いていくべき部分です。移行の目的は、新しい環境の中で作られたセッションを得ることだからです。
正直なまとめ
Chromeプロファイルは、共有されたCookieジャーの問題を完全に解決しますが、解決するのはそれだけです。多くの人にとって、問題はCookieジャーだけでした。その場合、さらにツールを重ねても、存在しない課題に労力を費やすことになります。
しかし、アカウント同士が無関係であるはずなら、Chromeプロファイルの下にある共有されたデバイスのアイデンティティは、あなたが頼んだ覚えのない仕事をしています。それが境界線です。自分がどちら側にいるかによって、この比較の他のすべてが決まります。
1点だけ、はっきり述べておきます。ここまでの内容は、何かを許可するものではありません。複数アカウントの保有を禁じる規約を持つサービスでは、アカウントを分離していてもそれは禁止されたままです。環境を分けるのは、あなたに権利のある作業のために行ってください。

