Identidad

Cambio de marca: Chrome, Edge, Brave, Opera

Cómo cambiar entre identidades de navegador Chrome, Edge, Brave y Opera con consistencia total de señales en UA, Client Hints y APIs del navigator.

Documentación

Prefieres la documentación del producto mantenida?

Este artículo tiene una página equivalente en el centro de documentación. Usa los docs para el flujo canónico, las flags actuales y la referencia duradera.

Introducción

Cada navegador basado en Chromium tiene una identidad distinta definida por sus tokens de marca, cadena User-Agent, encabezados Client Hints y valores de API del navigator. Chrome, Edge, Brave y Opera presentan cada uno diferente información de marca, numeración de versiones y superficie de características a pesar de compartir el motor Chromium. Cuando tu navegador dice ser Edge pero reporta tokens de marca específicos de Chrome en Sec-CH-UA, la inconsistencia es evidente.

BotBrowser maneja el cambio de marca a nivel del motor del navegador. Cuando seleccionas una marca con --bot-config-browser-brand, todas las señales relacionadas se actualizan consistentemente: la cadena User-Agent, todos los encabezados Client Hints, navigator.userAgentData, el orden de tokens de marca y los metadatos de versión reflejan la marca elegida. Este artículo explica qué controla el cambio de marca, cómo configurarlo y por qué importa la consistencia entre todas las señales de marca.

Impacto en la privacidad

La marca del navegador es un componente significativo de la identidad de tu navegador. Los sistemas de rastreo usan la información de marca para:

  • Segmentar usuarios por navegador: Diferentes marcas tienen diferentes bases de usuarios, demografía y patrones de uso
  • Validar consistencia de huellas: Una huella que declara tokens de marca Chrome pero tiene propiedades del navigator específicas de Edge es sospechosa
  • Rastrear comportamientos específicos de marca: Cada marca tiene configuraciones predeterminadas únicas, feature flags y comportamientos de extensiones que afectan la huella

Cuando las señales de marca son inconsistentes, la discrepancia en sí se convierte en una señal de rastreo. Un navegador que reporta Sec-CH-UA: "Microsoft Edge" pero tiene navigator.userAgent conteniendo "Chrome" sin tokens específicos de Edge está claramente mal configurado. Esta inconsistencia es más distintiva que cualquiera de las marcas por sí sola.

BotBrowser asegura que cuando seleccionas una marca, cada señal asociada con esa marca se alinee correctamente. No hay actualizaciones parciales ni propiedades omitidas.

Antecedentes técnicos

Qué define una marca de navegador

La identidad de marca de un navegador se expresa a través de múltiples señales:

Cadena User-Agent: El encabezado User-Agent tradicional y la propiedad navigator.userAgent. Cada marca tiene un formato distinto:

  • Chrome: Mozilla/5.0 ... Chrome/142.0.7444.60 Safari/537.36
  • Edge: Mozilla/5.0 ... Chrome/142.0.7444.60 Safari/537.36 Edg/142.0.3595.65
  • Brave: Mozilla/5.0 ... Chrome/142.0.7444.60 Safari/537.36
  • Opera: Mozilla/5.0 ... Chrome/142.0.7444.60 Safari/537.36 OPR/108.0.0.0

Client Hints (Sec-CH-UA): El encabezado Sec-CH-UA contiene tokens de marca con información de versión. Cada marca tiene un orden y composición específicos:

  • Chrome: "Chromium";v="142", "Google Chrome";v="142", "Not:A-Brand";v="99"
  • Edge: "Chromium";v="142", "Microsoft Edge";v="142", "Not:A-Brand";v="99"
  • Brave: "Chromium";v="142", "Brave";v="142", "Not:A-Brand";v="99"

navigator.userAgentData: La API JavaScript que proporciona información de marca estructurada:

navigator.userAgentData.brands
// Chrome: [{brand: "Chromium", version: "142"}, {brand: "Google Chrome", version: "142"}, ...]
// Edge:   [{brand: "Chromium", version: "142"}, {brand: "Microsoft Edge", version: "142"}, ...]

