Eine neue Website der EFF macht aus scheinbar harmlosen Browserparametern einen digitalen Fingerabdruck. Er lässt sich ohne Cookies zur Erkennung von Surfern einsetzen. ZDNet zeigt, wie damit jede Privatsphäre ausgehebelt wird.
Die Verwendung eines anonymen Proxys oder die Nutzung des Tor-Netzwerkes[1] kann davor schützen, dass die eigene IP-Adresse an einen Websitebetreiber übermittelt wird - zumindest wenn man davon ausgeht, dass der Proxybetreiber oder der Tor-Exit-Node diese Information nicht weitergibt.
Die Electronic Frontier Foundation[2] (EFF) hat jetzt allerdings herausgefunden, dass es neben IP-Adresse und Cookies noch ganz andere Methoden gibt, einen Nutzer zu identifizieren. Mit ein paar Zeilen Javascript-Code ist es möglich, so viele Information aus dem Browser des Benutzer herauszubekommen, dass es äußerst unwahrscheinlich ist, weltweit mehr als zehn Rechner zu finden, die die dieselben Informationen liefern. So lässt sich ein User auf einer Website immer wiedererkennen.
Ausprobieren lässt sich das durch Aufruf der Pantopticlick-Website[3] der EFF. Dort kann man ablesen, welche Informationen jede beliebige Website von einem Browser bekommen kann, siehe Bild 1[4]. So kann die EFF bereits am Useragent-String erkennen, dass nur einer von 301,94 Browsern den Useragent-String Mozilla/5.0 (Windows; U; Windows NT 6.0; de; rv:1.9.2) Gecko/20100115 Firefox/3.6 (.NET CLR 3.5.30729) nutzt. Den Accept-Header aus Bild 1 nutzt einer von 16,23 Browsern.
Allein aus diesen beiden Strings ergibt sich eine theoretische Wahrscheinlichkeit, dass nur einer von etwa 4900 Browsern diese Kombination von Useragent-String und Accept-Header verwendet. Allerdings hilft eine theoretische Betrachtung in diesem Fall nicht weiter, da die Parameter nicht unabhängig sind. Aus dem Useragent-String ergibt sich, dass im ZDNet-Test Firefox 3.6 genutzt wurde. Der Accept-Header von Firefox-3.x-Browsern ist jedoch in den meisten Fällen sehr ähnlich. Unterschiede ergeben sich meist nur durch die Sprachversion.
Aber es gibt weitere Parameter, die der Betreiber einer Website abfragen können. Bei Firefox bietet sich an, alle Plug-ins aufzulisten, siehe Bild 2[5]. Dabei kommt meist eine beachtliche Liste zusammen. Laut Statistik der EFF verwendet nur einer von 171.805 Browsern eine identische Liste von Plug-ins wie der Testrechner im ZDNet-Labor.
Die EFF wertet neben den genannten Parametern die Bildschirmauflösung, die installierten Fonts und die eingestellte Zeitzone aus. Als Gesamtergebnis kann die EFF feststellen, dass nur einer von zirka 257.000 Browsern dieselben Parameter übermittelt wie der Testrechner aus dem ZDNet-Labor.
Bild 3[7] zeigt, dass der Internet Explorer 8 auf demselben Testrechner sogar einzigartig in der EFF-Datenbank mit über 520.000 Browsersamples ist. Er kann zwar nicht mit so vielen Plug-ins aufwarten wie Firefox, dafür gibt er bereits beim Useragent-String sehr spezifische Details über die Rechnerkonfiguration preis.
Ein Websitebetreiber, der einen Nutzer in der Praxis wiedererkennen möchte, muss allerdings einen größeren Aufwand betreiben. So wird ein Anwender über die Zeit weitere Plug-ins installieren und bestehende aktualisieren. Kauft er sich einen neuen Bildschirm, meldet der Browser eventuell eine andere Auflösung. Allerdings ändern sich meist nur wenige Parameter. Ein komplett neues Browserprofil erhält man in der Regel nur beim Kauf eines neuen Rechners.
Wer seine Anwender wiedererkennen möchte, muss also Heuristiken anwenden, wie viele Parameter sich in einem bestimmten Zeitraum ändern dürfen, so dass ein Benutzer als identifiziert gilt. Dabei bietet sich ein Punktesystem an, das Veränderungen bewertet. So ist es relativ unwahrscheinlich, dass ein Benutzer Fonts deinstalliert. Dass ein User zusätzliche Schriftarten installiert, ist hingegen nichts Ungewöhnliches. Oft geschieht das sogar unbewusst durch die Installation einer neuen Anwendung.
In der Regel benötigt eine Website nicht so detaillierte Informationen, wie sie die marktüblichen Browser ohne jede Nachfrage an den Websitebetreiber weitergeben. Eine Website sollte zwar den Browser und seine Version kennen, jedoch ist eine detaillierte Auflistung der Plug-ins nicht erforderlich. Auf ein fehlendes Flash-Plug-in oder Java kann man den Benutzer mit einfachem HTML-Code auch ohne eine Plug-in-Liste hinweisen.
Man sollte annehmen, dass die Browser zumindest im privaten Modus nicht ganz so freizügig mit den Informationen sind, die sie an fremde Websites übermitteln. Die Bilder 9 und 10[8] beweisen jedoch das Gegenteil. Sowohl Firefox 3.6 als auch Internet Explorer 8 senden im privaten Modus exakt dieselben Parameter wie im Normalmodus.
Das Hinterhältige an den abfragbaren Browserparametern ist, dass sie von jeder Website abgerufen werden können. Das macht sie gefährlicher als Cookies.
Wenn die Website example.com ein Cookie beim Benutzer setzt, dann kann dieses Cookie nur von example.com abgefragt werden. Andere Websites haben bei modernen Browser mit den Default-Sicherheitseinstellungen keine Chance. Angriffe auf fremde Cookies sind nur durch Modifikation der Namensauflösung wie DNS-Spoofing oder Modifikation der Hosts-Datei möglich.
Denkbar ist beispielsweise, dass ein Online-Händler, bei dem man Liefer- und Rechnungsanschrift hinterlegt hat, in finanziellen Schwierigkeiten steckt und die Browserparameter seiner Kunden sammelt und zusammen mit Name und Anschrift verkauft. Ebenso ist ein Hackerangriff auf eine seriöse Site denkbar, bei der man seine Adressdaten angegeben hat.
Der Aufbau einer solchen Datenbank mit Browser-Fingerprints ist nicht nur für Cyberkriminelle sehr wertvoll. Auch Ermittlungsbehörden aus dem In- und Ausland könnten ein Interesse daran haben, solche Datenbanken einzusetzen, wenn ein Nutzer seine IP-Adresse verschleiert.
Ein Interesse an Browser-Fingerprints könnten auch P2P-Schnüffelfirmen haben. Wenn sie Filesharer auf ihre eigene Webseite locken, können sie mit hoher Wahrscheinlichkeit "Wiederholungstäter" identifizieren, die gegen eine strafbewährte Unterlassungserklärung verstoßen. In diesem Fall lassen sich statt Abmahnungen hohe Vertragsstrafen einklagen.
Wenn man einmal davon ausgeht, dass die überwiegende Anzahl der Nutzer mit identifizierbarer IP-Adresse im Netz unterwegs ist, dann ergeben sich recht interessante Szenarien. Die IP-Adresse verrät genug über den Nutzer, um den Internetanschluss örtlich sehr stark einzugrenzen. In Verbindung mit abgefragten Browserparametern dürfte eine Verwechslung faktisch ausgeschlossen sein.
Die EFF schätzt, dass es meist ausreicht, die Postleitzahl, das Geburtsdatum und das Geschlecht zu kennen, um eine Person eindeutig zu identifizieren. Mit der IP-Adresse kennt man den Provider und den ungefähren Standort. Kombiniert man diese Informationen mit den Browserparametern, dann lassen sich Nutzer immer wieder erkennen.
Den Internetprovider und findet man mit whois heraus, siehe Bild 4[9]. Manche Provider, etwa die Deutsche Telekom, sind recht auskunftsfreudig, ob es sich um eine statische IP-Adresse handelt, die sich nie ändert, siehe Bild 5[10]. Das macht es noch leichter, einen Nutzer wiederzuerkennen.
Per Reverse-DNS der User-IP-Adresse lässt sich meist nicht mehr herausfinden als das, was man über whois bereits erhalten hat. Allerdings kann man den Standort meist genauer lokalisieren, wenn man die IP-Router mit traceroute (Windows: tracert) verfolgt, siehe Bild 6[11]. In Zeile 5 sieht man die Reverse-DNS-Auflösung eines Routers mit dem Namen bs-ea1-i.BS.DE.NET.DTAG.DE. Die Deutsche Telekom verwendet Kfz-Kennzeichen, also BS für Braunschweig.
Grundsätzlich kann man IP-Adressen der Deutschen Telekom nur bis zur nächstgrößeren Stadt auflösen, deren Vorwahl ohne die Null nicht mehr als drei Ziffern hat. In dem gezeigten Beispiel ist das 0531 für Braunschweig. Die IP-Adresse liegt daher irgendwo im Vorwahlgebiet 053xx. Zu dieser Regel gibt es allerdings Ausnahmen: Im westlichen Ruhrgebiet lassen sich die Städte, deren Vorwahl mit 020 beginnt, nur mit der Genauigkeit "Düsseldorf oder Umgebung" bestimmen. Weitere Ausnahme stellen unter anderem Donauwörth (0906) und Hallbergmoos (0811) dar.
Andere Provider verwenden keine Kfz-Kennzeichen, sondern andere Abkürzungen, die man mit ein wenig gesundem Menschenverstand leicht "entschlüsselt". So lässt sich herausfinden, dass Vodafone (vormals Arcor) jede Stadt mit drei Zeichen abkürzt, beispielsweise HAM (Hamburg), DUS (Düsseldorf) oder ESN (Essen).
Von den großen Providern ist Kabel Deutschland lobend hervorzuheben, was den Datenschutz der IP-Adresse angeht. Bild 7[12] zeigt, dass der Kabelanbieter keine geografische Information im Reverse-DNS seiner Router preisgibt.
Wenn der Provider keine ortsbezogenen Daten in den Hostnamen seiner Router eingebaut hat, kann man mithilfe eines IP-Lokalisationsdienstes den Standort meist ungefähr bestimmen. Einen solchen Dienst bietet beispielsweise Netip.de[13] an.
Was Kabel Deutschland nicht preisgeben will, findet Netip in Sekundenschnelle, siehe Bild 8[14]. Zwar ist die Ortsangabe nicht ganz korrekt, statt in Gräfelfing war die IP-Adresse zum Zeitpunkt der Abfrage in Neufahrn bei Freising geschaltet, jedoch muss man grundsätzlich die Genauigkeit auf die Umgebung der nächstgrößeren Stadt beschränken.
Die Geolokalisationsdienste wie Netip.de oder IP2Location.com[15] arbeiten jedoch nicht fehlerfrei. Große Provider ändern die örtliche Zuweisung ihrer IP-Adressräume recht häufig. Diese Dienste haben oft veraltete Datenbestände oder geben einfach den Ort des Firmensitzes des Providers als Standort an.
So vermutete Netip.de eine IP-Adresse der Deutschen Telekom aus Leipzig in Oldenburg. Grundsätzlich gilt, dass die Eingrenzung mit traceroute aktuellere und bessere Ergebnisse liefert.
Anonyme Proxies und andere Anonymisierungsdienste wie Tor müssen in diesem Zusammenhand mit großer Vorsicht betrachtet werden. So ist es zwar möglich, im HTTP-Protokoll die IP-Adresse zu verstecken. Erweiterungen wie Java, Javascript oder Flash sind jedoch in der Lage, die echte IP-Adresse zu ermitteln und an den Betreiber der Website über ein beliebiges anderes Protokoll zu senden. Nur, wer alle Erweiterung konsequent deaktiviert, kann seine IP-Adresse tatsächlich verbergen.
Wer wirklich anonym surfen möchte, kann dies nur mit erheblichen Einschränkungen realisieren. Dazu gehört ein sicheres Verschleiern der IP-Adresse mittels eines anonymen Proxys oder Tor. Zudem muss man darauf vertrauen, dass der Betreiber des Proxys oder des Tor-Exit-Nodes integer ist und keine Daten mitloggt oder weitergibt.
Zudem ist es nötig, alle Erweiterungen inklusive Javascript zu deaktivieren. Weitere Anonymität kann man sich mit der Firefox-Erweiterung TorButton[16] verschaffen. Neben der Nutzung des Tor-Netzwerkes reduziert TorButton den Useragent-String auf das notwendige Minimum.
Wer alle Sicherheitsrichtlinien beachtet wird feststellen, dass Surfen auf diese Weise keinen Spaß macht. Viele Websites sind ohne Javascript oder Flash gar nicht darstellbar. An Ajax-Anwendungen, etwa Google Docs[17], ist gar nicht zu denken.
Die Geschwindigkeit wird durch die Nutzung anonymer Proxies stark reduziert. Dies gilt insbesondere für das Tor-Netzwerk, bei dem der Datenverkehr mehrere Hosts durchläuft, bis er vom Exit-Node an den Zielserver gelangt.
Gefordert sind vor allem die Browserhersteller. Im privaten Modus sollten keine Erweiterungen, Fonts, Zeitzonen oder Bildschirmauflösungen preisgegeben werden. Die Javascript-Engine sollte auf diese Daten erst gar nicht zugreifen dürfen. Außerdem sollte der Useragent-String auf ein notwendiges Minimum reduziert werden.
Mit einem privaten Modus, der diesen Namen auch verdient, könnte man alle Erweiterungen außer Javascript deaktivieren. So ließen sich viele Websites unter Wahrung der Privatsphäre nutzen. Stand heute muss man festhalten, dass ein Websitebetreiber jederzeit in der Lage ist, einen Nutzer mit an Sicherheit grenzender Wahrscheinlichkeit wiederzuerkennen. IP-Adresse oder Cookies braucht er dafür nicht.
URLs in diesem Artikel:
[1] = http:/
[2] = http:/
[3] = http:/
[4] = bildergalerien_
[5] = bildergalerien_
[6] = http:/
[7] = bildergalerien_
[8] = bildergalerien_
[9] = bildergalerien_
[10] = bildergalerien_
[11] = bildergalerien_
[12] = bildergalerien_
[13] = http:/
[14] = bildergalerien_
[15] = http:/
[16] = https:/
[17] = http:/