# Fingerprinting (Trackingtechnik)

Fingerprinting bezeichnet eine Nutzerverfolgungs-Technik. Es wird angewandt, um Endgeräte und damit auch Nutzer eindeutig zu identifizieren und zu verfolgen. Dabei wurde oder wird es bei verschiedenen Geräten angewendet, so etwa Schreibmaschinen, Quarzuhren in Computern, Digitalkameras, Handys sowie PCs. Für die Methode ist kein physischer Zugriff auf das Gerät notwendig. Insbesondere die Daten, welche Webbrowser generieren, werden zum Fingerprinting verwendet, dies wird als Browser-Fingerprinting bezeichnet. Diese Methode wurde 2020 von 20 % der reichweitenstärksten 10.000 Internetseiten angewandt.
Eine Identifizierung von Geräten gelingt auf der Grundlage unterschiedlicher Daten, je nach Einsatzgebiet des Fingerprinting. Es werden dabei meist Parameter ausgelesen, die von dem Gerät über das Internet versandt werden. Die gesammelten Daten unterscheiden sich für verschiedene Geräte, abhängig davon, wie das Gerät in seinen Soft- und Hardware-Komponenten aufgebaut ist. Durch die Abweichungen in den Daten können einzelne Geräte oft eindeutig auseinandergehalten werden. So lässt sich auch die Person verfolgen, die das Gerät benutzt.
Nach dem World Wide Web Consortium dient das Browser-Fingerprinting dazu, Nutzer zu identifizieren, einen Zusammenhang zwischen deren Suchaktivitäten herzustellen, auch über mehrere Sitzungen hinweg, und Nutzer intransparent und unkontrolliert zu verfolgen.

## Geschichte

Schon in den 1970er Jahren beschäftigte sich der Forensiker Ordway Hilton im Journal of Forensic Sciences mit den spezifischen Erkennungsmerkmalen einzelner Schreibmaschinen, dieser Ansatz wurde bereits als Fingerprinting beschrieben. In der Methode ging es jedoch, in Gegensatz zu seitdem beschrieben Anwendungsfällen, um Geräte ohne Internetanschluss. Hilton beschrieb in dem Artikel die zunehmenden Schwierigkeiten in der Zuordnung von Schriftstücken zu einzelnen Schreibmaschinen. Die gestiegene Qualität der Schreibmaschinen und die geringen Fertigungstoleranzen würden zu subtileren Unterschieden führen, als das noch in den Jahrzehnten davor der Fall war. Zur Identifikation von Schriftstücken wurden kleinste Beschädigungen an den Lettern betrachtet, die sich mit fortschreitender Benutzung einstellten. Die Beschädigungen traten bei Satzschriften mit Serifen besonders häufig auf, da die schmalen Strukturen anfällig für Defekte waren. Zudem wurde die spezifische Schattierung pro Letter betrachtet, die sich je nach Maschine leicht unterscheiden konnte. Auch wurde die Tiefe der Prägung unter dem Binokular geprüft. Die Ausrichtung der Letter konnte als weiteres einzigartiges Merkmal dienen, beispielsweise wenn ein Buchstabe stets zu weit links gedruckt wurde oder wenn die Buchstaben nicht ganz auf einer Linie angeordnet waren. Diese Unterschiede resultierten unter anderem aus mechanischen Ungenauigkeiten, die bei jeder Schreibmaschine individuell waren.
2005 veröffentlichen Forscher der University of California, San Diego eine Arbeit, in der die Möglichkeit aufgezeigt wurde, Geräte mit Internetanschluss anhand der verbauten Quarzuhr voneinander zu unterschieden. Dies wurde erreicht, indem „mikroskopisch kleine Abweichungen in der Gerätehardware“ gemessen wurden, sogenannte Taktverschiebungen in den Uhren. Hierzu wurden die TCP-Zeitstempel aufgezeichnet und verglichen. Erprobt wurde die Methode damals an 100 virtuellen Linux-2.4.18- und 100 virtuellen Windows-XP-SP1-Hosts, die alle auf dem gleichen Computer liefen. Alle virtuellen Computer konnten mittels TCP-Zeitstempel mit hoher Wahrscheinlichkeit diesem einen Rechner zugeordnet werden. Steven J. Murdoch von der University of Cambridge veröffentlichte 2006 eine Forschungsarbeit, in der er zeigte, dass sich die CPU-Belastung von Tor-Knotenpunkten in Form von Wärme äußert, was wiederum Einfluss auf die Taktverschiebung in der Echtzeituhr hat. Diese Verschiebungen können, wie oben beschrieben, anhand der Zeitstempel gemessen werden. Damit stellte er eine Möglichkeit vor, die Anonymität des Tor-Netzwerkes oder ähnlicher Anonymitätsnetzwerke zu schwächen.
Im selben Jahr schlugen Forscher der State University of New York eine Methode vor, um einen eindeutigen Fingerprint für Bilder aus Digitalkameras zu erzeugen, hierzu nutzten sie das einzigartige Bildrauschen des Kamerasensors. Forscher der Universität Hongkong schlugen dagegen vor, die Abbildungsfehler des Objektives als Fingerprinting-Parameter zu nutzen.
Jonathan R. Mayer war der erste, der empirisch zeigte, dass Webbrowser unterschiedlich erscheinen abhängig vom Betriebssystem, der Hardware und der Browser-Konfiguration, und dass diese Unterschiede von einem fremden Server ausgelesen werden können, um so ein Profil des Nutzers zu erstellen. Ein Jahr später führte Peter Eckersley von der Electronic Frontier Foundation (EFF) das Panopticlick-Experiment durch. Hierbei sammelte er mithilfe von Datenspenden ca. 470.000 Fingerprints von Nutzern. Er konnte zeigen, dass mit einer Kombination aus unterschiedlichen Messdaten 83,6 % der Fingerprints einzigartig waren. Wenn die Nutzer Plugins wie Adobe Flash Player oder Java Virtual Machine aktiviert hatten, stieg die Zahl auf 94,2 %, da diese Plugins zusätzliche Geräteinformationen lieferten. Diese Studie prägte den Begriff Browser-Fingerprinting.
2012 zeigten Keaton Mowery und Hovav Shacham, wie das HTML5-Canvas-Element genutzt werden kann, um einen Fingerprint zu erzeugen, dies legte den Grundstein für das sogenannte Canvas-Fingerprinting. Ein Jahr später schlug Thomas Unger von der FH Wien vor, die neu aufkommenden CSS3-Module (Cascading Style Sheets) zum Fingerprinting zu verwenden. 2015 wurde durch Forscher der Meiji-Universität erstmals die Möglichkeit erwähnt, Nutzer allein durch CSS zu verfolgen. Diese Technik entwickeltes sich weiter, bis 2023 Forscher von IBM eine Methodik vorstellten, die es ermöglicht, einen CSS-Fingerprint erstellen, mit dem sich Nutzer zuverlässig verfolgen lassen. Die Effektivität soll der von Canvas-Fingerprints gleichen, mit dem Unterschied, dass sich die Technik noch schwerer verhindern lässt und auch gegen das Tor-Netzwerk wirksam sein kann.

