Surf-Container sind ein Konzept von Mozilla und TorProject.org, um Website-übergreifendes Tracking mit Cookies und EverCookie Techniken zu verhindern.
- Ein Surf-Container enthält alle Daten, die von Webseiten gespeichert wurden, in einer abgeschotteten Umgebung (Cookies, HTML5-Storage, IndexedDB, Cache, TLS Sessions, Shared Workers, HTTP Authentication ... usw.) Diese Daten bilden dann den sogenannten "Context" für das Surfen in diesem abgeschotteten Container.
- Der Zugriff auf Daten in einem anderen "Context" bzw. anderen Surf-Container ist nicht möglich. Somit werden in den verschiedenen "Contexten" unterschiedliche Tracking Markierungen gesetzt oder man könnte sich in unterschiedlichen Surf-Containern mit verschiedene Identitäten bei einer Website anmelden.
Aber: Surf-Container schützen nicht gegen Tracking anhand des Browser Fingerprint!
- Da das gleiche Browser Profil mit identischer Konfiguration und Add-ons genutzt wird und außerdem die IP-Adresse identisch ist, können viele Trackingdienste eine Verknüpfung des Surfverhaltens in unterschiedlichen Containern herstellen!
- Die Verwendung von AdBlockern und NoScript zur Kontrolle von Javascript sind deshalb weiterhin nötig, um sich gegen das allgegenwärtige Tracking zu schützen.
Konzepte für Surf-Container in Firefox
Mozilla hat zwei unterschiedlichen Konzepte für Surf-Container in Firefox implementiert:
FirstParty.Isolate wurde für den TorBrowser unter dem Titel "Cross-Origin Identifier Unlinkability" entwickelt und ist mit Firefox 58+ auch von Mozilla implementiert worden.
Um das Feature zu aktivieren, muss man unter "about:config" folgenden Wert setzen:
privacy.firstparty.isolate = true
Damit wird für jede Domain in der URL-Leiste gemäß Same-Origin-Policy automatisch ein neuer Surf-Container erstellt und alle Daten werden in einem individuellen "Context" gespeichert. Tracking über mehrere Webseiten mit (Ever-)Cookies ist nicht möglich.
Webseiten könnten die Javascript API windows.postMessage verwenden, um Daten zwischen unterschiedlichen Domains auszutauschen, die in verschiedenen Containern gekapselt sind. Um diese Lücke zu schließen, muss man unter "about:config" folgenden Wert setzen:
privacy.firstparty.isolate.block_post_message = true
FirstParty.Isolate kann zu Login Problemen bei einigen Websites führen, die Single Sign-on (SSO) Techniken nutzen. Betroffen sind beispielsweise fast alle Google Dienste, SoundCloud u.a.m. die einen Google Account für die Anmeldung verwenden. Bei diesen Login Problemen kann man mit folgender Option den Schutz aufweichen:
privacy.firstparty.isolate.restrict_opener_access = false
Ein weiterer, kleiner Nachteil von FirstParty.Isolate ist, dass man bei Webseiten, die Googles reCaptcha zur Erkennung von Bots nutzen, immer die visuellen Captchas lösen muss. Google kann die Daten aus dem Surf-Tracking zur Unterscheidung von "Bots vs. Humans" verwenden und wer sich von Google beobachten lässt, müsste keine Captchas lösen.
- userContext steht seit Firefox 50+ zur Verfügung. Es werden mehrere Surf-Container bereitgestellt, die man selbst aktiv auswählen muss. Um das Feature zu aktivieren, muss man zuerst unter der Adresse "about:config" folgende Werte setzen:
privacy.userContext.enabled | = true |
privacy.userContext.ui.enabled | = true |
Die Freigaben für den Zugriff auf Mikrofon, Kamera, Geolocation oder Webnotification können ebenfalls im userContext gekapselt werden und gelten dann nur, wenn die Webseite in einem spezifischen Context aufgerufen wird. Dafür ist folgende Variable zu aktivieren:
permissions.isolateBy.userContext = true
Danach kann man über den Menüpunkt "Datei - Neuer Tab in Umgebung - ..." einen Tab in einem anderen Surf-Container öffnen sowie mit Klick der rechten Maustaste auf einen Link bzw. NewTab Icon wählen, in welchem Surf-Container man den Link/Tab öffnen möchte.
Anhand einer Farbkennung auf dem Reiter ist erkennbar, zu welcher Umgebung er gehört. Man kann auch selbst weitere Surf-Container definieren. Ob dieses Konzept effektiv eingesetzt wird, hängt in erster Linie von der Disziplin des Anwenders ab.
In unterschiedlichen Containern kann man sich gleichzeitig mit unterschiedlichen Accounts bei einem Webdienst anmelden. Das ist eine der Haupteinsatzmöglichkeiten für dieses Feature.
Hinweis: "userContext" und
"FirstParty.Isolate" können (noch) nicht in Kombination mit dem
"Private Browsing Mode" verwendet werden und sie funktionieren nicht, wenn man in den Datenschutzeinstellungen für die Chronik die Option
"niemals anlegen" auswählt.