Nghiên cứu
Điều tra độc lập: Cookie __obi của ChatGPT theo dõi hành vi duyệt web ngoài nền tảng
(giờ Việt Nam)
Tóm tắt AI
Nghiên cứu chỉ ra OpenAI sử dụng cookie __obi để liên kết dữ liệu duyệt web và mua sắm của người dùng trên các trang web bên thứ ba với tài khoản ChatGPT thông qua mã theo dõi quảng cáo.
Bản dịch AI
Trình thu thập quảng cáo của OpenAI tại bzr.openai.com thiết lập một cookie có tên là __obi, với phạm vi áp dụng cho.openai.com. Giá trị này tồn tại khi bạn đang sử dụng ChatGPT và được liên kết với tài khoản ChatGPT của bạn. Sau đó, __obi sẽ được gửi đến OpenAI từ các trang web thông thường mà bạn truy cập.
Bất kỳ công ty nào mua quảng cáo trên ChatGPT đều cài đặt một đoạn mã nhỏ của OpenAI lên trang web của riêng họ, tương tự như cách các nhà bán lẻ đã cài đặt mã theo dõi của Meta và Google. Việc tải đoạn mã đó sẽ gửi __obi đến OpenAI cùng với dữ liệu về trang bạn đang duyệt. Dữ liệu này bao gồm các sản phẩm bạn đang tìm kiếm, bài viết bạn đang đọc và hành vi mua sắm của bạn.
Điểm mấu chốt là OpenAI có thể kết nối những gì bạn làm trên các trang web đó với tài khoản ChatGPT của bạn.
Tôi đã tái hiện toàn bộ cơ chế này trên điện thoại của chính mình, xác minh bằng hai phương pháp thu thập dữ liệu độc lập và đối chiếu với lưu lượng truy cập quan sát được trong vài tháng, bao gồm 936 pixel quảng cáo riêng biệt trên 1.029 tên miền.