Tokens GREASE: Chromium añade tokens "GREASE" aleatorizados a Client Hints para prevenir que los servidores dependan de formatos de token específicos. El formato y posición del token GREASE varían por marca.

Cadencia de versiones: Chrome, Edge y Opera lanzan en diferentes calendarios. Chrome 142 puede corresponder a Edge 142 pero con diferentes versiones de parche. Opera tiene su propia numeración de versión mayor. Estas relaciones de versión deben ser correctas para que la marca sea creíble.

Orden de tokens de marca

El orden de los tokens de marca en Sec-CH-UA y navigator.userAgentData.brands es importante. Cada marca tiene un orden específico y consistente. Aleatorizar el orden o usar el orden incorrecto es una señal de discrepancia.

BotBrowser mantiene el orden correcto de tokens de marca para cada marca soportada, incluyendo la colocación apropiada del token GREASE.

Enfoques comunes y sus limitaciones

Sobrescritura de cadena User-Agent

Los frameworks como Playwright y Puppeteer ofrecen opciones de sobrescritura de User-Agent:

// Playwright
const context = await browser.newContext({
  userAgent: 'Mozilla/5.0 ... Edg/142.0.3595.65'
});

// Puppeteer
await page.setUserAgent('Mozilla/5.0 ... Edg/142.0.3595.65');

Estos solo cambian el encabezado User-Agent y navigator.userAgent. No actualizan:

  • Encabezados Sec-CH-UA (todavía reportan tokens de marca Chrome)
  • navigator.userAgentData.brands (todavía devuelve marcas Chrome)
  • Sec-CH-UA-Full-Version-List (todavía muestra versiones Chrome)
  • Valores de Client Hints de alta entropía

El resultado es una discrepancia clara entre la cadena UA y Client Hints.

Sobrescritura de Client Hints vía CDP

CDP proporciona Network.setUserAgentOverride que puede establecer algunos valores de Client Hints. Sin embargo:

  • Requiere Network.enable, que puede afectar el comportamiento de huellas
  • No todos los valores de Client Hints están cubiertos
  • La sobrescritura debe mantenerse por página y por worker
  • El orden de tokens de marca y la generación de tokens GREASE no son automáticos

Suplantación de marca basada en extensiones

Las extensiones que modifican el encabezado User-Agent enfrentan las mismas limitaciones que las sobrescrituras a nivel de framework. No pueden modificar los valores devueltos por navigator.userAgentData.getHighEntropyValues() porque esa API está implementada en código nativo, no en la capa JavaScript a la que las extensiones tienen acceso.

Enfoque de BotBrowser

El flag --bot-config-browser-brand

El flag --bot-config-browser-brand de BotBrowser (ENT Tier2) cambia la identidad de marca del navegador a nivel del motor:

# Lanzar como Microsoft Edge
chrome --bot-profile="/path/to/profile.enc" \
       --bot-config-browser-brand=edge

# Lanzar como Brave
chrome --bot-profile="/path/to/profile.enc" \
       --bot-config-browser-brand=brave

# Lanzar como Opera
chrome --bot-profile="/path/to/profile.enc" \
       --bot-config-browser-brand=opera

Cuando estableces la marca, BotBrowser actualiza todas las señales relacionadas:

SeñalActualizada
Encabezado User-Agent
navigator.userAgent
Encabezado Sec-CH-UA
Sec-CH-UA-Full-Version-List
navigator.userAgentData.brands
getHighEntropyValues()
Orden de tokens de marca
Formato de token GREASE

Marcas soportadas

MarcaValor del flagNotas
ChromechromeIdentidad basada en Chromium por defecto
EdgeedgeMicrosoft Edge con token Edg/ apropiado
BravebraveIdentidad del navegador Brave
OperaoperaOpera con token OPR/
ChromiumchromiumIdentidad genérica de Chromium
WebViewwebviewAndroid WebView (ENT Tier3)

Alineación de versiones

