Fingerprinting: The Hidden Trap on the Modern Web

Nowadays online privacy is almost dead. Even in the comfort and dopamine loop we get from social media and the web, we also started to forget about the importance of privacy on the web. A single website owner to big corporations, including governments, has most of our browsing data, more than they need to protect us. Our every move is cleverly traced and kept for years without any security at all.

One of the most effective methods used to identify a person and the device he uses is fingerprinting. "Fingerprinting" isn't just a word that indicates something, but it is the pipe they use to transmit or extract all our data (the device we use, operating system, installed fonts, etc.) via every single website we use. For monetization and earning, every single website owner injects tracking code into their websites without even knowing the full story.

What is fingerprinting?

It is a method used to identify a particular browser, extension, hardware, or user by collecting and combining various data like

and much more data.

They collect it and combine it to identify users at different browsing sessions or even for cross-browser tracking.

Is this much data directly provided to every website we visit by default?

Yes, of course. All this data is automatically collected and stored on the server when we visit websites with our most used browsers (Chrome, Edge, Firefox, etc.). It’s not cookies; it’s creepier and permanent compared to it.

But some other privacy-focused browsers (Mullvad, LibreWolf, Tor Browser, Brave Origin, etc.) prevent most of this data from getting leaked to websites we visit. Or they just spoof the values with a fake one, so the collected data becomes useless.

JavaScript: The Real Danger

JavaScript is a scripting language we use to write scripts. It provides added functionality to browsers and websites. What else can a normal scripting language do other than build some scripts. Right?

Not at all. JavaScript is the tool all these websites use to harvest this much information from our devices. JavaScript is very useful, and at the same time it exposes a lot more than we can imagine about our browser and device.

JavaScript depends on web APIs to run invisible background tasks for getting system details. This includes hardware info, RAM, screen size, timezone, etc.

Types of fingerprinting using JavaScript.

Imagine JavaScript is giving a tiny task to your computer. By analysing the way user's system process the task, JavaScript measures specific hardware on the system that is used to complete the task.

Look at some fingerprinting methods effectively usable and continuously used with the help of JavaScript.

1. Canvas fingerprinting (2D Graphics)

Canvas is an HTML5 element used to draw 2D graphics and text directly on a webpage.

How does fingerprinting work?

Anti-aliasing is a method used to smooth out the edges.

2. WebGL fingerprinting (3D Graphics)

WebGL is a browser API that allows sites to render 3D graphics.

How does fingerprinting work?

3. WebGPU fingerprinting

WebGPU is an improved version of WebGL.

It does exactly what WebGPU does but with more added capabilities like low CPU overhead, multi-threading, etc.

How does fingerprinting work?

4. Audio fingerprinting

The web audio API allows browsers to generate, process, and play audio directly in the browser.

How does fingerprinting work?

5. Font fingerprinting

A technique used to detect all installed fonts on the system.

How does fingerprinting work?

6. Other common fingerprinting methods

JavaScript uses every possible way to collect much data from the website other than graphics and audio.

6.1 Hardware specs

Collects the CPU's exact core count and system RAM

6.2 display parameters

Collects screen width, height, available workspaces, color depth, pixel density, etc.

6.3 TLS/Network handshake

Collects the order and types of encryption cipher the connected HTTPS network support

This is completely doable without Javascript too.

6.4 Time zone

Collects system preferences regarding language, timezone, keyboard layouts, etc.

From Fingerprints to Individual Data Profiles

All this fingerprinting is done using a single scripting language, JavaScript, by a single website.

With all these collected metrics, the site now knows almost everything about the visitor's device and browser he used. So it combines all the collected information into a single profile to create a detailed, unique identity about the user. Then whenever this user revisits, maybe from a different browser or using a VPN, the browser scans all data profiles it has and tries to match currently detected information to existing profile data to identify the user uniquely. This is called "fingerprinting."

The interesting fact about fingerprints is that they can't be deleted or tweaked by the user like clearing a cookie. Also, even a VPN can't protect from fingerprinting.

Why prevent fingerprinting?

They are building unique profiles about you, and they never expire. These are shared across many business partners, and there is nothing to wonder about when you see an ad while browsing about what you just talked about. Also, this data is used in more disturbing ways than someone can imagine. They know in the modern day, data is the valuable thing even though you really don't know how valuable online privacy is.

What are the solutions?

Please avoid MV3 browsers, as the techniques/extensions I explain below have very little effect on these browsers.

Ublock Origin

No Script.

It is very inconvenient to use when it comes to normies. But it's the user's problem and has nothing to do with this extension.

Privacy-hardened browsers.

Recommended Browsers

Suggesting Brave Browser is controversial in privacy communities due to its shady practices in the past, but at the same time, it prevents fingerprinting effectively out of the box.

What makes fingerprinting more accurate?

Browsers you must avoid

When it comes to vanilla Firefox, it out of the box provides no protection against fingerprinting at all. But it can be tweaked for effective fingerprint resistance.

There are various user.js files available to harden Firefox.

  1. Betterfox
  2. Phoenix
  3. Arkenfox

How to test your fingerprint detection score?

These are various free tools online to check how much the browser you use exposes about you.

Cover Your Tracks

Am I Unique

CreepJS


Hope you find this article useful.

Thank you for reading.