Pesquisadores usam impressão digital de GPU para rastrear usuários online
Uma equipe de pesquisadores de universidades francesas, israelenses e australianas explorou a possibilidade de usar as GPUs das pessoas para criar impressões digitais exclusivas e usá-las para rastreamento persistente na web.
Os resultados de seu experimento em larga escala envolvendo 2.550 dispositivos com 1.605 configurações distintas de CPU mostram que sua técnica, chamada ‘DrawnApart’, pode aumentar a duração média do rastreamento para 67% em comparação com os métodos atuais de última geração.
Este é um problema grave para a privacidade do usuário, que atualmente é protegida por leis que se concentram na obtenção de consentimento para ativar os cookies do site.
Essas leis levaram sites sem escrúpulos a coletar outros possíveis elementos de impressão digital, como configuração de hardware, sistema operacional, fusos horários, resolução de tela, idioma, fontes etc.
Essa abordagem antiética ainda é limitada porque esses elementos mudam com frequência e, mesmo quando estáveis, eles só podem colocar os usuários em uma categorização aproximada, em vez de criar uma impressão digital exclusiva.
Impressão digital de GPUs idênticas
Os pesquisadores consideraram a possibilidade de criar impressões digitais distintas com base na GPU (unidade de processamento gráfico) dos sistemas rastreados com a ajuda do WebGL (Web Graphics Library).
WebGL é uma API multiplataforma para renderização de gráficos 3D no navegador e está presente em todos os navegadores modernos.
Usando essa biblioteca, o sistema de rastreamento DrawnApart pode contar o número e a velocidade das unidades de execução na GPU, medir o tempo necessário para concluir renderizações de vértices, lidar com funções de travamento e muito mais.
DrawnApart usa programas GLSL curtos executados pela GPU de destino como parte do sombreador de vértices para superar o desafio de ter unidades de execução aleatórias lidando com os cálculos. Portanto, a alocação de carga de trabalho é previsível e padronizada.
A equipe desenvolveu um método de medição na tela que executa um pequeno número de operações computacionalmente intensivas e um método fora da tela que coloca a GPU em um teste mais demorado e menos intensivo.
Este processo gera traços que consistem em 176 medições feitas a partir de 16 pontos que são usados para criar uma impressão digital. Mesmo ao avaliar os traços brutos individuais visualmente, pode-se notar diferenças e variações de tempo distintas entre os dispositivos.
Os pesquisadores também tentaram trocar outras peças de hardware nas máquinas para ver se os traços permaneceriam distinguíveis e descobriram que as impressões digitais dependiam apenas da GPU.
Mesmo que um conjunto de circuitos integrados seja criado através de um processo de fabricação idêntico, tenha o mesmo poder computacional nominal, o número de unidades de processamento e os mesmos núcleos e arquitetura, cada circuito é ligeiramente diferente devido à variabilidade normal de fabricação.
Essas diferenças são indistinguíveis nas operações normais do dia-a-dia, mas podem se tornar úteis no contexto de um sistema de rastreamento sofisticado como o DrawnApart, projetado especificamente para acionar aspectos funcionais que os destacam.
Implicações e considerações
Quando DrawnApart é usado em conjunto com algoritmos de rastreamento de última geração, a duração média de rastreamento de um usuário-alvo aumenta em 67%.
Conforme ilustrado no diagrama a seguir, o algoritmo de rastreamento autônomo pode atingir um tempo médio de rastreamento de 17,5 dias, mas com a ajuda da impressão digital da GPU, isso é estendido para 28 dias.
Esta avaliação foi baseada nas condições de teste em que a faixa de temperatura operacional da GPU está entre 26,4 °C e 37 °C, sem variações de tensão.
Além dessas condições, variações de carga de trabalho, cargas de GPU de outras guias do navegador da Web, reinicializações do sistema e outras alterações de tempo de execução não afetam o DrawnApart.
As APIs de GPU de última geração atualmente em desenvolvimento, principalmente a WebGPU, apresentam shaders de computação que vêm além do pipeline gráfico existente.
Como tal, a próxima API pode introduzir ainda mais formas de impressão digital dos usuários da Internet e, provavelmente, mais rápida e muito mais precisa também.
Quando os pesquisadores testaram shaders de computação no WebGL 2.0, agora abandonado, descobriram que o DrawnApart forneceu 98% de precisão de classificação em apenas 150 milissegundos, muito mais rápido do que os 8 segundos usados para coletar dados de impressão digital por meio da API WebGL.
“Acreditamos que um método semelhante também pode ser encontrado para a API WebGPU assim que estiver disponível para todos. Os efeitos das APIs de computação acelerada na privacidade do usuário devem ser considerados antes de serem habilitadas globalmente”, conclui o trabalho de pesquisa .
As possíveis contramedidas para esse método de impressão digital incluem alterações de valor de atributo, prevenção de execução paralela, bloqueio de script, bloqueio de API e prevenção de medição de tempo.
O desenvolvedor da API WebGL, grupo Khronos, recebeu a divulgação dos pesquisadores sobre o exposto e formou um grupo de estudo técnico para discutir possíveis soluções com fornecedores de navegadores e outras partes interessadas.