Validación de privacidad en distintos backends de renderizado
Valida las señales de privacidad de Canvas, WebGL y WebGPU entre renderizado por software, hardware y sesiones headless o headed.
BotBrowser Team
Quieres la documentación estructurada de Huella digital?
Este artículo forma parte de la biblioteca editorial. Para pasos de configuración, material de referencia y actualizaciones continuas, entra en la sección de docs.
BotBrowser permite usar backends documentados de renderizado por software en Linux para WebGL y WebGPU, pero BotBrowser no garantiza el mismo resultado en toda GPU o entorno Linux; cada resultado depende del backend, el modo del navegador, el host y el perfil probados.
El backend de renderizado cambia más que la velocidad de los fotogramas. Canvas, WebGL y WebGPU exponen señales relacionadas con el navegador y los gráficos. Cuando un flujo pasa de una estación de trabajo a un servidor Linux, al renderizado por software o a una sesión headless, esas señales pueden cambiar. WebNN es una interfaz vecina con sus propias cuestiones de disponibilidad y backend, que se tratan en Disponibilidad de WebNN, backends y privacidad.
TL;DR
- Registra navegador, profile, host, modo de pantalla y backend en una misma
matrixRow. - Usa un recorrido compatible y anota
completionStateantes de cambiar una sola entrada. - Separa la capacidad de Canvas, WebGL y WebGPU del tiempo de CPU y de la latencia de captura.
- Pausa o revierte si la capacidad requerida o el resultado visible sale del límite documentado.
Contenido
- Define la matriz
- Compara familias de señales
- Registra el renderizado por software
- Conclusión práctica
Define la matriz
Registra la versión de BotBrowser, el profile family, la plataforma objetivo, el sistema anfitrión, el modo del navegador, el servicio de pantalla y el backend. Mantén el flujo de la aplicación fijo y cambia un solo factor cada vez. Compara al menos una sesión headed, una sesión headless y el tipo de host usado en producción.
El profile y la versión principal del navegador forman una unidad. Un resultado de un release no sustituye la validación de otro release.
Compara familias de señales
Canvas, WebGL, WebGPU, la geometría de pantalla y el timing pueden estar relacionados, pero no son el mismo valor. Una propiedad estable no demuestra que toda la identidad gráfica sea coherente. Comprueba primero el resultado visible del flujo y después las familias de señales dentro del perfil seleccionado y los límites de soporte documentados. Cuando una diferencia requiere una inspección más profunda, puede servir la evidencia de ejecución descrita en V8Log Forensics: evidencia de ejecución para validar privacidad.
No publiques scripts de detección, umbrales ni registros internos. Una guía pública debe explicar cómo comparar entornos y cuáles son los límites de soporte.
En una fila, journeyRevision identifica los pasos y el criterio visible de finalización; completionState describe lo que la página mostró y baselineStatus indica si la configuración aceptada cumplía antes ese criterio. backend nombra la ruta gráfica, no el resultado del usuario. Una matrixRow corresponde a una combinación concreta, no a una promesa general. Añade un equipo responsable y la fecha de revisión para que el dato tenga seguimiento.
Clasifica los resultados por separado: “completado” significa que el flujo alcanzó el estado esperado; “capacidad no disponible” significa que falta una operación gráfica necesaria aunque cargue la página; “resultado de aplicación distinto” indica que el flujo terminó pero hubo una diferencia aún no atribuida. Anota qué observación justifica la categoría. Una diferencia no demuestra por sí sola que el navegador sea la causa.
Antes de juzgar un candidato, repite la fila aceptada en el mismo host y fixture. Si ya no cumple el criterio, repara la línea de base primero. Si sí cumple, ejecuta el candidato con la misma secuencia, viewport, estado inicial de almacenamiento y revisión de aplicación, cambiando solo una dimensión relevante. Ante una diferencia, vuelve una vez a la fila aceptada para descartar un fallo transitorio.
La recuperación debe restaurar la combinación completa: pareja navegador/profile, política del host, ruta de pantalla, política de ruta y almacenamiento y backend. Reponer solo el binario anterior puede no recuperar el estado si cambiaron bibliotecas del host o el servicio de pantalla. La afirmación pública debe nombrar plataforma, release, modo, backend y recorrido cubiertos, además de las áreas que no se evaluaron.
Una captura puede mostrar recorte o controles ausentes, pero no demuestra por sí sola que una API gráfica estuviera disponible ni que la señal de privacidad cumpliera la política. Si WebGPU es opcional, evalúa la alternativa de reserva declarada. Si es obligatorio, la fila no cumple aunque el resto de la página funcione. Una diferencia visual con interacción completada debe juzgarse según el requisito de la página, no como fallo automático de privacidad.
Registra el renderizado por software
Los servidores Linux pueden usar renderizado por software por falta de GPU, por el entorno de contenedor o para mantener una ruta reproducible. Registra el backend, el servicio de pantalla, las bibliotecas y el modo del navegador. Acepta por separado la consistencia de privacidad y el coste operativo. El renderizado por software y sus capacidades de reserva se explican en Renderizado WebGL por software, capacidades y privacidad. Para una comparación medida de los backends de software en Linux, consulta Mesa llvmpipe vs SwiftShader para Chromium en Linux.
Si falta una capacidad necesaria para el flujo, detén esa fila y selecciona un backend compatible. No cambies el límite de privacidad con un flag sin una nueva revisión. Qué puede hacer una página cuando se pierde un dispositivo WebGPU durante la sesión se explica en Recuperarse de la pérdida de dispositivo WebGPU.
Lecturas relacionadas.
Canvas Fingerprinting, WebGL Fingerprinting y WebGPU Fingerprinting describen las familias de señales. Evaluar la consistencia multiplataforma cubre la matriz de hosts y objetivos.
Fuentes
- Documentación de backend GPU Linux de BotBrowser
- Especificación WebGPU del W3C
- Especificación WebGL de Khronos
Conclusión práctica
- Empareja la versión del navegador con el profile family.
- Registra host, objetivo, modo, pantalla y backend.
- Usa un flujo real, no solo una página vacía.
- Revisa Canvas, WebGL, WebGPU, pantalla y timing como una familia.
- Mantén probes, umbrales, registros y evidencia de clientes en registros controlados.
Mantén una matrixRow por entorno compatible, repite el mismo journeyRevision y separa el estado visible de la capacidad gráfica y del rendimiento. Promueve un backend solo cuando el par navegador/profile, host, modo de pantalla y operación requerida permanecen dentro del límite documentado; de lo contrario conserva la fila aceptada y el paquete de reversión.
Este artículo forma parte de la guía: ¿Qué es la huella digital del navegador?
Artículos Relacionados
Disponibilidad de WebNN, backends y privacidad
Huella digitalHuella digital WebGPU: la próxima generación de rastreo por GPU
Huella digitalRenderizado WebGL por software, capacidades y privacidad
DespliegueMesa llvmpipe vs SwiftShader para Chromium en Linux
PlataformaConsistencia de perfiles entre navegadores headless y headed
Huella digitalInformación del adaptador WebGPU y privacidad del usuario
Ejecuta la misma comprobación en BotBrowser
Carga un perfil, mantén dentro del navegador las señales que acabas de leer y confirma el resultado en tu propia máquina antes del despliegue.