Fluxfonts is a unique tool that cloaks your device’s unique font fingerprint by continuously installing and uninstalling new fonts that are generated on the fly. Version 2.0, released some days ago, is the first release of Fluxfonts that lets you protect your Windows 10 devices.
I started the Fluxfonts project in 2013 when web browsers, and especially the Adobe Flash Player plugin, could leak information about the fonts installed on your system. Browsers have since made it more difficult to detect installed fonts; primarily by removing support for the Adobe Flash Player plugin.
However, device fingerprinting using fonts are still achievable using CSS introspection. A site applies different fonts to an element and measures if it changes size on the page. The method is difficult to block without breaking core web technologies.
Additionally, any programs you install that run on your local computer also have unfettered access to the list of installed fonts. It’s not just websites that want to fingerprint your device, after all.
Update (): The Font Enumeration API, newly added to Chromium browsers (like Google Chrome and Microsoft Edge) has reintroduced font fingerprinting. However, the new API requires a per-domain permission prompt, so it’s not as leaky as the old Flash Player based method.
The original post I wrote about Fluxfonts holds more information about how it all works. You can test your browser’s fingerprint at Am I Unique? Note that not all browsers are subject to font-based fingerprinting.
You can download the latest release of Fluxfonts from GitHub releases. You can also find a new binary installer for Windows. Fluxfonts also supports Linux, MacOS, and FreeBSD.
Note that the installer just sets up a background task. There’s no app or anything to open or anything to configure afterward. It just works by itself in the background.
Fluxfonts is only made available for Windows 10 as Microsoft’s latest version of their operating system made it significantly easier to port a POSIX oriented program to Windows APIs. It only supports 32-bit apps, but those still run on 64-bit based systems.
The inclusion of the Clang C compiler in Visual Studio 2017 also removed the need to dumb down the code by introducing support for the older C99 standard. I won’t add support for older Windows version as it would simply demand too much of my time.
There isn’t anything new in 2.0 for users on Linux and FreeBSD except a slightly more aggressive font deletion mechanism. The large version number jump from 1.2 to 2.0 is purely for marketing the Windows port.