Canvas-Fingerprinting nutzt Unterschiede bei der Darstellung derselben Zeichenbefehle auf verschiedener Hard- und Software als Kennung und wird nur selten allein eingesetzt. Sinnvoller als ständig wechselnde Werte ist eine Umgebung, deren Merkmale untereinander stimmig bleiben.
Das Prinzip des Canvas-Fingerprintings ist nicht kompliziert, doch viele verbreitete Gegenmaßnahmen bewirken genau das Gegenteil des Gewünschten.
Gleiche Anweisungen, unterschiedliche Rechner, unterschiedliche Ergebnisse
Canvas ist eine von HTML5 bereitgestellte Zeichenkomponente. Webseiten können darauf per Skript Formen und Text zeichnen. Dieselben Zeichenanweisungen werden auf verschiedenen Geräten geringfügig unterschiedlich gerendert. Die Ursachen liegen in Unterschieden bei Betriebssystem, Browserversion, Schriftbibliothek und Grafiktreiber. Mit bloßem Auge sind diese Abweichungen meist nicht zu erkennen. Wird der Inhalt der Zeichenfläche jedoch als Daten exportiert, werden sie zu vergleichbaren Werten.
Der Ablauf sieht ungefähr so aus: Die Webseite zeichnet zunächst Grafiken und Text und exportiert das Ergebnis anschließend mit toDataURL() als Base64-Zeichenfolge. Diese Zeichenfolge kann dann als Kennung dienen. Verschiedene Geräte erzeugen unterschiedliche Exporte, weshalb das Ergebnis in vielen Fällen eindeutig ist. Das Löschen von Cookies hat darauf keinen Einfluss, ebenso wenig das Leeren des Caches.
Es wird nur selten allein verwendet
Ein einzelner Canvas-Wert ist nur begrenzt nützlich und kann sich durch Browser-Upgrades oder Treiberaktualisierungen verändern. In der Praxis wird Canvas meist mit mehreren weiteren Merkmalen kombiniert und gegenseitig abgeglichen:
- Grafikbezogene Daten wie WebGL, Schriftlisten und Grafikkartenmodell
- Umgebungsdaten wie UA, Zeitzone, Sprache und Bildschirmauflösung
- Sitzungsdaten wie Cookies, lokaler Speicher und Netzwerkausgang
Der Grund für diese Bündelung ist die Konsistenzprüfung. Jedes Merkmal kann für sich im normalen Bereich liegen, doch Widersprüche fallen in der Kombination schnell auf: Die Zeitzone steht auf USA, die Sprachliste enthält nur Chinesisch, und der Canvas-Wert passt zu integrierter Grafik, während die UA ein neues High-End-Gerät meldet. Eine Plattform muss nicht beweisen, wer Sie sind. Sie muss nur erkennen, dass diese Merkmalskombination nicht wie ein echtes Gerät aussieht.
Deaktivieren macht die Umgebung auffällig
Der erste Gedanke vieler Nutzer ist, Canvas abzuschalten. Das kann jedoch genau den gegenteiligen Effekt haben.
Nahezu alle Browser normaler Nutzer unterstützen Canvas. Eine Umgebung, die Canvas eindeutig nicht unterstützt, gehört statistisch zu einer Minderheit und signalisiert damit geradezu eine Sonderbehandlung. Hinzu kommt ein praktisches Problem: Viele Websites nutzen Canvas für Bildzuschnitt, Diagramme und die Darstellung von CAPTCHAs. Wird Canvas deaktiviert, können Seitenfunktionen ausfallen und eine weitere Auffälligkeit entsteht.
Eine andere Methode besteht darin, bei jedem Besuch neue Zufallswerte zu verwenden. Auch das ist problematisch: Fingerprints realer Geräte sind stabil. Eine Umgebung, die sich bei jedem Aufruf verändert, verhält sich anders als ein normales Gerät und kann dadurch leichter separat markiert werden. Zufällige Veränderungen sind selbst ein erkennbares Signal.
Sinnvoll ist interne Konsistenz
Ein besseres Ziel ist, dass die Merkmale innerhalb einer Umgebung zueinander passen und das Gesamtbild unauffällig bleibt, statt bei jedem Besuch alles zu verändern.
In der Praxis sollten sich die Merkmale gegenseitig stützen: Zeitzone, Sprache und geografischer Standort der Ausgangs-IP sollten zusammenpassen. Das von der UA gemeldete Gerät und die von Canvas und WebGL gezeigte Grafikleistung sollten derselben Leistungsklasse entsprechen. Die Umgebung eines Kontos sollte langfristig stabil bleiben und bei wiederholten Besuchen keine deutlichen Änderungen zeigen. Verlassen Sie sich nicht auf Plugins, die lediglich einzelne Funktionen abschalten, denn sie erzeugen oft auffälligere Merkmale. Wo möglich, sollten weniger Drittanbieterskripte ausgeführt werden, um die erfassbare Oberfläche zu verkleinern.
Wenn mehrere Umgebungen voneinander unterscheidbar sein müssen, ist das eine Aufgabe der Umgebungsisolierung. Tools wie PurpleMark weisen bei der Isolation mehrerer Konten normalerweise jedem Konto eine feste Umgebung zu, anstatt Parameter zufällig springen zu lassen. Denn für Plattformen ist vor allem entscheidend, ob die Merkmalsgruppe stabil bleibt und in sich plausibel ist.
Zusammenfassung
Canvas eignet sich zum Tracking, weil es feine Unterschiede in Hard- und Software in eine stabile, vergleichbare Zeichenfolge umwandelt. Eine wirksame Gegenmaßnahme besteht weder darin, Canvas abzuschalten, noch die Werte ständig springen zu lassen, sondern darin, dass Canvas dieselbe Geschichte erzählt wie die übrigen Merkmale derselben Umgebung. Unauffällig zu wirken ist sicherer, als besonders zu wirken.


