Device Fingerprinting
1.1.1 DEVICE FINGERPRINTING
Neumann, Heen, &Ono (2014) beschreiben device fingerprinting als „the action of gathering device information in order to characterize it. This process generates a signature, also called a fingerprint, that describes the observed features of a device in a compact form. If the generated signature is distinctive enough, it may be used to identify a device.“ (Seite 1) Es gibt ausserdem eine Unterscheidung zwischen aktivem und passivem Fingerprinting. Beim passiven Fingerprinting werden Daten, die durch verwendete Protokolle übertragen werden, ausgelesen. Darunter fallen zum Beispiel IP-Adresse, Browsertyp und – version. Beim aktiven Fingerprinting hingegen wird ein Programmcode direkt auf dem Computer des Users ausgeführt. So lassen sich weitere Informationen gewinnen. („Device Fingerprinting- Wie funktioniert der digitale Fingerabdruck,“ 2017 // https://www.datenschutzbeauftragter-info.de/device-fingerprinting-wie-funktioniert-der-digitale-fingerabdruck/) Es gibt eine Vielzahl von Möglichkeiten des device fingerprinting. (Open WPM) Eine Möglichkeit wird von Boda,Földes, Gulyas & Imre (2012) beschrieben. Hierbei soll eine eindeutige Identfizierung eines Users über mehrere Browser hinweg ermöglicht werden. Um einen eindeutigen Fingerabdruck zu erstellen werden verschiedene Daten über den User gespeichert. Dies sind zum einen System Features, wie das Betriebssystem und die Bildschirmauflösung. Zum anderen eine Liste der installierten Schriftarten und die ersten zwei Oktete der IP-Adresse. Die Informationen zu den System Features lassen sich in der regel leicht herausfinden, da diese bei jeder Request in Form eines User Agent String (UAS) gesendet werden. Dieser UAS befindet sich dabei im HTTP-Header und enthält Informationen über den Namen und die Version des Betriebssystem wie auch den Namen und die Version des verwendeten Browsers. Um an die Information der installierten Schriftarten zu gelangen muss ein eigens entwickelter JavaScript Code eingesetzt werden, da diese Informationen bei einer Request nicht übermittelt werden. Ziel ist es dabei einen User, unabhängig davon welche Browser und Plugins er benutzt oder auf welchen Internetseiten er sich befindet, zu identifizieren.
Abbildung 8 zeigt nochmals eine Übersicht über die erhobenen Daten. Das Feld User ID setzt sich zusammen aus den Variablen der IP-Adresse, der Bildschirmauflösung, der Zeitzone und den installierten Schriftarten. Dieser Wert wird als Hashwert gespeichert und soll eine eindeutige Identifizierng erlauben. Um nun einen Fingerprint von einem User erstellen zu können wurde eine Seite mit einem Button eingerichtet. Beim Klick auf diesen Button werden alle beschriebenen Informationen erhoben und danach gespeichert. Beginnend im September 2010 wurden über einen Zeitraum von 6 Monaten hinweg 968 Testläufe gestartet und dabei 662 Fingerabdrücke erstellt. Dabei zeigt sich, dass sich bereits der jeweilige User Agent String, sowie eine Liste der installierten Schriftarten als relativ gute Methoden zur eindeutigen Identifizierung eignen. Fast 50% aller Browser sind bereits durch ihren UAS eindeutig und fast 60% durch die Liste der jeweils installierten Schriftarten. Eine Kombination aus allen Informationen und der deraus entwickelten User ID zeigt, dass die Menge an erhobenen Daten ausreichend ist, um User mit einer hohen Wahrscheinlichkeit eindeutig zu identifizieren. (Boda et al., 2012) Eine weitere Möglichkeit einen eindeutigen Fingerabdurck zu erstellen ist durch das Audio Context Fingerprinting möglich. Dabei werden JavaScripts erstellt, die die AudioContext API und dazugehörige Interfaces nutzen. Der Hintergund dabei ist, dass jeder Browser und jedes verwendete Betriebssystem ein unterschiedliches Audio Signal von sich gibt. Es ist zu erwähnen, dass die einzelnen Technicken des device Fingerprinting meistens nicht alleine auftreten, sondern in Kombination miteinander verwendet . Um so ein Audio Signal zu generieren wird zunächst eine Oscillator Node erstellt. Aus dieser wiederum wird eine Analyser Node erstellt. (Open WPM) Mithilfe dieser Analyser Node lassen sich verschiedene Informationen zur Freuquenz der Audioquelle speichern. Aus dieser Analyser Node lässt sich eine FFT extrahieren. („AnalyserNode,“ n.d.// mozilla) FFT steht für schnelle Fouriertransformation und stellt einen Algorithmus dar, um ein Signal in seine einzelnen Komponenten zu zerlegen. (“Fast Fourier Transformation FFT,” n.d. // https://www.nti-audio.com/de/service/wissen/fast-fourier-transformation-fft ) Die Werte, die diese FFT liefert werden zu einem Hashcode verarbeitet und dieser wird dann gespeichert. Abbildung 9 zeigt diesen Vorgang. Der dabei entstandene Hashcode stellt den Fingerabdruck dar.
Es besteht die Möglichkeit diese Oscillator Node grafisch darzustellen. Wie in Abbildung 10 zu erkennen ist, besitzt jede Kombination aus Browser und Betriebssystem eine eigene Welle und lässt sich dadurch eindeutig identifizieren. (Open WPM)
Eine eigens von Englehardt und Narayanan (2017) eingerichtete Seite zur Durchführung des AudioContext Fingerprinting (Link: https://audiofingerprint.openwpm.com) wurde von 18500 verschiedenen Devices besucht und erstellte dabei 713 verschiedene Fingerabdrücke.
1.1.2 GEGNÜBERSTELLUNG DER TECHNOLOGIEN
Betrachtet man die drei erläuterten Trackingmethoden mit ihren Charakteristiken in einer direkten Gegenüberstellung, fallen einige Gemeinsamkeiten aber auch Unterschiede auf. Sowohl die klassischen HTTP-Cookies als auch die Speicherobjekte des HTML5 Storage sind beide auf einen Speicher innerhalb des Browsers eines Users angewiesen. (“HTML5 Web Storage,” n.d. ; Tracking + identifiying individual users) Der HTML5 Storage bietet allerdings dich Möglichkeit eine Vielzahl mehr an Daten zu speichern, da er einen Speicherplatz von 5MB besitzt und somit den Speicherplatz eines Cookies mit 4 KB um ein vielfaches übersteigt. (Analysis of privacy; „Browser Cookie Limits,“ n.d.) Ein weiterer Vorteil des HTML5 Storage besteht darin, dass seine Daten im local Storage persistent sind, d.h. zu dem Zeitpunkt vorhanden sind und nie gelöscht werden. („HTML5 Web Storage,“ n.d.) HTTP-Cookies hingegen besitzen ein Verfallsdatum, an dem sie sich automatisch löschen. (http State Mechanism) Anders als Cookies und der HTML5 Storage benötigt die Methode des device fingerprinting keinen Speicher und ist somit speicherunabhängig, da keine Cookies generiert werden (A survey on web tracking) Für alle drei Methoden existieren vorgefertigte APIs, welche eine relativ einfache Implementierung ermöglichen. (Analysis of privacy; „HTML5 Web Storage,“ n.d ; Boda et al., 2012; Open WPM) Ein riesiger Unterschied zwischen diesen Technologien fällt in ihrer Verbreitung auf. Die HTTP-Cookies stellen den Klassiker unter den Trackingtechnologien dar und werden von beinahe jeder Seite gesetzt. HTML5 local storage und device fingerprinting werden im Gegensatz dazu nur bei einer relativ kleinen Menge an Webseiten gefunden. (flash cookies and privacy2; Open WPM) Besonders die Methoden des Fingerprinting sind noch nich weitläufig erforscht und benötigen weiterer Forschung (Open WPM)