Cada marca tiene su propia cadencia de versiones. Al cambiar a Edge, la versión específica de Edge debe alinearse con la versión de Chromium. BotBrowser maneja esto automáticamente, pero puedes sobrescribir con:

  • --bot-config-brand-full-version: Establece la versión completa específica de la marca (ej. 142.0.3595.65 de Edge)
  • --bot-config-ua-full-version: Establece la versión completa de Chromium (ej. 142.0.7444.60)

Estos flags aseguran que los metadatos UA-CH se mantengan internamente consistentes cuando la cadencia de un proveedor diverge de la de Chromium.

Configuración y uso

Cambio básico de marca (CLI)

# Identidad Edge con proxy de EE.UU.
chrome --bot-profile="/path/to/profile.enc" \
       --bot-config-browser-brand=edge \
       --proxy-server=socks5://user:pass@proxy:1080 \
       --bot-config-timezone=America/New_York \
       --bot-config-locale=en-US

# Identidad Brave con proxy de Reino Unido
chrome --bot-profile="/path/to/profile.enc" \
       --bot-config-browser-brand=brave \
       --proxy-server=socks5://user:pass@uk-proxy:1080 \
       --bot-config-timezone=Europe/London \
       --bot-config-locale=en-GB

Integración con Playwright

const { chromium } = require('playwright-core');

(async () => {
  const browser = await chromium.launch({
    executablePath: '/path/to/botbrowser/chrome',
    args: [
      '--bot-profile=/path/to/profile.enc',
      '--bot-config-browser-brand=edge',
      '--bot-config-timezone=America/New_York',
      '--bot-config-locale=en-US',
    ],
    headless: true,
  });

  const context = await browser.newContext();
  const page = await context.newPage();
  await page.goto('https://example.com');

  const brands = await page.evaluate(() =>
    navigator.userAgentData.brands.map(b => `${b.brand} v${b.version}`)
  );
  console.log('Brands:', brands);

  const ua = await page.evaluate(() => navigator.userAgent);
  console.log('UA:', ua);

  await browser.close();
})();

Integración con Puppeteer

const puppeteer = require('puppeteer-core');

(async () => {
  const browser = await puppeteer.launch({
    executablePath: '/path/to/botbrowser/chrome',
    args: [
      '--bot-profile=/path/to/profile.enc',
      '--bot-config-browser-brand=edge',
    ],
    headless: true,
    defaultViewport: null,
  });

  const page = await browser.newPage();
  await page.goto('https://example.com');

  const highEntropy = await page.evaluate(async () => {
    return await navigator.userAgentData.getHighEntropyValues([
      'fullVersionList', 'platform', 'platformVersion'
    ]);
  });
  console.log('High-entropy:', highEntropy);

  await browser.close();
})();

Configuración multi-marca

Ejecuta diferentes marcas para diferentes identidades:

# Identidad Chrome
chrome --bot-profile="/profiles/chrome-user.enc" \
       --bot-config-browser-brand=chrome \
       --proxy-server=socks5://proxy-a:1080 \
       --user-data-dir="/tmp/chrome-session"

# Identidad Edge
chrome --bot-profile="/profiles/edge-user.enc" \
       --bot-config-browser-brand=edge \
       --proxy-server=socks5://proxy-b:1080 \
       --user-data-dir="/tmp/edge-session"

# Identidad Brave
chrome --bot-profile="/profiles/brave-user.enc" \
       --bot-config-browser-brand=brave \
       --proxy-server=socks5://proxy-c:1080 \
       --user-data-dir="/tmp/brave-session"

Verificación

Después de lanzar con una sobrescritura de marca, verifica estas señales:

const page = await context.newPage();
await page.goto('https://example.com');

// Check User-Agent string
const ua = await page.evaluate(() => navigator.userAgent);
console.log('User-Agent:', ua);

// Check Client Hints brands
const brands = await page.evaluate(() =>
  navigator.userAgentData.brands.map(b => ({ brand: b.brand, version: b.version }))
);
console.log('Brands:', JSON.stringify(brands));

// Check high-entropy values
const highEntropy = await page.evaluate(async () => {
  return await navigator.userAgentData.getHighEntropyValues([
    'fullVersionList', 'platform', 'platformVersion',
    'architecture', 'bitness', 'model'
  ]);
});
console.log('High-entropy:', JSON.stringify(highEntropy));