Cách thức hoạt động
Bước 1. ChatGPT tạo một định danh và ký xác nhận định danh đó.
Trên chatgpt.com, client tạo ra 16 byte ngẫu nhiên và gọi POST /backend-api/bazaar/obi/sync-token (hoặc /backend-anon/ khi đã đăng xuất). Backend trả về một RS256 JWT:
sub là tài khoản. obi là định danh. Token này liên kết chúng lại với nhau, được giới hạn phạm vi cho trình thu thập và hết hạn sau 60 giây. bzr là viết tắt của bazaar, tên nội bộ của OpenAI cho nền tảng quảng cáo; wadi là dịch vụ phát hành.
Bước 2. Định danh trở thành một cookie trên tên miền của OpenAI.
Client thực hiện POST {"token": "«JWT»"} xuyên trang (cross-site) đến bzr.openai.com/v1/obi/sync. Phản hồi là:
SameSite=none với Secure là cấu hình cần thiết để một cookie được gửi trong các yêu cầu xuyên trang. Max-Age là một năm. Giá trị obi trong JWT và giá trị trong cookie là giống hệt nhau.
Bước 3. Các trang web của nhà quảng cáo gửi cookie đó trở lại.
Ba loại yêu cầu được gửi từ trang của nhà quảng cáo đến các máy chủ của OpenAI. Trên một chiếc điện thoại có __obi trong kho lưu trữ, cả ba yêu cầu đều mang theo cookie này:
Hàng đầu tiên đặc biệt thú vị. SDK pixel có một đường dẫn mã bỏ qua thông tin xác thực, nhưng điều đó không giúp ích gì: trình duyệt đính kèm cookie vào yêu cầu <script src> để tải SDK trước khi bất kỳ mã nào của OpenAI được chạy. Nhờ việc tải thẻ này, định danh đã bị tiết lộ.
Những gì được gửi kèm theo
SDK này cũng thu thập danh tính từ trang của nhà quảng cáo. Payload phân tách bốn nguồn, được chính OpenAI dán nhãn: in cho các giá trị mà nhà quảng cáo cố tình truyền vào, và fm, ht, js cho các giá trị mà SDK quét được từ các trường biểu mẫu, văn bản trên trang được hiển thị và bus quản lý thẻ (tag-manager bus). Trong lưu lượng truy cập quan sát được, danh tính được quét chiếm ưu thế hơn danh tính do nhà quảng cáo cung cấp với tỷ lệ 685 sự kiện so với 255.
Bus quản lý thẻ là nguồn thu thập email lớn nhất. SDK thay thế window.dataLayer.push bằng hàm riêng của nó, đồng thời đọc adobeDataLayer và định vị các lớp GTM đã đổi tên bằng cách phân tích tham số l= từ thẻ script gtm.js. Các phiên bản hiện tại lấy email và số điện thoại từ đó. Phiên bản 0.1.31 cũng lấy cả tên và vị trí địa lý trước khi phạm vi này bị thu hẹp vào ngày 27 tháng 8.
Email, số điện thoại, tên và họ được băm bằng SHA-256 trước khi truyền đi. Quốc gia, khu vực, thành phố và mã bưu chính được gửi dưới dạng văn bản thuần túy. Mã bưu chính là trường biểu mẫu được thu thập nhiều nhất, với 100 sự kiện trên 28 trang web.
Các URL được rút gọn thành origin cộng với đường dẫn trước khi gửi; không có trường hợp nào trong số 23.929 yêu cầu quan sát được mang theo chuỗi truy vấn (query string). Các đường dẫn vẫn được giữ lại, và các đường dẫn đến trình thu thập bao gồm tình trạng bệnh lý, phễu giải pháp nợ và biểu mẫu tiếp nhận hồ sơ kiện tụng.
Tính năng khớp tự động (automatic matching) đã được bật cho 638 trong số 881 pixel có cài đặt xác định, bao gồm mọi nhà quảng cáo tín dụng và cho vay được quan sát. Tính năng này được kiểm soát từ Ads Manager của OpenAI. Một danh sách chặn (denylist) loại trừ mật khẩu, mã dùng một lần, số thẻ, SSN, ngày sinh, bệnh sử, chẩn đoán và các trường liên quan đến tòa án.
Cookie được xây dựng để hoạt động xuyên trang
Trên cùng các yêu cầu từ trang nhà quảng cáo, mọi cookie khác của OpenAI đều bị trình duyệt chặn:
__obi là định danh duy nhất của OpenAI được cấu hình với SameSite=None.
Phạm vi quan sát được
Trên thiết bị của tôi, một giá trị __obi đã được gửi đến OpenAI từ 12 trang web thương mại dưới 13 ID pixel riêng biệt, bao gồm Chewy, Wayfair, ThriftBooks, Eventbrite, HelloFresh, Coursera và SeatGeek. Mọi yêu cầu đều được chấp nhận với mã 202.
Trong lưu lượng truy cập rộng hơn, 12 trong số 30 giá trị __obi riêng biệt xuất hiện dưới nhiều hơn một nhà quảng cáo, một giá trị xuất hiện dưới mười nhà quảng cáo.
Nó vẫn hoạt động khi bạn đã đăng xuất
Trong số 932 token đồng bộ được giải mã, 736 mang subject_type: account_user và 196 mang giá trị anonymous. Đối tượng ẩn danh ổn định như đối tượng tài khoản: một trên mỗi thiết bị, tồn tại ít nhất 27 ngày.
Chính sách cookie của OpenAI nói gì
Chính sách cookie của OpenAI liệt kê __obi trong mục Cookie phân tích, thời hạn một năm, trên chatgpt.com và openai.com. Đây là mục duy nhất trong phần đó. Chính sách mô tả cookie phân tích giúp OpenAI hiểu cách các dịch vụ của họ hoạt động và được sử dụng như thế nào.
OpenAI vận hành phân tích và tiếp thị như hai lựa chọn đồng ý riêng biệt, oai_consent_analytics và oai_consent_marketing, và mọi token đồng bộ tôi giải mã đều mang giá trị consent_decision: analytics_allowed. Một người cho phép phân tích nhưng từ chối tiếp thị sẽ nhận được kết quả này.
Phản hồi của OpenAI
Tôi đã gửi cơ chế này và hai câu hỏi đến [email protected] và [email protected] vào ngày 14 tháng 9: tại sao __obi lại được phân loại là cookie phân tích, và liệu một người dùng đồng ý phân tích nhưng từ chối tiếp thị có vẫn nhận được cookie này hay không. Phản hồi đến từ bộ phận Hỗ trợ của OpenAI. Họ xác nhận đã nhận được câu hỏi, cho biết các quan sát sẽ được chia sẻ nội bộ để xem xét, và không trả lời bất kỳ câu hỏi nào. Quan sát về việc tải script ở trên được thực hiện sau khi câu hỏi đã được gửi. Tôi sẽ cập nhật bài viết này nếu OpenAI phản hồi.
Các hạn chế
Trình duyệt. Quan sát trên Chrome cho Android. Tính năng Intelligent Tracking Prevention của Safari chặn tất cả cookie của bên thứ ba, và Chrome trên iOS chạy trên WebKit, vì vậy cơ chế này không hoạt động trên bất kỳ trình duyệt iOS nào. Chrome trên máy tính để bàn chưa được kiểm tra.
Kiểm soát. Khoảng một trong năm phiên ChatGPT tạo ra một token đồng bộ. Client web di động của ChatGPT phân phối quảng cáo mà không cần đồng bộ hóa. Một người làm theo các bước dưới đây có thể thấy pixel kích hoạt mà không có cookie nào được đính kèm.
Việc kết nối (join) không được quan sát trực tiếp. Mã 202 có nghĩa là trình thu thập đã chấp nhận sự kiện với cookie được đính kèm. Việc OpenAI giải quyết nó cho tài khoản ở phía máy chủ là hệ quả từ thiết kế; tôi đã không theo dõi quá trình đó xảy ra.
Meta đã xây dựng cấu trúc tương đương từ nhiều năm trước. Một tài khoản đã đăng nhập, cookie của bên thứ ba khi pixel kích hoạt, các chuyển đổi ngoài trang web được giải quyết về một hồ sơ. Cơ chế này là tiêu chuẩn trong công nghệ quảng cáo (adtech). Điều chưa từng có tiền lệ là chạy nó trên một sản phẩm trò chuyện AI. Mọi người chia sẻ với các sản phẩm này những điều họ sẽ không đăng lên mạng xã hội, và các sản phẩm này ngày càng hành động thay mặt cho họ.
Cookie còn lại của pixel không làm điều này. __obref được thiết lập trên tên miền của chính nhà quảng cáo. Mỗi trang web nhận được một giá trị khác nhau và không trang nào có thể thấy giá trị của trang khác. Trong số 2.860 giá trị quan sát được, 2.828 giá trị chỉ xuất hiện dưới đúng một nhà quảng cáo.
Bài viết được AI dịch và tổng hợp tự động từ Hacker News Nổi bật (buzzing.cc bản dịch tiếng Trung). Liên kết bài gốc ở phía trên. AIHOT.vn luôn dẫn nguồn đầy đủ — nếu bạn thấy điểm cần chỉnh sửa, hãy gửi ý kiến tại trang phản hồi.