Huella digital

Huella digital WebGPU: la próxima generación de rastreo por GPU

Cómo la API WebGPU expone detalles del adaptador GPU para huella digital, y cómo controlar las señales de identidad GPU a nivel del motor del navegador.

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

WebGPU es el sucesor de WebGL, proporcionando acceso moderno y de bajo nivel al hardware GPU para renderizado y cargas de trabajo de cómputo. A medida que los navegadores adoptan WebGPU, introduce una nueva superficie de huella digital que los usuarios conscientes de su privacidad necesitan conocer. La API expone información del adaptador GPU incluyendo el fabricante, la arquitectura, la descripción del dispositivo, el conjunto de características y los límites detallados de capacidad. Esta información es más rica y estructurada que lo que proporciona WebGL, lo que la convierte en una preocupación creciente para cualquiera que valore su privacidad en línea.

Para investigadores de privacidad, ingenieros de automatización y cualquier persona preocupada por la huella digital del navegador, WebGPU representa una nueva fuente significativa de filtración de identidad del dispositivo. Este artículo explica por qué WebGPU importa para tu privacidad y cómo BotBrowser controla las señales de identidad WebGPU a través de su sistema de perfiles y el flag --bot-config-webgpu.

Impacto en la privacidad

WebGPU es una API relativamente nueva (disponible en Chrome desde la versión 113), pero sus implicaciones para la huella digital ya son significativas. Aunque la especificación de WebGPU fue diseñada con algunas consideraciones de privacidad, incluyendo información del adaptador de resolución reducida por defecto, la combinación de señales disponibles aún proporciona entropía significativa que puede usarse para rastreo.

La información de GPU expuesta por WebGPU incluye campos de vendor, arquitectura y dispositivo. Aunque estos son intencionalmente menos detallados que las cadenas de renderer raw de WebGL, aún distinguen entre familias de GPU. Diferentes fabricantes de GPU, GPUs integradas versus discretas y diferentes arquitecturas producen valores distintos que reducen tu configuración de dispositivo.

Más allá de la información básica del adaptador, WebGPU expone un conjunto detallado de límites de capacidad: dimensiones máximas de textura, tamaños máximos de buffer, tamaños máximos de workgroup de cómputo y docenas más. Estos límites varían entre fabricantes de GPU, arquitecturas y versiones de drivers. La combinación de estos valores de límites crea una huella digital de capacidad de GPU que a menudo es más granular que la información del adaptador en sí misma.

La investigación temprana de equipos de privacidad de navegadores ha notado que los valores de límites de WebGPU pueden distinguir entre generaciones específicas de GPU dentro de la misma familia de fabricante. Dos GPUs del mismo fabricante pero de diferentes líneas de productos reportan diferentes límites, aunque comparten el mismo identificador de vendor. Este nivel de granularidad es preocupante para la privacidad porque reduce la identificación a modelos de hardware específicos.

Importancia creciente

A medida que aumenta la adopción de WebGPU, particularmente para inferencia de IA, visualización avanzada, juegos y aplicaciones creativas, la API se convertirá en estándar en todos los navegadores modernos. Esto significa que la huella digital WebGPU se volverá más prevalente, y la ausencia de WebGPU puede convertirse en sí misma en una señal distintiva. La protección proactiva es esencial.

Por qué esto importa para tu privacidad

Exposición de identidad GPU

Tu GPU es una de las piezas de hardware más distintivas de tu computadora. La combinación de vendor, arquitectura y límites de capacidad crea una huella digital de hardware que es difícil de cambiar y persistente entre sesiones de navegación. WebGPU hace que esta información sea directamente consultable por cualquier sitio web, sin ninguna solicitud de permiso ni notificación al usuario.

Correlación entre APIs

Una preocupación crítica de privacidad es la correlación entre WebGPU y WebGL. Ambas APIs acceden a la misma GPU. Si la identidad GPU reportada por una API no coincide con la otra, o si los perfiles de capacidad son inconsistentes entre las dos APIs, la discrepancia se convierte en una fuerte señal de rastreo. Los sitios web que consultan ambas APIs pueden detectar inconsistencias, por lo que cualquier enfoque de protección debe abordar ambas APIs juntas.

Conjunto de características como huella digital