## Funktionsweise des Browser-Fingerprintings

Während bei Cookies ein Identifikator auf dem Gerät gespeichert wird, um später wieder ausgelesen zu werden, werden beim Browser-Fingerprinting die Software- und Hardwaremerkmale von Geräten ausgelesen, um so verschiedene Geräte voneinander zu unterscheiden. Je mehr Parameter erfasst werden, desto eindeutiger können Geräte unterschieden werden. Die Menge an verwertbaren Daten wird in Bits an Entropie gemessen. Auf diese Weise wird beim Browser-Fingerprinting ein digitaler Fingerabdruck eines Gerätes erstellt, welcher in einem Hash oder einer Liste gespeichert wird. Wenn der Nutzer eine Internetseite erneut besucht, wird abermals der spezifische Fingerprint des Gerätes ausgelesen und mit dem Hash abgeglichen, so kann der Nutzer wiedererkannt werden, da sich sein Fingerprint im Allgemeinen nicht ändert. Je ungewöhnlicher ein System in seinen Software- und Hardware-Komponenten aufgebaut ist, desto einzigartiger ist auch der zugehörige Fingerprint und dementsprechend leichter ist der Nutzer zu verfolgen. Die Attribute, welche zum Browser-Fingerprinting verwendet werden können, sind äußerst vielfältig und unterliegen einem ständigen Wandel, weil neue Attribute hinzukommen und alte wegfallen. Im Folgenden werden deshalb beispielhaft einige wichtige Techniken dargestellt, aus denen sich die Daten für das Fingerprinting ergeben. Zwar ergibt sich durch die Kombination vieler Attribute ein genaueres Ergebnis, jedoch reichen teilweise bereits einzelne Attribute aus, um Nutzer mit hoher Wahrscheinlichkeit zu identifizieren.

### JavaScript-Attribute
#### HTTP-Headerfeld

Bei der Antwort auf eine HTTP-Anfragen sind Informationen über die Hardware, des Betriebssystems, den Browsers und seine Version, sowie über die eingestellten Sprachen enthalten. All diese Daten dienen als Fingerprinting-Vektor.

#### Fenster- und Bildschirmeigenschaften

Hier werden Eigenschaften wie die Bildschirmgröße, die Größe des Browserfensters, die Farbtiefe und die dpi (deutsch Punkte pro Zoll) erfasst.

