Wer weiß was über Alice?
IP-Adressen, Cookies, Web-Bugs und weitere technische Identifikationsmerkmale

Kommunikation im Internet ist in Analogie zum traditionellen Briefversand einfach zu verstehen (weitere Informationen liefern einschlägige Lehrbücher über Rechnernetze und meine Vorlesungsfolien): Zur Verbindung mit dem Internet wird jedem Rechner vom Provider eine ↑IP-Adresse zugewiesen, so dass der Rechner im Internet eindeutig adressierbar und damit identifizierbar wird. Vom Rechner eines Senders werden alle Daten in Paketen, die mit IP-Adressen von Sender und Empfänger versehen sind, schrittweise über spezielle Rechner (sog. Router — diese entsprechen Postkästen und Briefverteilzentren) zum Empfänger weitergeleitet. Basierend auf der Absenderadresse kann der Empfänger dann Antworten verschicken.

Diese Darstellung verdeutlicht, dass jeder Router entlang des Weges von der Absenderin Alice zum Empfänger Bob sehen kann, dass Alice und Bob kommunizieren (so wie für jede/n am Transport eines Briefes Beteiligte/n die Anschriften von Absender und Empfänger sichtbar sind). Wenn die Kommunikation unverschlüsselt abläuft, was dem Regelfall bei E-Mail, Chat, Diskussionsforen, und Web-Seiten entspricht, kann jeder Router darüber hinaus sehen, worüber Alice und Bob sich austauschen (so wie eine Postkarte überall während des Transportes gelesen werden kann).

Im Gegensatz zum traditionellen Briefversand besteht eine Besonderheit im Internet darin, dass Alice sich bei der Einwahl ins Internet, also insbesondere vor jeder Kommunikation bei ihrem Internet Provider zu Abrechnungszwecken ausweisen muss, und dass sämtliche ihrer Kommunikationsdaten über mindestens einen Router ihres Providers vermittelt werden. (In Analogie zur Post hieße das, dass Alice jeden Brief unter Ausweiskontrolle bei genau einer Poststelle absenden müsste.) Dementsprechend ist Alice' Provider in der Lage, jeden ihrer Schritte im Internet zu protokollieren. Verständlicherweise möchte Alice das nicht, und daher setzt sie JAP/JonDo oder Tor als Anonymisierungstechnik ein, um dies zu verhindern. (Der Provider kann auch eine längere Internet-Abstinenz des Internet-Junkies Alice wahrnehmen und interpretieren.)

Zusätzlich gibt es im Internet weitere Parteien, die daran interessiert sind, Profile über Alice zu erstellen, beispielsweise für personalisierte Werbung („... dieses Buch könnte Ihnen gefallen...“). Da Alice bei jeder Internet-Nutzung von ihrem Provider eine andere IP-Adresse zugewiesen bekommen könnte, haben diese weiteren Parteien es schwieriger, Alice zuverlässig zu identifizieren bzw. ihre Handlungen unter verschiedenen IP-Adressen miteinander in Beziehung zu setzen.

Das gängigste auf Web-Servern eingesetzte Mittel zur Nutzeridentifikation und -überwachung, auch bei wechselnden IP-Adressen, sind ↑Cookies. Vereinfachend kann man sich ein Cookie als einen Ausweis (mit einer praktisch unbegrenzten Gültigkeit) vorstellen, den ein Web-Server, nennen wir ihn Sara, Alice' Web-Browser übergibt. Der Browser zeigt diesen Ausweis dem Server Sara bei jedem weiteren Besuch von Alice, ohne dass Alice etwas machen müsste. Alice muss von der Existenz dieses Ausweises nicht einmal wissen. Dadurch kann Sara genau protokollieren, wann Alice welche Web-Seiten bei ihr angesehen hat. Wenn Sara z. B. eine Online-Händlerin mit umfangreichem Sortiment ist oder auch eine Suchmaschine, kann sie viel über Alice lernen. Verständlicherweise möchte Alice das nicht, und daher konfiguriert sie ihren Browser so, dass sie Kontrolle über Cookies erhält.

Cookies haben für neugierige Parteien (manche sehen sich als Werbeagenturen) den Nachteil, dass sie vom Web-Browser nur Servern der ausstellenden ↑DNS-Domäne präsentiert werden. Wenn also z. B. http://www.informationelle-selbstbestimmung-im-internet.de/ Cookies an Web-Browser verteilt, dann werden diese Cookies nur Servern präsentiert, deren Name auf informationelle-selbstbestimmung-im-internet.de endet. (Theoretisch jedenfalls. In der Praxis können sowohl Programmierfehler in Browsern als auch ↑Cross-Site-Scripting-Angriffe dafür sorgen, dass Cookies an weitere Parteien gesendet werden.)

