Mit jedem Besuch einer Webseite hinterlassen Sie im Web eine unverkennbare Spur an Daten. Zwei Faktoren spielen dabei eine Rolle: die HTTP-Header und die IP-Adresse.
Um eine reguläre Kommunikation aufzubauen, braucht der Webserver neben der IP-Adresse vom Browser diverse Zusatzinformationen, die ihm verraten, mit wem er es zu tun hat. Entsprechend liefert er den Content angepasst an die Gegebenheiten aus. Jedoch ergeben diese Zusatzinformationen in ihrer Gesamtheit ein einzigartiges Profil, das dem Webserver erlaubt, Besuche aus der Vergangenheit einem bestimmten Rechner respektive Nutzer zuzuordnen.
Das Gold der Gegenwart heißt Daten respektive Informationen. Je mehr Unternehmen wie Google oder Facebook davon besitzen, desto transparenter erscheinen ihnen die Besucher, ihre Surfgewohnheiten, Vorlieben und Abneigungen. Daraus gewonnene Profile erlauben es den Firmen zum einen, dem Besucher Werbung quasi auf den Leib zu schneidern, zum anderen bietet sich der Verkauf der Datensätze quasi an.
Informationen
Der Webbrowser übermittelt beim Besuch einer Seite eine Reihe von Informationen. Dazu gehören die IP-Adresse samt Portnummer als Bestandteil der TCP-Verbindung, der Name des Browsers mit Version und genutztem Betriebssystem, der sogenannte User Agent String, von früheren Besuchen gespeicherte Cookies und die von Ihnen im Webbrowser eingestellte Standardsprache. Besuchen Sie die Seite über einen Link von einer anderen Seite, etwa Google, übermittelt der Browser dessen URL, Referrer genannt.
Der frei zugängliche Service von Zendas [1] gibt Aufschluss über die übermittelten Daten (Abbildung 1) samt einer Erläuterung, was sie bedeuten. Die Seite selbst speichert oder verwertet die Daten laut eigener Aussage aber nicht.

