Das HTML5 Canvas Element ist ein Grafikbereich auf der Webseite, in den der Browser mit Javascript zeichnen kann. Ähnlich wie bei einem Zeichenprogramm kann man auch Text schreiben. Die Trackingbranche hat Methoden entwickelt, um diese Technologie für die Berechnung eines individuellen Fingerprinting des Browser zu nutzen.
  1. Mit Javascript kann ein Text in das Canvas Element geschrieben werden. Danach wird das Ergebnis als Grafik ausge­lesen und ein Hashwert von der Grafik berechnet. Das Ergebnis unterscheidet sich von Browser zu Browser aufgrund installierter Schriften, Software für das Rendering usw. Diese Verfahren wurde 2012 in dem Paper Perfect Pixel (PDF) beschrieben und 2016 auf 14.371 Webseiten als Trackingverfahren nach­gewiesen.

    Der Canvastest auf Browsewrleaks.com demonstriert das Verfahren. Als einfache Demo kann der Test Schluss­folgerungen über den verwendeten Browser und das Betriebs­system ableiten (und damit einen User-Agent Fake enttarnen).
    Canvas Fingerprinting
  2. Canvas Font Fingerprinting wurde 2016 in dem OpenWPM Paper (PDF) beschrieben. Dabei wird die Methode "measureText" des "CanvasRenderingContext2D" Objektes genutzt. Der Text wird nicht in das Canvas Element geschrieben sondern es wird nur die Größe ermittelt, die ein Text mit unterschiedlichen Schriftarten benötigen würde, wenn er geschrieben werden würde. Damit ist es möglich, die installierten Schriftarten zu ermitteln, die ein gut geeignetes Merkmal für das Fingerprinting sind.

    Canvas Font Fingerprinting wird bisher nur von einen Trackingdienst genutzt und ist auf 2,5% der TOP1000 Webseiten im Einsatz. Es wird durch Werbeblocker blockiert.
CanvasBlockerDas Add-on CanvasBlocker kann Zugriffe auf Canvas Elemente blockieren oder faken. In den "Einstellungen" des Add-on kann man das gewünschte Verhalten konfigurieren und damit das erste Trackingverfahren blockieren.

Da nur das Auslesen des Canvas als Bild für das Fingerprinting relevant ist, reicht es aus, nur die Auslese-API zu blockieren oder bei Zugriff auf die Auslese-API um Erlaubnis zu fragen. Dann können Webseiten HTML5 Canvas Elemente zur Gestaltung der Webseite nutzen aber die Ergebnisse des Rendering nicht mehr heimlich auslesen.

Außerdem kann man eine Whitelist von Domains bzw. URLs zw definieren, denen der Zugriff auf die gesperrten API Funktionen gestattet wird.
Canvas Blocker Konfiguration
Lizenz: Public Domain