#### WebGL

WebGL ist eine graphische API, mit der sich ohne zusätzliche Plugins interaktive 3D-Grafiken in Browser darstellen lassen. Dadurch, dass verschiedene Systeme und Browser die Grafik leicht anders darstellen, eignen sich diese Daten zum Fingerprinting. Unterschiede ergeben sich bei der Darstellung von Licht und Schatten, der Oberfläche eines Objektes und der Kameraperspektive.

#### Canvas

Die Methode des Canvas-Fingerprintings macht sich den Effekt zunutze, dass die Darstellung von Canvas-Elementen variiert, abhängig vom Betriebssystem, der Browser-Version, der Grafikkarte und den installierten Schriftarten. Um für den Seitenbesucher einen spezifischen Fingerprint zum Zeitpunkt des Seitenaufrufs zu erstellen, wird dem Browser ein versteckter Text zur Anzeige übergeben. Hierzu sind nur wenige Programmzeilen JavaScript notwendig.

#### Benchmarking

Hierbei wird über JavaScript eine Reihe an Aufgaben angefordert und daraufhin die Zeit gemessen, die bis zur Vollendung der Aufgabe benötigt wird. So lassen sich Leistungsunterschiede zwischen Computern, bei der CPU und GPU ermitteln. Die Interpretation der Daten ist hierbei schwierig, da sich schlecht ausmachen lässt, ob es sich tatsächlich um zwei unterschiedliche Geräte handelt oder ob ein Hintergrundprozess die Leistung während einer der Messungen beeinflusste.

#### AudioContext

Die Web-Audio-API bietet eine Schnittstelle, um Audio zu verarbeiten. Dem Browser werden unhörbare Audioschnipsel übergeben und manipuliert, zum Beispiel in der Kompression, oder der Filterung. Die Ergebnisse werden dann ausgelesen und zum Fingerprinting verwendet.

### CSS-Fingerprinting

Ermittelt werden kann hierbei eine Liste von installierten Schriftarten, das Farbsystem, der Browser, oder die Browserfamilie und die über Media Queries geschätzte Bildschirmgröße. Diese Art des Fingerprintings benötigt keine JavaScript-Programmierschnittstelle.

### Browser-Add-ons

Die Anzahl und die Art der installierten Add-ons können als Vektor dienen. Direkt können die Add-ons nicht ausgelesen werden, jedoch kann über verschiedene Hinweise auf die Anwesenheit einer bestimmten Erweiterung geschlossen werden. Es können beispielsweise Anfragen an bestehende und falsche Erweiterungen versendet und dann die Zeitunterschiede der Antwort gemessen werden. Weiterhin kann detektiert werden, wenn Add-ons sehr spezifische URLs aufrufen, um Ressourcen – wie z. B. Bilder – bereitzustellen.

## Technische Gegenmaßnahmen