Hier kommen Web-Bugs als weit verbreitete Technik zur Erstellung von Profilen über Grenzen von DNS-Domänen ins Spiel. Web-Bugs sind Verweise auf typischerweise unsichtbare Bilder (1x1 Pixel) eines anderen Servers Eve. Diese Verweise werden auf einer Web-Seite von Sara so eingebettet, dass Alice' Web-Browser das Bild automatisch von Eve lädt, wenn Alice Sara besucht. (Durch Kommentare gekennzeichnete Beispiele für Web-Bugs finden sich in den Artikeln des ↑Heise-Newstickers: Man suche im Quelltext nach dem Kommentar <!- IVW-Pixel ->…) Eve kann zusammen mit dem Bild auch Cookies an Alice' Web-Browser senden. Auf diese Weise erfährt Eve, welche Seiten Alice sich bei Sara anschaut, ohne dass Alice wissen müsste, dass Eve überhaupt existiert. Typischerweise überzeugt Eve (wie wohl?) viele Server-Betreiber davon, Verweise auf ihre unsichtbaren Bilder anzulegen, um die Besuche auf verschiedenen Web-Servern miteinander korrelieren zu können und so möglichst viel über Alice zu lernen. Verständlicherweise möchte Alice das nicht, und daher konfiguriert sie ihren Browser so, dass sie Kontrolle über Bilder fremder Server und damit auch Web-Bugs erhält.

Weiterhin können Web-Bugs auch in E-Mails eingebettet werden, wodurch Dritte lernen, ↑ob, wann, von wo und wie lange Alice speziell präparierte E-Mails liest. Verständlicherweise möchte Alice das nicht, und daher benutzt sie ein E-Mail-Programm, das E-Mails (auch HTML-Inhalte) als ASCII-Texte anzeigt. (Die Internet-Götter gebieten in der ↑Netiquette, dass man mittels E-Mail Textnachrichten schreibt, dass man größere Dateien mit Dateitransferprogrammen überträgt und dass man sich bunte Seiten im Web-Browser ansieht. Alice ist zwar nicht gläubig, aber einsichtig.)

Schließlich können selbst auf den ersten Blick harmlose Mechanismen wie der Browser-Cache und die Chronik missbraucht werden, um Alice' Surfverhalten auszuspionieren. Durch ↑Caching kann ein Browser Web-Inhalte auf der lokalen Festplatte speichern, so dass beim Besuch einer Web-Seite nicht jedes Mal alle Inhalte aus dem Internet geladen werden müssen, sondern im Idealfall nur noch die, die sich seit dem letzten Besuch geändert haben. Obwohl Caching im Internet zunächst eine nützliche Technik ist, um Latenzzeiten zu reduzieren und Bandbreite zu sparen, kann sie auch missbraucht werden, um Benutzer unbemerkt zu identifizieren.

Um Caching zu ermöglichen, sendet ein Web-Server neben der eigentlichen Web-Seite auch Verwaltungsinformationen in HTTP-Headern, damit Browser und Server sich einigen können, welche Inhalte bereits im Cache vorliegen und welche noch geladen werden müssen. Beim Besuch von http://www.informationelle-selbstbestimmung-im-internet.de/ sendet der Web-Server unter anderem einen ETag-Header wie den folgenden:

Etag: "1e9805a-1ef4-443906cc"
Der Browser legt die Seite dann in seinem Cache ab und sendet bei folgenden Aufrufen der Seite http://www.informationelle-selbstbestimmung-im-internet.de/ unter anderem den folgenden HTTP-Header:
If-None-Match: "1e9805a-1ef4-443906cc"
Dadurch ist der Web-Server zunächst in der Lage zu erkennen, ob sich die Seite zwischenzeitlich geändert hat oder nicht. Entsprechend kann er dem Browser entweder mit einer aktualisierten Seite antworten oder ihm mitteilen, dass dessen Version im Cache noch aktuell ist. So weit, so gut.