El conjunto de características de GPU disponibles a través de WebGPU (como formatos de compresión de texturas, recorte de profundidad, consultas de timestamp y capacidades de shaders) varía entre modelos de GPU y versiones de drivers. La combinación específica de características soportadas actúa como una dimensión adicional de huella digital que complementa la información del adaptador y los límites de capacidad.

Variaciones en la salida de renderizado

Al igual que WebGL, el renderizado WebGPU produce salida específica de la GPU. Los shaders de cómputo, los pipelines de renderizado y las operaciones de texturas producen resultados que varían a nivel numérico entre arquitecturas de GPU. Aunque la especificación de WebGPU es más estricta respecto a la precisión que la de WebGL, las diferencias de implementación aún existen y pueden usarse para huella digital.

Enfoques comunes de protección y sus limitaciones

Deshabilitar WebGPU es actualmente la protección más simple. Dado que WebGPU es relativamente nuevo, la mayoría del contenido web no lo requiere. Sin embargo, a medida que aumenta la adopción, deshabilitarlo se volverá cada vez más impráctico. La ausencia de WebGPU también se convertirá en una señal distintiva a medida que la API se vuelva estándar, potencialmente haciendo tu navegador más identificable en lugar de menos.

Bloquear métodos individuales de la API solo aborda parte de la huella digital. El conjunto de características y los límites de capacidad permanecen disponibles y proporcionan entropía significativa por sí solos. La protección parcial es a menudo peor que ninguna protección porque crea inconsistencias.

Modificación a nivel de JavaScript de la información del adaptador cambia el vendor y la arquitectura reportados pero no cambia los límites de capacidad reales ni el comportamiento de renderizado. Un sitio web que verifica tanto la información del adaptador como los límites puede detectar la inconsistencia inmediatamente. Los enfoques superficiales crean nuevas señales de detección en lugar de eliminar las existentes.

Estandarizar los límites (reportar valores mínimos requeridos para todos los límites) reduciría la superficie de huella digital pero podría romper aplicaciones WebGPU que dependen de capacidades superiores, degradando la experiencia del usuario.

El enfoque efectivo requiere controlar la información del adaptador, las características, los límites y el comportamiento de renderizado desde una única fuente coherente. Esto es exactamente lo que BotBrowser proporciona.

El enfoque a nivel de motor de BotBrowser

BotBrowser controla la identidad WebGPU a nivel del motor de Chromium a través de su sistema de perfiles, asegurando que todas las señales relacionadas con WebGPU sean consistentes y auténticas. Esta no es una anulación de JavaScript. BotBrowser modifica el reporte interno de GPU del navegador, de modo que las APIs nativas mismas producen resultados consistentes con el perfil.

Control completo de información del adaptador

Cuando se carga un perfil, la información del adaptador coincide con la GPU perfilada en todos los campos: vendor, arquitectura, identificador de dispositivo y descripción. Estos valores corresponden a una configuración de GPU real capturada de un dispositivo real. No hay valores sintéticos o genéricos que pudieran indicar que la identidad ha sido modificada.

Control del conjunto de características

El conjunto de características reportado por el adaptador WebGPU coincide exactamente con la GPU perfilada. Solo las características soportadas por la GPU perfilada están listadas, y todas las características que la GPU perfilada soporta están presentes. Esto asegura que el conjunto de características sea consistente con la información del adaptador, los límites de capacidad y el comportamiento de renderizado.

Control de límites de capacidad

Todos los valores de límites de capacidad se derivan del perfil. Las dimensiones máximas de textura, tamaños de buffer, tamaños de workgroup de cómputo y todos los demás límites coinciden con las capacidades reales de la GPU perfilada. Estos no son valores mínimos predeterminados. Corresponden al modelo de GPU específico en el perfil, reflejando características de hardware del mundo real.

Consistencia WebGL-WebGPU

BotBrowser asegura que la identidad de GPU reportada por WebGPU sea consistente con lo que reporta WebGL. Ambas APIs indican el mismo vendor de GPU, y los perfiles de capacidad son compatibles. Esta consistencia entre APIs elimina un vector de detección importante que afecta a otros enfoques de protección.

Control de salida de renderizado

Cuando se combina con --bot-noise-seed, la salida de renderizado WebGPU se vuelve determinista y consistente con el dispositivo perfilado. Los resultados de shaders de cómputo y la salida del pipeline de renderizado reflejan el comportamiento numérico de la GPU perfilada, proporcionando protección contra la huella digital basada en renderizado.

