Mozilla hat den neuen Schutz vor “Supercookies” in Firefox 85 in https://blog.mozilla.org/security/2021/01/26/supercookie-protections/ erläutert.

Ich bin ja durch einen Vortrag über Browser Fingerprinting auf dem RC3 und die zugehörigen Papers FPMON und dieses für das Thema sensibilisiert.

Nun schreibt Mozilla:

In the case of Firefox’s image cache, a tracker can create a supercookie by “encoding” an identifier for the user in a cached image on one website, and then “retrieving” that identifier on a different website by embedding the same image.

In fact, there are many different caches trackers can abuse to build supercookies. Firefox 85 partitions all of the following caches by the top-level site being visited: HTTP cache, image cache, favicon cache, HSTS cache, OCSP cache, style sheet cache, font cache, DNS cache, HTTP Authentication cache, Alt-Svc cache, and TLS certificate cache.

Ihre Lösung ist also, die Caching Architektur zu kompartmentalisieren, so dass kein cross-site third party caching erfolgt. Dabei wäre eigentlich das seitenübergreifende Caching beispielsweise von gemeinsam genutzten Fonts, von zentraler Stelle geholte Javascript-Frameworks usw. eine sinnvolle Sache. Aber leikder ist die Welt nicht ideal, und das Internet muss zunächst mal misstrauisch als böse angesehen werden.

Ich denke, es wäre sinnvoller, bei der “Retrieving” Methode anzusetzen, die leider nicht erläutert wird. Ich vermute, dass damit nicht eine If-Modified-since Anfrage gemeint ist, sondern ein clientseitiges Auslesen des Bildes via Javascript. Da muss man sich doch fragen, muss Javascript das überhaupt können? Ist nicht Javascript inzwischen durch Feature Creep mit sovielen Funktionen aufgebläht worden, Clientstatus auszulesen und zu verarbeiten, der nur in ganz seltenen Sonderfällen wirklich benötigt wird, aber auch eine Sicherheits- und insbesondere Privacy-Schwäche darstellt?

Mir käme es sinnvoller vor, nur ein Core Set von Javascript Funktionalität, das regelmäßig für den Seitenaufbau mittel-moderner Webseiten (inzwischen kann man ja sehr vieles über CSS regeln, und braucht Javascript nur selten, aber die “Webentwickler” vieler Sites müssen sich daran erst noch gewöhnen) genutzt wird, pauschal freizuschalten, und darüber hinausgehende Funktionen nur auf Basis einer Whitelist, ggf. aufgeteilt in Funktionsgruppen, den Sites freischalten zu können, bei denen man ein legitimes Interesse dafür erkennen kann.