Des chercheurs ont mis en évidence un nouveau type de technique d’empreinte digitale qui exploite le GPU d’une machine comme moyen de suivre en permanence les utilisateurs sur le Web.
Baptisée DrawnApart, cette méthode « identifie un appareil à partir des propriétés uniques de sa pile GPU« , expliquent des chercheurs australiens, français et israéliens dans un nouvel article, ajoutant que « les variations de vitesse entre les multiples unités d’exécution qui composent un GPU peuvent servir de signature fiable et robuste de l’appareil, qui peut être collectée à l’aide de JavaScript non privilégié« .
L’empreinte digitale d’un dispositif ou d’une machine est une information collectée sur le matériel, les logiciels installés, ainsi que le navigateur web et ses modules complémentaires associés, à partir d’un dispositif informatique distant, dans le but d’une identification unique.
Les empreintes digitales peuvent être une arme à double tranchant. D’une part, un algorithme d’empreintes digitales peut permettre à un fournisseur de services (par exemple, une banque) de détecter et de prévenir l’usurpation d’identité et la fraude à la carte de crédit. Mais il peut également être utilisé de manière abusive pour compiler des enregistrements à long terme de l’activité de navigation des individus à des fins de publicité ciblée, en particulier dans le cadre du renforcement des contrôles des cookies par des tiers.
L’empreinte digitale des navigateurs, dans la même veine, repose principalement sur l’assemblage d’éléments d’information clés glanés dans le navigateur pour créer l’empreinte digitale. Les attributs sont très variés, allant de la version du navigateur au système d’exploitation, en passant par le fuseau horaire, l’écran, la langue, la liste des polices et même la façon dont le navigateur rend le texte et les graphiques.
Mais les empreintes digitales des navigateurs présentent également un inconvénient majeur : elles peuvent évoluer dans le temps, ce qui rend plus difficile le suivi des utilisateurs sur de longues périodes. C’est là que DrawnApart entre en jeu.
Il s’agit non seulement du premier mécanisme de ce type à explorer et à exploiter les différences de fabrication entre des GPU identiques, mais aussi à utiliser cette approche de manière fiable pour distinguer des machines ayant des configurations matérielles et logicielles identiques, ce qui porte effectivement atteinte à la vie privée des utilisateurs.
Le système de suivi proposé consiste essentiellement à mesurer le temps nécessaire au rendu de différentes primitives graphiques à l’aide de l’API WebGL, chacune ciblant différentes unités d’exécution qui composent un GPU, afin de créer une trace d’empreinte digitale qui est ensuite introduite dans un réseau d’apprentissage profond pour identifier de manière unique le dispositif spécifique qui l’a générée.
Dans une configuration d’évaluation comprenant 2 550 appareils provenant de la foule, y compris des ordinateurs de bureau Windows 10, des appareils Apple Mac mini et plusieurs générations de smartphones Samsung Galaxy, les chercheurs ont constaté que lorsqu’il est utilisé en conjonction avec des algorithmes de liaison d’empreintes digitales de pointe comme FP-STALKER, DrawnApart a étendu la période moyenne médiane de suivi de 17,5 jours à 28 jours.
Les contre-mesures pour bloquer la méthode d’empreinte du GPU vont du blocage des scripts à la désactivation de WebGL, en passant par la limitation de chaque page Web à une seule unité d’exécution, voire la désactivation du rendu accéléré par le matériel – une mesure qui, selon les chercheurs, pourrait gravement affecter la convivialité et la réactivité.
En outre, le développement en cours de la norme WebGPU – actuellement disponible dans les versions canari de Google Chrome et Mozilla Firefox – devrait réduire considérablement le temps nécessaire à la collecte de l’empreinte digitale, ce qui a amené les universitaires à conclure que « les effets des API de calcul accéléré sur la vie privée des utilisateurs devraient être pris en compte avant leur activation à l’échelle mondiale ».