OpenAI déploie-t-il des cookies de suivi ? Ce que le mécanisme __obi relie réellement

opoinstall
2026-09-21
5 min read

OpenAI déploie-t-il des systèmes de cookies de suivi ? Des investigations techniques publiées le 20 septembre 2026 par le chercheur en sécurité indépendant Buchodi démontrent que lorsque OpenAI déploie des mécanismes de cookies de suivi sur des sites commerciaux tiers, les navigateurs initient des routines d'identification qui transmettent les événements de navigation externes aux collecteurs publicitaires de la plateforme. Cette infrastructure repose sur un identifiant persistant nommé __obi, configuré avec des autorisations intersites et classé dans la documentation officielle comme un cookie d'analyse plutôt que comme un composant marketing. Bien que l'architecture du protocole établisse les prérequis techniques permettant d'associer des interactions commerciales à des identifiants liés à un compte ou à des identifiants anonymes persistants, les captures de trafic externe confirment la transmission vers des points de terminaison en périphérie (edge), laissant les jointures finales des bases de données côté serveur non vérifiables depuis une observation externe.

Réalignement du secteur et analyse de l'actualité

L'intersection entre l'intelligence artificielle générative et la monétisation commerciale a atteint un tournant suite aux révélations techniques publiées via l'analyse technique de Buchodi sur la collecte publicitaire intersites. Cette étude indépendante a examiné comment les sessions client interagissant avec ChatGPT sont liées à l'activité web ultérieure sur des domaines commerciaux externes. Plutôt que de fonctionner entièrement au sein d'interfaces isolées, les interactions côté client initient des routines d'identification en arrière-plan qui relaient les métadonnées de navigation vers l'infrastructure d'ingestion publicitaire.

En bref

  • Émission d'identifiants intersites : Un client web visitant chatgpt.com obtient un jeton JSON Web Token (JWT) de synchronisation OBI éphémère qui est échangé contre un cookie persistant d'un an nommé __obi sous le domaine .openai.com.
  • Transmission pré-exécution des cookies lors de tests observés sur Chrome Android : Lors de l'extraction de scripts de mesure publicitaire externes depuis bzrcdn.openai.com, la pile réseau du navigateur attache automatiquement __obi avant l'exécution du JavaScript côté client.
  • Collecte via les pixels (DOM et formulaires) : Les balises de mesure publicitaire déployées analysent les entrées de formulaires, les éléments HTML rendus et les bus de gestionnaires de balises, transmettant des indicateurs géographiques et des chaînes de chemins URL aux points de terminaison d'OpenAI.

L'analyse empirique a surveillé les échanges réseau en direct au cours d'un cadre de test s'étendant sur plusieurs mois. L'ensemble des données a évalué 23 929 requêtes HTTP individuelles générées sur 936 pixels publicitaires hébergés par 1 029 noms d'hôtes uniques. Les résultats ont confirmé que les activités commerciales externes—y compris les interactions avec les catalogues produits, les recherches d'articles et les tunnels de paiement—sont régulièrement transmises aux points de terminaison d'OpenAI accompagnées de jetons clients persistants.

Capture du trafic réseau montrant le cookie __obi attaché aux requêtes de suivi bazaar d'OpenAI sur des domaines de vente au détail

Sur l'appareil de test du chercheur, des valeurs __obi identiques ont été transmises depuis 12 sites commerciaux distincts opérant sous 13 configurations de pixels différentes, notamment des portails tels que Chewy, Wayfair, ThriftBooks, Eventbrite, HelloFresh, Coursera et SeatGeek. Dans l'échantillon de trafic plus large, 12 des 30 valeurs __obi distinctes sont apparues dans plusieurs contextes publicitaires, une valeur ayant été observée sur dix domaines commerciaux séparés.

Chronologie de la résolution d'identité intersites

Phase de l'événement Action du protocole Portée technique et isolation
Initialisation de session POST /sync-token Le JWT RS256 lie un identifiant de compte ou de sujet anonyme à un jeton de 60 secondes
Persistance du cookie Set-Cookie: __obi SameSite=None marque le cookie comme éligible au transit intersites
Attribution marchand GET /sdk/oaiq.min.js La pile réseau du navigateur attache le cookie lors de la récupération initiale du script

