Canvas- en WebGL-fingerprinting in 2026
De stand van GPU-gebaseerde fingerprinting: wat er veranderde met Chrome's Privacy Sandbox, hoe we ons aanpasten en waarom hardwaresignalen de meest stabiele identifiers blijven.
Canvas
en
WebGL
-fingerprinting vormen sinds het begin van de jaren 2010 de hoekstenen van device-identificatie. Maar het landschap is aanzienlijk verschoven met Chrome's
Privacy Sandbox
-initiatieven, Firefox's Enhanced Tracking Protection en Safari's Intelligent Tracking Prevention. Dit is de stand van GPU-gebaseerde fingerprinting in 2026 — wat er veranderde, hoe we ons aanpasten en waarom deze signalen onmisbaar blijven.
Wat er veranderde met Chrome's Privacy Sandbox
Chrome's Privacy Sandbox, vanaf 2024 geleidelijk uitgerold, introduceerde verschillende wijzigingen die fingerprinting beïnvloeden. De belangrijkste is het initiatief rond gepartitioneerde opslag, dat de effectiviteit van cookie-gebaseerde tracking vermindert maar geen directe invloed heeft op canvas- of WebGL-fingerprinting.
Chrome is echter begonnen te experimenteren met canvas-ruisinjectie — het toevoegen van kleine willekeurige verstoringen aan de pixeldata van het canvas om exacte fingerprinting te voorkomen. Wanneer dit is ingeschakeld, produceren dezelfde tekeninstructies bij elke uitvoering iets afwijkende pixeloutput. Dit doorbreekt naïeve, hash-gebaseerde canvas-fingerprinting die exacte reproduceerbaarheid verwacht.
Aanpassen aan canvas-ruis
Onze reactie op canvas-ruisinjectie was om voor canvas-signalen over te schakelen van exacte matching naar similarity-gebaseerde matching. In plaats van één enkele hash van de volledige canvas-pixeldata te berekenen, extraheren we nu meerdere feature-vectoren uit verschillende regio's en tekenbewerkingen.
De ruisinjectie is doorgaans klein — een paar pixels die per frame veranderen. Door features op een grovere granulariteit te extraheren (het canvas in regio's verdelen en geaggregeerde statistieken berekenen), kunnen we de onderliggende hardwaresignatuur ondanks de ruis identificeren. Ons cross-session matching-algoritme vergelijkt deze feature-vectoren met cosinusgelijkenis, met een drempel die is afgesteld om hardware-consistente variaties te accepteren en verschillende apparaten af te wijzen.
WebGL: nog steeds een goudmijn
Terwijl canvas-fingerprinting nieuwe uitdagingen kent, blijft WebGL-fingerprinting grotendeels onaangetast door privacy-initiatieven. De WebGL-API stelt hardwareparameters bloot — maximale texturegroottes, shaderprecisie-formaten, ondersteunde extensies — die inherent zijn aan de GPU en niet eenvoudig verstoord kunnen worden zonder de WebGL-functionaliteit te breken.
Chrome heeft besproken om toegang tot de WebGL renderer- en vendor-string te beperken (specifieke GPU-namen vervangen door generieke labels zoals "GPU"), maar deze wijziging is niet breed uitgerold. Zelfs als dat wel zo was, zouden de tientallen andere WebGL-parameters die we opvragen nog steeds zeer onderscheidende identificatiesignalen leveren.
De GPU als hardware-anker
De fundamentele reden dat GPU-gebaseerde fingerprinting krachtig blijft, is dat het hardwarekenmerken uitleest die fysiek bepaald worden door de GPU-chip, de driver en de renderingpijplijn. Deze kenmerken zijn geen softwarekeuzes die eenvoudig te wijzigen zijn — ze zijn een gevolg van hoe het silicium is ontworpen en geproduceerd.
Een apparaat met een NVIDIA RTX 4070 rapporteert altijd specifieke maximale texturegroottes, specifieke shaderprecisie en specifieke extensie-ondersteuning, omdat die waarden bepaald worden door de GPU-architectuur. De enige manier om deze waarden te veranderen is een andere GPU of een andere driver gebruiken — en driverwijzigingen zijn voor de meeste gebruikers relatief zeldzaam.
Canvas-rendering: verder dan pixel-hashing
Moderne canvas-fingerprinting gaat verder dan eenvoudige pixel-hashing. We gebruiken tekenbewerkingen die specifiek zijn ontworpen om hardware-afhankelijke renderingverschillen te versterken. Tekstrendering met specifieke lettertypen belast de font-rasterizer. Beziercurves met bepaalde controlepunten belasten de curve-tessellatie van de GPU. Gradiënten met specifieke kleurstops belasten de kleurmenging-pijplijn.
Door tekenbewerkingen te kiezen die de variantie tussen GPU-modellen maximaliseren en tegelijk de variantie tussen herhaalde runs op dezelfde GPU minimaliseren, creëren we canvas-tests die tegelijkertijd onderscheidender én robuuster zijn dan de eenvoudige tekst-en-vormen-aanpak van vroege fingerprinting-bibliotheken.
WebGL-shader-fingerprinting
Een nieuwere techniek die we inzetten is WebGL-shader-fingerprinting. Door specifieke shaderprogramma's te compileren en hun gecompileerde eigenschappen op te vragen (precisie, optimalisatieniveau, instructietelling), kunnen we informatie extraheren over de shadercompiler van de GPU — nog een hardware-afhankelijk kenmerk dat varieert tussen GPU-families.
Deze techniek is bijzonder waardevol om apparaten te onderscheiden die vergelijkbare basis-WebGL-parameters hebben. Twee verschillende GPU-modellen kunnen dezelfde maximale texturegrootte ondersteunen, maar hun shadercompilers produceren verschillende gecompileerde output voor dezelfde shader-broncode.
Privacy-overwegingen
GPU-gebaseerde fingerprinting moet, net als alle fingerprinting, verantwoord worden ingezet. We gebruiken deze signalen voor legitieme doeleinden — fraudepreventie, bot detection en accountbeveiliging — niet voor cross-site tracking of advertenties. Onze cloud-gehoste implementatie zorgt ervoor dat fingerprint-data op de infrastructuur van onze klanten blijft, waardoor het delen van data met derden wordt uitgesloten.
Het privacylandschap zal zich blijven ontwikkelen. Browsers kunnen aanvullende beschermingen introduceren die GPU-fingerprinting beïnvloeden. Onze strategie is om ons voortdurend aan te passen — nieuwe hardware-afhankelijke signalen vinden naarmate oude worden beperkt, terwijl we de nauwkeurigheid en stabiliteit behouden waarop onze klanten vertrouwen.