La cookie __obi de OpenAI conecta cuentas de ChatGPT con sitios de anunciantes

El identificador está archivado bajo el consentimiento de analíticas, y ahí empieza la disputa

|7 min de lectura0
A hand holding a smartphone running ChatGPT, the app whose account identifier the __obi cookie carries onto advertiser websites.
A hand holding a smartphone running ChatGPT, the app whose account identifier the __obi cookie carries onto advertiser websites.

El punto discutible del análisis del píxel publicitario de OpenAI publicado esta semana no es que una cookie siga a las personas por la web, sino detrás de qué casilla de consentimiento está ubicada. Un investigador que firma como Buchodi's Threat Intel reportó el 20 de septiembre que OpenAI clasifica __obi, un identificador vinculado a una cuenta de ChatGPT con sesión iniciada, dentro de las cookies analíticas, mientras que la función observable de ese identificador es llevar la cuenta hasta los sitios web de los anunciantes. Quien acepta las analíticas y rechaza el marketing la recibe igual.

Claves del artículo

  • __obi es la única cookie de OpenAI configurada con SameSite=None, la marca que un navegador exige antes de adjuntar una cookie a una solicitud entre sitios, y dura un año en .openai.com.
  • Los 932 tokens de sincronización que el investigador decodificó llevaban, sin excepción, la declaración consent_decision: analytics_allowed, y 736 de ellos identificaban al titular de una cuenta.
  • La mayor parte de los datos personales que viajaban junto a la cookie fueron extraídos de la propia página del anunciante y no entregados deliberadamente por él: 685 eventos frente a 255.

Por qué la etiqueta, y no el mecanismo, es la noticia

Los píxeles entre sitios son algo corriente. Meta reunió los mismos tres ingredientes hace años: una cuenta con sesión iniciada, una cookie de terceros que viaja con cada disparo del píxel y conversiones externas que se resuelven de vuelta contra un perfil. Juzgado como ingeniería, el recolector de OpenAI es publicidad digital sin nada llamativo.

Lo que vuelve decisiva la clasificación es que OpenAI opera dos interruptores de consentimiento independientes, oai_consent_analytics y oai_consent_marketing, y publica una política de cookies en la que __obi es la única entrada bajo analíticas. En los regímenes de consentimiento inspirados en la normativa ePrivacy, el permiso que necesita una cookie lo determina la finalidad que realmente cumple, no el epígrafe bajo el que la archiva el proveedor. Una cookie cuya función medida consiste en adherir una identidad publicitaria a las visitas de páginas de terceros resulta difícil de defender como herramienta para entender el rendimiento de un servicio.

El intercambio, en tres pasos

El cliente de ChatGPT genera 16 bytes aleatorios y los canjea en /backend-api/bazaar/obi/sync-token por un JSON Web Token RS256 de 60 segundos cuyas declaraciones vinculan un titular de cuenta de 64 caracteres con un identificador de 22. El cliente envía ese token entre sitios hacia bzr.openai.com/v1/obi/sync, y la respuesta escribe __obi con los atributos HttpOnly, Secure y SameSite=None y una vigencia de un año, siendo el valor de la cookie y el identificador del JWT la misma cadena. A partir de ahí, cualquier página que lleve el píxel de OpenAI lo devuelve. En la nomenclatura interna de OpenAI, bzr abrevia bazaar, la propia plataforma de anuncios.

Un hallazgo desactiva la salvaguarda que el propio SDK incorpora. El píxel tiene una ruta de código que omite las credenciales, pero el navegador ya ha adjuntado las cookies a la solicitud <script src> que descarga el SDK, antes de que se ejecute una sola línea del código de OpenAI. Cargar la etiqueta basta para revelar el identificador, lo que significa que ninguna decisión de integración del anunciante puede desactivar esa exposición.

El segundo trabajo del píxel: leer la página anfitriona