Les définitions officielles contenues dans la Politique de cookies d'OpenAI classent __obi parmi les cookies d'analyse, lui attribuant une validité opérationnelle de 365 jours. Étant donné que l'architecture de consentement d'OpenAI régit __obi via le consentement aux analyses plutôt que par des contrôles marketing dédiés, le refus du consentement marketing seul n'a pas empêché le déploiement du cookie lors des tests observés.

Interception de paquets HTTP affichant l'échange de données intersites entre les navigateurs mobiles et les points de terminaison publicitaires d'OpenAI

Architecture et déconnexion technique

Les mécanismes opérationnels régissant __obi reposent sur un pipeline d'échange en trois étapes reliant les sessions de navigateur client, les points de terminaison de collecte publicitaire et les sites marchands tiers. Les traces réseau illustrent comment une assertion cryptographique transitoire se traduit par un identifiant persistant côté client.

Le processus débute sur chatgpt.com. Le navigateur du client génère 16 octets d'entropie et envoie une requête HTTP vers le backend interne de la plateforme :

POST /backend-api/bazaar/obi/sync-token

Les sessions non authentifiées invoquent /backend-anon/bazaar/obi/sync-token. Le service d'émission interne, identifié par la revendication JWT iss comme étant chatgpt-wadi, retourne un jeton JSON Web Token signé en RS256 contenant des revendications d'identité qui mappent l'entropie aléatoire aux métadonnées du compte interne.

{
  "iss": "chatgpt-wadi",
  "aud": "bzr.openai.com",
  "purpose": "obi_sync",
  "operation": "set",
  "consent_decision": "analytics_allowed",
  "consent_policy_version": "user_granular_consent_v1",
  "sub": "«masqué : identifiant de sujet 64-hex»",
  "subject_type": "account_user",
  "obi": "«masqué : identifiant 22-car»",
  "exp": "«iat + 60s»"
}

La charge utile signée impose une période d'expiration de 60 secondes (exp). Le navigateur client transfère immédiatement ce jeton vers le domaine publicitaire programmatique d'OpenAI via une requête POST asynchrone :

POST https://bzr.openai.com/v1/obi/sync

Les serveurs en périphérie d'OpenAI traitent le jeton et répondent avec des en-têtes HTTP ordonnant au navigateur de stocker le cookie persistant.

HTTP/2 200 OK
Set-Cookie: __obi=«masqué»; Domain=.openai.com; HttpOnly; Max-Age=31536000; Path=/; SameSite=None; Secure

L'attribution de SameSite=None accompagnée de l'indicateur Secure marque le cookie comme éligible à la transmission intersites lorsque le navigateur hôte autorise les cookies tiers. Contrairement aux cookies d'application standard configurés avec SameSite=Lax ou restreints aux sous-domaines d'origine directe, __obi s'attache aux requêtes intersites sortantes adressées à *.openai.com.

