← Terug naar de blog

Wat is een browserfingerprint? Los onopvallend, samen herkenbaar

Sites herkennen je vaak zonder dat je inlogt en zonder dat er iets op je computer wordt gezet. Elke keer dat een browser een pagina opent, geeft hij uit zichzelf een reeks gegevens prijs.

Bij elkaar is die informatie stabiel genoeg om het wissen van je browsergeschiedenis te overleven. Een onbekende site ziet nog steeds dat het hetzelfde apparaat is. Dat is een browserfingerprint.

MostMate is een fingerprintbrowser voor het beheren van meerdere accounts. Hij pakt de andere kant van hetzelfde probleem aan: op één computer krijgt elk account een eigen, in zichzelf kloppende browseridentiteit.

Hieronder volgen vier vragen. Waaruit een fingerprint is opgebouwd, via welke ingangen sites hem binnenhalen, of scripts uitschakelen helpt, en hoe je het zelf test.

Los niets bijzonders, samen word je herkend

Elk gegeven op zich is zo gewoon dat je er niemand mee kunt identificeren. Een scherm van 1366×768 kom je overal tegen, Chrome user-agent strings liggen voor het oprapen, en in dezelfde tijdzone wonen honderden miljoenen mensen.

Wat echt werkt, is de doorsnede. Schermgrootte is één filter, het besturingssysteem een tweede, het videokaartmodel een derde, en de lettertypenlijst, tijdzone en taalvoorkeuren tellen elk als nog een laag. Elke laag die je erbij legt, laat minder mensen over. Na zeven of acht lagen blijft er vaak maar één over.

De EFF deed in 2010 een openbaar experiment en verzamelde ongeveer 470.000 browsergegevens. Daarvan was 83,6% onder deze set filters al uniek.

De onderzoekers rekenden het resultaat om naar informatiewaarde: gemiddeld droeg elke browser minstens 18,1 bit onderscheidend vermogen. Kies er willekeurig één uit en ongeveer één op de 280.000 zou ermee botsen. De volledige conclusies staan in het openbare rapport van de EFF. Die cijfers worden sindsdien vaak geciteerd, en net zo vaak verkeerd gelezen.

Dat getal lees je makkelijk als dat iedereen naakt rondloopt. Je kunt het beter zien als een waarschuwing: de kracht van een fingerprint komt niet van hoe zeldzaam één enkel gegeven is, maar van hoeveel gegevens tegelijk overeenkomen. Een uitzonderlijk zeldzame waarde laat een apparaat statistisch juist opvallen.

Nog belangrijker dan het aantal gegevens is de stabiliteit. Een fingerprint is bruikbaar omdat hij morgen en volgende maand nog op dezelfde plek staat. Een browser die bij elke start een nieuwe set parameters meestuurt, geeft elke dag vrijwillig een nieuwe set onderscheidende aanknopingspunten weg.

Drie studies, drie cijfers, en het verschil zit in de steekproef

Eén cijfer onthouden leidt tot de verkeerde conclusie. Vergelijkbaar onderzoek is vaker gedaan, en onder andere omstandigheden lopen de uitkomsten sterk uiteen.

OnderzoekSteekproefgrootteAandeel unieke fingerprintsWaar de steekproef vandaan komt
EFF, 2010circa 470.000 gegevens83,6%bezoekers die zelf een test kwamen doen
INRIA, 2016circa 119.000 gegevens89,4%bezoekers die zelf een test kwamen doen
Franse sites, 2018circa 2,07 miljoen gegevens33,6%gewone bezoekers van nieuwssites

De eerste twee rijen komen van sites die speciaal tests aanbieden. Wie zo'n test vrijwillig doet, hecht al meer waarde aan privacy, en apparaten en configuraties zijn er uniformer dan bij de gemiddelde internetter.

De derde rij speelt zich in een andere omgeving af. Het verzamelscript hing op Franse nieuwssites in de top vijftien qua verkeer en ving de gewone bezoekers van twee pagina's op: weer en politiek. Er werden dezelfde ruim tien kenmerken gebruikt.

Zelfde kenmerken, andere groep: uniciteit zakt van 90% naar een derde.

Uniciteit is dus geen vaste eigenschap van een apparaat. Het hangt ervan af of drie dingen tegelijk opgaan: hoeveel gegevens er worden verzameld, bij wie, en met welke methode. In 2021 breidden onderzoekers de set kenmerken uit van ruim tien naar meer dan tweehonderd en maten opnieuw. Het aandeel unieke fingerprints kwam weer uit op 81%. Meer gegevens betekent meer opsplitsing.