La carga útil de OpenAI etiqueta cuatro orígenes de identidad: in para lo que el anunciante entrega a propósito, y fm, ht y js para lo que el SDK toma de los campos de formulario, del texto renderizado de la página y del bus del gestor de etiquetas. Ese último canal es el más agresivo. El SDK sustituye window.dataLayer.push, lee adobeDataLayer y localiza contenedores renombrados de Google Tag Manager analizando el parámetro l= de la etiqueta gtm.js. Las versiones actuales extraen así el correo electrónico y el teléfono; la versión 0.1.31 también tomaba nombres y datos geográficos, hasta que el alcance se redujo el 27 de agosto.

El cifrado tampoco es completo. El correo, el teléfono y los nombres se someten a un hash SHA-256, pero el país, la región, la ciudad y el código postal viajan en claro, y el código postal fue el campo de formulario más recolectado de todos: 100 eventos en 28 sitios. Los identificadores con hash combinados con un código postal en texto plano ofrecen una barrera de privacidad mucho más débil de lo que el hash por sí solo sugiere. Las URL completas se reducen a origen más ruta, sin que ninguna de las 23.929 observaciones incluyera cadena de consulta, pero las rutas suelen ser lo bastante descriptivas por sí mismas: entre las que llegaron al recolector había una condición médica, un embudo de soluciones de deuda y un formulario de admisión de demandas. La coincidencia automática estaba activada en 638 de los 881 píxeles cuya configuración era visible, incluidos todos los anunciantes de crédito y préstamos.

Los anunciantes están mal situados para auditar nada de esto. __obi reside en un dominio que sus scripts no pueden leer, de modo que un comercio que instale la etiqueta no tiene forma de inspeccionar qué identidad revelan sus propios visitantes. Dado que el canal de web scraping supera al deliberado en casi tres a uno, la parte que legalmente debe informar del consentimiento a los visitantes con frecuencia no es la que decide qué se recopila.

Hasta dónde llega la evidencia

El informe es explícito sobre su techo. Un HTTP 202 demuestra que el recolector aceptó un evento con la cookie adjunta, pero no que OpenAI resuelva ese evento contra una cuenta dentro de sus propios sistemas. El investigador describe el cruce del lado del servidor como algo que se desprende del diseño, no como algo observado.

El alcance también es desigual. El comportamiento se capturó en Chrome para Android; Safari bloquea de raíz las cookies de terceros y Chrome en iOS funciona sobre WebKit, así que ningún navegador de iOS activa el mecanismo, y Chrome de escritorio quedó sin probar. Aproximadamente una de cada cinco sesiones de ChatGPT llegó a producir un token de sincronización. El efecto práctico es que la exposición se concentra en los usuarios de Android en lugar de repartirse de forma pareja, y que la prevalencia medida debe leerse como un suelo y no como un recuento completo.

Lo que el tráfico sí establece es la persistencia. En el propio teléfono del investigador, un mismo valor de __obi llegó a OpenAI desde 12 sitios comerciales bajo 13 identificadores de píxel, entre ellos Chewy, Wayfair, ThriftBooks, Eventbrite, HelloFresh, Coursera y SeatGeek; y en la captura más amplia, 12 de los 30 valores distintos aparecieron con más de un anunciante, uno de ellos con diez. Cerrar sesión no sirve de escape: 196 tokens llevaban un titular anónimo que permaneció fijo en un dispositivo durante al menos 27 días.

Qué viene ahora

A OpenAI se le preguntó directamente. El investigador escribió a press@openai.com y a privacy@openai.com el 14 de septiembre con dos preguntas —por qué la cookie se clasifica como analítica y si rechazar el consentimiento de marketing la detiene— y recibió un acuse de recibo del soporte de OpenAI en el que se indicaba que las observaciones se compartirían internamente, sin respuesta a ninguna de las dos.

Ese silencio encaja mal con la velocidad a la que OpenAI construye el negocio al que sirve el píxel, desde agentes patrocinados que mantienen conversaciones de venta dentro de ChatGPT hasta la consola de Ads Manager donde vive el interruptor de coincidencia automática. Lo incómodo es la distancia entre lo que la gente le cuenta a un asistente de IA y lo que publica en abierto, y los 379 puntos y 188 comentarios que el análisis reunió en Hacker News en un solo día sugieren que los desarrolladores captaron esa diferencia de inmediato. La clasificación del consentimiento es el hilo del que probablemente se tire primero, porque es el único punto en el que la versión de la empresa y la medición se contradicen de forma evidente.

