IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Un chercheur décortique le mécanisme publicitaire de ChatGPT jusqu'aux cookies déposés sur les sites marchands, tandis qu'OpenAI rate ses objectifs et entraîne Oracle dans sa chute

Le , par Stéphane le calme

30PARTAGES

14  0 
C'était, paraît-il, le dernier recours. En 2024, Sam Altman qualifiait lui-même la combinaison de l'IA et de la publicité de chose « particulièrement troublante », et promettait qu'OpenAI ne s'y résoudrait qu'en cas d'absolue nécessité. Nous y sommes. Depuis février 2026, ChatGPT diffuse des publicités aux utilisateurs américains des offres gratuites et Go. Et un chercheur vient de mettre au jour le fonctionnement précis de la machinerie; côté serveur, côté client, jusqu'aux cookies déposés sur les sites marchands.

Pour comprendre pourquoi OpenAI a franchi ce Rubicon publicitaire, il faut d'abord rappeler dans quel état se trouvent ses finances. C'est en janvier 2026 qu'OpenAI a officiellement annoncé le lancement de tests publicitaires aux États-Unis, d'abord pour les utilisateurs du tier gratuit puis pour les abonnés de son offre Go à 8 dollars par mois. Le modèle de placement retenu est simple : les publicités s'affichent au bas des réponses lorsqu'un produit ou service sponsorisé est jugé pertinent par rapport à la conversation en cours. Les abonnés Plus, Pro, Business, Enterprise et Education sont, pour l'instant, épargnés.

L'argument officiel d'OpenAI est celui de l'accessibilité : maintenir la rapidité, la fiabilité et l'amélioration continue des offres gratuites et bas de gamme exige des investissements infrastructurels considérables, et la publicité est présentée comme le mécanisme de financement d'un accès plus large, non comme un abandon du modèle d'abonnement. Sauf que les chiffres qui filtrent racontent une histoire moins flatteuse... et c'est précisément ce que la mécanique technique mise au jour par un chercheur en sécurité permet de mesurer autrement.


Les pubs arrivent dans le flux de conversation, pas à côté

La première chose à comprendre, c'est l'architecture technique. Lorsqu'un utilisateur envoie un message à ChatGPT, le backend ouvre une réponse en Server-Sent Events (SSE) à l'adresse chatgpt.com/backend-api/f/conversation. La majorité des événements de ce flux sont des sorties du modèle. Certains sont des blocs publicitaires.

Ces blocs ont un type explicitement nommé : single_advertiser_ad_unit. Concrètement, le backend injecte des objets structurés de ce type dans le flux SSE pendant que le modèle répond. L'annonce arrive donc au même niveau technique que la réponse de l'IA, même si elle est présentée visuellement séparée. Un exemple capturé dans la nature montre une publicité Grubhub (livraison de cuisine chinoise) apparue dans le fil d'une conversation sur un voyage à Pékin. Le ciblage est contextuel : même compte, sujet différent, marque différente. Lors de conversations sur les vols vers Pékin, l'annonce bascule vers un comparateur de billets. Sur les playoffs NBA, place à une application de billetterie. Sur la productivité, Canva.

Le chercheur n'a pas trouvé de preuve formelle que le ciblage incorpore aussi l'historique complet des conversations, mais ne peut pas l'exclure non plus.

Chaque bloc publicitaire contient plusieurs éléments : l'identifiant stable du compte annonceur (adacct_<32 caractères hexadécimaux>, une URL de destination enrichie de paramètres UTM spécifiques à ChatGPT (utm_source=chatgptpilot), et surtout quatre jetons chiffrés en Fernet AES-128-CBC avec HMAC-SHA256. C'est là que les choses deviennent franchement intéressantes du point de vue de la sécurité.

L'exemple que le chercheur a donné :

Code : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
event: delta
data: {
  "type":           "single_advertiser_ad_unit",
  "ads_request_id": "069e89b3-c038-7764-8000-6e5a193e5f69",
  "ads_spam_integrity_payload": "gAAAAABp6Js_<...redacted...>",
  "preamble":       "",
  "advertiser_brand": {
    "name":        "Grubhub",
    "url":         "www.grubhub.com",
    "favicon_url": "https://bzrcdn.openai.com/cabfae7ead26b03d.png",
    "id":          "adacct_6984ed0ba55481a29894bb192f7773b4"
  },
  "carousel_cards": [{
    "title":     "Get Chinese Food Delivered",
    "body":      "Satisfy Your Cravings with Grubhub Delivery.",
    "image_url": "https://bzrcdn.openai.com/cabfae7ead26b03d.png",
    "target": {
      "type":  "url",
      "value": "https://www.grubhub.com/?utm_source=chatgptpilot&utm_medium=paid&utm_campaign=diner_gh_search_chatgpt_kw_traffic_nb_x_nat_x&utm_content=nbchinese&oppref=gAAAA<...>&olref=gAAAA<...>",
      "open_externally": false
    },
    "ad_data_token": "eyJwYXlsb2<...>"
  }]
}
Quatre jetons, une chaîne d'attribution serrée

Chaque annonce est accompagnée de quatre blobs chiffrés Fernet distincts, dont les rôles ont pu être reconstitués d'après leur position dans le flux.

Le premier, ads_spam_integrity_payload, reste côté serveur : c'est un mécanisme anti-fraude pour détecter les clics forgés. Le deuxième, oppref, voyage avec l'URL de clic et est immédiatement recopié par le SDK côté marchand dans un cookie de première partie nommé __oppref, avec une durée de vie de 720 heures, soit trente jours. C'est le jeton d'attribution principal : il accompagnera tous les événements ultérieurs du pixel côté marchand. Le troisième, olref, est présent sur l'URL de clic mais ne semble pas être conservé par le SDK observé, vraisemblablement destiné aux logs côté OpenAI. Le quatrième, ad_data_token, est encapsulé en base64 dans le flux SSE et semble être réconcilié côté serveur au moment du clic.

Ce qui rend ces jetons Fernet partiellement lisibles par n'importe qui, c'est une particularité de leur format : les neuf premiers octets sont publics; un octet de version 0x80 suivi d'un horodatage Unix sur 8 octets en big-endian. La date de création de n'importe lequel de ces jetons est donc récupérable sans la clé d'OpenAI. Le chercheur a ainsi pu dater un clic vers Home Depot avec une précision à la seconde : jeton émis à 11:30:08 UTC, page marchande chargée à 11:31:43 UTC. Latence : 95 secondes.

La fin de cet article est réservée aux abonnés. Soutenez le Club Developpez.com en prenant un abonnement pour que nous puissions continuer à vous proposer des publications.

Une erreur dans cette actualité ? Signalez-nous-la !