Uit dat onderzoek op de Franse sites kwam nog een praktischer bevinding. Niet-unieke fingerprints werden als breekbaar beschreven.

Een machine die eerst met tienduizenden anderen overlapte, kan door één kleine configuratiewijziging in de unieke categorie vallen. Een browserupdate, één extra extensie, één keer de resolutie aanpassen: het telt allemaal. Ik kom overeen met iemand anders is geen bewijs van veiligheid, alleen een teken dat je nog niet bent afgescheiden.

Een fingerprint heeft drie ingangen, waarvan één scripts nodig heeft

De vraag wat een site nu echt kan zien vraagt om drie lagen. Van die drie is alleen de onderste afhankelijk van scripts; de andere twee zijn al klaar voordat er een script draait. Ook de site zelf legt de omgevingsscheiding uit langs dezelfde drie lagen: apparaat, browser en netwerk.

Verbindingslaag: het adres is genoteerd voordat het verzoek de deur uit is

Voordat een pagina opent, moet de browser eerst met de server onderhandelen en daarna het verzoek versturen. In dat proces heeft de server je uitgaande adres al binnen, plus een set onderhandelde parameters.

Die parameters gaan over de versleutelingsmethoden die beide kanten steunen, de extensies en de volgorde van voorkeuren. Wat er gemeld wordt en in welke volgorde, bepalen de browserversie en de runtime-omgeving. Die waarden gaan niet over de pagina-inhoud en vragen geen toestemming van jou; het zijn bijproducten van de communicatie zelf.

Het adres plus deze set parameters is al genoeg voor een grove filter. Van welke provider de lijn is en welke versie en welke browser er tegenover zitten, is meestal wel ongeveer te zien.

Requestheader-laag: de browser meldt elke keer een paar dingen

Requestheaders zijn de aantekeningen die de browser aan een verzoek hangt. Een paar staan er bijna altijd bij: welke talen hij accepteert, welke compressiemethoden hij steunt, zijn eigen identificatiestring en vanaf welke pagina je kwam.

De taalwaarde wordt bepaald door systeem en browser en is fijnmaziger dan de meeste mensen denken. Chinees wordt bijvoorbeeld nog opgesplitst naar schrift en regio. Hun kenmerk is dat ze stil, stabiel en altijd aanwezig zijn: ze veranderen niet met de site die je bezoekt en niet als je je geschiedenis wist.

Paginalaag: scripts lezen meer dan je denkt

Nadat de pagina is geladen, kunnen scripts verder vragen. Scherm- en venstergrootte, tijdzoneverschil, aantal CPU-kernen en geheugenklasse liggen allemaal binnen bereik. Deze interfaces zijn openbaar in de browser, en de interfacedocumentatie van de browser zet ze volledig op een rij, zodat elke site ze direct kan aanroepen.

Vraag wat een browserfingerprint is en de meeste mensen denken eerst aan canvas en lettertypen. Die twee worden inderdaad het vaakst genoemd, niet omdat ze exotisch zijn, maar omdat ze het moeilijkst te wijzigen zijn.

Canvas en lettertypen: de twee meest genoemde

De canvas-methode is simpel. De pagina tekent op een plek die jij niet ziet een vorm of een regel tekst en leest het resultaat daarna pixel voor pixel terug.

Dezelfde opdrachten leveren op verschillende videokaarten, stuurprogramma's en systemen net niet dezelfde pixels op. De verschillen zijn te klein voor het oog, maar stabiel genoeg. Je wisselt je achtergrond of je zoomniveau en ze staan nog steeds op dezelfde plek.

De lettertypenlijst neemt een andere route. De pagina vraagt niet welke lettertypen je hebt geïnstalleerd, maar probeert de namen van een reeks gangbare lettertypen één voor één uit. Ze rendert een regel tekst op een bepaalde grootte, en als de gemeten breedte niet klopt met de verwachting, staat dat lettertype niet op je machine. Hoe meer namen er worden geprobeerd, hoe langer het verslag.

Lettertypen die bij het installeren van ontwerpsoftware meekwamen, tellen hier allemaal mee. Daarom zegt een lettertypefingerprint vaak meer dan schermgrootte: hij legt vast welke software je hebt geïnstalleerd en waar je deze machine voor gebruikt.