Confirma que:

  1. La cadena User-Agent contiene el identificador de marca correcto (Edg/ para Edge, OPR/ para Opera)
  2. Sec-CH-UA lista los tokens de marca correctos en el orden correcto
  3. navigator.userAgentData.brands coincide con los Client Hints a nivel HTTP
  4. Los valores de alta entropía como fullVersionList muestran las versiones correctas específicas de la marca
  5. No aparecen tokens específicos de Chrome al usar una marca que no es Chrome (a menos que la marca incluya Chromium como token base)

Mejores prácticas

  1. Mantén las versiones alineadas. Al cambiar a Edge, usa --bot-config-brand-full-version para establecer la versión correcta de Edge que corresponda a la versión mayor de Chromium en tu perfil.

  2. Asocia la marca con patrones de uso regional. Edge es más común en entornos empresariales. Brave tiene una demografía de usuario específica. Elige marcas que se alineen con la identidad que estás presentando.

  3. Combina marca con proxy y locale correspondientes. Una identidad completa incluye componentes de marca, red y geográficos.

  4. Usa perfiles diseñados para la marca objetivo. Algunas características del perfil pueden diferir entre marcas. Usar un perfil capturado de un navegador Edge real con --bot-config-browser-brand=edge produce los resultados más consistentes.

  5. Prueba los tokens de marca con herramientas de verificación de huellas. Verifica que todas las señales de marca se alineen después de la configuración.

Preguntas frecuentes

¿El cambio de marca cambia la superficie de características del navegador? El cambio de marca actualiza todas las señales de identidad (UA, Client Hints, propiedades del navigator). Las diferencias a nivel de características entre marcas (como el escudo de Brave o la barra lateral de Edge) no se emulan a nivel de UI, pero la identidad reportada es consistente.

¿Puedo usar cualquier marca con cualquier perfil? Sí. El flag --bot-config-browser-brand sobrescribe la identidad de marca independientemente de la configuración base del perfil. Los flags CLI tienen la prioridad más alta.

¿Qué pasa si no establezco --bot-config-browser-brand? El navegador usa la marca especificada en el perfil cargado. Si el perfil no especifica una marca, Chrome es el valor por defecto.

¿El cambio de marca afecta el comportamiento de extensiones? El cambio de marca cambia las señales de identidad, no el runtime de extensiones. Las extensiones instaladas en el navegador funcionan de la misma manera independientemente de la marca configurada.

¿Puedo cambiar marcas en tiempo de ejecución sin reiniciar? No. El flag --bot-config-browser-brand se establece en tiempo de lanzamiento. Para cambiar marcas, lanza una nueva instancia del navegador con la marca deseada.

¿Qué pasa con la aleatorización de tokens GREASE? BotBrowser genera tokens GREASE apropiados para cada marca. El formato y posición de GREASE siguen los patrones observados en instancias reales de cada marca de navegador.

¿El cambio de marca a WebView es diferente de otras marcas? Sí. La identidad WebView (ENT Tier3) típicamente requiere flags adicionales para plataforma, modelo y configuración móvil para producir una huella Android WebView completa. Consulta la sección de WebView arriba para más detalles.

Resumen

La identidad de marca del navegador abarca la cadena User-Agent, encabezados Client Hints, APIs del navigator, orden de tokens de marca y metadatos de versión. El flag --bot-config-browser-brand de BotBrowser actualiza todas estas señales consistentemente a nivel del motor, asegurando una identidad de marca completa y creíble.

Para detalles sobre User-Agent y Client Hints, consulta Control de User-Agent y Client Hints. Para combinar identidad de marca con configuración geográfica, consulta Configuración de zona horaria, locale e idioma. Para configuraciones multi-identidad con diferentes marcas, consulta Aislamiento de navegador multi-cuenta.

#marca del navegador#Chrome#Edge#Brave#Identity

Lleva BotBrowser de la investigación a producción

Usa estas guías para entender el modelo y después avanzar hacia validación multiplataforma, contextos aislados y despliegue de navegador preparado para escalar.