ChatGPT、Cookieで外部閲覧とアカウント紐付け判明

9月20日に公開された独立系の技術調査によると、OpenAIの広告収集システムはユーザーのブラウザにクロスサイトCookieを埋め込み、OpenAIの広告ピクセルを導入した加盟店サイトはこれを使ってユーザーのサイト外での閲覧・購入行動をOpenAIに送り返し、該当するChatGPTアカウントと紐付けられるという。この記事はHacker Newsでトップ入りした。

筆者は自身のスマートフォンで2種類の独立したパケットキャプチャ手法を使ってこの流れを再現し、さらに数ヶ月分の蓄積トラフィックデータと照合した。OpenAIは記事中の具体的な質問に今のところ回答していない。

Cookieが行き来する仕組み

キャプチャ記録によると、流れは3段階に分かれる。まずChatGPTのページが16バイトの識別子を生成し、/backend-api/bazaar/obi/sync-tokenにリクエストを送ると、60秒で失効するRS256署名付きトークンが返され、現在のアカウントとこの識別子が紐付けられる。続いてページはこのトークンをクロスサイトでbzr.openai.comに送信し、同サイトが.openai.comドメイン下に__obiを書き込む。属性はSameSite=None、Secure、HttpOnlyで、有効期間は31536000秒、つまり1年間となる。

その後、ユーザーがOpenAIの広告ピクセルを導入した加盟店サイトを閲覧すると、ブラウザは__obiをページデータとともにOpenAIへ送信する。ピクセルが収集する項目には、SHA-256でハッシュ化されたメールアドレス・電話番号・氏名、平文の国・地域・市区町村・郵便番号、そしてクエリパラメータを除いたページパスが含まれる。

筆者が観測した881個のピクセルのうち、638個で自動マッチングが有効になっていた。ページから自動収集された本人情報と加盟店側が能動的に送信した情報の比率は685対255。記録されたパスには医療症状のページ、債務整理の集客ページ、訴訟登録フォームなどが含まれていた。

分析用か、マーケティング用か

最大の争点は分類だ。OpenAIのCookieポリシーは__obiを分析用Cookieに分類し、サービスの利用状況を把握するためと説明している。しかし筆者が復号した同期トークンにはすべてconsent_decision: analytics_allowedという項目が含まれていた。筆者の結論は次の通りだ。

"Someone who allows analytics and refuses marketing gets this."

分析を許可しマーケティングを拒否した人にも、このCookieは仕込まれる。

筆者のある端末では、同じ__obiの値がChewy、Wayfair、ThriftBooks、Eventbrite、HelloFresh、Coursera、SeatGeekを含む12のサイトから送信されていた。より広いサンプルでは、30種類の異なるCookie値のうち12個が複数の広告主で確認され、うち1個は10のサイトに現れた。

筆者は9月14日、OpenAIの広報・プライバシー窓口宛てに、なぜ__obiを分析用に分類しているのか、マーケティングへの同意を拒否したユーザーにも__obiが付与されるのか、という2つの質問を送った。OpenAIのサポート窓口は受信を確認したが、どちらの質問にも回答しなかった。

中華圏ユーザーへの影響は

この仕組みには明確な境界がある。筆者が確認した限り、Android版Chromeでは一連の流れが成立するが、iPhoneのSafariはインテリジェント・トラッキング防止機能によりデフォルトでサードパーティCookieをブロックするため、経路は成立しない。デスクトップ版Chromeは未検証という。また同期トークンが生成されるのはChatGPTセッションの5回に1回程度にとどまり、OpenAIが段階的に展開している可能性を示している。

ChatGPTは中国本土向けにはサービスを提供していないが、香港・マカオ・台湾や海外の中華圏ユーザーの中には、Androidスマートフォンで ChatGPT にログインしながら北米のECサイトを利用する人も少なくない。名指しされた12のサイトはいずれも米国市場向けで、リスクの大きさはそれらのサイトで買い物をするかどうかに左右される。まず自衛したいなら、Chromeの設定で「サードパーティCookieをブロック」をオンにすれば、この経路は断ち切れる。

この調査は単一の筆者による自身の端末とデータセットに基づくパケットキャプチャであり、OpenAIはいずれの技術的詳細についても肯定・否定していない。

参考資料:Buchodi独自調査報告(Cookie属性、トークンの項目、ピクセルおよびホスト名の件数)、Hacker Newsでの議論、CocoLoop、OpenAI Cookieポリシー(__obiの分類に関する記述)。