一篇9月20日發布的獨立技術調查指出,OpenAI的廣告收集系統會在使用者瀏覽器中植入一枚跨站Cookie,投放廣告的商家網站只要安裝了OpenAI的廣告像素,就能藉此把使用者在站外的瀏覽與購買行為回傳給OpenAI,並與對應的ChatGPT帳號綁定。這篇文章在Hacker News上衝上熱門。
作者在自己的手機上,用兩種獨立的封包擷取方式重現了整個流程,並比對了數個月累積下來的流量資料。OpenAI截至目前為止,仍未回應文中提出的具體問題。
一枚Cookie的往返路徑
根據文中的擷取紀錄,整個流程分成三步驟。ChatGPT頁面會先產生一組16位元組的識別碼,向/backend-api/bazaar/obi/sync-token發出請求,取回一枚60秒後失效、以RS256簽章的權杖,這枚權杖會把目前的帳號與該識別碼綁在一起。接著頁面把這枚權杖跨站送交給bzr.openai.com,由後者在.openai.com網域下寫入__obi,屬性為SameSite=None、Secure、HttpOnly,效期31536000秒,也就是整整一年。
之後,只要使用者造訪有安裝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的值曾被12個商業網站送出過,包括Chewy、Wayfair、ThriftBooks、Eventbrite、HelloFresh、Coursera、SeatGeek。在更大範圍的樣本中,30組不同的Cookie值裡,有12組出現在不只一個廣告主身上,其中一組甚至出現在10個網站。
作者在9月14日寫信給OpenAI的媒體與隱私信箱,提出兩個問題:為什麼把__obi歸類為分析用途,以及拒絕行銷授權的使用者是否仍會被植入這枚Cookie。OpenAI客服確認收到信件,但兩個問題都沒有得到答覆。
中文使用者是否受影響
這套機制目前有明顯的邊界。文中測得Android版Chrome可以跑通整個流程;iPhone上的Safari有智慧型防追蹤功能,預設就會封鎖第三方Cookie,這條路徑走不通;桌面版Chrome作者則沒有測試。另外,大約每五次ChatGPT對話才會產生一次同步權杖,顯示OpenAI是分批灰度上線。
ChatGPT目前不對中國大陸提供服務,但港澳台與海外的中文使用者裡,用Android手機登入ChatGPT、同時又常逛北美電商網站的人並不少見。被點名的12個商家都是鎖定美國市場的網站,風險大小取決於你是否會在這些網站消費。想先自保的話,只要在Chrome設定裡開啟「封鎖第三方Cookie」,這條路徑就會被切斷。
這份調查出自單一作者的封包擷取,樣本來自他自己的裝置與資料集,OpenAI目前並未證實或否認其中任何一項技術細節。
參考來源:Buchodi獨立調查報告(Cookie屬性、權杖欄位、像素與主機名稱數量)、Hacker News討論串、CocoLoop、OpenAI Cookie政策(__obi分類說法)。