Fingerprinting-Abwehr verschlimmbessern

Es gibt ja etliche Browser-Addons und mittlerweile auch teilweise in die Browser integrierte Funktionen, die das Problem Fingerprinting mitigieren sollen. Wie Fingerprinting funktioniert bzw. was es ist, habe ich schon mal in einem älteren Beitrag angerissen. Ich will das hier noch mal etwas ausführlicher besprechen.

Fingerprinting wird ermöglicht durch diverse Datenpunkte, die ein Webserver mitsamt der darauf laufenden Anwendungen über den Webclient (also der Webbrowser des Users) erhebt. Was kann man alles einsammeln an Datenpunkten?

Ich schreibe jetzt mal eine sehr lange (immer noch unvollständige!) Liste hier rein, um euch die Dramatik der Situation vor Augen zu führen. Zu Demo-Zwecken hier ein Screenshot, mit dem man meinen Fingerprint anschauen kann. Ich markiere die Kandidaten in der folgenden Liste fett, die ganz besonders fies sind, die also wesentlich zu einer eindeutigen Identifizierbarkeit beitragen können (nicht müssen), weil die Werte auf sehr vielen Rechnern sehr individuell ausfallen dürften.

Was alles zusammengeschnüffelt wird:

Wenn man diese Datenpunkte in ein Profil zusammenschmeißt, erleichtert das die Identifikation von einzelnen Computern/Nutzern enorm - umso mehr, je exotischer zum Beispiel einzelne Einstellungen wie Bildschirmauflösung oder Betriebssystem sind.

Kann man Fingerprinting verhindern? Ja, indem man das Surfen bleiben lässt. Ansonsten nicht. Man kann sich allerdings Mühe geben, dass der Fingerprint so generisch ist, dass viele andere Leute ihn auch genau gleich haben und man in einer Masse von Millionen Nutzern untergeht. Das ist für den normalen User, der technisch nicht versiert ist, auf manuellem Wege leider gar nicht so einfach zu erreichen. Deshalb gibt es Tools und Browser-Addons, die das erledigen sollen. Bedauerlicherweise sind viele von denen auch nicht das Gelbe vom Ei, weil die angewandten Verschleierungstaktiken zu schlecht oder unzureichend sind.

Fingerprinting-Datenquellen und Manipulation

Beim Fingerprinting-Schutz gibt es u.a. folgende Aspekte, die man berücksichtigen sollte.

  1. Es gibt verschiedene Quellen, aus bzw in denen man als Betreiber einer Webanwendung Daten über die User erheben kann. z.B.
    • Serverseitige Protokollierungen, z.B. Webserver/Access/Error-Logs
    • Cookies
    • Local Storage (Browser-eigener Speicher/Datenbank)
    • Client-seitige Javascript-Abfragen, siehe auch oben
  2. Muss man sich überlegen, welche Fake-Werte am besten geeignet sind, um in der großen Masse unterzutauchen. Dazu lohnt es sich u.a. allgemeine Webstatistiken anzuschauen. Was sind weltweit die am meisten verwendeten Browser? Welche Monitorauflösung wird am häufigsten verwendet? Macht es Sinn, eine andere Sprache als die eigene vorzugeben? (z.B. Englisch statt Deutsch, weil Englisch weiter verbreitet ist), undsoweiterundsofort.
  3. Wenn das Faken von Werten falsch bzw. unvollständig ist, und eine Webanwendung den Originalwert eines Datenpunkts trotzdem herausfinden kann, ist das natürlich auch blöde. Einfaches Beispiel:
    • Man kann via JavaScript die Größe des Browserfensters manuell und programmatisch setzen. "screen.width = 1280". Manche Fingerprintingschutz-Tools machen das so. Tja, die Webanwendung kann das aber auch. Wenn die nun "delete screen.width" im Browser des Nutzers ausführt, sind die vorab vom User gesetzten Fake-Werte im Eimer und aufgrund der Tatsache, dass Browser dann mit einem Reset reagieren, kann die Webanwendung die ursprüngliche Fenstergröße erkennen, die vor der Manipulation durch den User existierte. Das wiederum lässt möglicherweise Rückschlüsse auf Bildschirmauflösungen zu. Zunächst mal kein gravierender Datenpunkt, aber im Zusammenspiel mit anderen Details eventuell dann doch entscheidend.

Ohje. Und jetzt?

Ich befürchte, dass nicht viele Leute Lust haben, sich mit technischen Details zu beschäftigen. So ist das halt, die Lebenszeit ist begrenzt, man muss ja drei Stunden von und zur Arbeit pendeln, die Kinder müssen auch versorgt werden, vom Ehepartner gar nicht zu reden, ein Garten muss geschrubbt und das Auto gemäht werden.

Das Problem ist außerdem, dass Fingerprinting nicht mal einfach so mit einem Addon oder Klick effektiv demontiert werden kann, ohne dass darunter das Surfvergnügen leidet.

Wer Fingerprinting wirklich bestmöglich entschärfen will, muss Hürden auf sich nehmen:

Das Mindestmaß an Eigenverantwortung und Initiative, dass ich verlangen kann: Schaut euch nach entsprechenden Browser-Addons um. Installiert mal eines oder mehrere, ruft die Website https://amiunique.org auf und schaut euch an, wie einzigartig euer Fingerprint ist. Die von mir oben genannten Addons sollten den Einstieg erleichtern.