Elke stap die je online zet, laat sporen na, omdat je webbrowser een unieke vingerafdruk heeft. Om dit online fingerprinting tegen te gaan, kun je meerdere webbrowsers gebruiken. Maar ook dan ben je nog te traceren...

Door: Koen Vervloesem

PCA299 denkwerk 1

Je webbrowser heeft allerlei instellingen en eigenschappen die op te vragen zijn door een website die je bezoekt. Omdat er heel veel combinaties van die eigenschappen bestaan en veel mensen een andere combinatie hebben, is het goed mogelijk dat jouw combinatie uniek is en dat je op die manier te identificeren bent. Zo'n combinatie van eigenschappen noemen we een online fingerprint, je digitale vingerafdruk als het ware.


Panopticlick

Als je een idee wilt hebben hoe dat gebeurt, bezoek dan eens de website Panopticlick [1] van de Electronic Frontier Foundation, een Amerikaanse stichting die zich bezighoudt met burgerrechten op internet. Na een analyse toont de website je welke browsereigenschappen ze analyseert, hoeveel bits informatie die eigenschappen in jouw geval opleveren (zie kader "Hoeveel bits informatie?") en wat de specifieke waarde van die eigenschap bij jou is.

Om welke eigenschappen gaat het zoal? Bijvoorbeeld de user agent string die je webbrowser identificeert (zoals "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:58.0) Gecko/20100101 Firefox/58.0"), je schermresolutie en kleurdiepte, de tijdzone van je systeem, de geïnstalleerde browserextensies en plug-ins en hun versies, de geïnstalleerde lettertypes, je systeemplatform (64-bit Windows, 32-bit Linux, ...) en je systeemtaal (zoals "nl-NL").

fingerprinting panopticlick 2Elk van die eigenschappen op zich is niet voldoende om je te identificeren. Er zijn immers wel meer mensen met hetzelfde besturingssysteem, dezelfde browserversie of dezelfde schermresolutie. Maar als je die allemaal combineert, is de kans kleiner dat iemand exact dezelfde combinatie van browsereigenschappen heeft. En zo is het goed mogelijk dat een website je kan identificeren, zelfs zonder gebruik van tracking cookies. En als die website onderdeel van een trackingnetwerk uitmaakt, is dat in staat om je over allerlei websites heen te volgen en zo een heel precies dossier aan te leggen van de websites die je bezoekt, zelfs als je tracking cookies uitschakelt.




Met Panopticlick van de Electronic Frontier Foundation kijk je na
of je webbrowser een unieke vingerafdruk heeft

Bescherm jezelf

Hoe bescherm je je tegen online fingerprinting? Dat is eigenlijk heel moeilijk. Bovendien zijn de echt effectieve manieren niet erg gebruiksvriendelijk. De beste manier om je te beschermen is met de Tor-browser [2] te surfen. Deze op Firefox gebaseerde webbrowser, die van het anonimiserende netwerk Tor [3] gebruikmaakt, neemt allerlei maatregelen tegen fingerprinting. Met Tor surfen is wel traag.

Ook zonder de Tor-browser kun je al heel wat bereiken, door eenvoudigweg JavaScript uit te schakelen. Daardoor kunnen websites allerlei eigenschappen van je webbrowser niet meer detecteren. Maar veel moderne websites werken niet meer zonder JavaScript. Een browserextensie zoals NoScript [4] laat je toe om selectief JavaScript in en uit te schakelen voor specifieke websites.

Je kunt ook gewoon proberen om het aantal bits informatie dat je webbrowser lekt te verminderen door met een veel voorkomende webbrowser te surfen. Maar zelfs als je de laatste versie van Chrome op Windows 10 gebruikt, lek je nog allerlei informatie met de geïnstalleerde plug-ins en lettertypes. Maar je zult in ieder geval meer in de massa opgaan dan wanneer je een exotische combinatie zoals w3m op DragonFly BSD gebruikt...

Hoeveel bits informatie?

Panopticlick toont je hoeveel bits informatie je browsereigenschappen lekken. Maar wat betekent dit? Daarvoor moeten we een korte achtergrond in informatietheorie geven. Stel dat we het geslacht van een persoon willen voorstellen. Daarvoor zijn er twee mogelijkheden: mannelijk of vrouwelijk. Dit stellen we in een computer voor door 0 (mannelijk) of 1 (vrouwelijk), dus in 1 bit. Daarom zeggen we dat we 1 bit informatie hebben als we het geslacht van een persoon kennen. Een eigenschap die vier mogelijkheden heeft, geeft je 2 bits informatie als je de waarde weet. Elke bit informatie die we toevoegen komt overeen met een verdubbeling van mogelijkheden, oftewel een eigenschap met 2n mogelijkheden bevat n bits informatie.

Hardwarespecifieke informatie

Omdat online fingerprinting volledig tegengaan zo moeilijk is, werd in het verleden aangeraden om meerdere webbrowsers te gebruiken als je niet wilde dat verschillende aspecten van je leven aan elkaar gelinkt kunnen worden. Lange tijd leek dat inderdaad een goede oplossing, maar vorig jaar ontdekten onderzoekers technieken om gebruikers niet alleen aan de hand van hun webbrowser te traceren, maar ook via verschillende webbrowsers op dezelfde machine. Ze doen dat door de webbrowser taken op te dragen die afhangen van functionaliteit in de hardware en het besturingssysteem. De resultaten zijn te vinden op de website Unique Machine [5].

