De wiskunde achter device matching over sessies heen
De wiskundige fundamenten van het matchen van apparaten ondanks veranderende signalen — hoe AI-gestuurde analyse terugkerende bezoekers herkent, zelfs bij signaaldrift.
Device fingerprinting kent een fundamentele uitdaging: signalen veranderen. Browsers worden bijgewerkt, gebruikers passen instellingen aan, fonts worden geïnstalleerd en verwijderd. Een strikte vergelijking zou elk gewijzigd signaal als een nieuw apparaat behandelen, wat de identificatienauwkeurigheid tenietdoet. Ons matchingsysteem over sessies heen lost dit op met AI-gestuurde technieken die gelijkenis kwantificeren in plaats van exacte gelijkheid te eisen.
Het probleem: signaaldrift
Stel je een apparaat voor dat gisteren een fingerprint kreeg en vandaag terugkeert na een browserupdate. De user-agentstring is veranderd. Twee nieuwe CSS-features worden nu ondersteund. Er is een WebGL-extensie toegevoegd. De canvas-rendering blijft identiek (dezelfde GPU, dezelfde driver). De audio-fingerprint is identiek. De WebGL-parameters zijn identiek, op de nieuwe extensie na.
Bij exacte matching zou dit apparaat niet herkend worden — de gecombineerde fingerprint is veranderd. Maar intuïtief weten we dat dit hetzelfde apparaat is. De hardwaresignalen zijn identiek en de softwarewijzigingen passen bij een browserupdate. Ons matchingsysteem over sessies heen formaliseert deze intuïtie.
Op verzamelingen gebaseerde vergelijking voor feature-signalen
Veel browsersignalen worden van nature als verzamelingen weergegeven: de set ondersteunde CSS-features, de set beschikbare fonts, de set WebGL-extensies. Voor deze signalen meten we de overlap met op verzamelingen gebaseerde gelijkenismaten. Voor twee verzamelingen A en B berekenen we de verhouding tussen gedeelde elementen en het totaal aantal elementen.
Een apparaat met gisteren 45 CSS-features en vandaag 47 (waarvan 44 gemeenschappelijk) heeft een hoge gelijkenisscore. Dit volstaat om hetzelfde apparaat met een browserupdate aan te duiden. Een volledig ander apparaat zou er misschien slechts 30 CSS-features mee delen, wat een veel lagere gelijkenisscore geeft. De drempel tussen "hetzelfde apparaat" en "een ander apparaat" wordt geleerd uit gelabelde data.
Efficiënte kandidaatgeneratie
Het berekenen van de gelijkenis tussen elk paar apparaten zou op schaal onbetaalbaar duur zijn. Ons systeem voor kandidaatgeneratie gebruikt geavanceerde indexeringstechnieken die vergelijkbare items met hoge waarschijnlijkheid op dezelfde lookup-bucket afbeelden, waardoor we mogelijke matches in constante tijd vinden.
Deze aanpak elimineert 99,9% van de vergelijkingen in de fase van kandidaatgeneratie, waardoor het systeem efficiënt blijft, zelfs bij miljarden device-profielen.
AI-gestuurde analyse voor complexe signalen
Sommige signalen laten zich niet netjes ontleden in verzamelingen. Canvas-fingerprints, output van audioverwerking en WebGL-parametervectoren zijn complexe data waarop een eenvoudige verzamelingvergelijking niet van toepassing is. Voor deze signalen gebruiken we AI-gestuurde analyse die device-profielen afbeeldt in een representatie waarin vergelijkbare apparaten dicht bij elkaar liggen.
Het AI-model legt niet voor de hand liggende verbanden tussen signalen vast. Zo leert het dat een wijziging in de WebGL-rendererstring van het ene GPU-model naar een licht opgewaardeerde versie van hetzelfde model een GPU-upgrade op dezelfde machine voorstelt, terwijl een wijziging naar een volledig andere GPU-fabrikant een geheel ander apparaat vertegenwoordigt.
De technieken combineren
Ons productiesysteem gebruikt meerdere technieken in een cascade. Eerst identificeert efficiënte kandidaatgeneratie mogelijke matches. Ten tweede levert op verzamelingen gebaseerde vergelijking een nauwkeurige maat voor de overlap van feature-gebaseerde signalen. Ten derde scoort AI-gestuurde analyse de gelijkenis van hardware-afhankelijke signalen. De uiteindelijke betrouwbaarheidsscore is een gewogen combinatie van alle methoden, met gewichten afgestemd op gelabelde data.
Deze cascade-architectuur is zowel nauwkeurig als efficiënt. De totale matchingtijd voor een terugkerende bezoeker is gemiddeld minder dan 5 ms.