Configuración y uso

Protección básica WebGPU

La protección WebGPU es automática al cargar un perfil:

chrome --bot-profile="/path/to/profile.enc" \
       --user-data-dir="$(mktemp -d)"

Opciones de configuración WebGPU

BotBrowser te da control explícito sobre el comportamiento WebGPU a través del flag --bot-config-webgpu:

# Usar configuración WebGPU del perfil (predeterminado, recomendado)
chrome --bot-profile="/path/to/profile.enc" \
       --bot-config-webgpu=profile

# Usar GPU real del sistema para WebGPU (cuando necesitas rendimiento real de GPU)
chrome --bot-profile="/path/to/profile.enc" \
       --bot-config-webgpu=real

# Deshabilitar WebGPU por completo (elimina la superficie de huella digital)
chrome --bot-profile="/path/to/profile.enc" \
       --bot-config-webgpu=disabled

Configuración combinada WebGL y WebGPU

Para la protección de huella digital más fuerte, configura ambas APIs GPU juntas:

# Ambas APIs usan datos del perfil (recomendado para consistencia)
chrome --bot-profile="/path/to/profile.enc" \
       --bot-config-webgl=profile \
       --bot-config-webgpu=profile \
       --bot-noise-seed=42

Esto asegura una consistencia completa de identidad GPU entre ambas APIs, con salida de renderizado determinista a través de la semilla de ruido.

Integración con Playwright

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

const browser = await chromium.launch({
  executablePath: '/path/to/botbrowser/chrome',
  args: [
    '--bot-profile=/path/to/profile.enc',
    '--bot-config-webgpu=profile',
    '--bot-noise-seed=42'
  ]
});

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

// Verificar que la identidad WebGPU coincida con el perfil
const gpuInfo = await page.evaluate(async () => {
  if (!navigator.gpu) return 'WebGPU not available';
  const adapter = await navigator.gpu.requestAdapter();
  if (!adapter) return 'No adapter';
  const info = await adapter.requestAdapterInfo();
  return {
    vendor: info.vendor,
    architecture: info.architecture,
    device: info.device,
    features: [...adapter.features],
    maxTexture2D: adapter.limits.maxTextureDimension2D
  };
});
console.log('WebGPU identity:', gpuInfo);

Integración con Puppeteer

const puppeteer = require('puppeteer');

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

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

// Tu identidad WebGPU ahora está protegida por el perfil

Verificación

Después de lanzar BotBrowser con un perfil, verifica tu protección WebGPU:

Verificación de información del adaptador. Verifica que el vendor, la arquitectura y el dispositivo coincidan con la GPU objetivo del perfil. Deben reflejar el dispositivo perfilado, no tu hardware real.

Verificación del conjunto de características. Confirma que las características listadas coincidan con las características esperadas para la GPU perfilada. El conjunto debe ser completo y preciso.

Verificación de límites. Verifica varios valores de límites y confirma que coincidan con las capacidades de la GPU perfilada. Los valores deben ser específicos del modelo de GPU en el perfil, no mínimos genéricos.

Consistencia WebGL-WebGPU. Compara el vendor de GPU reportado por WebGL con el vendor reportado por WebGPU. Deben indicar la misma familia de GPU, asegurando coherencia entre APIs.

Estabilidad entre sesiones. Ejecuta las mismas consultas WebGPU en múltiples sesiones con el mismo perfil. Todos los valores deben ser idénticos cada vez, demostrando que tu huella digital GPU es estable y reproducible.

Puedes usar sitios web de prueba de huella digital o las herramientas de verificación integradas de BotBrowser para confirmar que estas señales están correctamente alineadas.