Ziel der Gegenmaßnahmen ist die Erhöhung der Privatsphäre beim Surfen im Internet. Das Browser-Fingerprinting lässt sich Nutzerseitig deutlich schwerer verhindern als vergleichbare Tracking-Techniken. Grundsätzlich lässt sich eine Verfolgung weniger leicht realisieren wenn viele Nutzer einen ähnlichen oder gleichen Fingerprint besitzen, da dieser dann nicht mehr eindeutig einem einzelnen Benutzer zugeordnet werden kann. Der Tor-Browser zielt durch seinen Aufbau auf diesen Effekt ab. Durch verschiedene technische Grundlagen (Letterboxing, einheitliche Schriftarten etc.) erhalten viele Nutzer einen gemeinsamen Fingerprint, sie verschwinden dadurch in einer Anonymitätsgruppe von Nutzern, die denselben Fingerprint wie sie besitzen. Andere Browser wie beispielsweise Brave sind ebenfalls von Grund auf darauf ausgelegt, möglichst resistent gegen das Fingerprinting zu sein.
Weitere Methoden, um das Fingerprinting zu beschränken, unabhängig vom verwendeten Webbrowser, sind das Blockieren von bekannten Fingerprinting-Skripten auf Basis einer Schwarzen Liste. Mithilfe von Inhaltblockern, oder DNS-basierten Blocklisten lässt sich der Kontakt zu Drittanbieter-Domains einschränken, die bekannt dafür sind, Fingerprinting zu nutzen. Einen solchen Schutz können z. B. Browser-Add-ons wie der Privacy Badger der Electronic Frontier Foundation, oder uBlock Origin bieten. Weiterhin könnte auch verhindert werden, dass das vom Browser gerenderte Canvas-Element übermittelt wird, indem die entsprechenden JavaScript-APIs deaktiviert werden. Dies würde jedoch, aufgrund der ungewöhnlichen Einstellung, ein neues Merkmal zur Identifikation des Nutzers schaffen, ihn also von der Masse abheben, und ist somit nicht zweckdienlich.
Mit dem kompletten Deaktivieren von JavaScript wird das Canvas-Fingerprinting unmöglich. Allerdings führt das häufig zu unbenutzbaren Websites, da JavaScript-Bibliotheken vielfach auf Webseiten eingebunden sind. Zudem könnte der Server durch das Ausbleiben bestimmter Anfragen – die normalerweise durch ein Skript gestellt würden – potenziell feststellen, dass ein bestimmter Besucher kein JavaScript verwendet. Das Ablehnen von Website-Skripten stellt also sogar eher ein Alleinstellungsmerkmal dar anstatt einer praktikablen Möglichkeit, das Tracking zu vermindern.
Eine empfohlene Methode besteht dagegen darin, die Canvas-Elemente bei jeder Ausgabe geringfügig zu manipulieren, also deren Eigenschaften während des Renderns zufällig zu verändern. Hierdurch wird die Nutzerverfolgung erschwert bzw. verhindert, weil ein gleichbleibender Fingerprint nicht mehr besteht. Somit kann der Fingerprint nicht mehr eindeutig über einen längeren Zeitraum hinweg verfolgt werden. Eine Konfigurationsmöglichkeit könnte zum Beispiel sein, dass der Fingerprint für jede Website persistent ist, sich aber von Website zu Website ändert. Eine andere könnte sein, dass die Werte der Canvas-Elemente nach jedem Schließen des Browsers verändert werden.
Ein dediziertes Add-on, welches das Auslesen der Canvas-Elemente verhindern oder verfälschen kann, ist der CanvasBlocker.
Da die Methode des CSS-Fingerprinting noch neu ist (Stand 2023), helfen die bekannten Verteidigungsmechanismen dagegen nicht, ebenso wenig dedizierte Add-ons. Allerdings können durch Inhaltsblocker wie uBlock Origin iFrames blockiert werden, was der einzige bisher bekannte Weg ist, um das CSS-Fingerprinting einzuschränken.
Verschiedene Browser setzen Maßnahmen ein, um Fingerprinting einzuschränken, so zum Beispiel Mozilla Firefox, Brave, Pale Moon, LibreWolf, Safari, der Mullvad-Browser und der Tor-Browser. Für den Firefox-Browser und Forks desselben wird die Verwendung der Einstellung Resist Fingerprinting („dem Fingerprinting standhalten“) empfohlen (Stand Anfang 2025).

## Studien

Im Rahmen einer Studie der Princeton University und der Katholischen Universität Löwen wurde 2014 aufgezeigt, dass von 100.000 untersuchten Webseiten 5,5 % die Technik des Browser-Fingerprintings einsetzen. Von November 2014, bis Februar 2015 wurde in dem Forschungsprojekt AmIUnique ca. 119.000 Fingerprints gesammelt und ausgewertet. Hierbei konnte der Unterschied zwischen dem Fingerprinting von mobilen Geräten und Computern aufgezeigt werden: 81 % der Mobilgeräte waren einzigartig, verglichen mit 90 % bei Computern. In einer Studie aus dem Jahr 2017 zeigten Forscher, dass Nutzer mit einer Wahrscheinlichkeit von 99,24 % verfolgbar waren, jedoch nicht nur in einem Browser, sondern über mehrere Browser auf demselben Gerät hinweg. 2018 wurde durch Alejandro Gómez-Boix in der Arbeit Hiding in the Crowd die Effektivität von Fingerprinting in einem großen Maßstab überprüft. Er sammelte über zwei Millionen Fingerprints von einer kommerziellen Webseite. Ergebnis war, dass 33,6 % der Desktop-Nutzer einen einzigartigen Fingerprint besaßen, bei mobilen Geräten waren es nur 18,5 %. Das waren erheblich geringere Erkennungsraten, als vorherige Studien gezeigt hatten. Gómez-Boix wies darauf hin, dass diese an der Art liegen können, wie die Daten gesammelt wurden; die Nutzer wurden z. B. nicht über die Sammlung der Fingerprints informiert, wie das in vorangegangenen Studien der Fall war. Auch führte er dieses Ergebnis auf die Weiterentwicklung der Technologie zurück, durch die einige Fingerprinting-Attribute schlechter als Datenquelle nutzbar waren. Forscher von IBM behaupteten 2023, sie hätten eine Fingerprinting-Methode gefunden, die vollkommen ohne Canvas-Elemente funktioniere und sich nicht durch herkömmliche Schutzmechanismen verhindern lasse, weil sie statt auf JavaScript auf der Verwendung von CSS beruht.