Renderingverschillen: de categorie in de pixels

Canvas is maar één uitgang voor renderingverschillen. De audioprocessing, grafische interfaces en videocodecs laten elk kleine, aan de hardware gebonden afwijkingen achter, en op één machine grijpen ze in elkaar op een manier die op een andere moeilijk te reproduceren is.

Deze categorie heeft één ding gemeen: ze wordt bepaald door hardware en stuurprogramma's en is niet te wijzigen. Browserinstellingen aanpassen, cache legen, van lijn wisselen: niets ervan raakt ze.

Nog opvallender dan het aantal is de stabiliteit. Deze waarden zijn stabiel genoeg om langdurig als apparaatkenmerk te dienen, en juist omdat ze stabiel zijn, lost het meestal niets op om één of twee parameters zeldzamer te maken.

Netwerk, requestheaders en paginascripts komen samen in één apparaatkenmerk

Is het opgelost als je JavaScript uitzet?

Zet je de scripts uit, dan is de derde ingang inderdaad dicht. De pagina kan de lettertypenlijst niet lezen en geen renderingresultaten ophalen.

Maar de eerste twee lagen blijven. De requestheaders ontbreken niet, het uitgaande adres wordt nog steeds genoteerd, en de onderhandelde parameters van de verbindingslaag staan er ook nog. Scripts uitzetten haalt één laag weg, niet alle lagen.

In dat experiment uit 2010 werden browsers met uitgeschakelde scripts apart gezet als relatief moeilijk te fingerprinten. Destijds werkte die zet echt.

Maar relatief moeilijk en verborgen zijn twee verschillende dingen. Iedereen om je heen heeft scripts aan, en jij hoort toevallig bij de kleine minderheid die ze uit heeft: dat feit alleen is al een kenmerk. Een zeldzame toestand laat je niet verdwijnen, maar maakt je makkelijker eruit te pikken.

Het echte probleem zit ergens anders. De overlast van een fingerprint komt vooral doordat een groep identiteiten aan elkaar wordt gekoppeld, niet doordat één parameter goed genoeg verborgen is. Dat verklaart ook waarom parameters bonter en zeldzamer maken meestal niet helpt.

Een andere browser op dezelfde computer: wat verandert er mee en wat niet

Veel mensen denken dat een paar geïnstalleerde browsers ook een paar identiteiten betekent. In de praktijk verandert er minder dan verwacht. Op basis van wat er gebeurt na een browserwissel vallen deze gegevens in twee groepen uiteen.

  • Wat meeverandert: de user-agent string, de renderingresultaten van de grafische en canvas-interface, de extensielijst, lokale opslag en inlogstatus.
  • Wat niet meeverandert: model van videokaart en stuurprogramma, fysieke schermparameters, aantal CPU-kernen, geheugenklasse, systeemtijdzone, lettertypen op systeemniveau.

De eerste groep brengt de browser zelf mee; opnieuw installeren, updaten of een extensie toevoegen herschikt ze. De tweede groep komt van hardware en systeem en blijft hetzelfde, hoeveel browsers je ook installeert. Zij vormen de draad die meerdere verschillend uitziende machines met elkaar verbindt.

Drie browsers op één computer lijken een site eerder drie manieren om hetzelfde apparaat te gebruiken. Niet drie apparaten.

Zelftest in drie stappen: hoe je dit gebruikt bij het beheren van meerdere accounts

Openbare test sites werken zonder registratie. In plaats van een conclusie te geloven, kun je beter kijken wat je eigen machine echt meldt. In de praktijk van meerdere accounts is de volgorde eerst belangrijker dan de metingen; de weg van nul naar je eerste profiel zet proxy's, formulieren en checklists op een rij.

De testvolgorde kun je zo opzetten:

  1. Kijk eerst uit welke gegevens de uniciteit komt. Na de run kijk je niet naar de totaalscore, maar naar de meest unieke gegevens die worden gemarkeerd; dat zijn meestal de delen die het moeilijkst te wijzigen zijn.
  2. Test daarna twee browsers op dezelfde machine elk één keer en omcirkel de gegevens die in beide runs gelijk zijn. Die overlap hoort bij de laag van hardware en systeem en raak je met een browserwissel niet kwijt.
  3. Herhaal de test ten slotte met scripts uitgeschakeld en kijk welke waarden nog leesbaar zijn. Wat overblijft, is het deel dat je zonder scripts ook krijgt.

