I’ve just been playing around with https://browserleaks.com/fonts . It seems no web browser provides adequate protection for this method of fingerprinting – in both brave and librewolf the tool detects rather unique fonts that I have installed on my system, such as “IBM Plex” and “UD Digi Kyokasho” – almost certainly a unique fingerprint. Tor browser does slightly better as it does not divulge these “weird” fonts. However, it still reveals that the google Noto fonts are installed, which is by far not universal – on a different machine, where no Noto fonts are installed, the tool does not report them.
For extra context: I’ve tested under Linux with native tor browser and flatpak’d Brave and Librewolf.
What can we do to protect ourselves from this method of fingerprinting? And why are all of these privacy-focused browsers vulnerable to it? Is work being done to mitigate this?
IIRC, it actually goes deeper than just reporting what fonts are installed. Even if the font names and metrics are masked by the browser, scripts can render them to a canvas and sample the resulting pixels.
This is why I don’t install any custom fonts where a web browser can use them, and part of why I keep javascript disabled by default.
Out of curiosity, how much of the internet is unusable with js disabled? As in, how often do you run into sites that are essentially non-functional without?
I haven’t taken measurements, but there are many problematic sites these days. Lots of web developers fail to see the problems that javascript imposes on users, so they build web apps even when they’re serving static content, where a regular web site (perhaps with javascript enhancements that aren’t mandatory) would do just fine.
I selectively enable first-party scripts on a handful of sites that I regularly use and mostly trust (or at least tolerate). Many others can be read without scripts using Firefox Reader View. I generally ignore the rest, and look elsewhere for whatever information I’m after.
Thank you for the information! I kind of suspected it’d be like that tbh,
Don’t bother https://noscriptfingerprint.com/
There’s also TLS-based fingerprinting which cloudflare uses to great success, no html/css/js even needed for that.
Quite a lot actually. A lot of articles / blogs / news sites are actually more usable without javascript than with, because none of the annoying popups and shit can load. I suggest having two browser profiles: one with javascript enabled by default, and one with javascript disabled. So for things like online shopping, you’d open the js profile. And for things where you expect to do a lot of reading, use the nojs profile. Ublock origin also lets you temporarily enable/disable js for a particular website pretty easily.