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 con el perfil cargado del navegador.
BotBrowser Team
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.
Este artículo trata de lo que WebGPU expone a una página: la información del adaptador, el conjunto de características y los límites de capacidad. BotBrowser informa de esos valores desde el perfil cargado; un informe del perfil no prueba que la GPU del host ejecutara la misma carga.
Resumen rápido
Compara la disponibilidad del adaptador, los nombres de las características y los límites en los modos de perfil, real y desactivado, y comprueba WebGL por separado. Un adaptador nulo es lo esperado en modo desactivado, y en modo de perfil o real obliga a revisar host y permisos.
Contenido de esta guía
- Ver el vídeo
- Introducción
- Impacto en la privacidad
- Por qué esto importa para tu privacidad
- Enfoques comunes de protección y sus limitaciones
- El enfoque gestionado por el perfil de BotBrowser
- Configuración y uso
- Verificación
BotBrowser documenta modos WebGPU seleccionables para pruebas controladas; no garantiza disponibilidad, oculta toda señal del adaptador ni identifica hardware físico.
Ver el vídeo
Este vídeo en inglés muestra qué averigua una página con navigator.gpu.requestAdapter() antes de que se ejecute ningún shader. Una página de laboratorio local declara tres informes de adaptador, uno de ellos sin adaptador, y la misma llamada lee cada uno. Después la misma página lee el informe del propio navegador en Google Chrome 155 oficial en Windows, que lista un adaptador y dieciocho características, y en Chrome 154 en Ubuntu, donde la llamada devuelve null. Se ejecutó una sola vez y la causa no se probó, así que solo muestra que los informes pueden diferir y nada sobre ningún otro sistema. No interviene ningún perfil de BotBrowser. El audio está en inglés.
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. En un contexto controlado, BotBrowser puede mantener la información del adaptador, las características y los límites de WebGPU coherentes con un perfil cargado; no puede hacer que hardware GPU o WebGPU no compatible se comporte como otro dispositivo.
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.
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.
En una comparación registra Chrome 113, vendor, architecture y maxTextureDimension2D; son campos observables, no una identidad de hardware.
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. Para saber qué representa un adaptador y cuándo puede no estar disponible, consulta Información del adaptador WebGPU y privacidad del usuario, que cubre los límites de disponibilidad y las alternativas que respetan la privacidad.
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. Para ver cómo WebGL expone la misma identidad de GPU y qué significa allí la coherencia del perfil, consulta Fingerprinting WebGL: controla la identidad de tu GPU, que cubre las familias de señales de WebGL y los enfoques de protección habituales.
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. Para confirmar estas señales de renderizado entre renderizado por software y por hardware, consulta Validación de privacidad en distintos backends de renderizado, que cubre una matriz de renderizado para validar Canvas, WebGL y WebGPU.
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 gestionado por el perfil de BotBrowser
BotBrowser expone el comportamiento WebGPU mediante opciones de lanzamiento asociadas al perfil. Describen lo que una página puede observar en una versión compatible; no añaden una capacidad que falte en el host ni garantizan que una aplicación acepte el resultado.
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
Con configuraciones de perfil WebGL y WebGPU compatibles, BotBrowser está diseñado para mantener coherente la identidad de GPU reportada por WebGPU con WebGL. Ambas APIs deberían indicar el mismo vendor dentro de ese alcance; verifica el resultado para el perfil cargado.
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-webgpu:
# Usar configuración WebGPU del perfil (predeterminado, recomendado)
chrome --bot-profile="path/to/profile.enc" \
--bot-webgpu=profile
# Usar GPU real del sistema para WebGPU (cuando necesitas rendimiento real de GPU)
chrome --bot-profile="path/to/profile.enc" \
--bot-webgpu=real
# Deshabilitar WebGPU por completo (elimina la superficie de huella digital)
chrome --bot-profile="path/to/profile.enc" \
--bot-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-webgl=profile \
--bot-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-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-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-webgl=profiley--bot-webgpu=profilejuntos 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-webgpu=disabledelimina 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-seedpara 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-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-*, 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 superficie detallada de observación GPU mediante información del adaptador, conjuntos de características, límites y salida de renderizado. El flag --bot-webgpu selecciona el comportamiento documentado de perfil, real o deshabilitado en versiones compatibles. Compara los valores devueltos con WebGL y con la carga de la aplicación, y trata el resultado como una observación acotada de compatibilidad y privacidad, no como prueba del hardware físico ni de una alineación universal.
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.
Qué añade frente a la página de referencia
La página de referencia enumera los modos WebGPU. La matriz añadida compara disponibilidad del adaptador, nombres de funciones y límites en modos de perfil, real y desactivado, y comprueba WebGL por separado. También conserva el primer campo que cambia entre ejecuciones.
Cada fila fija mode, adapter y firstChangedField para que la comparación de versiones sea revisable.
Para una ejecución reproducible, guarda el modo, el identificador del perfil, la compilación, el resultado de la consulta del adaptador, los nombres de las características y los límites que recibió la página. Ejecuta el mismo fixture dos veces sin cambiar el host y repítelo cambiando solo el modo. Un adaptador nulo en modo desactivado es un resultado esperado; en modo de perfil o real requiere revisar host y permisos antes de atribuirlo a privacidad.
Si falla una aplicación gráfica, decide primero si necesita WebGPU o si puede usar una alternativa WebGL. Después compara el adaptador, las características y los límites registrados con el error de la aplicación y los registros del host. Así una decisión de compatibilidad no se convierte en una afirmación sobre una GPU física o una clasificación del sitio.
El informe mínimo tiene una fila por modo, con el mismo origen y las mismas opciones de consulta. Incluye si la promesa del adaptador se resolvió, la clase de adaptador, el número de características y los límites relevantes. Si cambia un valor, conserva ambas filas y anota el primer campo diferente.
Para entregar el hallazgo, adjunta el origen, las opciones de consulta, el perfil, la versión, la clase del host y la fila exacta que cambió. Conserva una segunda ejecución con el host sin cambios como control; así el informe sirve para decidir compatibilidad sin convertir una capacidad en una afirmación sobre una persona o un dispositivo físico.
Conclusión práctica
Ante un fallo, conserva la ruta WebGL, verifica permisos y registra el primer campo cambiado (firstChangedField) antes de decidir si el cambio es de compatibilidad.
Fuentes públicas
Este artículo forma parte de la guía: ¿Qué es la huella digital del navegador?
Artículos Relacionados
webgl_debug_renderer_info: qué revela tu GPU a las páginas
Huella digitalInformación del adaptador WebGPU y privacidad del usuario
Huella digitalValidación de privacidad en distintos backends de renderizado
Huella digitalFingerprinting por medicion de texto: rastreo subpixel
PlataformaRecuperarse de la pérdida de dispositivo WebGPU
Huella digitalPrivacidad del navegador entre superficies: coherencia en un contexto
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.