Bildschirm: Informationen über die Größe des Monitors und des Browserfensters werden am häufigsten für das Hardwarefingerprinting genutzt. Es liegen keine wissenschaftlichen Analysen zur Verbreitung dieser Trackingmethode vor, aber grob geschätzt werden diese Informationen von 30-50% der Webseiten ausgewertet. Insbesondere auf größeren Portalen wie heise.de, spiegel.de, zeit.de oder google.com findet man fast immer Trackingscripte, die Bildschirmgröße und Größe des Browserfensters für das Fingerprinting des Browsers nutzen.
CanvasBlocker kann Zugriffe auf die Screen-API faken und verwendet die am besten passende Bildschirmgröße aus folgenden häufigen Werten: 1366x768, 1440x900, 1600x900, 1920x1080, 4096x2160 und 8192x4320.Die Verwendung von CanvasBlocker ist empfehlenswert, da es für den Fake Bildschirmgrößen verwendet, die in-the-wild häufig vorkommen.
Daneben gibt es noch die von TorProject.org entwickelte Option zum Faken der Bildschirmgröße, die mit den folgende Variablen unter "about:config" aktiviert wird:privacy.resistFingerprinting | = true |
privacy.resistFingerprinting.letterboxing | = true |
Wenn diese Variablen gesetzt wurden, dann verhält sich Firefox wie der TorBrowser. Das Browserfenster wird in einer Größe von 1000 Pixeln Breite und eine Höhe von n*100 Pixeln geöffnet. Bei Vergrößerung des Fensters wird der genutzte Ausschnitt um ein Vielfaches von 100 Pixeln vergrößert, möglicherweise sieht man rund um den Bereich der Webseite weiße Ränder. Die Fenstergröße des Browser wird auch als Bildschirmgröße verwendet und die reale Größe ist nicht mehr auslesbar. Die Größen sind allerdings willkürlich gewählt. Für die Definition einer Anonymitätsgruppe des TorBrowsers ist es sinnvoll aber in-the-wild sind diese Werte sehr selten.
Außerdem werden noch folgende Features mit dieser Option aktiviert:AudioContext: Mit der Audio-API kann Javascript unhörbare Soundschnipsel im Audiobuffer generieren, manipulieren und die Ergebnisse wieder auslesen. Dabei unterscheiden sich die Ergebnisse in Abhängigkeit von der Audiohardware und -software. Die Daten können für das Fingerprinting genutzt werden, wie die AudioContext Fingerprint Test Page zeigt.
Das Add-on CanvasBlocker kann Zugriffe auf die Audio-API faken (geringfügig modifizieren) und damit ein Fingerprinting des Browsers verhindern. Das Ergebnis ist zwar "unique" aber immer wieder anders.
Alternativ kann die Audio-API mit folgender Option deaktiviert werden: dom.webaudio.enabled = false Das Faken der Audio-API mit dem Add-on CanvasBlocker ist unauffälliger und schwerer erkennbar als das Blockieren der API und deshalb empfohlen.gfx.direct2d.disabled | = true |
layers.acceleration.disabled | = true |
media.hardware-video-decoding.enabled | = false |
Die Funktion liefert keine Informationen zur realen Ausführung. Das Ergebnis ist FALSE, wenn die Parameter nicht korrekt waren und TRUE in allen anderen Fällen. Wenn eine ausgelöste Vibration länger als die maximal zulässige Dauer ist, wird sie ohne Rückmeldung gekürzt.
Die Navigator-API kann jedoch in Kombinationen mit anderen Mechanismen die Privatsphäre gefährden, wie das W3C in den Security and Privacy Considerations schreibt:
Vibration API provides an indirect privacy risk, in conjunction with other mechanisms. This can create possibly unexpected privacy risks, including cross-device tracking and communication. Additionally, a device that is vibrating might be visible to external observers and enable physical identification, and possibly tracking of the user.Die komplette Deaktivierung der Vibrator-API könnte als Fingerprinting Merkmal ausgewertet werden, da die API im Navigator Objekt nicht mehr sichtbar wäre. Unauffälliger ist es, die API nicht zu deaktivieren sondern die max. Vibrationsdauer auf "0" zu setzen.
dom.vibrator.enabled | = true |
dom.vibrator.max_vibrate_ms | = 0 |
Die ersten beiden APIs sind privacy-relevant und können zum Sammeln Daten missbraucht werden, wie der Sicherheitsexperte L. Oljenik für den Proximity Sensor und Ambient Light Sensor demonstrierte. Beide APIs sind in Firefox standardmäßig deaktiviert.
device.sensors.ambientLight.enabled | = false (Firefox Default) |
device.sensors.proximity.enabled | = false (Firefox Default) |
Sensoren für die Lage eines Gerätes und Gyroskope zur Beobachtung von Bewegungen sind in Smartphones vorhanden aber in der Regel nicht in PCs oder Laptops. Daher liefern die beiden letztgenannten APIs auf diesen Geräten in keine Daten und können daher aktiviert bleiben. Webseiten könnten eine Deaktivierung dieser API erkennen und als besonderes Merkmal für das Fingerprinting des Browsers verwenden, wie Browsersleaks demonstriert.
device.sensors.orientation.enabled | = true (Firefox Default) |
device.sensors.motion.enabled | = true (Firefox Default) |
Für Smartphones ist das Risiko anders zu bewerten, wie mfsa2016-43 zeigt.