De schermresolutie is zo'n machinespecifieke eigenschap die onafhankelijk van de webbrowser is. De onderzoekers zijn er ook in geslaagd audio te verwerken in de webbrowser en die te analyseren, zodat er specifieke eigenschappen van de audiohardware in je pc naar boven komen. Ook het aantal logische processorkernen is hardwarespecifiek. Moderne webbrowsers laten toe dat aantal op te vragen met navigator.hardwareConcurrency, maar zelfs op oudere webbrowsers kom je met een side-channel attack het aantal eenvoudig te weten. Voer een aantal Web Workers-taken (een Web Worker is een manier om JavaScript-code op de achtergrond uit te voeren) uit en monitor hoe lang het duurt om ze uit te voeren. Verhoog het aantal Web Workers telkens met 1 en doe de test opnieuw. Zodra de benodigde tijd sterk verhoogt, heb je de limieten van je hardware ontdekt.

De onderzoekers hebben ook een boel nieuwe technieken ontwikkeld die via WebGL in de webbrowser eigenschappen van je gpu kunnen detecteren. Daarvoor starten ze een aantal vastgelegde renderingtaken, die op elke computer een net iets (voor mensen doorgaans onmerkbaar) ander resultaat geven door verschillen in de hardware (gpu). Sommige resultaten verschillen op twee verschillende computers zelfs maar één pixel! Op deze manier test de codetexturen, anti-aliasing, lijnen en krommen, meerdere objecten, belichting en doorzichtigheid.

fingerprinting rendering

 

Allerlei renderingtaken worden op elke gpu net iets anders uitgevoerd

Verberg je hardware

Hoe verdedig je je nu tegen die cross-browser fingerprintingtechnieken? De Tor-browser doet dat door allerlei eigenschappen te normaliseren, die niet alleen browser fingerprinting, maar ook cross-browser fingerprinting tegengaan. Zo start Tor zijn venster met een standaard grootte op en waarschuwt de webbrowser je als je die grootte verandert, bijvoorbeeld door het venster te maximaliseren, waarbij je je schermresolutie verklapt. De Tor-browser schakelt ook standaard WebGL uit, waardoor allerlei gpu-specifieke eigenschappen niet te traceren zijn.

De onderzoekers stellen nog een andere manier voor om je tegen hun technieken te beschermen: virtualisatie. Als iedereen zijn webbrowser in hetzelfde type virtuele machine draait, worden alle hardware-eigenschappen genormaliseerd en levert fingerprinting bij iedereen dezelfde resultaten op, waardoor je de machines niet meer van elkaar kunt onderscheiden. Dat is natuurlijk een wat extreme aanpak, want het vertraagt je webbrowser, maar in principe is het mogelijk.

Privacy Badger

Naast Panopticlick dat vooral dient als bewustwording, heeft de Electronic Frontier Foundation nog een ander interessant project: Privacy Badger [6]. Dit is een browserextensie die advertenties blokkeert die je op meerdere websites tracken. In tegenstelling tot extensies zoals Adblock Plus en Ghostery hoef je Privacy Badger niet te configureren: de extensie volgt de websites die je bezoekt en leert hieruit automatisch. Zodra het ontdekt dat dezelfde bron je lijkt te tracken op verschillende websites, blokkeert de extensie die bron, en dus ook de bijbehorende advertenties. Klik je op het icoontje van de das dat zich in je browser nestelt, dan krijg je alle trackers op de huidige webpagina te zien en schakel je ze eenvoudig individueel in of uit.

Willekeurige ruis

Een andere interessante aanpak is PriVaricator [7]. Die is origineel ontwikkeld tegen browser fingerprinting, maar beschermt ook tegen heel wat cross-browser fingerprinting-technieken. Het idee erachter is even eenvoudig als briljant: verander alle eigenschappen die voor een fingerprint bruikbaar zijn een tikkeltje door er random noise aan toe te voegen.

Op het eerste gezicht ben je er dan nog minder goed aan toe, want door de willekeurige ruis heeft iedereen die deze techniek gebruikt een unieke vingerafdruk. Tot je beseft dat het niet het uniek-zijn is dat een probleem is, maar het gelijk blijven van die vingerafdruk over verschillende browsersessies, waardoor die allemaal aan dezelfde persoon/computer te linken zijn.

Door nu bij elke browsersessie telkens andere willekeurige ruis aan de eigenschappen toe te voegen, lijkt het voor de website alsof je bij elke sessie een andere persoon/computer bent. Op die manier is het niet meer mogelijk om een uitgebreid surfprofiel van je aan te leggen.

Infolinks 

[1] https://panopticlick.eff.org

[2] https://www.torproject.org/projects/torbrowser.html.en

[3] https://www.torproject.org/

[4] https://noscript.net/

[5] http://uniquemachine.org/

[6] https://www.eff.org/privacybadger

[7] https://www.securitee.org/files/privaricator_www2015.pdf

Online fingerprinting is niet altijd slecht

Online fingerprinting is niet altijd een slechte techniek. Het is ook nuttig als element in een tweefactor-authenticatiesysteem. Zo kan de website van je bank via online fingerprinting ontdekken dat je via een andere computer dan normaal wilt inloggen in je account. Op dat moment beslist de website dan mogelijk om met een extra factor te controleren of jij het bent, bijvoorbeeld door je op te bellen en je een beveiligingsvraag te stellen die je eerder hebt ingesteld ("Wat is de naam van je eerste huisdier?").