+-------------------------------------------------------------------------+
|     [ FLUX CONCEPTUEL : ÉCHANGE DE JETON OBI ET PIXEL PUBLICITAIRE ]    |
+-------------------------------------------------------------------------+
|                                                                         |
|  [ Session navigateur utilisateur (chatgpt.com) ]                       |
|          |                                                              |
|          +---> Requête jeton : POST /backend-api/.../sync-token         |
|          |     Réponse : 60s JWT RS256 (Compte ou Sujet Anonyme)        |
|          |                                                              |
|          +---> Échange jeton : POST bzr.openai.com/v1/obi/sync          |
|                Réponse : Set-Cookie: __obi (SameSite=None; 1 an)        |
|                                                                         |
+-------------------------------------------------------------------------+
|  [ Site Marchand (Site avec Pixel OpenAI intégré) ]                     |
|          |                                                              |
|          +---> Navigateur récupère : <script src="bzrcdn.../oaiq.min.js"> |
|          |     * LA PILE RÉSEAU ATTACHE __obi LORS DU CHARGEMENT *      |
|          |                                                              |
|          +---> Le pixel collecte DOM, gestionnaires de balises, inputs  |
|          |                                                              |
|          v                                                              |
|  [ Point d'ingestion OpenAI (bzr.openai.com/v1/sdk/events) ]            |
|  Transmis : Code postal + Valeurs hashées + Chemin URI assaini          |
|                                                                         |
+-------------------------------------------------------------------------+

Les sites marchands partenaires ferment la boucle de communication. Les détaillants faisant de la publicité via ChatGPT intègrent le script de mesure de conversion d'OpenAI (oaiq.min.js). Lorsqu'un utilisateur navigue vers un marchand intégré, le navigateur analyse la balise script :

GET https://bzrcdn.openai.com/sdk/oaiq.min.js

Comme la requête correspond à la portée générique de .openai.com, la pile réseau du navigateur ajoute __obi à la récupération initiale du script. Cette transmission a lieu avant que le JavaScript du pixel ne s'exécute, ce qui signifie que la logique côté client à l'intérieur du pixel ne peut pas contourner la requête authentifiée. Cependant, les bloqueurs de contenu au niveau réseau, les puits DNS ou les extensions de navigateur qui bloquent directement le domaine de la requête empêchent la connexion.

Les captures réseau révèlent que le SDK de mesure extrait des attributs au niveau de la page via quatre canaux étiquetés :

Classifications des données collectées

Canal source Mécanisme de collecte Portée technique et champs exposés
in (Entrée explicite) Paramètres API Marchand Valeurs de transaction, identifiants produits, devises
fm (Récolte formulaire) Interception entrée DOM Valeurs de formulaires, éléments de paiement, coordonnées
ht (Parcours DOM) Analyse HTML rendu Titres de contenu, chaînes de confirmation, éléments texte
js (Crochet balises) Interception data-layer Crochets vers window.dataLayer.push et balises Adobe

Le trafic observé a enregistré 685 événements de collecte automatisés via les sources DOM et balises (fm, ht et js) contre 255 paramètres fournis par le marchand (in). Le SDK inspecte les architectures de balises standard, analysant les données transmises dans les pipelines Google Tag Manager et Adobe Analytics. Les identifiants personnels tels que les adresses e-mail, numéros de téléphone et noms complets sont traités avec un hachage SHA-256 avant la transmission. En revanche, les indicateurs géographiques—y compris pays, région, ville et codes postaux—sont transmis en texte brut. Les attributs de code postal sont apparus dans 100 captures distinctes sur 28 noms d'hôtes.

Les structures URL sont également transmises aux points d'ingestion. Bien que les paramètres de requête soient omis, l'origine et les composants du chemin restent intacts. Les enregistrements observés ont confirmé que des chemins représentant des recherches de références médicales, des flux de gestion de dettes financières et des formulaires de prise en charge juridique ont atteint les points d'ingestion.

Visualisation d'audit de sécurité cartographiant la distribution des pixels publicitaires et la collecte de chemins d'URL sensibles

Systèmes découplés et confinement des navigateurs

La mécanique du transit des cookies intersites reflète des variations architecturales fondamentales entre les moteurs web modernes. Différents navigateurs imposent des défauts de partitionnement d'état distincts, déterminant si les identifiants tiers peuvent être transmis au-delà des limites d'origine.

Architectures d'isolation des cookies par navigateur

Environnement Modèle d'isolation Gestion intersites SameSite=None Gestion des chemins observée
Chrome Android Partage de profil (cookie jar) Livraison intersites autorisée si cookies tiers permis Transmission vérifiée lors des tests
Apple Safari (WebKit) Intelligent Tracking Prevention Bloque le stockage tiers par défaut Bloqué par défaut sur ce chemin intersites
Chrome sur iOS Runtime WebKit imposé Sujet aux restrictions de stockage WebKit Bloqué par défaut sur ce chemin intersites
Mozilla Firefox Protection totale des cookies Partitionne les cookies par site État tiers partitionné par défaut
Brave Browser Shields (Partitionnement) Partitionne et bloque les états intersites État tiers partitionné/bloqué par défaut

Comme détaillé dans la documentation de l'aperçu de la prévention du suivi WebKit, les environnements WebKit restreignent le stockage intersites par défaut. L'ITP supprime les cookies tiers sur les appels réseau externes, empêchant les sites marchands sur Safari iOS et Chrome iOS de transmettre __obi. De même, les spécifications architecturales de Mozilla sur la protection totale des cookies et le partitionnement de l'état d'origine détaillent comment les cookies sont cloisonnés par origine de premier niveau, isolant les cookies créés sous openai.com des pages marchandes externes.

L'enquête a spécifiquement reproduit le mécanisme complet sur Chrome pour Android. Comme documenté dans les politiques de gestion des cookies de Google Chrome, les cookies tiers configurés avec SameSite=None; Secure sont autorisés sur les récupérations réseau intersites, sauf si l'utilisateur ou l'administrateur de l'appareil active le blocage des cookies tiers, facilitant ainsi la communication entre les sites marchands et les points de terminaison publicitaires d'OpenAI.

Classification du consentement et comportement observé

Attribut Portée selon la politique de cookies Déploiement en runtime
Catégorie Classé comme cookie d'analyse Configuré avec SameSite=None; Secure
Consentement évalué Distinct des paramètres oai_consent_marketing Régit uniquement par analytics_allowed
Résultat rejet marketing Destiné à régir l'usage promotionnel Observé actif sur les requêtes même après refus
Profil de collecte Décrit comme évaluant la performance Contient des données de paiement, codes postaux, chemins URI

La catégorisation appliquée à __obi au sein des politiques juridiques d'OpenAI soulève des questions de gouvernance importantes. OpenAI propose des choix de consentement distincts pour l'analyse (oai_consent_analytics) et le marketing (oai_consent_marketing). Chaque jeton de synchronisation décodé pendant les tests contenait l'attribut consent_decision: analytics_allowed.

Étant donné que le service d'émission de jetons sous-jacent liait la génération à la préférence d'analyse, refuser les cookies marketing seuls n'a pas arrêté l'émission ou la transmission de __obi. Cette structure soulève des questions au regard des normes internationales de gouvernance des données quant à savoir si la mesure de conversion publicitaire multisite s'aligne sur de simples analyses fonctionnelles ou justifie une classification comme télémétrie marketing.

Les évaluations d'ingénierie doivent maintenir des distinctions strictes entre le transit réseau observé et le traitement des données backend. Les journaux de trafic confirment que les portails marchands transmettent __obi avec des indicateurs de commande, des attributs de formulaire et des chemins d'URL vers bzr.openai.com, recevant un statut HTTP 202 Accepted. Bien que l'incorporation d'identifiants de sujet au niveau du compte dans le jeton d'autorisation initial rende la résolution de compte techniquement plausible, les observations réseau externes ne peuvent confirmer indépendamment si les systèmes d'OpenAI lient ces événements aux historiques conversationnels des utilisateurs.

Liste de contrôle d'ingénierie et vérifications

Les équipes d'ingénierie d'entreprise gérant des portails web et des flottes de points de terminaison doivent évaluer les configurations de balises tierces pour garantir la conformité aux normes de confidentialité.

Checklist de gouvernance des balises

Ingestion de scripts et audit

  • [ ] Auditer les modèles d'application pour localiser les dépendances chargeant des ressources depuis bzrcdn.openai.com.
  • [ ] Évaluer si l'intégrité des sous-ressources (SRI) ou l'hébergement versionné s'aligne avec les modèles de déploiement des fournisseurs.
  • [ ] Examiner les configurations de gestion des balises pour vérifier si les balises marketing accèdent aux bus de transactions internes.

Examen du Data-Layer et traitement des champs

  • [ ] Évaluer les limites d'accessibilité sur les structures window.dataLayer et adobeDataLayer.
  • [ ] Vérifier si les codes postaux et les champs d'adresse nécessitent une rédaction avant l'envoi vers des balises externes.
  • [ ] Vérifier le paramètre “Matching automatique” dans OpenAI Ads Manager pour évaluer si l'analyse DOM est appropriée pour les tunnels de paiement.

Vérification de la Content Security Policy

  • [ ] Réviser les directives connect-src pour définir les destinations autorisées pour les balises de télémétrie sortantes.
  • [ ] Évaluer les politiques script-src pour empêcher l'exécution de scripts externes non révisés.
  • [ ] Valider les tunnels de paiement pour s'assurer que les chemins sensibles restent protégés des balises tierces.

Configuration et hygiène du stockage

Configuration de la flotte mobile

  • [ ] Évaluer les profils de configuration Chrome pour Android sur les appareils gérés par l'entreprise.
  • [ ] Évaluer l'impact opérationnel de l'activation des restrictions de cookies tiers.
  • [ ] Examiner le déploiement de configurations de navigateur axées sur la confidentialité lorsque les exigences métiers le permettent.

Audits d'identité et de session

  • [ ] Surveiller le trafic de sortie réseau de l'entreprise pour détecter les appels récurrents vers bzr.openai.com.
  • [ ] Établir des routines de maintenance régulière des profils sur les sessions de navigation non gérées.
  • [ ] Confirmer que la conception des formulaires évite d'exposer les entrées utilisateur en texte brut aux contextes de scripts ambiants.

La mise en œuvre de politiques de sécurité de contenu structurées et la révision des limites d'ingestion des balises peuvent aider les équipes d'ingénierie à réduire l'exposition involontaire de données à des tiers lors des transactions commerciales.

Questions fréquemment posées (FAQ)

Le rejet du consentement marketing seul arrête-t-il le cookie __obi ?
Lors des tests observés, le refus du consentement marketing seul n'a pas empêché `__obi` d'être émis ou transmis. Comme OpenAI classe `__obi` comme un cookie d'analyse dans sa politique publiée, le point de terminaison d'émission de jetons évalue si l'autorisation d'analyse est accordée (`analytics_allowed`). Les tests n'ont pas permis d'établir si le refus total des cookies d'analyse supprime le mécanisme de synchronisation.
Pourquoi Safari sur iOS bloque-t-il ce suivi alors que Chrome sur Android l'autorise ?
La divergence provient des modèles de partitionnement de stockage par défaut implémentés par les moteurs de navigateur sous-jacents. Safari et Chrome pour iOS utilisent WebKit, où l'ITP bloque la transmission de cookies tiers par défaut. Sur Chrome pour Android, les cookies tiers configurés avec `SameSite=None; Secure` sont autorisés sur les requêtes réseau intersites, sauf si l'utilisateur ou l'administrateur active le blocage des cookies tiers dans les paramètres.
Les sites marchands tiers peuvent-ils lire le cookie __obi directement ?
Les scripts marchands tiers ne peuvent pas lire le cookie `__obi` directement via JavaScript côté client. Le cookie est limité au domaine `.openai.com` et porte l'attribut de sécurité `HttpOnly`, empêchant les scripts DOM externes d'accéder à son contenu. Au lieu de cela, la pile réseau du navigateur ajoute automatiquement le cookie stocké aux requêtes sortantes dirigées vers les points de terminaison OpenAI (`bzr.openai.com`) lorsque la page marchande fait référence au script de mesure externe.

Implications pratiques et perspectives

L'examen technique du cadre du cookie __obi illustre l'évolution de la relation entre les plateformes d'IA conversationnelle et les architectures publicitaires en ligne. Pendant des années, les systèmes publicitaires numériques ont utilisé des mécanismes d'état de navigateur pour connecter l'engagement des utilisateurs à travers des sites web indépendants. L'application de ces modèles de mesure aux interfaces conversationnelles introduit de nouvelles considérations. Les utilisateurs saisissent fréquemment des détails professionnels, techniques et personnels sensibles dans des plateformes conversationnelles, en supposant que ces environnements restent séparés des réseaux publicitaires plus larges.

Si la télémétrie des marchands est finalement résolue en identités au niveau du compte, comme la conception du protocole semble le permettre, cette combinaison créerait des profils comportementaux inhabituellement riches. À mesure que les agents d'IA gèrent de plus en plus de tâches pratiques—telles que la planification, les réservations de voyage et les achats de produits—les frontières opérationnelles entre l'utilité conversationnelle directe et le profilage commercial nécessiteront une définition rigoureuse.

Naviguer dans cette transition exige que les équipes d'ingénierie appliquent une gouvernance disciplinée sur leurs propriétés web. Les organisations gérant des sites destinés aux clients doivent auditer les intégrations de scripts tiers, examiner les expositions de données des gestionnaires de balises et appliquer des politiques de sécurité du contenu précises. En parallèle, les normes de stockage des navigateurs continuent de limiter le partage de données intersites. La confidentialité à long terme dans les environnements web modernes dépendra de barrières techniques robustes côté client plutôt que de simples déclarations de politique.

Références

Share this article