Na alle drie de stappen kom je meestal op dezelfde conclusie uit. Er zijn maar weinig echt moeilijk te wijzigen gegevens, maar juist die houden je identiteit stabiel.

Een operator controleert accountidentiteiten in het multi-profielendashboard

Volg je die conclusie, dan is de aanpak voor meerdere accounts niet moeilijk af te leiden. Nodig is dat de omgeving van elk account binnen zijn eigen set consistent blijft; de parameters hoeven niet exotischer te worden.

MostMate legt dit bij het aanmaken van een profiel. Taal, interfacetaal, tijdzone en locatie volgen standaard de uitgang. Hardwaregegevens zoals scherm, aantal kernen en geheugen kennen alleen twee standen, echt en willekeurig; wil je van de standaard afwijken, dan moet je dat één keer handmatig kiezen. Deze waarden en de vergelijking met alles handmatig instellen staan op de site naast elkaar.

Fingerprintinstellingen in de MostMate fingerprintbrowser

Waarom die keuzes zo zijn gemaakt, staat uitgebreider in wat elk van de vier ontwerpprincipes tegenhoudt. Welk principe bij welk type fout hoort en welk je bij een conflict het eerst moet beschermen, staat daar allemaal in.

Wil je liever meteen beginnen, dan kun je MostMate downloaden en na installatie de drie stappen hierboven op je eigen omgeving herhalen.

Om eerst te zien hoe MostMate deze waarden in één omgevingsbeheer bundelt, kun je beginnen bij de productbeschrijving.

Veelgestelde vragen

Verandert mijn fingerprint als ik cookies wis of incognito gebruik?

Nee. Cookies en lokale opslag zijn briefjes die de browser voor de site achterlaat; wis je ze, dan zijn ze weg. Een fingerprint is anders: hij wordt live uit het apparaat en de browser gelezen en staat niet op je machine. Incognito beperkt wat er lokaal achterblijft en verandert niet wat de browser naar buiten meldt.

Ben ik met een ander IP automatisch een andere identiteit?

Je hebt alleen de netwerklaag vervangen. Taalvoorkeur, lettertypen, videokaart en systeemtijdzone veranderen niet mee met een IP. En als de regio van de nieuwe lijn niet past bij je tijdzone en taal, bouw je juist een combinatie die niet klopt.

Helpt een anti-fingerprintingextensie?

De gangbare aanpak is om sommige gegevens ruis te geven of ze gelijk te trekken naar één populaire waarde. Gelijk trekken laat je inderdaad opgaan in de massa, tegen de prijs dat iedereen in die groep dezelfde kenmerken deelt. Ruis kan er juist voor zorgen dat dezelfde omgeving in twee runs verschillende waarden meldt, en dat is op zichzelf al een anomalie. Geen van beide aanpakken raakt de laag van hardware en systeem.

Vergelijken sites echt fingerprints?

Bij fraudepreventie en risicobeheer is het standaard, vooral bij inloggen, registreren en betalen. De meeste sites behandelen het wel als één signaal naast andere en lezen het samen met accountgedrag en apparaathistorie; op één gegeven alleen wordt zelden beslist.

Hebben twee exact hetzelfde model computers dezelfde fingerprint?

Niet precies dezelfde. Machines van hetzelfde model lopen snel uiteen in systeemversie, lettertypen, stuurprogramma's, tijdzone, taal en geïnstalleerde extensies, en al die verschillen belanden in de fingerprint. Gekloonde machines uit massaproductie komen het dichtst bij elkaar, maar dat is maar een klein deel van de praktijk.

Ben ik met een fingerprintbrowser niet meer te vinden?

Nee. Een fingerprintbrowser werkt op de grenzen tussen omgevingen en geeft elk account een zelfstandige, in zichzelf kloppende browseridentiteit. Hoe een platform accounteigendom bepaalt, verandert hij niet, en een resultaat belooft hij niet. Nog één onderscheid is belangrijk: fingerprintconsistentie is een manier van zelfcontroleren, niet een detectieregel van het platform. Wie die twee door elkaar haalt, verwacht te veel van de tool.

MOSTMATE

Veilig meerdere accounts beheren, heel eenvoudig

Begin met je eerste account en bouw met MostMate aan veiligere, slimmere en efficiëntere multiaccountactiviteiten.

  • Onafhankelijke profielen. Consistente identiteiten.
  • AI-automatisering · Accountgezondheid · Teamwerk
MostMate downloaden