Für Alice ist allerdings nicht zu erkennen, welche Informationen sich hinter dem Wert 1e9805a-1ef4-443906cc verbergen. Es ist insbesondere nicht klar, ob alle Besucher denselben Wert erhalten (und an den Web-Server zurücksenden) oder ob der Web-Server für jeden Besucher einen identifizierenden Wert erzeugt. Falls letzteres der Fall sein sollte, kann der Web-Server jeden Besucher mit Hilfe des Caching-Mechanismus identifizieren. (Dass ich http://www.informationelle-selbstbestimmung-im-internet.de/ als Beispiel verwende, bedeutet nicht, dass hier identifizierende ETags verwendet werden. Soweit ich weiß…)

Weitere Informationen zu dieser Problematik sowie möglichen Gegenmaßnahmen in Form von Firefox-Erweiterungen finden sich unter ↑http://www.safecache.com/ und ↑http://www.safehistory.com/.

Eine andere Partei, die viel über Alice' Internet-Aktivitäten lernt, ist ihr ↑DNS-Server. DNS hat im Internet die zentrale Aufgabe, den für Menschen lesbaren WWW-Adressen wie www.informationelle-selbstbestimmung-im-internet.de die für maschinelle Kommunikation notwendigen IP-Adressen zuzuordnen. Wenn Alice also www.informationelle-selbstbestimmung-im-internet.de als Adresse in ihrem Browser eintippt, befragt der Browser zunächst einen DNS-Server nach einer IP-Adresse zu diesem Namen und führt die Kommunikation dann unter Verwendung der erfragten IP-Adresse durch. Aus der DNS-Anfrage des Browsers lernt der Betreiber des DNS-Servers, dass Alice sich für informationelle Selbstbestimmung im Internet interessiert. Verständlicherweise möchte Alice das nicht, und daher setzt sie JAP/JonDo oder Tor als Anonymisierungstechnik ein, um dies zu verhindern.

Schließlich gibt es zahlreiche technische Merkmale, die in der Internet-Kommunikation übertragen werden und dazu beitragen, dass Alice identifiziert werden könnte. So werden bei jedem Abruf einer Web-Seite diverse technische Informationen in HTTP-Headern übertragen, unter anderem Name und Version des verwendeten Browsers (HTTP_USER_AGENT) sowie verweisende Web-Seite (HTTP_REFERER) und für Caching relevante Daten (z. B. ETag). Was Ihr Browser berichtet, können Sie auszugsweise ↑dieser HTTP-Demonstration entnehmen oder mit Hilfe der Firefox-Erweiterung ↑Live HTTP headers ansehen.

Über HTML-Header hinaus enthalten die der Internet-Kommunikation zugrunde liegenden Standards ↑IP und ↑TCP so viele Freiheitsgrade, dass sie von verschiedenen Betriebssystemen und sogar verschiedenen Versionen desselben Betriebssystems in Nuancen so unterschiedlich implementiert werden, dass jeder Router und jeder Kommunikationspartner die Betriebssystemversion mit hoher Wahrscheinlichkeit erkennen kann. (Werkzeuge, die dies demonstrieren, sind z. B. ↑nmap und ↑p0f.) Wenn Alice nun eine außergewöhnliche (z. B. außergewöhnlich veraltete) Browser- oder Betriebssystemversion verwendet oder ihren Browser dazu bringt, einen festen und ungewöhnlichen HTTP_REFERER oder HTTP_USER_AGENT zu senden, oder dies alles kombiniert, kann das schon ausreichen, um Alice zu identifizieren. Verständlicherweise möchte Alice das nicht, und daher verwendet sie aktuelle Browser- und Betriebssystemversionen, fummelt nicht unüberlegt an HTTP_REFERER und HTTP_USER_AGENT herum und setzt JAP/JonDo oder Tor als Anonymisierungstechnik ein, wodurch neben ihrer IP-Adresse auch ihre Betriebssystemspezifika verborgen werden.

Ich betone ausdrücklich, dass es mir in den obigen Beschreibungen um Situation geht, wo Alice' Verhalten protokolliert wird, ohne dass es einen Zweck gäbe, dem Alice zugestimmt hätte. Anders sieht die Situation aus, wenn Alice sich durch Angabe von Kennung und Passwort identifiziert, um eine Leistung in Anspruch zu nehmen, etwa beim E-Mail-Abruf über ein Web-Interface oder beim Online-Kauf. Auch in solchen Situationen kommen Cookies zum Einsatz, um Alice' Aktionen zu protokollieren. Dies ist hier auch erforderlich, damit Alice beispielsweise genau die Dinge in ihrem Einkaufskorb und auf ihrer Rechnung wiederfindet, die sie haben wollte. Alice gibt ihre Identität zweckgebunden preis und weiß (hoffentlich), worauf sie sich einlässt.