Mejores prácticas

  • Mantén la configuración WebGL y WebGPU alineada. Ambas APIs exponen la identidad GPU. Usa --bot-config-webgl=profile y --bot-config-webgpu=profile juntos para asegurar consistencia entre APIs. Identidades GPU no coincidentes entre las dos APIs son una señal de rastreo fuerte.

  • Usa perfiles con datos WebGPU. No todos los perfiles incluyen información WebGPU (perfiles más antiguos pueden ser anteriores a WebGPU). Usa perfiles actuales que incluyan datos de adaptador WebGPU para asegurar protección completa.

  • Considera deshabilitar WebGPU si no es necesario. Si tu caso de uso no requiere WebGPU, --bot-config-webgpu=disabled elimina la superficie de huella digital por completo. Esta es una opción válida mientras la adopción de WebGPU aún está creciendo, aunque puede volverse menos viable a medida que la API se vuelva estándar.

  • Combina con --bot-noise-seed para salida de renderizado. La información del adaptador y los límites son deterministas desde el perfil. La salida de renderizado también necesita la semilla de ruido para determinismo. Usar ambos juntos proporciona la protección de huella digital GPU más completa.

  • Prueba la disponibilidad de WebGPU. Algunos perfiles pueden no soportar WebGPU (coincidiendo con dispositivos donde WebGPU no está disponible). Verifica que tu perfil incluya datos WebGPU si tu aplicación lo necesita.

Preguntas frecuentes

P: ¿WebGPU está disponible en todos los navegadores? R: A principios de 2026, WebGPU está disponible en Chrome/Edge (desde la versión 113), Firefox (detrás de un flag en algunas versiones) y Safari (soporte parcial). La disponibilidad varía según plataforma. Los perfiles de BotBrowser especifican si WebGPU debería estar disponible según el dispositivo perfilado, dándote una representación precisa de las configuraciones de navegador del mundo real.

P: ¿Cómo se compara la huella digital WebGPU con la de WebGL? R: WebGPU proporciona información del adaptador más estructurada y límites de capacidad más detallados, mientras que WebGL proporciona cadenas de renderer raw y huellas digitales basadas en renderizado. Ambas APIs son importantes para una protección completa de huella digital GPU. BotBrowser protege ambas a través de su sistema de perfiles, asegurando que tu identidad GPU sea consistente en todas las APIs de gráficos.

P: ¿Puedo usar WebGPU para cargas de trabajo de cómputo con BotBrowser? R: Sí. El control WebGPU de BotBrowser opera a nivel de reporte de identidad y capacidad. La ejecución real de cómputo usa tu hardware GPU real para rendimiento. Obtienes rendimiento completo de GPU para tus cargas de trabajo mientras mantienes una identidad de huella digital protegida.

P: ¿Qué pasa si mi perfil no incluye datos WebGPU? R: Si el perfil no incluye datos WebGPU y --bot-config-webgpu=profile está establecido, WebGPU puede no estar disponible (coincidiendo con un dispositivo donde WebGPU no es soportado). Usa un perfil más nuevo que incluya datos WebGPU si necesitas acceso a WebGPU.

P: ¿Deshabilitar WebGPU afecta a WebGL? R: No. WebGL y WebGPU son APIs independientes. Deshabilitar WebGPU no afecta la funcionalidad de WebGL. Cada uno es controlado por su propio flag --bot-config-*, dándote control granular sobre tu huella digital GPU.

P: ¿Los resultados de shaders de cómputo WebGPU se ven afectados por la semilla de ruido? R: Cuando --bot-noise-seed está establecido, la salida de renderizado y cómputo que podría usarse para huella digital incluye variación determinista. Las cargas de trabajo de cómputo normales que no tocan superficies sensibles a la huella digital no se ven afectadas. Tus cargas de trabajo de cómputo científico o IA permanecen precisas mientras tu huella digital está protegida.

Resumen

WebGPU introduce una nueva y detallada superficie de huella digital GPU a través de información del adaptador, conjuntos de características, límites de capacidad y salida de renderizado. A medida que la API se vuelva estándar, controlar estas señales se vuelve esencial para una protección completa de huella digital. BotBrowser controla todas las señales de identidad WebGPU a nivel del motor de Chromium a través de su sistema de perfiles, asegurando consistencia con la identidad WebGL y con el perfil general del dispositivo. El flag --bot-config-webgpu proporciona control explícito sobre el comportamiento WebGPU, desde protección completa basada en perfil hasta deshabilitación total. Con BotBrowser, tu identidad GPU es auténtica, consistente entre APIs y completamente alineada con tu huella digital general del navegador.

Para temas relacionados, consulta Qué es la huella digital del navegador, Protección de huella digital WebGL, Huella digital de Canvas y Comportamiento determinista del navegador.

#Webgpu#fingerprinting#Gpu#Privacy

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.