Canvas- och WebGL-fingerprinting 2026
Läget för GPU-baserad fingerprinting: vad som ändrades med Chromes Privacy Sandbox, hur vi anpassade oss och varför hårdvarusignaler förblir de mest stabila identifierarna.
Canvas
och
WebGL
-fingerprinting har varit hörnstenar i enhetsidentifiering sedan tidigt 2010-tal. Men landskapet har förändrats avsevärt med Chromes
Privacy Sandbox
-initiativ, Firefox Enhanced Tracking Protection och Safaris Intelligent Tracking Prevention. Här är läget för GPU-baserad fingerprinting 2026 — vad som ändrades, hur vi anpassade oss och varför dessa signaler förblir oumbärliga.
Vad som ändrades med Chromes Privacy Sandbox
Chromes Privacy Sandbox, som rullades ut stegvis med start 2024, införde flera förändringar som påverkar fingerprinting. Den mest betydande är initiativet med partitionerad lagring, som minskar effektiviteten hos cookiebaserad spårning men inte direkt påverkar canvas- eller WebGL-fingerprinting.
Chrome har dock börjat experimentera med brusinjektion i canvas — att lägga till små slumpmässiga störningar i canvasens pixeldata för att förhindra exakt fingerprinting. När det är aktiverat producerar samma ritinstruktioner något olika pixelutdata vid varje körning. Detta bryter naiv hash-baserad canvas-fingerprinting som förväntar sig exakt reproducerbarhet.
Att anpassa sig till canvas-brus
Vårt svar på brusinjektion i canvas var att byta från exakt matchning till likhetsbaserad matchning för canvas-signaler. Istället för att beräkna en enda hash av hela canvasens pixeldata extraherar vi nu flera särdragsvektorer från olika regioner och ritoperationer.
Brusinjektionen är vanligtvis liten — några pixlar ändras per bildruta. Genom att extrahera särdrag vid en grövre granularitet (dela upp canvasen i regioner och beräkna aggregerad statistik) kan vi identifiera den underliggande hårdvarusignaturen trots bruset. Vår algoritm för matchning mellan sessioner jämför dessa särdragsvektorer med cosinuslikhet, med ett tröskelvärde inställt på att acceptera hårdvarukonsekventa variationer samtidigt som olika enheter förkastas.
WebGL: fortfarande en guldgruva
Medan canvas-fingerprinting står inför nya utmaningar förblir WebGL-fingerprinting i stort sett opåverkad av integritetsinitiativ. WebGL-API:et exponerar hårdvaruparametrar — maximala texturstorlekar, shaderprecisionsformat, stödda tillägg — som är inneboende i GPU:n och inte enkelt kan störas utan att WebGL-funktionaliteten går sönder.
Chrome har diskuterat att begränsa åtkomsten till WebGL:s renderer- och vendor-strängar (att ersätta specifika GPU-namn med generiska etiketter som "GPU"), men denna förändring har inte distribuerats brett. Även om den gjorde det skulle de dussintals andra WebGL-parametrar vi frågar efter fortfarande ge mycket särskiljande identifieringssignaler.
GPU:n som hårdvaruankare
Den grundläggande anledningen till att GPU-baserad fingerprinting förblir kraftfull är att den läser av hårdvaruegenskaper som fysiskt bestäms av GPU-chippet, drivrutinen och renderingspipelinen. Dessa egenskaper är inte mjukvaruval som enkelt kan ändras — de är konsekvenser av hur kislet designades och tillverkades.
En enhet med en NVIDIA RTX 4070 kommer alltid att rapportera specifika maximala texturstorlekar, specifik shaderprecision och specifikt stöd för tillägg eftersom dessa värden bestäms av GPU-arkitekturen. Det enda sättet att ändra dessa värden är att använda en annan GPU eller en annan drivrutin — och drivrutinsbyten är relativt sällsynta för de flesta användare.
Canvas-rendering: bortom pixel-hashning
Modern canvas-fingerprinting går bortom enkel pixel-hashning. Vi använder ritoperationer som är specifikt utformade för att förstärka hårdvaruberoende renderingsskillnader. Textrendering med specifika typsnitt belastar typsnittsrasteriseraren. Bezierkurvor med särskilda kontrollpunkter belastar GPU:ns kurvtessellering. Gradienter med specifika färgstopp belastar färgblandningspipelinen.
Genom att välja ritoperationer som maximerar variansen mellan GPU-modeller samtidigt som variansen mellan upprepade körningar på samma GPU minimeras skapar vi canvas-tester som samtidigt är mer särskiljande och mer robusta än den enkla text-och-former-ansatsen som användes av tidiga fingerprinting-bibliotek.
WebGL-shader-fingerprinting
En nyare teknik vi använder är WebGL-shader-fingerprinting. Genom att kompilera specifika shaderprogram och fråga efter deras kompilerade egenskaper (precision, optimeringsnivå, instruktionsantal) kan vi extrahera information om GPU:ns shader-kompilator — ännu en hårdvaruberoende egenskap som varierar mellan GPU-familjer.
Denna teknik är särskilt värdefull för att särskilja enheter som har liknande grundläggande WebGL-parametrar. Två olika GPU-modeller kan stödja samma maximala texturstorlek, men deras shader-kompilatorer producerar olika kompilerad utdata för samma shader-källkod.
Integritetsöverväganden
GPU-baserad fingerprinting måste, liksom all fingerprinting, användas ansvarsfullt. Vi använder dessa signaler för legitima ändamål — bedrägeriförebyggande, bot-detektering och kontosäkerhet — inte för spårning mellan webbplatser eller annonsering. Vår molnbaserade driftsättning säkerställer att fingerprint-data stannar på våra kunders infrastruktur, vilket eliminerar delning av data med tredje part.
Integritetslandskapet kommer att fortsätta utvecklas. Webbläsare kan införa ytterligare skydd som påverkar GPU-fingerprinting. Vår strategi är att kontinuerligt anpassa oss — att hitta nya hårdvaruberoende signaler när gamla begränsas, samtidigt som vi bibehåller den precision och stabilitet som våra kunder är beroende av.