ETag-Tracking deaktivieren

ETags sind kleine Informationen über eine Ressource (eine HTML-Seite, eine Grafik, ein Video usw.), die zwischen Webserver und Browser ausgetauscht werden, um unnötige Übertragungen zu vermeiden.

Dabei sendet der Server mit jeder abgerufenen Ressource eine Art Fingerabdruck eben dieser im ETag-Header mit. Der Browser merkt sich diesen Fingerabdruck und sendet ihn bei jeder erneuten Anforderung der gleichen Ressource wieder an den Server zurück. Dieser kann nun den erhaltenen Fingerabruck mit seinem aktuellen vergleichen und so entscheiden, ob sich überhaupt etwas geändert hat. Ist der Fingerabruck, also der ETag, nämlich identisch, so schickt der Server einfach den Code 304 an den Browser zurück. Dies bedeutet: 'Es hat sich nichts geändert, lieber Browser. Deine Version in deinem Cache ist noch immer aktuell.'

Dieser an sich sehr sinnvolle Header läßt sich jedoch hervorragend zum Tracken missbrauchen. Mittels einer Datenbank mit bekannten ETags und der weit verbreitenten Browsererkennung kann so - wenn die Webseiten-Betreiber mitspielen, was leider auch ettliche tun - der Surfer exakt verfolgt werden. Dies funktioniert auch über verschiedene Webangebote hinweg. Anhand des ETag kann ermittelt werden, was wann und in welcher Reihenfolge aufgerufen wurde. So entsteht mit der Zeit und wachsender ETag-Datenbank ein nahezu lückenloses Surfprofil.

Abhilfe

Dem ist man jedoch nicht hilflos ausgesetzt. Um diese Form des Trackings zu unterlaufen, reicht es völlig aus, den Versand des ETag-Headers zu unterbinden. Das kann auf verschiedene Weise geschehen. Beispielsweise durch einen zwischengeschalteten Proxy, welcher die betreffenen Kopfzeilen herausfiltert. Eine andere Möglichkeit ist das Abschalten der Ressourcen-Caches. Dies kann jedoch tricky sein und hat auch unschöne Nebenwirkungen wie den Verlust der Offline-Browsing-Funktionalität.

Zumindest beim Firefox (getestet mit Version 3.6.17) gibt es eine einfachere Möglichkeit. Dort läßt sich unter about:config mit network.http.use_cache false die Nutzung des HTTP-Caches deaktivieren. Dies bewirkt dann, dass keinerlei ETags mehr vom Browser an den Server übermittelt werden. Der Server antwortet dann auch mit Code 200 (OK) und sendet die gewünschte Ressource erneut. Das führt natürlich zu einem geringfügig langsameren Seitenaufbau, da gecachte Daten nicht mehr verwendet werden. Meines Erachtens ist das ein kleiner, durchaus tragbarer Preis dafür, nicht mehr ungefragt auf diese Weise getrackt zu werden.

... bis zur nächsten Tracking-Idee...