Während Cookies an Bedeutung verlieren, steigt die Relevanz alternativer
Tracking-Technologien zur Nutzeridentifikation im Internet.
Eine dieser Alternativen ist das Browser-Fingerprinting. Jedes Mal, wenn wir eine Website aufrufen,
können Website-Betreiber Daten über unser verwendetes Gerät (z.B. Bildschirmauflösung oder Browser-Version) auslesen – ohne, dass wir es merken.
Die Gerätedaten sind dabei in Kombination oft einzigartig, sodass man anhand dessen beim nächsten Aufruf
wiedererkannt werden kann.
Im Rahmen meiner Bachelorarbeit möchte ich über diese Form des Web-Trackings
aufklären, und auswerten, wie effektiv Browser-Fingerprinting derzeit noch ist.
Ich würde mich freuen, wenn du mit nur zwei Klicks an meiner Datenerhebung
teilnimmst! - gerne auch mit verschiedenen Geräten. Super wäre es auch, wenn du in ca. 14 Tagen
nochmal teilnehmen könntest (optional).
Element |
Wert |
ⓘ HTTP-Header: Accept |
Gibt an, welche Formate vom Browser verarbeitet werden können. Der
Wert "*/*" bedeutet beispielsweise, dass Daten jedes Typs akzeptiert werden und keine
Einschränkungen vorliegen. |
ⓘ HTTP-Header: Accept-Encoding |
Teilt dem Webserver (bzw. der Website) mit, welche Kompressionsformate für den
Datenaustausch vom Browser
unterstützt werden. Eines der gängigsten Formate ist beispielsweise gzip. |
ⓘ HTTP-Header: Accept-Language |
Gibt an, welche Sprachen vom Browser unterstützt werden. Darauf basierend können vom
Webserver die Daten in der bevorzugten Sprache des Nutzers bereitgestellt werden. |
ⓘ HTTP-Header: User-Agent |
Das User-Agent Feld übermittelt dem Webserver Informationen zum verwendeten Browser und
dessen Versionsnummer, dem verwendeten Betriebssystem und unter Umständen auch den Namen des
verwendeten Endgerätes. Diese Informationen können vom Webserver genutzt werden, um
spezifisch angepasste Inhalte auszuliefern. |
ⓘ HTTP-Header: Do Not Track |
Der "Do Not Track" Vermerk kann in den Browser-Einstellungen aktiviert werden. Ist dies
der Fall, so wird Websites beim Aufruf mitgeteilt, dass das eigene Nutzerverhalten nicht getrackt
werden soll. Ob diese Information jedoch tatsächlich berücksichtigt wird, ist den Website-Betreibern
selbst
überlassen. Der Wirksamkeit dieser Einstellung sollte man somit eher skeptisch gegenüberstehen. |
Die folgenden Daten über dein Gerät wurden durch Ausführung von
JavaScript-Code erhoben.
Element |
Wert |
ⓘ Useragent |
|
Das User-Agent Feld übermittelt dem Webserver Informationen zum verwendeten Browser und
dessen Versionsnummer, dem verwendeten Betriebssystem und unter Umständen auch den Namen des
verwendeten Endgerätes. Diese Informationen können vom Webserver (bzw. der Website) genutzt werden,
um
spezifisch angepasste Inhalte auszuliefern. |
ⓘ Bevorzugte Sprachen |
|
Ermittelt die vom Browser unterstützten Sprachen. Darauf basierend können vom Webserver
die Daten in der bevorzugten Sprache bereitgestellt werden. |
ⓘ UTC-Zeitzonendifferenz |
|
Differenz der örtlichen/lokalen Zeit zur Coordinated Universal Time (UTC). |
ⓘ Auflösung Bildschirm |
|
Ermittelt die volle Bildschirmauflösung des verwendeten
Geräts. Diese Werte können von Websites ermittelt werden, um z.B. kleinen Geräten Fotos in
geringerer Auflösung auszuliefern, um die Datenmenge möglichst gering zu halten. |
ⓘ Verfügbare Auflösung |
|
Ermittelt die verfügbare Bildschirmauflösung des
verwendeten Geräts.
Bedienoberflächen wie bspw. die Taskleiste bei Windows werden der vollen Bildschirmauflösung
abgezogen. |
ⓘ Pixelverhältnis |
|
Gibt das Verhältnis zwischen logischen und physischen Pixeln an. Ein iPhone 13 Mini hat
bspw. eine logische Auflösung von 375 x 812 px, aufgrund des scharfen Displays jedoch eine
tatsächliche, physische Auflösung von 1080 x 2340 px. Damit Websites auf solch hochauflösenden
Geräten nicht zu klein angezeigt werden, erfolgt mittels des Pixelverhältnisses eine Umrechnung auf
eine gewohnte, gut lesbare Darstellungsgröße. Das Pixelverhältnis ist somit stark gerätespezfisch.
|
ⓘ Farbtiefe |
|
Die Farbtiefe gibt an, wie viele Bits der Bildschirm für die Darstellung einer Farbe
verwendet. Während ältere Geräte eine Farbtiefe von teils sogar nur 8 Bit haben, beträgt die
Farbtiefe bei modernen Geräten meist 24 oder 32 Bit. Bei einer Farbtiefe von 24 Bit können
insgesamt 16,8 Mio. verschiedene Farbwerte dargestellt werden. |
ⓘ Touch-Punkte |
|
Ermittelt, wie viele Touch-Punkte eines Displays gleichzeitig genutzt werden können. Bei
Geräten ohne Touchscreen wird null zurückgeliefert. |
ⓘ Cookies |
|
Ermittelt, ob der Browser das Setzen von Cookies erlaubt, oder ob dies in den
Einstellungen oder durch eine Erweiterung deaktiviert wurde. Cookies sind kleine Textdateien, die
beim ersten Aufruf einer Website im Webbrowser gespeichert werden, und bei jedem weiteren
Website-Aufruf wieder an die Website übertragen werden können. Somit kann bspw. in Onlineshops der
Inhalt eines Warenkorbs auch ohne Login gespeichert werden. Abseits dieser legitimen Interessen
kommen Cookies jedoch vor allem zum Einsatz, um das Surfverhalten der Website-Nutzer zu analysieren,
Nutzerprofile zu bilden und darauf basierend personalisierte Werbung anzuzeigen bzw. andere
Marketingabsichten zu verfolgen.
|
ⓘ Session Storage |
|
Im sogenannten Session Storage lassen sich während der Browser-Sitzung Informationen in
Textform abspeichern und auslesen. Ob dieser Speicher nutzbar ist wird hier durch einen Versuch
getestet, bei dem ein Wert in den Session-Storage geschrieben und direkt im Anschluss wieder
gelöscht wird. Lässt sich dieser Schritt durchführen, so kann schlussgefolgert werden, dass der
Session Storage genutzt werden kann und nicht durch Browser-Einstellungen blockiert wird. |
ⓘ Local Storage |
|
Die Local Storage Funktionalität entspricht der des Session Storage (s. oben).
Der Unterschied ist jedoch, dass im Local Storage gespeicherte Daten nicht automatisch beim
Verlassen der Website gelöscht werden, sondern persistent sind. Die Verfügbarkeitsprüfung erfolgt
nach gleichem Schema wie beim Session Storage. |
ⓘ Indexed Database |
|
In der sogenannten Indexed Database lassen sich größere Mengen an strukturierten Daten
browserseitig ablegen. Genutzt werden kann diese integrierte Datenbank, um bspw. Notizen-Einträge
einer Webanwendung dem Nutzer auch ohne Internetzugriff zugänglich zu machen. |
ⓘ Logische CPU-Kerne |
|
Ermittelt, wie viele logische Prozessoren auf dem verwendeten Gerät genutzt werden
können. Das Ergebnis kann unter Umständen leicht von der tatsächlichen Anzahl des Gerätes
abweichen. |
ⓘ Ad-Blocker |
|
Prüft, ob Werbeanzeigen automatisch blockiert werden, z.B. per Browser-Erweiterung.
Hierfür wurde der Webseite ein leeres, unsichtbares Werbeelement implementiert, das aufgrund seiner
Charakteristik automatisch herausgefiltert werden würde, falls ein Adblocker aktiv ist. |
ⓘ WebGL Vendor |
|
Ermittelt über die WebGL (Web Graphics Library) JavaScript-Schnittstelle, die für das
Rendern von 3D-Grafiken verfügbar ist, den Anbieter des Grafiktreibers.
|
ⓘ WebGL Renderer |
|
Ermittelt über die WebGL (Web Graphics Library) JavaScript-Schnittstelle, die für das
Rendern von 3D-Grafiken verfügbar ist, weitere Informationen über den Grafikkartentreiber und die
Grafikkarte. |
ⓘ Canvas Fingerprint |
|
Bei einem Canvas-Element handelt es sich um eine zweidimensionale Grafik, die per
JavaScript Code generiert wird und vom Browser angezeigt werden kann. Auch wenn die hier erstellte
Grafik auf verschiedenen Geräten sehr ähnlich oder sogar identisch aussieht, gibt es
dennoch
feinste Unterschiede. Diese Unterschiede entstehen u.a. durch den verwendeten
Browser, die verbaute Grafikkarte, installierte Schriftarten, vordefinierte Regeln zur
Kantenglättung, und abhängig vom Betriebssystem unterschiedlich aussehende Emojis. Nach der
Darstellung des Canvas-Elements wird aus der Grafik ein Hash-Wert generiert. Die Wahrscheinlichkeit,
dass dieser Hash-Wert bei verschiedenen
Geräten identisch ist, ist unwahrscheinlich. Im echten Fingerprinting-Einsatz werden diese
Canvas-Elemente im Hintergrund geladen, so dass sie für den Nutzer nicht sichtbar sind. |
ⓘ Installierte Schriftarten |
|
Verschiedene Schriftarten unterscheiden sich abseits ihrer visuellen Erscheinung auch
meist in ihre Wortbreite und Höhe. Um die auf dem Gerät installierten Schriftarten zu ermitteln,
wird zuerst im Hintergrund ein Referenzwort in der Standardschriftart des Geräts erstellt und
vermessen. Im Anschluss wird versucht, das gleiche Wort in einer anderen Schriftart zu laden. Dieses
wird ebenfalls vermessen. Ist die zu testende Schriftart auf dem Gerät nicht installiert, wird sie
durch die Standardschriftart ersetzt, wodurch das Wort die gleiche Breite und Höhe wie das
Referenzwort hat. Wenn sich Breite und Höhe jedoch unterscheiden, ist davon auszugehen, dass die zu
testende Schriftart installiert ist. Wird neben Standardschriftarten des jeweiligen
Betriebssystems bspw. eine weitere, außergewöhnliche Schriftart entdeckt, so kann man anhand dessen
leicht wiedererkannt werden. |