Abbildung 1: Welche Informationen ein Webbrowser an eine Seite sendet, im Beispiel etwa Mozilla Firefox, ermitteln Sie am einfachsten mit einer entsprechenden Plattform wie Zendas.
Das Beispiel zeigt, dass der Autor beim Provider über die IP-Adresse 105.225.207.223 surft. Die im Browser eingestellte Sprache ist deutsch, die aufgerufene Webseite benutzt zudem keine Cookies. Das aktivierte Javascript erlaubt es darüber hinaus, weitere Informationen wie die Bildschirmauflösung, die Farbtiefe und die Größe des Fensters auszulesen.
Daraus leitet der Webserver zunächst ab, dass die Anfrage mithilfe eines auf Deutsch eingestellten Mozilla Firefox-Browsers erfolgt, der auf einem 64-Bit-Linux läuft. Die Bildschirmauflösung von 1366×768 Pixeln deutet auf ein Tablet oder Laptop hin. Das Auswerten der IP-Adresse ergäbe, dass der Surfer das Segment eines südafrikanischen Anbieters nutzt.
Als zusätzliche Informationen übermittelt der Browser akzeptierte Dateitypen und Zeichensätze (Encoding) im Rahmen sogenannter Accept Header sowie den Zeitstempel (Abbildung 2).
Neben der IP-Adresse übermittelt der Client noch die situationsabhängige Portnummer 56063. Über diese nimmt er Anfragen an. Er selbst schickt gewöhnlich Anfragen an die Ports 80 oder 443 (HTTP sowie HTTPS). Die Portnummer ändert sich bei jedem Klick, außer sie liegen nur wenige Sekunden auseinander. Darunter steht der vollständige Hostname zur IP-Adresse des Routers, in diesem Fall telkomsa.net vom südafrikanischen Internetprovider Telkom SA. Listing 1 zeigt den vollständigen User Agent String und die Liste der unterstützten Dateitypen und Dateiformate.
Listing 1
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.98 Safari/537.36 text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Der anfragende Client unterstützt die Anzeige von Text als HTML, XHTML und XML sowie Bilder. Wie das Programm dabei priorisiert, sehen Sie anhand der Angabe der relativen Qualität q samt Wert 0.8. Ohne eine solche Angabe gilt 100 Prozent mit einem Wert q=1.0.
Die Information zu den Formaten benötigt der Webserver, um die Ausgabe der Webseite entsprechend aufzubereiten. Fragen Sie etwa die gleiche Webseite mit dem textbasierten Webbrowser W3m in einem Terminal an, liefert dieser als Dateitypen die Werte aus Listing 2.
Listing 2
text/html, text/*;q=0.5, image/*, application/*, audio/*, video/*, zz-application/*, message/*, inode/*, x-scheme-handler/*, x-content/*
Im Alltag bemerken Sie häufig, dass die Inhalte einer Webseite in der Sprache erscheinen, die in Ihrem Webbrowser eingestellt ist, insbesondere dann, wenn die Webseite mehrere Sprachen anbietet. Das passiert aufgrund der Accept Language Header, die ihr Webbrowser im Aufruf mitsendet.
User Agent String
Wie beschrieben, schickt der Webbrowser seine Kennung in Form eines User Agent String (kurz UA string) [2] mit. Die Angabe umfasst Informationen zum Browser, beziehungsweise dessen Kompatibilitätslevel samt dessen Rendering-Engine und der genutzten Plattform, etwa Windows, Linux, Android, Mobile oder Tablet. Die Webseite Useragentstring.com [3] zeigt alle diesbezüglichen Informationen auf einen Blick (Abbildung 3).

Abbildung 3: Die Seite useragentstring.com zeigt im Screenshot den User Agent String von Konqueror an.
Basierend auf dem Standard gemäß RFC 2616 schickt der Webbrowser den User Agent String bei jedem Aufruf einer Seite mit. Diese Angabe dient für statistische Erhebungen, der Fehlersuche sowie dem Anpassen der ausgelieferten Inhalte an spezielle Client-Software.
Diese Entscheidung stammt aus der Frühzeit des Internets, in der jeder Webbrowser seinem eigenen Standard folgte. Alte Hasen erinnern sich sicherlich noch an das Einbauen und Testen von komplizierten Browserweichen in Webseiten, die dazu dienten, die Eigenheiten der verschiedenen Browser-Implementierungen zu berücksichtigen, damit überhaupt eine ähnliche Anzeige der Inhalte möglich war.
In der Praxis
Heute spielt der User Agent String eine andere Rolle und ist vielleicht wichtiger, als Sie bislang glauben. Viele Betreiber einer Webseite nutzen die übermittelten Informationen, um Besucher kennenzulernen und sich auf diese einzustellen. In Kombination mit Cookies erfahren sie, ob und wer häufiger wiederkommt.
Zudem ermitteln Sie darüber, ob die Seite stationär oder mobil ist und richten die Lastverteilung auf dem Server entsprechend aus. Das hilft dem Betreiber, die Ausgabe auf die Mehrheit der Geräte anzupassen, mit dem diese die Seite überwiegend ansurfen.
Der Betreiber einer Webseite profitiert von den Informationen aber auch in Form einer differenzierten Preisgestaltung – er erzielt also bessere Gewinne, wenn er die Streuung auf unterschiedliche Käufergruppen berücksichtigt. Im Klartext bedeutet das, dass jeder Besucher der Webseite einen anderen Preis sieht.
Welchen, entscheiden drei Indikatoren: Die geografische Herkunft, die genutzte Hardware und die verweisende Webseite. Ein durch den User Agent String ableitbares Mac-System erlaubt bei vielen Besuchern schon einmal einen Rückschluss auf ein höheres Einkommen [4][5]. Daher bekommen diese Surfer einen höheren Preis zu sehen. Kommen Sie hingegen von einer Seite für Preisvergleiche, fällt der Preis unter Umständen niedriger aus, als wenn Sie diese direkt ansteuern.
Aber nicht nur die Finanzverhältnisse versuchen die Dienste abzuschätzen, sondern auch die Dringlichkeit des Einkaufs in Verbindung mit der Tageszeit. Hierbei unterstellt der Anbieter, dass ein Einkauf, den Sie etwa über Ihr Smartphone tätigen, dringender ist, als eine Anfrage über den heimischen PC [6].
Ausgetrickst?
Sich im Netz als jemand anderes auszugeben, geht mit Abstrichen selbst ohne Tor oder Anonymizer. Im Mozilla Firefox ändern Sie dazu die Variable general.useragent.override entsprechend Ihren Wünschen. Sie erreichen die Einstellungen, indem Sie about:config in die URL-Zeile eingeben. Mit einem Rechtsklick legen Sie eine neue Variable an und vergeben den gewünschten Wert (Abbildung 4).

Abbildung 4: Ändern Sie User Agent Strings in Mozilla Firefox, weiß die besuchte Seite unter Umständen nicht mehr, von welchem System Sie wirklich kommen.
Der Browser Konqueror hält dazu unter Settings | Configure Konqueror | Browser Identification einen eigenen Menüeintrag (Abbildung 5) vor. Darüber wählen Sie aus, welche User-Agent-Daten der Browser sendet. Einen eigenen Wert wie bei Firefox dürfen Sie allerdings nicht vergeben, dafür aber einen eigenen User Agent String pro Webseite festlegen – bei Firefox gilt dieser für alle Webseiten.
Für die Nützlichkeit dieser Änderungen gibt es mehrere Gründe: Als Entwickler hilft Ihnen das, herauszufinden, wie sich eine Webseite verhält, wenn Sie diese mit einem bestimmten Browser nutzen. Darüber hinaus erfahren Sie, ob die Inhalte anders erscheinen und ob Sie als Besucher stets die gleichen Informationen sehen.
Für das Verhindern des Fingerprinting taugt dieses Vorgehen laut Privacy Handbuch [7] aber nur sehr bedingt. Das liegt daran, dass Webseiten viele weitere spezifische Eigenheiten einbeziehen, etwa die Abfolge der vom Webbrowser gesendeten HTTP-Header. Falls Sie zu gut fälschen, fällt es erst recht auf, weil der User Agent String dann zu ungewöhnlich erscheint, und der gegenteilige Effekt eintritt. Selbst das Verwenden von Erweiterungen wie dem User Agent Switcher nützt nicht immer etwas.
Um das herauszubekommen, wie eindeutig die Spur eines Webbrowsers im Netz ausfällt, hat die Electronic Frontier Foundation (EFF) das Projekt Panopticlick [8] entwickelt. Anhand eines Datenbankabgleichs bezüglich Sprache, HTTP-Headern, Schriften und Plugins erfahren Sie, wie selten Ihr Webbrowser ist (Abbildung 6).

Abbildung 6: Im Test ließ sich der verwendete Firefox eindeutig innerhalb von knapp einer Million anderen untersuchten Browsern identifizieren.
Fazit
Die Informationen, die ein Browser dem angefragten Webserver liefert, sind Segen und Fluch zugleich. Auf der einen Seite erhalten Sie eine präzise auf Ihre Bedürfnisse zugeschnittene Anzeige, auf der anderen hinterlassen Sie in Kombination mit anderen Techniken einen einzigartigen Fingerabdruck, der es erlaubt, Sie jederzeit wiederzuerkennen. Darüber hinaus entscheidet nicht selten der HTTP-Header, wie der Preis für ein Produkt für Sie ausfällt.
Danksagung
Die Autoren bedanken sich bei Axel Beckert für seine Tipps und kritischen Anmerkungen beim Erstellen des Artikels.
Die Autoren
Frank Hofmann arbeitet bevorzugt von Berlin, Genf und Kapstadt aus als Entwickler, Trainer und Autor. Er ist Co-Autor des Debian-Paketmanagement-Buches (http://www.dpmb.org). Mandy Neumeyer arbeitet im Tourismus, lebt seit neun Jahren in Südafrika und baut zurzeit ein zusätzliches Einkommen als digitaler Nomade auf.
Infos
- Zendas: https://www.zendas.de/service/browserdaten.html
- Firefox user agent string reference: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent/Firefox
- User Agent String: http://useragentstring.com
- Preistrick bei Amazon: http://www.chip.de/news/Fieser-Preistrick-bei-Amazon-Apple-Nutzer-za
- Apple-Nutzer zahlen mehr: http://www.spiegel.de/wirtschaft/service/datenauswertung-bei-orbitz-apple-user-zahlen-mehr-fuer-hotelzimmer-a-840938.html
- Abzocke per App: https://www.stern.de/reise/service/flug-buchen-preis-unterschied-smartphone-pc-apple-7266794.html
- Privacy-Handbuch: https://www.privacy-handbuch.de/handbuch_21e.htm
- Panopticlick: https://panopticlick.eff.org