Preguntas frecuentes

¿Pueden los usuarios de ChatGPT desactivar la cookie __obi?

El informe no identificó ningún ajuste que la desactive, y rechazar el consentimiento de marketing tampoco lo hace, porque OpenAI la trata como analítica. Sobrevive un año en .openai.com. Borrar las cookies la elimina hasta la siguiente sincronización, y los navegadores que bloquean cookies de terceros —Safari y todos los navegadores de iOS— impiden por completo el paso entre sitios.

¿Pueden los anunciantes ver la identidad de ChatGPT asociada a sus visitantes?

No, y esa es parte del problema. __obi está en un dominio que los scripts del anunciante no pueden leer, así que los comercios que instalan la etiqueta no pueden auditarla. La otra cookie del píxel, __obref, se escribe en el dominio del propio anunciante y se mantiene única por sitio: 2.828 de los 2.860 valores observados aparecieron con un solo anunciante.

¿Esto demuestra que OpenAI vincula el historial de navegación con cuentas identificadas?

No de forma concluyente. La vinculación con la cuenta es visible dentro de las declaraciones del JWT, y el identificador viaja de forma demostrable hasta OpenAI y es aceptado. El paso final de resolución ocurre en los servidores de OpenAI, donde el investigador no pudo observarlo, así que esa parte se infiere de la arquitectura en lugar de medirse.

¿Qué te parece este artículo?

SJ
Cargando...

Artículos relacionados

OpenAI prueba anuncios con los que se puede discutir
Tech & Business

OpenAI prueba anuncios con los que se puede discutir

OpenAI comenzó el miércoles a probar los Sponsored Agents, que abren una conversación con un agente patrocinado cuando el usuario hace clic en un anuncio. La misma actualización lleva ChatGPT Ads a HubSpot y Shopify.

Seung Junghace 5 días
El acuerdo de ChatGPT de un dólar en Washington expira. Su relevo factura por token
Tech & Business

El acuerdo de ChatGPT de un dólar en Washington expira. Su relevo factura por token

El nuevo acuerdo de OpenAI con la GSA, de 27 meses, exime la licencia de 15 dólares por puesto y reduce a la mitad las tarifas por token, pero cobra por consumo desde el 1 de octubre.

Seung Junghace 8 días
La Corte Suprema de Nuevo México multa con 5.000 dólares a un abogado por los testigos falsos de ChatGPT
Tech & Business

La Corte Suprema de Nuevo México multa con 5.000 dólares a un abogado por los testigos falsos de ChatGPT

La Corte Suprema de Nuevo México multó con 5.000 dólares al abogado Stephen Aarons y lo declaró en desacato después de que ChatGPT inventara testigos y testimonio policial en una apelación.

Seung Junghace 9 días
Altman descarta una salida a bolsa de OpenAI en 2026 pese al S-1 confidencial presentado
Tech & Business

Altman descarta una salida a bolsa de OpenAI en 2026 pese al S-1 confidencial presentado

OpenAI no completará una salida a bolsa este año, dijo su consejero delegado Sam Altman en una entrevista con la directora editorial de Fortune, Alyson Shontell.

Seung Junghace 9 días
Un memo de Microsoft llamó al entrenamiento de IA “el mayor robo de trabajo de la historia”
Tech & Business

Un memo de Microsoft llamó al entrenamiento de IA “el mayor robo de trabajo de la historia”

El material desclasificado en el caso del NYT cita un memo de Microsoft que llama al entrenamiento de IA el mayor robo de trabajo de la historia, con cifras de tráfico y datasets.

Seung Junghace 4 días
Huawei adelanta nueve meses el Ascend 960: el argumento es la escala, no el chip
Tech & Business

Huawei adelanta nueve meses el Ascend 960: el argumento es la escala, no el chip

Huawei aprovechó su conferencia Connect para adelantar tres trimestres el Ascend 960DT, hasta el primer trimestre de 2027, junto a un Atlas SuperPoD de 4.096 aceleradores.

Seung Junghace 3 días