Um grupo de pesquisadores da França, Israel e Austrália encontrou uma nova maneira de identificar com bastante precisão cada usuário individual na Internet – isso pode ser feito discretamente usando GPUs. A nova maneira é chamada DrawnApart.
Nos últimos anos, as pessoas ficaram cada vez mais preocupadas com questões de privacidade na Internet – muitas categoricamente não gostam do fato de suas ações estarem sendo monitoradas. Isso levou, por exemplo, a leis que exigem que os sites peçam permissão aos usuários para coletar cookies ou outras informações. Nesse contexto, sites sem escrúpulos começaram a coletar outros dados para identificação, como configuração do dispositivo e do SO, hora, resolução da tela, idioma e assim por diante. Mas isso não permite identificar com precisão cada usuário, exceto talvez distribuí-lo para um grupo ou outro.
Os pesquisadores decidiram buscar identificadores precisos baseados em GPU rastreados usando WebGL, uma API multiplataforma para renderização de gráficos 3D na web que faz parte de praticamente 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 a renderização de vértices, o processamento de funções e muitas outras tarefas. A ferramenta usa programas GLSL curtos em vertex shaders, cujo tempo de processamento determina a configuração da GPU. Os desenvolvedores criaram um método na tela com um pequeno número de operações computacionalmente intensivas e um método fora da tela que submete a GPU a um teste mais longo e menos intensivo.
O processo gera “traços” que consistem em 176 medições realizadas em 16 pontos, com base nos quais é obtido um identificador único. Curiosamente, depende apenas da GPU – substituir a CPU ou outros componentes do PC não alterou os “traços”. E o mais importante, mesmo duas GPUs idênticas do mesmo fabricante deixam “pegadas” ligeiramente diferentes, porque durante o processo de fabricação elas ainda obtêm pequenas diferenças no nível do transistor. Essas diferenças não podem ser vistas nas operações normais do dia-a-dia, mas podem ser úteis no contexto de um sistema de rastreamento sofisticado como o DrawnApart, que visa detectar exatamente essas diferenças. Os pesquisadores testaram seus sistemas em 2.550 dispositivos com 1.605 processadores diferentes.
Embora o DrawnApart não seja 100% preciso, em combinação com algoritmos de rastreamento modernos, é capaz de aumentar a duração média do rastreamento de um usuário-alvo em cerca de 67%, de 17,5 para 28 dias. Além disso, o DrawnApart não é afetado pela carga de trabalho do sistema e da própria GPU, reinicializações do sistema e outras alterações durante a operação.
Além disso, as APIs de GPU de última geração atualmente em desenvolvimento, principalmente WebGPU, incluem shaders de computação que complementarão o pipeline gráfico existente. Isso poderia fornecer ainda mais maneiras de identificar e rastrear usuários da Internet.
O desenvolvedor da API WebGL, o Grupo Khronos, recebeu o relatório dos pesquisadores sobre o método DrawnApart e já formou um grupo para discutir possíveis soluções para o problema com desenvolvedores de navegadores e demais interessados.