El fingerprint de la GPU puede usarse para rastrear usuarios en línea
Un equipo de investigadores de universidades francesas, israelíes y australianas ha explorado la posibilidad de usar las GPUs de las personas para crear huellas digitales (fingerprinting) únicas y usarlas para el seguimiento web persistente.
El experimento a gran escala involucró a 2550 dispositivos con 1605 configuraciones distintas de CPU. Los resultados muestran que su técnica, llamada ‘DrawnApart’, puede aumentar la duración media del seguimiento al 67% en comparación con los métodos actuales de vanguardia.
Este es un grave problema para la privacidad del usuario, que actualmente está protegida por leyes. Las leyes se centran en obtener el consentimiento para activar las cookies de un sitio web.
Estas leyes han llevado a sitios web sin escrúpulos a recopilar otros elementos potenciales de fingerprinting. Por ejemplo, la configuración del hardware, el sistema operativo, las zonas horarias, la resolución de pantalla, el idioma, las fuentes, etc.
Este enfoque poco ético todavía está limitado porque estos elementos cambian con frecuencia. Incluso cuando son estables, solo pueden colocar a los usuarios en una categorización aproximada en lugar de crear una huella digital única.
Fingerprinting de GPUs idénticas
Los investigadores consideraron la posibilidad de crear fingeprintings distintivas basadas en la GPU (unidad de procesamiento de gráficos) de los sistemas rastreados con la ayuda de WebGL (Biblioteca de gráficos web).
WebGL es una API multiplataforma para renderizar gráficos 3D en el navegador y está presente en todos los navegadores web modernos.
Con esta biblioteca, el sistema de seguimiento DrawnApart puede contar el número y la velocidad de las unidades de ejecución en la GPU. Es decir, permite medir el tiempo necesario para completar los renderizados de vértices, manejar las funciones de bloqueo y más.
DrawnApart utiliza programas GLSL cortos ejecutados por la GPU de destino como parte del sombreador de vértices para superar el desafío de tener unidades de ejecución aleatorias que manejen los cálculos. Por lo tanto, la asignación de la carga de trabajo es predecible y estandarizada.
El equipo desarrolló un método de medición en pantalla que ejecuta una pequeña cantidad de operaciones computacionalmente intensivas. Asimismo, diseñaron un método fuera de pantalla que somete a la GPU a una prueba más prolongada y menos intensiva.
Este proceso genera rastros que consisten en 176 medidas tomadas de 16 puntos que se utilizan para crear una fingerprint. Incluso cuando se evalúan visualmente los rastros sin procesar individuales, se pueden notar diferencias y distintas variaciones de tiempo entre dispositivos.
Sólo funciona con la GPU
Los investigadores también intentaron intercambiar otras partes de hardware en las máquinas para ver si los rastros se mantendrían distinguibles. Ellos descubrieron que las huellas digitales dependían únicamente de la GPU.
Incluso si un conjunto de circuitos integrados se crea a través de un proceso de fabricación idéntico, tiene la misma potencia computacional nominal, la misma cantidad de unidades de procesamiento y exactamente los mismos núcleos y arquitectura, cada circuito es ligeramente diferente debido a la variabilidad normal de fabricación.
Estas diferencias son indistinguibles en las operaciones normales del día a día. No obstante, pueden volverse útiles en el contexto de un sistema de seguimiento sofisticado como DrawnApart. Recordemos que DrawnApart está específicamente diseñado para desencadenar aspectos funcionales que las resaltan.
Implicaciones y consideraciones
Cuando se utiliza DrawnApart junto con algoritmos de seguimiento de última generación, la duración media del seguimiento de un usuario objetivo aumenta en un 67 %.
Como se ilustra en el siguiente diagrama, el algoritmo de seguimiento independiente puede lograr un tiempo de seguimiento promedio de 17.5 días. Sin embargo, con la ayuda del fingerprinting de la GPU, esto se extiende a 28 días.
Esta evaluación se basó en las condiciones de prueba en las que el rango de temperatura de funcionamiento de la GPU está entre 26.4 °C y 37 °C, sin variaciones de voltaje.
Aparte de estas condiciones, las variaciones de la carga de trabajo, las cargas de GPU de otras pestañas del navegador web, los reinicios del sistema y otros cambios en el tiempo de ejecución no afectan a DrawnApart.
Las APIs de GPU de próxima generación actualmente en desarrollo, sobre todo WebGPU. No obstante, cuentan con sombreadores de cómputo que se suman a la canalización de gráficos existente.
Como tal, la próxima API puede presentar aún más formas de tomar fingerprint de los usuarios de Internet. Y, muy probablemente también más rápido y mucho más precisa.
Cuando los investigadores probaron los sombreadores de cómputo en WebGL 2.0, ahora abandonado, descubrieron que DrawnApart brindaba una precisión del 98 % en solo 150 milisegundos. Esto es mucho más rápido que los 8 segundos que se usaban para recopilar datos de fingerprinting a través de la API de WebGL.
“Creemos que también se puede encontrar un método similar para la API de WebGPU una vez que esté disponible de forma general. Los efectos de las APIs de cómputo acelerado en la privacidad del usuario deben considerarse antes de que se habiliten globalmente”.
Documento de investigación.
Contramedidas
Las contramedidas potenciales para este método de identificación incluyen cambios en el valor de los atributos y prevención de ejecución paralela. Además, también se pueden bloquear scripts, APIs y prevenir la medición de tiempo.
El desarrollador de la API de WebGL, el grupo Khronos, recibió la divulgación de los investigadores sobre lo anterior. Khronos formó un grupo de estudio técnico para analizar posibles soluciones con los proveedores de navegadores y otras partes interesadas.