Firefox Absicherung & Anonymisierung - Seite 2

Datenschutz & Sicherheit

Browser-Datenschutz

Verbesserter Schutz vor Aktivitätenverfolgung

( ) Standard
(X) Streng
( ) Benutzerdefiniert

Mit den Einstellungen werden Funktionen zum Verbesserten Schutz vor Aktivitätenverfolgung bzw. Enhanced Tracking Protection (ETP) aktiviert:

  • von Disconnect.me gepflegte Blockierlisten, mit der Anfragen zu Domains über Javascripte, Webseiten-Elemente und Werbung in der aufgesuchten Webseite blockiert werden („Content Blocking“), die Aktivitätenverfolgung (Tracking), Ermitteln von Browser-Profilen (Fingerprinting) oder Berechnungen für Kryptowährungen im Hintergrund (Cryptomining) betreiben
  • Websites bzw. Domains werden mit State (Storage) und Network Partitioning voneinander isoliert
  • Stellvertreter-Skripte für Tracker-Skripte (SmartBlock)

State (Storage) Partitioning

Mit dem Strengen ETP Modus wird das State (oder Storage) Partitioning (W3C Privacy CG: Client-Side Storage Partitioning), auch "Total Cookie Protection" genannt, aktiviert. D. h. für jede Website bzw. Domain und Subdomain wird ein eigener, von jeder anderen Website isolierter Speicher für folgende Zwischenspeicher, Funktionen und Daten eingerichtet:

  • Cookies
  • Local Storage
  • Session Storage
  • DOM Cache Storage
  • IndexedDB
  • Broadcast Channel
  • SharedWorkers, ServiceWorkers

Dynamic State Partitioning (dFPI)

Aufgeweicht wird das State Partitioning durch das Dynamic State Partitioning („Dynamic First-Party Isolation“ – dFPI), das 3rd-Party Websites oder Subdomains, deren Skripte usw. von der originären Website aufgerufen oder eingebunden werden, u. U. trotz State Partitioning dynamisch Zugriff auf den Speicher der originären Website gewährt (Cross-Site Zugriff). Das soll laut Mozilla z. B. verhindern, dass Single Sign-on (SSO) Login-Provider nicht genutzt werden können, weil sie wegen State Partioning keinen Zugriff auf Anmeldedaten der originären Website besitzen bzw. diese in deren Speicher schreiben können. Weitere „Betroffene“ wären externe Kommentar- oder Zahlungs-Dienste, aber u. U. auch Tracker, die nicht als Tracker klassifiziert sind. Realisiert wird die gewollte „Backdoor“ über die Storage Access API (W3C Privacy CG: The Storage Access API), Storage Access Policy und statistische Algorithmen, die das Zusammenspiel zwischen Nutzer, Website und 3rd-Party auswerten, um dann 3rd-Party Websites dynamisch und automatisch Speicher-Zugriffsberechtigungen erteilen, die für 30 Tage (15 Minuten aufgrund v. Redirects) vorgehalten werden.

Wenn möglich, sollte die Storage Access API, ihre Policy und das Dynamic State Partitioning mit den folgenden Einstellungen unterbunden werden:

Einstellungsname Wert Anmerkungen
dom.storageManager.enabled false der StorageManager als Interface der Storage API ermittelt, wie groß der Speicher ist, in den Websites Daten persistent ablegen dürfen und kann der Website auf Anfrage die Berechtigung erteilen, den Speicher zu nutzen
dom.storage_access.auto_grants
dom.storage_access.enabled
dom.storage_access.max_concurrent_auto_grants
privacy.restrict3rdpartystorage.expiration*
false
false
1
1
deaktiviert Funktionen der Storage Access API und Storage Access Policy, über die 3rd-Party Websites während einer Browsersitzung nach Prüfung von Berechtigungsregeln automatisch auf gespeicherte Daten (Cookies) der originären Website im Hintergrund zugreifen dürfen.

Wenn die Storage Access API aktiv ist, wird mit 1 nach der ersten, automatisch erteilten Berechtigung für weitere eine Berechtigungsanfrage an den Benutzer gerichtet. Falls er die Erlaubnis erteilt, bleiben Berechtigungen für 1 Sekunde aktiv
privacy.restrict3rdpartystorage.heuristic.recently_visited
privacy.restrict3rdpartystorage.heuristic.recently_visited_time
false
1
kein Speichezugriff, wenn gleiche Website oft besucht wird
privacy.restrict3rdpartystorage.heuristic.redirect false kein Speicherzugriff, der Redirect Tracking Protection aushebelt
privacy.restrict3rdpartystorage.heuristic.window_open false kein Speicherzugriff, wenn Website Pop-up Fenster öffnet
privacy.restrict3rdpartystorage.heuristic.opened_window_after_interaction false kein Speicherzugriff, wenn Website nach Nutzinteraktion Pop-up Fenster öffnet
privacy.restrict3rdpartystorage.partitionedHosts leer keine Ausnahmen für (separierte) Local Storage Nutzung durch 3rd-Party Sites
privacy.userInteraction.expiration 1 Speicher-Zugriffsrechte, die dynamisch aufgrund von Nutzer-Interaktionen auf einer Webseite (wozu bereits das Scrolling zählt) erteilt werden könnten, werden nach einer Sekunde statt nach 45 Tagen entfernt

Der Strenge ETP Modus ist nicht möglich, wenn gleichzeitig die Cookies und EnhancedTrackingProtection Richtlinie aktiviert ist.

SmartBlock

Der Strenge ETP Modus wird durch die SmartBlock und SmartBlock "2.0" Erweiterung ergänzt. Sie besteht aus in Firefox integrierte Trackerskript-Surrogate bzw. Stellvertreter-Skripte, die rudimentäre Funktionen der originären Tracker-Skripte ohne Datentransfer zu Trackern nachbilden, damit Webseiten, die ihre Performanz oder Funktionalität von Tracker-Skripten abhängig machen, ohne Einschränkungen laden. Die Technik basiert auf ähnlichen Funktionen, die Erweiterungen wie NoScript und uBlock Origin bereits integrieren.

Network Partitioning

Das Network Partitioning ist ein Teil des State Partitioning. Mit aktiviertem Network Partitioning werden folgende Netzwerk-APIs und -Zwischenspeicher permanent (und nicht dynamisch) für jede Top-Level Website isoliert:

  • HTTP Cache
  • Image Cache
  • Favicon Cache
  • Connection Pooling
  • Stylesheet Cache
  • DNS
  • HTTP Authentication
  • Alt-Svc
  • Speculative Connections
  • Fonts & Font Cache
  • HSTS
  • OCSP
  • Intermediate CA Cache
  • TLS Client Certificates
  • TLS Session Identifiers
  • Prefetch
  • Preconnect
  • CORS-preflight Cache
  • WebRTC deviceID
Einstellungsname Wert Anmerkungen
privacy.partition.network_state true aktiviert Network Partitioning
privacy.partition.network_state.connection_with_proxy true wenn in den Verbindungs-Einstellungen Proxys aktiviert sind, ist Network Partitioning standardmößig nicht aktiv. Mit true wird auch in dem Fall Network Partitioning aktiviert

uBlock Anzeige
uBlock Anzeige

Den Strengen ETP Modus mit State und Network Partitioning kann man durch WebExtensions wie uMatrix, uBlock und Cookie AutoDelete ergänzen bzw. verschärfen.

First-Party Isolation (FPI)

Statt ETP könnte man die klassische First-Party Isolation (FPI) verwenden, die im Rahmen des Tor Uplift bzw. Fusion Projekts eingeführt wurde und als Vorgänger von ETP, State und Network Partitioning bezeichnet wird. Zur Aktivierung nimmt man folgende Einstellungen vor:

Einstellungsname Wert Anmerkungen
privacy.firstparty.isolate true alle Daten, die von der Domain der Website im Adresseingabefeld (die 1st Party) als Cookies, Skripte und Speicher-/Cache-Inhalte lokal gespeichert wurden, werden an die Domain gebunden. D. h. nur die Domain kann die Daten auch wieder auslesen und Daten weiterer Parteien werden isoliert von der 1st Party behandelt, was ein domainübergreifendes Tracking durch die weiteren Parteien verhindet
privacy.firstparty.isolate.block_post_message true postMessage Kommunikation zwischen verschiedenen 1st-Party Domains (z. B. auch Seite und Pop-up oder Seite und Frame) wird blockiert
privacy.firstparty.isolate.restrict_opener_access true mit false werden Regeln zur Isolierung der 1st Party gelockert, falls Probleme mit Websites auftreten, bei denen man sich anmeldet
privacy.firstparty.isolate.use_site true zur isolierung wird nicht nicht nur der Hostname, sondern auch das Protokoll herangezogen

"Do not Track"-Informationen senden

Websites eine „Do Not Track“-Information senden, dass die eigenen Aktivitäten nicht verfolgt werden sollen:

( ) Immer
(X) Nur wenn Firefox bekannte Elemente zur Aktivitätenverfolgung blockieren soll

Mit der Einstellungen wird festgelegt, ob die Do Not Track (DNT) Kopfzeile zum Webserver übermittelt wird oder nicht, die dem Webserver bzw. Betreiber signalisiert, ob man dem Anlegen und Nutzen eines Besucherprofils über diverse Tracking-Mechanismen wie z. B. Cookie-Dateien zustimmt (keine DNT Kopfzeile) oder nicht (DNT:1). DNT ist eine Pseudo-Datenschutzfunktion, da Website-Betreiber entweder nicht gesetzlich verpflichtet sind, den DNT-Wert zu beachten, die Nichtbeachtung nicht erkennbar ist oder die Ahndung der Nichtbeachtung nicht erfolgt. Trotzdem hält Mozilla unbeirrt an DNT fest.

Wird ETP deaktiviert oder im Benutzerdefinierten Modus betrieben, kann der Versand der DNT Kopzeile unterbunden werden. Bei ETP im Strengen Modus erfolgt der Versand von DNT Kopfzeilen, der nur Blockieren der Kopzeile über Filter-Proxys oder Erweiterungen unterbunden werden kann.

Cookies und

Einstellungsname Wert Anmerkungen
network.cookie.cookieBehavior 5 mit 1 werden nur Cookies von der eigentlichen Website (First-Party), aber keine Cookies von 3rd-Party Websites akzeptiert. Mit 5 werden Cross-Site und Cookies bekannter Tracker verworfen, während alle anderen Cookies gemäß Dynamic State Partitioning bzw. Dynamic First-Party Isolation (dFPI) isoliert, aber u. U. zugelassen werden (s. o.)
network.cookie.maxNumber
network.cookie.maxPerHost
network.cookie.quotaPerHost
n Beschränkung der Cookieanzahl n, die ingesamt (z. B. 30 statt 3000) und per Domain (z. B. 3 statt 180/150) gesetzt werden können
network.cookie.lifetimePolicy 2 alle Cookie-Daten werden bei Sitzungsende bzw. Schließen des Browsers gelöscht
network.cookie.sameSite.laxByDefault
network.cookie.sameSite.noneRequiresSecure
network.cookie.sameSite.schemeful
true
true
true
Cookies ohne SameSite Attribut werden wie Cookies mit SamSite=Lax Attribut (Senden nur an 1st-Party Domain und verschlüsselt nach GET-Anfragen an 3rd-Party Domain) behandelt. Cookies mit SameSite=None (domainübergreifend an alle Domains) aber ohne Secure Attribut (TLS-verschlüsselt) werden abgewiesen, um laut RFC 6265 CSRF Angriffe zu erschweren. Cookies, die von einer Website mit verschiedenem Schema (http und https) übertragen werden, gelten als 3rd-party Cross-Site Cookies. Siehe auch Changes to SameSite Cookie Behavior und Schemeful Same-Site.
network.cookie.thirdparty.sessionOnly
network.cookie.thirdparty.nonsecureSessionOnly
true
true
sofern Cookies von 3rd-Party Websites gespeichert sind, werden sie nur als Sitzungs-Cookies gespeichert und (spätestens) bei Beendigung der Browsersitzung gelöscht
privacy.documentCookies.maxage n Cookies, die per Javaskript in Webseiten gesetzt werden, verfallen nach n Sekunden – falls man Cookies nicht per Chronik-Einstellungen oder WebExtension automatisch löschen lässt

Siehe HTTP Cookie, Evercookie, Zombie cookie, Web Storage.

Websitedaten

Die Websitedaten beziehen sich auf lokale Zwischenspeicher, in die Websites Inhalte und Daten dauerhaft (persistent) oder nicht dauerhaft über die Storage API, Web Storage API und Cache API bzw. CacheStorage (per Web Worker und Service Worker Skripte) speichern können. Die Daten im dauerhaften Speicher bleiben solange bestehen, bis man sie manuell löscht, während die Daten im nicht dauerhaften Speicher solange bestehen bleiben, wie Speicherplatz zur Verfügung steht. Die Websitedaten beinhalten auch die Daten webbasierter Anwendungen bzw. von Webinhalten, die offline weiter genutzt werden sollen. Offline-Websitedaten können über die Einstellungen zur Chronik automatisch nach Sitzungsende gelöscht werden.

[X] Cookies und Website-Daten beim Beenden von Firefox löschen

Daten entfernen & verwalten

Über den Daten entfernen Button kann man manuell

[X] Cookies und Website-Daten
[X] Zwischengespeicherte Webinhalte/Cache

löschen, die von allen bisher besuchten Websites abgespeichert wurden. Über den Daten verwalten Button kann man manuell die gleichen Daten spezifischer Websites löschen.

Mit Deaktiveren von Zwischenspeichern, entsprechender Konfiguration von Firefox und Datenschutz-Erweiterungen kann man bereits vor dem Löschen der Daten beim Beenden von Firefox vermeiden, dass Daten abgespeichert werden und sie währen der Sitzung automatisch löschen lassen.

Richtlinie: SanitizeOnShutdown

Zwischenspeicher deaktivieren

Alle Zwischenspeicher eigenen sich zum Speichern von Daten, die als Cookie-Alternative und damit zum Tracking dienen können. Die Deaktivierung vieler Zwischenspeicher wird durch das Setzen von erweiterten Einstellungen ermöglicht, setzt aber voraus, dass im Rechner ausreichend Arbeitsspeicher verbaut ist.

Einstellungsname Wert Anmerkungen
browser.cache.disk.smart_size.enabled
browser.cache.disk.capacity
browser.cache.disk.enable
false
0
false
zuerst die dynamische Änderung des Speicherplatzes für Dateien-Zwischenspeicher deaktivieren, um danach den verfügbaren Speicherplatz für Dateien-Zwischenspeicher auf 0 zu setzen und ihn zu deaktivieren
browser.cache.disk_cache_ssl false Inhalte, die mit TLS Verschlüsselung bezogen wurden, werden nicht dauerhaft im Dateien-Zwischenspeicher zwischengespeichert.
browser.cache.memory.capacity
browser.cache.memory.enable
0
false
deaktiviert das Zwischenspeichern in Speicherbereiche des Arbeitssspeichers
browser.cache.offline.capacity
browser.cache.offline.enable
0
false
deaktiviert Offline-Zwischenspeicher
browser.cache.offline.storage.enable false ab Version 84 wurde der AppCache Offline-Speicher deaktiviert. Funktionalität übernehmen zukünftig Web und Service Worker mittels Cache/CacheStorage API
devtools.cache.disabled true
dom.caches.enabled false deaktiviert den Service Worker Zwischenspeicher
media.cache_size
media.cache_size.cellular
0
0

Zur Frage, welche APIs und Techniken aufgrund welcher Standards in den W3C Arbeitsgruppen zum Daten- und Privatsphärenschutz Eingang in Browser finden und welche „Backdoors“, um sie wieder aufzubohren, empfehle ich den Artikel Concern trolls and power grabs: Inside Big Tech’s angry, geeky, often petty war for your privacy von Issie Lapowsky vom 13.07.2021.

Zugangsdaten & Passwörter

[ ] Fragen, ob Zugangsdaten und Passwörter für Websites gespeichert werden sollen
[ ] Hauptpasswort verwenden

Da ein Browser immer eine potentiell unsichere Umgebung darstellt, trotz Beteuerungen, bei Browser X Version Y würde es sich um die sicherste Anwendung handeln, immer schwerwiegende Sicherheitslücken auftreten und das in der Vergangenheit auch immer wieder browserinterne Passwort-Manager Funktionen betraf, werden alle Funktionen des Firefox Lockwise Passwort-Managers so weit wie möglich deaktiviert und nicht genutzt. Siehe z. B. No boundaries for user identities: Web trackers exploit browser login managers.

Einstellungsname Wert Anmerkungen
browser.formfill.enable
browser.formfill.expire_days
dom.payments.defaults.saveAddress
extensions.formautofill.available
extensions.formautofill.*.enabled
signon.autofillForms
signon.autofillForms.autocompleteOff
signon.passwordEditCapture.enabled
signon.autofillForms.http
signon.formlessCapture.enabled
signon.privateBrowsingCapture.enabled
signon.rememberSignons
signon.storeWhenAutocompleteOff
false
1
false
off
false
false
false
false
false
false
false
false
false
es erfolgt bei neuen Anmeldeformularen keine Nachfrage, ob Benutzername-Passwort Anmeldedaten gespeichert werden sollen bzw. werden eingegebene Anmeldedaten nicht gespeichert und automatisch in Formularfelder eingetragen. Darüber hinaus werden Formularfelder auf Webseiten generell nicht automatisch ausgefüllt und die Speicherung persönlicher Daten in Profilen deaktiviert, um sie mittels "Form Autofill Feature" automatisch in Formulare zu übertragen
signon.generation.available
signon.generation.enabled
false
false
der Lockwise Passwort-Generator bzw. RNG wird nicht zur Erstellung von Passwörtern verwendet
signon.management.page.breach-alerts.enabled
signon.management.page.breachAlertUrl
signon.management.page.vulnerable-passwords.enabled
false
leer
false
gespeicherte Passwörter und Anmeldedaten werden nicht über den Firefox Monitor Dienst geprüft, ob sie aufgrund von „Datenpannen“ bzw. Abgriffen durch Cracker kompromittiert wurden. Über den HPI Identity Leak Checker kann man prüfen, ob eine E-Mail Adresse, die für Konten verwendet wird, mit bekannten „Datenpannen“ in Verbindung steht.

Richtlinie: DisableMasterPasswordCreation, OfferToSaveLogins, OfferToSaveLoginsDefault, PasswordManagerEnabled

Passwörter

Bei der Erzeugung und Verwendung von Passwörtern sollte man beachten:

  • die Hinweise zur Zusammensetzung sicherer Passwörter im Passwort Beitrag der Wikipedia
  • das ein Passwort nicht mehrmals für verschiedene Benutzerkonten und Dienste verwendet, sondern pro Benutzerkonto/Dienst ein eigenes Passwort gebildet wird

Zur Speicherung, Verwaltung und Verwendung von Zugangsdaten & Passwörtern kann man eine Passwort-Manager Erweiterung mit extern gespeicherten Passwort-Datenbanken oder eine eigenständige, lokale Passwort-Manager Anwendung mit lokal gespeicherter Passwort-Datenabank benutzen. Ich empfehle neben der Deaktivierung des Firefox Passwort-Managers keine Passwort-Datenbanken zu verwenden, die von Passwort-Management Diensteanbietern auf ihren Servern gespeichert und mittels eigener Passwort-Manager verwaltet werden. Auch der Bug 1548973 (armagadd-on-2.0) zeigt exemplarisch auf, warum man keine externen Passwort-Dienste mit Passwort-Manager Erweiterungen nutzen sollte – funktioniert die Erweiterung (oder der Dienst selbst) aus irgendwelchen Gründen nicht mehr und ist der Dienst nur über die Erweiterung zu nutzen, wird man von allen Logins abgeschnitten.

Passwort-Manager KeePassXC

Stattdessen ist die Verwendung des lokal installierten KeePassXC Passwort-Managers zu empfehlen, mit dem man lokal gespeicherte Passwort-Datenbanken managed. Der Zugriff auf und Modifikationen an der KeePassXC Datenbank kann zusätzlich mit einem YubiKey gesichert werden. Benötigt man „Synchronisierung“ für mehrere Geräte, „synchronisiert“ bzw. spiegelt man halt die Datenbank auf die Geräte. Für alle lokalen Passwort-Manager Anwendungen ist sicherzustellen, dass sie Zugangsdaten & Passwörter sicher speichern und als Anwendung genauso abgesichert werden wie der Browser selbst.

KeePassXC Hauptfenster

In KeePassXC werden die Login- und Kontendaten in Gruppen organisiert. Für jedes Konto kann ein Titel, Benutzername, eine URL, ein manuell oder mit Passwort-Generator erzeugtes Passwort, Ablaufdatum, Dateianhänge und ein Kommentar gespeichert werden.

KeePassXC Stammgruppe

Nach der Installation legt man für die Stammgruppe die Standard Auto-Type-Sequenz {USERNAME}{TAB}PASSWORD} fest, die an Untergruppen und Einträge vererbt werden kann, damit sie nicht bei jedem neuen Eintrag manuell eingetragen werden muss. Die obige Sequenz überträgt mit einer Hotkey-Kombination in Anmeldeformulare den Benutzernamen in das erste Eingabefeld und springt dann in das Eingabefeld für das Passwort, in das selbiges übertragen wird. Das Absenden wird nicht automatisiert. In den Auto-Type Einstellungen sollte zusätzlich die Immer vor einem Auto-Type fragen Option aktiviert werden, so dass KeePassXC immer ein Auswahlfenster vor dem Übertragen der Daten einblendet.

KeePassXC Eintrag

Im Eintrag-Editor werden Daten zum Konto eingetragen und über das Würfel Icon ein Passwort und ein Benutzername generiert. Nach Auswahl von Auto-Type wird die Auto-Type-Sequenz aktiviert und der Fenstertitel ausgewählt, mit dem KeePassX dass zum Eintrag passende Konto identifiziert:

KeePassXC Auto-Type

Da anfangs die Vererbung der Auto-Type-Sequenz aktiviert wurde, kann die Standardsequenz ausgewählt werden. Bei abweichender Sequenz schaltet man auf Benutzerdefinierte Sequenz um und trägt sie in das entsprechende Feld ein. Ergänzend kann man die KeePass Helper - URL in title Erweiterung installieren, die den Hostnamen („blablapress.com“) – optional mit Protokollbezeichnung – in die Firefox Titelleiste einsetzt, sodass der Fenstertitel genauer spezifiziert werden kann, was eine versehentliche Falscheingabe bei gleichen oder fehlenden Titelangaben von Websites verhindert. Zu weiteren Informationen zu KeePassXC siehe KeePassXC Wiki und KeePassXC: Getting Started Guide.

Chronik

Die Chronik kann man als Gesamtheit aller Zwischenspeicher bezeichnen, in die je nach Einstellung für einen vozugebenden Zeitraum verschiedene Daten abgelegt und vorgehalten werden. Zu den Daten gehören:

  • Besuchte Seiten & Download-Chronik: die Titel, Beschreibungen, URLs besuchter Webseiten und die Namen und URLs von Dateien, die mit dem Firefox Download-Manager heruntergeladen wurden
  • Eingegebene Suchbegriffe & Formulardaten: Begriffe, die in Formularfelder auf Webseiten oder in der Firefox Suchleiste eingegeben oder Kontendaten (Benutzernamen und Passwörter), die für Anmeldevorgänge eingegeben wurden
  • Aktive Logins: Anmeldedaten von verschlüsselten TLS Verbindungen, die nicht mit einem korrekten Abmeldevorgang beendet wurden
  • Cookies: Cookie-Daten
  • Cache: Webseiteninhalte und darin eingebette Dateien, die geladen und lokal auf dem Rechner zwischengspeichert wurden
  • Offline Website-Daten: Webanwendungen und Webseiteninhalte, die von Servern lokal auf dem Rechner gespeichert werden, um sie ohne bestehende Internetverbindung im Offline-Modus zu nutzen
  • Website-Einstellungen: Berechtigungen und Ausnahmen von Standardeinstellungen, die Domains über Seiteninformationen oder Erweiterungen erteilt wurden, Website-spezifische Zoom-Level, HSTS-Einträge in der SiteSecurityServiceState.txt Datei

Jeder Anwender muss zur Frage, wie die Chronik zu nutzen ist, individuell zwischen der Nutzung von Funktionen, die das Arbeiten mit dem Browser und dem WWW erleichtern oder erweitern und dem Leitsatz „So viel Daten wie nötig, so wenige Daten wie möglich“ abwägen. Dabei muss er auch berücksichtigen, dass die hier vorgehaltenen Daten u. U. Dritten zugänglich werden, zum Beispiel bei PCs, die er sich mit Dritten teilt, aufgrund von Sicherheitslücken im Browser und seinen Erweiterungen oder über den Besuch bösartiger Webseiten mit einem ungenügend abgesicherten Browser. Zugriffsmöglichkeiten vorausgesetzt, kann die Auswertung einiger der hier gespeicherten Daten außerdem zur Profil- und Mustererkennung herangezogen werden und so dazu beitragen, den Grad einer Anonymisierung zu beeinträchtigen.

Zur Beantwortung der Fragestellung bietet der Firefox Browser verschiedene Vorgehensweisen:

  1. man lässt mit anlegen Firefox kategorisch eine Chronik für alle obigen Datentypen anlegen und kann dann manuell von Zeit zu Zeit die Chronik löschen, was nicht empfehlenswert ist
  2. man verhindert mit niemals anlegen kategorisch die Anlage und Nutzung einer Chronik, was den Privaten Modus aktiviert
  3. man lässt Firefox für einzelne Datentypen eine Chronik nach benutzerdefinierte Einstellungen anlegen
  4. man lässt Firefox immer den Privaten Modus verwenden

Die Aktivierung des Privaten Modus ist die einfachste Methode, die Anlage und den Missbrauch gespeicherter Daten zu unterbinden. Die Zwischenablage-Funktionalität der Betriebssysteme ist vom Privaten Modus ausgenommen, d. h. wenn Inhalte im in die Zwischenablage kopiert werden, bleiben sie auch dort, nachdem der Private Modus beendet wurde. Außerdem können im Privaten Modus keine Tab-Umgebungen verwendet werden. Wenn der Private Modus nicht aktiviert ist, kann man trotzdem über das Kontextmenü eines Links den Link in einem separaten Browserfenster im Privaten Modus öffnen oder über das Datei Menü bzw. Privates Fenster Icon ein neues Browserfenster mit Privatem Modus öffnen.

Wählt man benutzerdefinierte Einstellungen, sollte man:

  • die Chronik (ausgewählte oder alle Datentypen) spätestens dann löschen lassen, wenn Firefox geschlossen wird – besser, wenn das während der Browser-Sitzung oder Schließen eines Tab-Fensters geschieht
  • beachten, dass bei aktivierter Leerung des Cache nur noch der RAM und kein lokaler Zwischenspeicher von Firefox verwendet wird
  • Anlage, Zugriff und Nutzung der Datentypen zusätzlich mit Datenschutz-Erweiterungen und Datenschutz-Einstellungen regulieren
  • ein gutes Cookie-Management betreiben
Einstellungsname Wert Anmerkungen
browser.sessionstore.cleanup.forget_closed_after 3000 geschlossene Browser- und Tab-Fenster werden nach drei Sekunden statt nach zwei Wochen aus dem Sitzungsspeicher (zur Sitzungswiederherstellung) entfernt. Die Entfernung wird einmal am Tag durchgeführt, aber nur, wenn Firefox ermittelt, dass sich Computer/Browser seit einigen Minuten im Leerlaufzustand befinden
browser.sessionstore.dom_storage_limit
browser.sessionhistory.max_entries
browser.sessionhistory.max_total_viewers
browser.sessionstore.max_serialize_back
browser.sessionstore.max_serialize_forward
browser.sessionstore.max_tabs_undo
browser.sessionstore.max_windows_undo
browser.sessionstore.restore_*
browser.sessionstore.resume_*
0
0
0
0
0
0
0
false
false
der Sitzungsspeicher zur Sitzungswiederherstellung (damit auch die Wiederherstellung z. B. nach Absturz selbst) wird weitestgehend deaktiviert.
browser.sessionstore.privacy_level 2 sofern die Sitzungswiederherstellung verwendet wird, werden besondere Sitzungsdaten (u. a. Formularinhalte, Cookies) für keine Websites gesichert
places.history.enabled
places.history.expiration.max_pages
false
0
URIs besuchter Websites werden nicht in der Chronik gespeichert. Die zweite Einstellung muss manuell mit Integer-Typ angelegt werden. Ist die zweite Einstellung nicht gesetzt oder mit einem negativen Wert versehen, kalkuliert Firefox das Maximum anhand des verfügbaren Arbeitsspeichers und Speicherplatzes auf dem Datenträger
privacy.clearOnShutdown.*
privacy.cpd.*
privacy.item.*
true jenseits der grafischen Einstellungen zum Datenschutz und der Chronik sollten die Optionen daraufhin überprüft werden, ob für alle relevanten Daten der Wert tatsächlich auf true steht, um sie löschen zu lassen

Richtlinie: Cookies, DisableFormHistory, SanitizeOnShutdown

Schnelles Leeren der Chronik

Für das akute Leeren der Chronik kann man zwei Methoden mit zwei Icons verwenden, die man über das Anpassen Menü in die Symbolleiste zieht:

Vergessen Icon, auch „Panik Button“ genannt – nach Anklicken des Icon, (einmaliger) Auswahl der Zeitspanne und Anklicken des Löschen Buttons wird die Chronik komplett geleert, alle Tab-Unterfenster und das Hauptfenster geschlossen und danach ein neues Hauptfenster geöffnet
Chronik Icon – nach Anklicken des Icon wählt man Neueste Chronik löschen, wählt (einmalig) die Zeitspanne, über Details die zu löschenden Bestandteile und bestätigt mit dem Jetzt löschen Button zum selektiven Leeren der Chronik

Berechtigungen

Berechtigungen für Websites und mit ihnen einhergehende Daten fließen ebenfalls in die Chronik ein und können mit ihr nach Sitzungsende gelöscht werden. In den Datenschutz & Sicherheit Einstellungen kann man folgende Berechtigungen generell allen Websites entziehen, indem nach Anklicken des jeweiligen Einstellungen Button die [X] Neue Anfragen für den Zugriff auf Standort, Kamera, Mikrofon blockieren und [X] Neue Anfragen zum Anzeigen von Benachrichtigungen blockieren Optionen aktiviert.

  • Standort
    Übermittlung des eigenen Standorts per Geo-Lokalisierung mittels IP-Adresse, WLAN Access Point Informationen und Google Location Service
  • Kamera
    Aktivierung und Verwendung von Webcams
  • Mikrofon
    Aktivierung und Verwendung von Mikrofonen
  • Benachrichtigungen
    Push Benachrichtigungen, die Webserver per Service Worker „Proxy“ Javaskripten, die Firefox im Hintergrund ausführt und Push API als Pop-up Fenster auf den Desktop des Benutzers senden können
  • Automatische Wiedergabe
    Video- und Audiodaten automatische abspielen bzw. anzeigen lassen
  • Virtuelle Realität
    Zugriff auf VR-Geräte
  • [X] Pop-up Fenster blockieren
  • [X] Warnen, wenn Websites versuchen, Addons zu installieren

Spezifische Berechtigungen für einzelne Websites können im Berechtigungen Tab eingestellt werden, nachdem die Seiteninformationen zur Webseite aufgerufen wurden. Im Berechtigungen Tab sind folgende Berechtigungen aufgeführt:

  • Add-ons installieren
  • Auf Bildschirm zugreifen (Bildschirm übertragen, Screen Sharing)
  • Auf Standort zugreifen
  • Auf VR-Geräte zugreifen (Virtuelle Realität)
  • Automatische Wiedergabe (von Audio- und Videodaten)
  • Benachrichtigungen senden
  • Canvas-Daten abfragen
  • Cookies setzen
  • Daten im dauerhaften Speicher speichern
  • Kamera verwenden
  • Mikrofon verwenden
  • Pop-up Fenster öffnen
  • Tastenkombinationen überschreiben
  • Zu diesem Tab wechseln

Alle Berechtigungen sollten so restriktiv wie möglich vergeben werden:

  1. Blockieren
  2. Immer fragen / Für Sitzung erlauben
  3. Erlauben

Über die Auswahl von Optionen auf den Seiten der Einstellungen, Richtlinien, Autokonfiguration und Änderungen in der Erweiterten Konfiguration lassen sich etliche Berechtigung vorab restriktiv regulieren.

Richtlinie: Autoplay, Permissions, PopupBlocking, InstallAddonsPermission

Einstellungsname Wert Anmerkungen
accessibility.force_disabled 1 deaktiviert Funktionen für barrierefreies Arbeiten am Computer (a11y) und damit auch den Zugriff externer Anwendungen auf Dienste für Barrierefreiheit in Firefox. Menschen mit Beeinträchtigungen sind auf die Dienste ggf. angewiesen. Leider sind sie u. a. auch immer wieder Quelle für Exploits
browser.region.log
browser.region.network.scan
browser.region.network.url
browser.region.timeout
browser.region.update.enabled
false
false
leer
1
false
deaktiviert Funktionen zur Geo-Lokalisierung
dom.disable_open_during_load true entspricht „Pop-up Fenster blockieren“ bzw. aktivierter PopupBlocking Richtlinie
dom.popup_allowed_events click beschränkt die Erlaubnis, Pop-up Fenster per JavaScript Events zu öffnen, auf das aktive Anklicken von Links
dom.popup_maximum 1 beschränkt die Anzahl von Pop-up Fenstern, die nicht durch das aktive Anklicken von Links ausgelöst wurden
privacy.popups.maxReported 1 nach einen geöffneten bzw. zugelassenem Pop-up Fenster werden weitere Pop-up Fenster einer Website stillschweigend blockiert
dom.push.enabled
dom.push.connection.enabled
dom.push.maxQuotaPerSubscription
dom.push.requestTimeout
dom.push.serverURL
false
false
0
1
leer
siehe Benachrichtigungen Berechtigung
dom.security.featurePolicy.enabled
dom.security.featurePolicy.header.enabled
dom.security.featurePolicy.webidl.enabled
permissions.delegation.enabled
false
false
false
false
deaktiviert die Beachtung der Feature Policy bzw. Permissions Policy Direktiven. Mit ihnen können – aus der Perspektive der Websitebetreiber betrachtet – für Webseiten und per Delegation eigener „Feature“ Berechtigungen für Frames und eingebettete Frame-Dokumente (iFrames) bestimmte Funktionen und APIs ("Features") im Browser selektiv aktiviert, deaktiviert und geändert werden.
dom.webnotifications.enabled
dom.webnotifications.serviceworker.enabled
permissions.default.desktop-notification
false
false
2
schaltet die API für Web-Benachrichtigungen ab, über die Webserver z. B. Pop-up Benachrichtigungsfenster auf dem Desktop des Benutzers anzeigen und einblenden können. Im Gegensatz zu Push-Benachrichtigungen muss die benachrichtigende Webseite im Browser geöffnet sein und bleiben.
dom.webnotifications.requireuserinteraction true ist die API für Web-Benachrichtigungen aktiviert, erfolgt eine Berechtigungsanfrage erst, wenn der Benutzer mit der Webseite interagiert hat
geo.enabled
geo.provider.network.timeout
geo.provider.testing (anlegen)
geo.provider.network.url
permissions.default.geo
false
1
false
leer
2
deaktiviert die ungefähre Geo-Lokalisierung mittels IP-Adresse Informationen per Google Location Service
media.allowed-to-play.enabled
media.autoplay.allow-extension-background-pages
media.autoplay.block-event.enabled
media.autoplay.block-webaudio
media.autoplay.blocking_policy
media.autoplay.default
media.block-autoplay-until-in-foreground
false
false
false
true
2
5
true
das automatische Abspielen von Audio- und Videoinhalten wird generell deaktiviert
media.getusermedia.browser.enabled
media.getusermedia.audiocapture.enabled
media.getusermedia.screensharing.enabled
false
false
false
deaktiviert Funktionen zum Teilen bzw. zur bidirektionalen Übertragung von Bildschirm- und Fensterinhalten in Echtzeit per WebRTC
media.getdisplaymedia.enabled
media.navigator.enabled
media.navigator.*.enabled
media.peerconnection.default_iceservers
media.peerconnection.enabled
media.peerconnection.ice.default_address_only
media.peerconnection.ice.force_interface
media.peerconnection.ice.no_host
media.peerconnection.ice.proxy_only
media.peerconnection.identity.enabled
media.peerconnection.identity.timeout
media.peerconnection.simulcast
media.peerconnection.turn.disable
media.peerconnection.use_document_iceservers
media.peerconnection.*.enabled
media.peerconnection.*.disable
false
false
false
[]
false
true
nnnn
true
true
false
1
false
true
false
false
true
deaktiviert die Verwendung der MediaStream und PeerConnection Javascript APIs zur Nutzung von WebRTC für P2P Audio-/Video-Streaming, Datenaustausch und damit Zugriff auf angeschlossene Mikrofone und Webkameras

Siehe auch STUN IP Address requests for WebRTC, MozillaWiki: Media/WebRTC/Privacy
permissions.default.camera
permissions.default.microphone
2
2
Zugriffe auf Webcams und Mikrofone werden blockiert
permissions.default.shortcuts 2 Websites können keine Tastenkombinationen übernehmen/überschreiben
permissions.default.xr 2 Zugriffe auf VR-Geräte werden blockiert
permissions.isolateBy.privateBrowsing permissions.isolateBy.userContext true
true
Berechtigungen einer Website in einer Tab-Umgebung oder einem Fenster im Privaten Modus (z. B. auch die gleiche Website in unterschiedlichen Fenster-Umgebungen) bleiben an die Tab-Umgebung oder das Fenster im Privaten Modus gebunden und werden nicht mit anderen Tab-Umgebungen oder Fenstern geteilt
permissions.manager.defaultsUrl leer deaktiviert die interne Vergabe von Berechtigungen an Mozilla Websites über resource://app/defaults/permissions
privacy.popups.disable_from_plugins 3 die Initialisierung von Pop-up Fenstern durch Plugins wird generell blockiert

Datenerhebung durch Firefox und deren Verwendung

[ ] Firefox erlauben, Daten zu technischen Details und Interaktionen an Mozilla zu senden
[ ] Personalisierte Erweiterungsempfehlungen durch Firefox erlauben
[ ] Firefox das Installieren und Durchführen von Studien erlauben
[ ] Nicht gesendete Absturzberichte automatisch von Firefox senden lassen

Telemetrie

Mit den Telemetrie- und Absturzmelde-Funktionen werden Daten über Konfiguration und Nutzung des Browsers, den Betriebssystem-Kontext – das, was ein eindeutiges Browserprofil ausmacht – erhoben und an Mozilla gesendet. Bei aktivierter Telemetrie und aktivierten Experiment-Einstellungen können Telemetrie-Experimente über Experiment-Erweiterungen ausgeführt werden, die von einem Mozilla Experiment-Server in den Browser installiert werden. Die Erweiterungen haben ebenfalls Zugriff auf die Telemetrie Daten und Infrastruktur. Die Experiment-Erweiterungen werden wie andere Erweiterungen auch im Add-on Manager unter Experimente aufgeführt.

Mit Eingabe von about:telemetry, about:crashes, about:support, about:studies und about:checkerboard im Adresseingabefeld kann man einsehen, ob Telemetrie, Experimente, Berichte oder Studien anhängig bzw. aktiv sind und wenn, welche Daten erhoben und versendet werden.

Richtlinie: DisableTelemetry

Shield-Studien

Im Rahmen des Shield Programms führt Mozilla sogenannte Shield-Studien aus, mit denen Benutzer zur „Test-Plattform“ werden, die für Mozilla geplante/experimentelle, neue oder bereits existierende „Features“, „Ideen“ und Funktionen zur Datenübermittlung testen, mit der auch in die Konfiguration und Funktionsweise des Browsers eingegriffen wird.

Die Studien werden über Skripte, eingebettet in WebExtensions oder die Shield System-Erweiterung implementiert. Der Shield Recipe Client der Normandy Architektur lädt per Remote Settings Javaskript-Modul sogenannte „Rezepte“, die mögliche Studien enthalten. Bei Aktivierung einer Studie werden danach sogenannte "Aktionen" geladen, die von Firefox umgesetzt bzw. ausgeführt werden. Im Rahmen der Aktivierung und Teilnahme an Shield-Studien werden ebenfalls Daten erhoben und an die Telemetrie-Server übermittelt.

Studien können offen mit Opt-in Genehmigung oder verdeckt als Opt-out installiert und ausgeführt werden, je nachdem, wie groß die Eingriffstiefe in die Mozilla Datenschutz-Richtlinien ist. Mit Eingabe von about:studies im Adresseingabefeld kann man Informationen zu Shield einsehen. Nach Beendigung von Studien wird der Code der Aktionen entfernt und Änderungen wieder rückgängig gemacht.

Richtlinie: DisableFirefoxStudies

Siehe auch: CVE-2018-12369: WebExtension security permission checks bypassed by embedded experiments (Bug 1454909).

Marionette & geckodriver

Siehe vorab Marionette Protokoll und geckodriver (WebDriver) bzw. SeleniumHQ, die der Fernsteuerung und Automatisierung des Browser dienen können. Firefox muss mit Marionette und geckodriver Unterstützung kompiliert sein (about:buildconfig) und Firefox entweder mit --marionette gestartet oder die MOZ_MARIONETTE Umgebungsvariable gesetzt werden.

Die Archichtekturen und Daten dienen auch der Weiterentwicklung und Optimierung des Firefox Browsers. Wer also diese Zwecke unterstützen möchte, aktiviert die Optionen und Einstellungen zur Datenerhebung und -übermittlung. Andererseits erinnern die Funktionen der Mozilla Architekturen zur Datenerhebung, -übermittlung und -verwendung an die C&C Systeme GENIE/TURBINE der TURBULANCE Architektur der NSA und UKUSA 5-Eyes Geheimdienste – mit Datenschutz, Opt-in, Opt-out und „guten“ Absichten.

Einstellungen

In der Tabelle sind auch die Einstellungen aufgeführt, die über die Datenerhebung und -übermittlung an Mozilla hinaus zur Datenerhebung und -übermittlung an andere Server beitragen können.

Einstellungsname Wert Anmerkungen
app.normandy.enabled
app.normandy.user_id
app.normandy.api_url
app.shield.optoutstudies.enabled
false
leer
leer
false
siehe Shield-Studien
beacon.enabled false deaktiviert die navigator.sendBeacon Funktion, über die Websites den Browser per Javascript veranlassen können, vor dem Verlassen bzw. Entladen einer Webseite (ArrayBufferView, Blob, DOMString, FormData) Daten an den Webserver zu senden, die der „Analyse und Diagnose“ dienen. Siehe auch sendBeacon requests lack an Origin header.
breakpad.reportURL leer Breakpad Absturz-Berichte (falls aktiviert) können nicht mehr an einen Server gesendet werden. Wer Breakpad bzw. Absturz-Berichte komplett deaktivieren will, setzt die Umgebungsvariablen MOZ_CRASHREPORTER_DISABLE=1 und XRE_NO_WINDOWS_CRASH_DIALOG=1
browser.contentblocking.report*.url
browser.contentblocking.report*.enabled
leer
false
keine Berichte zu Safe Browsing und Tracking Protection
browser.engagement.recent_visited_origins.expiry 1 die Domainnamen (Anzahl/Namen?) der zuletzt besuchten Websites verfallen nach einer Sekunde
browser.ping-centre.telemetry false deaktiviert die Anwendung des ping-centre Framework zur Datenerhebung und den Datenversand für Telemetrie und Activity Stream
browser.send_pings
browser.send_pings.max_per_link
browser.send_pings.require_same_host
false
0
true
deaktiviert das Senden von POST-Anfragen im Hintergrund zu zusätzlichen Servern, deren URLs im ping Attribut von Links zwecks Hyperlink auditing bzw. Click-Tracking untergebracht sind. Generell sind Pings mit true nicht zu zusätzlichen, fremden Servern möglich.
browser.tabs.crashReporting.sendReport
dom.ipc.plugins.reportCrashURL
false
false
es werden keine Absturz-Berichte versendet
browser.urlbar.suggest.quicksuggest false keine Telemetrie für QuickSuggest Experiment
corroborator.enabled false deaktiviert Funktion, die omni.ja Dateien auf Veränderungen prüft und Resultat an Mozilla berichtet
datareporting.healthreport.uploadEnabled
datareporting.policy.dataSubmissionEnabled
false
false
deaktiviert die Datenübermittlung zum Status („Health“) Bericht an Mozilla
device.sensors.enabled
device.sensors.*.enabled
false
false
keine Erfassung und Auswertung von Sensordaten über Hardware/Geräte
dom.enable_event_timing
dom.enable_performance
dom.enable_performance_navigation_timing
dom.enable_performance_observer
dom.enable_resource_timing
extensions.geckoProfiler.acceptedExtensionIds
false
false
false
false
false
leer
keine Zeitmessungen und Übermittlung ihrer Resultate (z. B. Dauer, bis eine Seite vollständig geladen ist) per Navigation Timing API, per Resource Timing API, bezogen auf alle Ressourcen, die in Webdokumenten enthalten sind bzw. per Performance API
dom.event.clipboardevents.enabled false keine Benachrichtigung der Website per Zwischenablage-API, wenn Inhalte über die Zwischenablage kopiert, eingefügt oder ausgeschnitten werden
dom.event.coalesce_mouse_move
dom.w3c_touch_events.enabled
false
0
deaktiviert die PointerEvent Web-API und TouchEvent Web-API, über die Daten zur Hardware und die Handhabung/Verwendung von Mäusen, Touch-Feldern und Pens ausgewertet werden können
dom.security.unexpected_system_load_telemetry_enabled false ?
extensions.getAddons.cache.enabled false keine Übermittlung und Anzeige von Metadaten zu Erweiterungen über addons.mozilla.org.
network.captive-portal-service.enabled
captivedetect.canonicalURL
captivedetect.maxRetryCount
captivedetect.maxWaitingTime
captivedetect.pollingTime
network.connectivity-service.enabled
network.connectivity-service.IPvN.url
false
leer
0
0
0
false
leer
deaktiviert den Captive Portal Erkennungsdienst für WLAN-Hotspots

Richtlinie: CaptivePortal
marionette.port -1
messaging-system.rsexperimentloader.enabled false
network.traffic_analyzer.enabled false „Telemetry of traffic categories“
security.app_menu.recordEventTelemetry false
security.certerrors.recordEventTelemetry false keine Datenübermittlung zur Art und Weise, wie man mit Zertifikat-Fehlermeldungen umgeht
security.identitypopup.recordEventElemetry false keine Datenübermittlung zur Art und Weise, wie man mit Pop-up Fenstern der Website-Informationen (z. B. bzgl. Tracking-Protection/Content-Blocking) umgeht
security.protectionspopup.recordEventTelemetry false
security.xfocsp.errorReporting.automatic
security.xfocsp.errorReporting.enabled
false
false
deaktiviert Opt-in zur dauerhaften Übermittlung der URLs von Webseiten, wenn bei ihnen aufgrund von CSP Richtlinieninhalten oder X-Frame-Options Kopfzeileninhalten Fehler auftreten
security.ssl.errorReporting.enabled false deaktiviert mit Nennung in der Preferences Richtlinie die Datenübermittlung an Mozilla Server zu Fehlern bei der Validierung von Zertifikaten
telemetry.fog.test.localhost_port -1|0 Pings, die Glean bzw. Firefox on Glean (FOG) Telemetrie generiert, werden mit -1 von FOG verworfen, während FOG der Glean Bibliothek signalisiert, sie wären versendet. Mit 0 werden sie an localhost:port statt an den Mozilla Telemetrieserver versendet
toolkit.coverage.enabled
toolkit.coverage.endpoint.base
toolkit.coverage.opt-out (anlegen)
false
leer
true
deaktiviert den Versand der Firefox-Version, Betriebssystem und -version und der Information, ob Telemetrie in den Optionen aktiviert ist
toolkit.telemetry.cachedClientID
toolkit.telemetry.enabled
toolkit.telemetry.*.enabled
toolkit.telemetry.server
toolkit.telemetry.unified
leer
false
false
leer
false
deaktiviert die Datenübermittlung zum Telemetrie-Bericht an Mozilla
toolkit.telemetry.pioneer-new-studies-available false Pioneer Studien

Richtlinie: CaptivePortal, UserMessaging

Sicherheit

Schutz vor betrügerischen Inhalten und gefährlicher Software

[ ] Gefährliche und betrügerische Inhalte blockieren
[ ] Gefährliche Downloads blockieren
[ ] Vor unerwünschter und ungewöhnlicher Software warnen

Die Schutzwirkung der Anti-Phishing und -Malware Funktionen ist ähnlich wie bei Einsatz eines Virenscanners auf bekannte bösartige Quellen beschränkt und schützt nicht vor aktuellen und neuen Quellen, die noch nicht in die Datenbank aufgenommen wurden. Für den Abgleich von URLs und Dateien verwendet Firefox Datenbanken, die von Google heruntergeladen und regelmäßig aktualsiert werden. Es ist zu beachten, dass bei Nutzung der Safe Browsing Funktionen für jeden Browser eine gleichbleibende Kennung erzeugt wird, die bei jedem Aktualisierungsvorgang an die Google Server übertragen wird und nach dem Aufruf einer bekannten bösartigen Website ein Hashwert der URL an den Google Server gesendet wird, um zu überprüfen, ob der Eintrag in der Datenbank noch aktuell ist.

Die Safe Browsing Funktionen wurden um Download Protection (Application Reputation) Prüfprozeduren erweitert, für die es keine grafischen Deaktivierungsoptionen gibt. Werden auszuführende Binärdateien heruntergeladen, ermittelt Firefox einige Metadaten zur Datei, wie Referer-, Zielserver- und Weiterleitungs-URLs, die SHA-256 Prüfsumme der Datei, Dateiname und -größe. Unter Windows kommen noch Informationen über das Zertifikat hinzu, mit dem die Datei ggf. signiert wurde. Die Metadaten werden mit den Einträgen in einer White- und Blacklist Datenbankdatei abgeglichen, um festzustellen, ob es sich um bekannte Malware, „gutartige“ Software oder unbekannte Software handelt. Beide Datenbankdateien werden ebenfalls vom Lieferanten Google heruntergeladen und lokal genutzt. Unter Windows werden zusätzliche Prüf-Abfragen direkt an Google übermittelt, wenn die lokale Überprüfung ergibt, dass es sich bei der Datei um unbekannte oder nicht bzw. falsch signierte Software handelt. Dabei werden neben der eigenen IP-Adresse auch die oben aufgeführten Metadaten übermittelt.

Deaktivierung

Einstellungsname Wert
browser.safebrowsing.blockedURIs.enabled false
browser.safebrowsing.downloads.enabled false
browser.safebrowsing.downloads.remote.block_* false
browser.safebrowsing.downloads.remote.enabled false
browser.safebrowsing.downloads.remote.timeout_ms 1
browser.safebrowsing.downloads.remote.url leer
browser.safebrowsing.malware.enabled false
browser.safebrowsing.phishing.enabled false
browser.safebrowsing.provider.google* leer

Achtung: An der Stelle nicht versehentlich auch die browser.safebrowsing.provider.mozilla* Einstellungen deaktivieren, die für den Download der Listen für den Verbesserten Schutz vor Aktivitätenverfolgung verantwortlich sind.

Zertifikate

Bei verschlüsselten TLS Verbindungen wird immer die Identität des Webservers mit dem Webserver-Zertifikat und den Zertifikaten der beteiligten Zertifizierungsinstanzen überprüft. Das geht auch in die andere Richtung, wenn der Webserver ein Benutzer-Zertifikat („persönliches Sicherheitszertifikat“) verlangt oder anfordert.

Ist man im Besitz eines Benutzer-Zertifikats, das ggf. Angaben zur realen Identität (Name, Adresse usw.) enthält und die erste Option ist aktiviert, kann das Benutzer-Zertifikat u. U. nach Anfoderung auch zu einem Webserver im Hintergund übertragen werden, für den das Benutzer-Zertifikat nicht bestimmt ist. Ist man nicht im Besitz eines Benutzer-Zertifikats und die erste Option ist aktiviert, kann Firefox u. U. nach Anforderung automatisch ein Benutzer-Zertifikat im Hintergrund erstellen und zum Webserver übertragen, das eventuell Angaben enthält, mit dem der Browser bzw. Benutzer eindeutig wiederidentifiziert werden kann. Beide Möglichkeiten bergen die Gefahr in sich, dass man trotz Nutzung eines Anondienstes identifiziert und ohne Anondienst noch effektiver identifiziert werden könnte. Deshalb ist immer die zweite Option zu aktivieren. Siehe auch TLS 1.2: Client-Zertifikate als Tracking-Falle.

Muss die erste Option genutzt werden, sollte ein gesondertes Profil für den oder die betroffenen Webserver eingerichtet und mit Firefox gestartet werden.

OSCP und CRlite

[ ] Aktuelle Gültigkeit von Zertifikaten durch Anfrage bei OSCP-Server bestätigen lassen

OSCP ist kritisch zu bewerten: mögliches Tracking/Profiling beim OCSP-Responder, falsch konfigurierte OCSP-Responder, http vs. https OCSP URLs oder überhaupt keine OSCP URLs in Server-Zertitikaten, Angriffe gegen OCSP bzw. Auswirkungen auf OSCP bei gefälschten Zertifizierungsstellen und Zertifikaten, MITM, Manipulation der OSCP-Antworten bei unverschlüsselten OSCP-Anfragen über nicht vertrauenswürdige Tor Ausgangs-Knoten usw. Damit bietet OSCP allenfalls eine Pseudo-Sicherheit – siehe u. a. No, don't enable revocation checking – und sollte deshalb deaktiviert werden.


Als Alternative zu OCSP führt Mozilla CRLite ein, mit dem verkürzt gesagt eine Datenbank mit komprimierten Daten zu Rückzugs-Informationen (CRLs) von Zertifikaten periodisch heruntergeladen und von Firefox lokal zur Überprüfung von Zertifikaten verwendet wird. Voraussetzung ist dabei, dass CAs ihre Zertifikate in Certificate Transparency Logdatenbanken speichern lassen.

Einstellungsname Wert
security.pki.crlite_mode 2
security.remote_settings.crlite_filters.enabled true

Nähere Informationen zu CRlite:

Verschlüsselung

Nur-HTTPS-Modus

( ) Nur-HTTPS-Modus in allen Fenstern aktivieren [Ausnahmen verwalten]

Jeder Aufruf einer URI erfolgt zunächst ausschließlich mit TLS-Verschlüsselung. Bei URIs mit unverschlüsseltem HTTP-Protokoll wird versucht, die URIs mittels HTTPS bzw. TLS-Verschlüsselung aufzurufen, ansonsten wird die Verbindung abgebrochen. Fügt man Domainnamen über den Ausnahmen verwalten Button hinzu, erfolgt für sie die Anzeige einer Warnmeldung, über die mit einem Klick die Website unverschlüsselt aufgerufen werden kann.

HTTPS-First-Modus

Im HTTPS-First-Modus erfolgt wie beim Nur-HTTPS-Modus jeder Aufruf einer URI zunnächst ausschließlich mit TLS-Verschlüsselung. Im Gegensatz zum Nur-HTTPS-Modus wird bei einer Fehlerrückmeldung bzw. nicht unterstützter TLS-Verschlüsselung danach automatisch versucht, die URI unverschlüsselt per HTTP aufzurufen. Der HTTPS-First-Modus kann mit true für die dom.security.https_first Einstellung aktiviert werden und deaktiviert den Nur-HTTPS-Modus.

TLS Protokoll & Cipher-Suites

Die Version 3.0 des SSL (Secure Sockets Layer) Protokolls wurde 1996 veröffentlicht und ist der um Sicherheitsmängel bereinigte Nachfolger der Version 2.0 des SSL Protokolls aus dem Jahr 1995. 1999 folgte das von der IETF standardisierte TLS (Transport Layer Security) Protokoll in Version 1.0, die auf SSL 3.0 basiert. Aufgrund der Ähnlichkeiten und gemeinsamen Funktionen wird TLS 1.0 auch als „SSL 3.1“ bezeichnet. Seit 1999 wurde das TLS Protokoll um weitere Funktionen, Erweiterungen, Schutzmechanismen gegen Angriffe, kryptografische Algorithmen und Verfahren ergänzt und liegt zum Zeitpunkt des Artikels in Version 1.3 vor.

Weitere Informationen zum SSL und TLS Protokoll bieten der Transport Layer Security Artikel in der englischsprachigen Wikipedia, die TLS RFCs der IETF und die Einführung in SSL von Markus Repges. Einen Eindruck, welche TLS-Protokolle, TLS Cipher-Suites mit Forward Secrecy und weiteren Sicherheitsmerkmale bei Webservern verbreitet sind, bietet das SSL-Pulse Dashboard von Qualys und bei Ciphersuite kann man sich zu Cipher-Suites informieren.

Für die Auswahl der TLS Protokollversion seitens Firefox sind zwei Einstellungen in der erweiterten Konfiguration maßgeblich:

  • security.tls.version.max
  • security.tls.version.min

Für beide Einstellungen kann der Wert 4= TLS 1.3 und 3 = TLS 1.2 gesetzt werden, um einen Bereich der anzuwendenden Protokollversionen zu definieren. Firefox versucht dann, eine TLS verschlüsselte Verbindung mit dem Webserver über die maximal geforderte Protokollversion aufzubauen und weicht innerhalb des Bereichs bis zur minimal unterstützten Protokollversion aus, wenn der Webserver die höherwertigen Protokollversionen nicht unterstützt oder korrekt implementiert.

Für eine optimale Auswahl:

Einstellungsname Wert Protokoll
security.tls.version.max 4 TLS 1.3
security.tls.version.min 4 TLS 1.3

Mit Fallback bis TLS 1.2:

Einstellungsname Wert Protokoll
security.tls.version.max 4 TLS 1.3
security.tls.version.min 3 TLS 1.2

TLS-Konfiguration des Browsers testen:

TLS-Konfiguration von Webservern testen:

Wie sich das Mozilla OpSec Team die serverseitige TLS-Konfiguration für alle Mozilla Websites vorstellt, ist auf der Security/Server Side TLS Seite im Mozilla Wiki nachzulesen. Empfehlungen enthält auch der Applied Crypto Hardening Guide von BetterCrypto.

Beispiel der Qualys Ausgabe

Beispiel der Browserleaks Ausgabe


Im Beispiel wurden in der erweiterten Konfiguration über „security.ssl3“ Eingabe die Cipher-Suites so gesetzt, dass nur TLS 1.3 und TLS 1.2 Cipher-Suites mit Forward Secrecy Verfahren aktiviert sind. Da nicht alle Webserver auf die Cipher-Suites eingestellt sind, muss man fallweise deaktvierte Cipher-Suites aktivieren – wenn es unbedingt nötig ist.

Mit Firefox 78 wurden die DHE Cipher-Suites TLS_DHE_RSA_WITH_AES_128_CBC_SHA und TLS_DHE_RSA_WITH_AES_256_CBC_SHA deaktiviert. Als Ersatz wurden die beiden Cipher-Suites TLS_RSA_WITH_AES_128_GCM_SHA256 und TLS_RSA_WITH_AES_256_GCM_SHA384 integriert. Die neuen Cipher-Suites unterstützen kein Forward Secrecy und lassen sich nicht über die Erweiterte Konfiguration deaktivieren. Wer sie deaktvieren will, muss eine entsprechende Richtlinie setzen:

"DisabledCiphers": {
  "TLS_RSA_WITH_AES_128_GCM_SHA256": true,
  "TLS_RSA_WITH_AES_256_GCM_SHA384": true
},

Wird in die Konfiguration zur Auswahl der Cipher-Suites eingegriffen, sollte man beachten, dass der Eingriff das Browser-Fingerprinting über die Analyse des TLS Handshakes begünstigt – also Fingerprinting mit sicheren Cipher-Suites oder geringeres Fingerprinting mit unsicheren Cipher-Suites.

Bei Nutzung eines Anondienstes mit Firefox sollte man TLS verschlüsselte Verbindungen (mit Überprüfung des Webserver-Zertifikats) bevorzugen, sofern der Webserver bzw. in Anspruch genommene Internetdienst TLS Verschlüsselung ermöglicht. Bei unverschlüsselten Verbindungen ist es dem letzten Knoten des jeweiligen Anondienstes potentiell möglich, übertragene Daten abzufangen und als Angreifer einen Man-in-the-middle-Angriff (MITM) zu unternehmen oder Inhalte vor der Zurückleitung zu manipulieren. Das trifft genauso auf die Nutzung von Firefox ohne Anondienst zu.

Weitere Einstellungen

Weitere, auf TLS bzw. Verschlüsselung bezogene Einstellungen in der erweiterten Konfiguration finden sich in der folgenden Tabelle. Daneben sind auf der NSS environment variables Seite Umgebungsvariablen aufgeführt, mit denen man auf die Funktionen der NSS (Network Security Services) Krypto-Bibliotheken zur Laufzeit und für ihre Kompilierung einwirken kann.

Einstellungsname Wert Anmerkungen
browser.ssl_override_behavior
browser.xul.error_pages.expert_bad_cert
2
true
bei Websites, bei denen Firefox problematische bzw. fehlerhafte Zertifikate annimmt (z. B. auch, weil sie nur selbstsignierte Zertifikate verwendet), wird das Zertifikat mit 2 (statt 1) als Wert trotzdem vorausgeladen. Mit true für die zweite Option werden bei entsprechenden Zertifikaten zusätzliche Informationen angezeigt und Benutzer explizit aufgefordert, das Zertifikat ausnahmsweise dauerhaft oder temporär zu akzeptieren.
browser.urlbar.trimURLs false im Adresseingaebfeld wird in der URL immer auch das Protokoll (http:// oder https://) angezeigt
dom.securecontext.whitelist_onions true Tor Onion Service Websites (*.onion URIs) werden genauso vertrauenswürdig eingestuft wie TLS verschlüsselte Websites mit CA-signiertem Zertifikat bzw. erfolgt keine Warnung, wenn Daten auf TOS Sites eingegeben und übermittelt werden, da TOS immer mit selbstsignierten Zertifikaten verschlüsseln, aber das HTTPS-Schema nicht verwenden und man eh wissen muss, welchem TOS man welche Daten anvertraut oder nicht.
network.http.altsvc.oe false deaktiviert die Verwendung von HTTP Alternative Services für Opportunistic Security for HTTP/2
network.http.spdy.allow-push
network.http.spdy.websockets
false
false
deaktiviert beim SPDY bzw. HTTP/2 Protokoll Server-Push Nachrichten und Datentransfers per WebSockets (s. u.)
security.certerrors.mitm.auto_enable_enterprise_roots
security.certerrors.mitm.priming.enabled
security.certerrors.mitm.priming.endpoint
security.enterprise_roots.enabled
false
false
leer
false
deaktiviert die automatische Akzeptanz und Verwendung von Root-CA Zertifikaten, die nicht im Firefox Zertifikatsspeicher gespeichert sind, sondern im Zertifikatsspeicher des Betriebssystems oder durch Dritt-Parteien wie z. B. Antivirus- oder Malware-Programme hinzugefügt wurden und in die TLS-Verschlüsselung zwischen Browser und Webserver eingreifen (MITM). Siehe auch How to Disable the Enterprise Roots Preference

Richtlinie: Certificates
security.certerrors.permanentOverride false selbtsignierte Zertifikate oder Zertifikate ohne Signaturen bekannter Root-CAs können nur temporär und nicht dauerhaft als Ausnahme akzeptiert werden
security.insecure_connection_icon.enabled true das Vorhängeschloss-Icon vor dem Adresseingabefeld wird bei unverschlüsselten HTTP-Verbindungen zu Servern schwarz eingefärbt und rot durchgestrichen dargestellt.
security.pki.cert_short_lifetime_in_days n falls OCSP genutzt wird, werden OSCP Prüfungen auch bei Zertifikaten mit kleinem Gültigkeitszeitraum bzw. Gültigkeitszeitraum < n Tagen durchgeführt
security.pki.name_matching_mode 3 für den Abgleich des Hostnamens der aufgerufenen URI mit Informationen im TLS-Zertifikat wird statt des Common Name (CN) Felds nur das Subject Alternative Name (SAN) Feld ausgewertet, in dem neben dem spezifischen Hoastnamen weitere (Wildcard-)Domainnamen oder IP-Adressen aufgeführt sein können, für die das Zertifikat gültig ist
security.pki.sha1_enforcement_level 1 mit 1 werden TLS-Zertifikate, die mittels SHA-1 signiert wurden, abgelehnt bzw. erscheint eine Warnung, mit 0 werden sie immer akzeptiert und mit 3 werden sie akzeptiert, wenn sie von Root-CAs signiert wurden, deren Zertifikat importiert wurde
security.remember_cert_checkbox_default_setting false sofern man persönliche Benutzer-Zertifikate nach Anforderung des Webservers (s. o. „Sicherheit“) nutzt, werden die generierten Daten nicht auf Dauer gespeichert, d. h. Benutzer-Zertifikate werden immer erneut angefragt.
security.ssl3.* zu aktivierende (true) und deaktivierende (false) SSL/TLS Cipher-Suites zur Verschlüsselung (s. o.)
security.ssl.enable_false_start false siehe RFC7918 Transport Layer Security (TLS) False Start
security.ssl.require_safe_negotiation
security.ssl.treat_unsafe_negotiation_as_broken
true
true
2009 wurde in den SSL/TLS-Protokollen eine Sicherheitsschwäche in der Funktion zum Neuaushandeln verschlüsselter Sitzungen aufgedeckt, die es Angreifern erlaubt, Man-in-the-middle-Angriff (MITM) Angriffe auf eine bestehende verschlüsselte Verbindung zu unternehmen, um z. B. Daten in die Verbindung einzuschleusen oder aus der Verbindung abzugreifen. Mit RFC 5746 wurde die Schwachstelle behoben, aber von vielen Server-Betreibern (noch) nicht umgesetzt. Mit den Optionen wird die Verwendung von RFC 5746 zum sicheren Neuaushandeln verlangt. Weitere Information im Security:Renegotiation Artikel des MozillaWiki und TLS / SSLv3 renegotiation vulnerability explained von Thierry Zoller.
network.http.http3.enable_0rtt
security.tls.enable_0rtt_data
false
false
siehe Security Review of TLS1.3 0-RTT, Playback: a TLS 1.3 story, SuperCooKey – A SuperCookie Built Into TLS 1.2 and 1.3

Richtlinie: Certificates, DisableSecurityBypass

Mixed Content Blockierung

Mit der Mixed Content Blockierung wird verhindert, dass von einer Website, die TLS-verschlüsselt aufgerufen wurde, weitere aktive oder passive Inhalte geladen, ausgeführt oder angezeigt werden, wenn die Inhalte über nicht verschlüsselte Verbindungen bzw. Links (HTTPS/TLS) bezogen werden sollen. Damit sind gemischte Inhalte, d. h. verschlüsselt und unverschlüsselt übertragene Inhalte auf Websites, zu denen man sich mit TLS Verschlüsselung verbindet, zunächst kategorisch verboten, was das Mitlesen und Manipulieren durch unverschlüsselte Datenübertragungen und die Veränderung der Webseite an sich verhindert.

Einstellungsname Wert Anmerkungen
security.mixed_content.block_active_content true das Laden aktiver Inhalte (Skripte, Applets, Stylesheets) wird blockiert
security.mixed_content.block_object_subrequest true das Laden von Inhalten durch Plugins bzw. in Seiten eingebetteten Plugin-Code wird blockiert
security.mixed_content.block_display_content true das Laden passiver Inhalte (Bild- und Schriftdateien, iFrames) wird blockiert
security.mixed_content.upgrade_display_content true bevor das Laden passiver Inhalte blockiert wird, wird versucht, die passiven Inhalte über verschlüsselte Verbindungen (HTTPS/TLS) zu erhalten

Synchronisation

Ein Firefox-Konto dient vor allem der Synchronisierung der Bookmarks, aller Daten der Chronik, geöffneter Fenster-Tabs, installierter Erweiterungen und Einstellungen zwischen mehreren Firefox Installationen auf verschiedenen Geräten (PCs, Smartphones usw.) über den Firefox Sync-Dienst und -Server. Für die Nutzung wird Passwort, E-Mail Adresse und Alter angegeben, mit denen nach verschlüsselter Übertragung ein Konto auf dem Sync-Server eingerichtet wird. Wer den Sync-Dienst nicht nutzen will, sollte kein Firefox-Konto einrichten und die Sync-Schnittstellen deaktivieren.

Einstellungsname Wert Anmerkungen
identity.fxaccounts.*.uri
identity.fxaccounts.enabled
identity.fxaccounts.commands.enabled
identity.fxaccounts.pairing.enabled
identity.fxaccounts.remote.root
identity.fxaccounts.toolbar.enabled
identity.sync.tokenserver.uri
leer
false
false
false
leer
false
leer
deaktiviert Firefox-Konto und Sync-Dienst
webextensions.storage.sync.enabled
webextensions.storage.sync.serverURL
true
leer
Einstellungen von WebExtensions und Daten, die sie produzieren, werden nicht auf Sync-Servern hochgeladen und gespeichert. Die erste Einstellung muss trotzdem auf true stehen, weil sonst einzelne WebExtensions nicht funktionieren.

Richtlinie: DisableFirefoxAccounts

WebExtensions

Mit Firefox „Quantum“ wurde das System der „Legacy“ Add-ons auf WebExtensions bzw. Browser Extensions umgestellt. Bei WebExtensions fällt auf, dass für verschiedene Erweiterungen Einstellungen zwingend aktiviert sein müssen, die man zuvor mit dem alten Add-on System zur Absicherung und/oder Anonymisierung bedenkenlos deaktivieren konnte, was davon abhängt, wie umfangreich die WebExtension von verschiedenen APIs und Berechtigungen Gebrauch macht.


Die Berechtigungen aller WebExtensions kann man sich grafisch mit der Project Insight Erweiterung anzeigen und auflisten lassen oder manuell abrufen, indem man about:debugging in das Adresseingabefeld eingibt und auf der Add-on Seite die Manifest URL zu einer WebExtension aufruft.


Berechtigungen der WebExtensions per Manifest URL

Generell birgt jede Erweiterung das Potential in sich, die Sicherheit oder Anonymisierung der Browsernutzung beeinträchtigen zu können. Das trifft besonders auf Erweiterungen zu, die am Datentransport beteiligt sind oder Dienste und Funktionen nicht lokal bereitstellen, sondern von Dritt-Anbietern über das Internet nutzen. Deshalb sollte sich der Anwender bei jeder Erweiterung vor der Installation fragen, ob eine Erweiterung tatsächlich notwendig ist, die Anzahl der installierten Erweiterungen möglichst gering halten, sich über die Funktionsweise und neue Funktionen (nach Updates) der Erweiterungen informieren und für die zeitnahe Aktualisierung von Erweiterungen sorgen.

Einstellungsname Wert Anmerkungen
extensions.langpacks.signatures.required
xpinstall.signatures.required
true
true
WebExtensions und Sprachpaket-WebExtensions müssen signiert sein, um installiert werden zu können
extensions.webextensions.restrictedDomains
privacy.resistFingerprinting.block_mozAddonManager (anlegen)
leer
true
bewirkt, dass auf den (Mozilla) Websites der angegebenen Domainnamen alle WebExtensions aktiv werden können, was voraussetzt, dass man sich vergewissert hat, dass alle installierten WebExtensions vertrauenswürdig sind
extensions.webextensions.userScripts.enabled false deaktiviert die userScripts API, mit der WebExtensions JavaScripte von 3rd-Parties bzw. vom Benutzer laden und ausführen können. Dazu zählen die diversen *Monkey Erweiterungen, mit denen z. B. dem Browser neue Funktionen hinzugefügt werden oder die Darstellung von Webinhalten manipuliert wird.

Richtlinie: Extensions, ExtensionSettings, ExtensionUpdate

System-Erweiterungen

Im Rahmen des Go Faster Plans hat Mozilla sogenannte System Add-ons eingeführt. System Add-ons sind Erweiterungen, in die Features und Funktionen, die ansonsten fest in den Browser integriert wären, ausgelagert sind. Die Dateien der Erweiterungen (z. Z. Form Autofill, Pocket) werden mit der Installation im browser/features/ Unterverzeichnis im Firefox Programmverzeichnis gespeichert und bei jeder Neuinstallation bzw. einer Aktualisierung mitinstalliert. System-Erweiterungen werden im Add-on Manager nicht aufgeführt, aber über about:support unter Firefox Features. Sie können nicht wie normale WebExtensions über einen Button aktiviert/deaktiviert werden.

Wer keine System-Erweiterungen nutzt oder installiert bekommen möchte, löscht die Erweiterungsdateien im Unterverzeichnis und entfernt Schreibberechtigungen auf das Unterverzeichnis.

Einstellungsname Wert Anmerkungen
devtools.aboutdebugging.showHiddenAddons true In der Liste der WebExtensions über about:debugging werden auch versteckte und System-Erweiterungen angezeigt
extensions.pocket.api
extensions.pocket.enabled
extensions.pocket.site
leer
false
leer
deaktiviert die Verwendung von Pocket
browser.pagethumbnails.capturing_disabled (anlegen)
extensions.screenshots.disabled
true
true
deaktiviert das "Screenshots Feature" und/oder den Upload von Screenshots auf Firefox Screenshots bei aktivierter Screenshots-Funktion
extensions.systemAddon.update.enabled
extensions.systemAddon.update.url
false
leer
keine Aktualisierungen von System Add-ons

Richtlinie: DisableFirefoxScreenshots, DisablePocket, DisableSystemAddonUpdate

Datenschutz & Sicherheit

(DE) Dringend empfohlen
(E) Empfohlen
(I) Informativ

Name Beschreibung Anmerkungen
CanvasBlocker blockiert bei aktiviertem Javascript die Nutzung der Canvas Javascript-API für Browserprofile und die Verfolgung von Besuchern per Canvas Fingerprinting (E)
Certainly Something zeigt nach Anklicken eines Icons in der Adresseingabezeile die Details zu TLS-Zertifikaten (Host-, Intermediate- und Root-Zertifikate, verwendetes TLS-Protokoll und verwendete Cipher-Suite) direkt in einem Tab-Fenster an (I)
ClearURLs
Neat URL
entfernt Tracking-Parameter aus URLs aufgerufener Websites (E)
CSS Exfill Protection überprüft CSS vor dem Parsen und Laden durch den Browser auf bösartige Regeln, über die Daten an einen Angreifer ausgeschleust und übermittelt werden können, um deren Ausführung zu blockieren Zum Hintergrund siehe Stealing Data With CSS: Attack and Defense
Cookie AutoDelete entfernt automatisch einige Daten (Cache, Cookies, Local Storage Speicher, IndexedDB, Service Worker) einer Website, nachdem das Tab-Fenster, in dem die Website läuft, geschlossen wurde oder die Domain im Tab-Fenster wechselt. Mit Whitelist- oder Greylist für auszunehmende Websites (E)

Einstellungen
Cookie Quick Manager Cookie-Manager und -Betrachter, der auch mit Cookies in mehreren Tab-Umgebungen und weiteren Cookie Erweiterungen klarkommt (E) (I)
Enterprise Policy Generator mit der Erweiterung nimmt man grafisch in einem Tab über Anklick- und Eingabefelder Einstellungen für Richtlinien vor und lässt Richtlinien-Dateien erstellen, sichen, exportieren und importieren (DE)
LocalCDN emuliert Content Delivery Networks (CDN), indem Ressourcen bekannter CDNs lokal gespeichert sind. Anfragen zu CDN-Ressourcen werden inspiziert und lokal vorhandene Ressourcen zur Darstellung von Inhalten verwendet, während die Anfragen nicht weitergeleitet werden. In den Optionen kann festgelegt werden, Anfragen zu (noch) nicht vorhandenen Ressourcen zu blockieren und bestimmte Domainnamen von der Inspektion auszunehmen. (E)

Wiki
Permission Inspector oder
Project Insight
zeigen auf einer Übersichtseite für alle WebExtensions an, welche Berechtigungen und Zugangsberechtigungen zu externen Domains im Manifest einer WebExtension definiert sind (I)
PinPatrol gibt in lesefreundlicher Tabelle die Inhalte und Daten zu HSTS und HPKP Einträgen in der SiteSecurityServiceState Datei aus (I)

PinPatrol Homepage
Proxy SwitchyOmega Proxy-Manager für das Management und schnelle oder auch automatische Umschalten zwischen verschiedener Proxys mittels Wildcard-, RegEx- und Ausnahme-Regeln, um Websites den jeweiligen Proxys „zuzuteilen“. (E)
Skip Redirect versucht, die letztendliche URL aus Weiterleitungs-Links zu extrahieren und nach dem Anklicken der Links die letztendliche URL direkt aufzurufen, so dass die Website mit dem Weiterleitungs-Link nicht erfährt, welche Links angeklickt bzw. Website besucht werden soll. Ausnahmen können über Aufnahme von URL-Mustern in einer Blacklist definiert werden (E)
Temporary Containers für das automatisierte Anlegen und Management von Tab-Umgebungen. Die WebExtension kann so eingerichtet werden, dass automatisch alle Links bzw. Ziel-Websites immer in neuen Tab-Umgebungen geöffnet werden, sobald sich die Domainnamen der Ziele von denen des geöffneten Tabs unterscheiden und Tab-Umgebungen automatisch verworfen werden, sobald das letzte Tab einer Tab-Umgebung geschlossen wurde. Statt kerkömmlicher können auch immer History-Delete Tab-Umgebungen verwendet werden, bei denen nach Schließen der Umgebung ihre Chronik gelöscht wird (DE)
uBlock Origin Filtert und blockiert Anfragen zu Servern, für die manuell oder über Filter-Abonnements Regeln eingestellt werden. Zusätzlich können noch ein paar datenschutzförderliche Firefox-Einstellungen gesetzt werden. (DE)

uBlock Wiki
Nano Defender (GitHub) Erweiterung, die Erkennung und Blockierung von uBlock Origin durch Websites aushebelt (E)

Für die Einrichtung nach der Installation der Erweiterung siehe Extra installation steps for uBlock Origin.
uMatrix Wendet Regeln auf erlaubte oder zu blockierende Daten-/Objekt-/Inhalts-Typen wie Cookies, CSS-Ressourcen (Stylesheets und Web-Fonts), Bilddateien, Plugins, Skripte, XHR-Anfragen, Frames und andere Objekte an. Die Festlegung der Berechtigungen bzw. Ausnahmen erfolgt nicht in Listenform, sondern über das Anklicken entsprechender Kategorie-Felder in einer einblendbaren Matrix. Kann gut mit weiteren Erweiterungen wie CanvasBlocker, uBlock usw. kombiniert werden. (DE)

uMatrix Wiki
WebSocket Detector erkennt aktive WebSocket Verbindungen und signalisiert sie über ein Icon im Adresseingabefeld (I)

Tools

Name Beschreibung
Auto Cookie Optout
Consent-O-Matic
I don't care about cookies
blockieren auf Webseiten die überflüssigen Warn- und „Opt-in/Opt-out“ Abfrage-Banner zur Verwendung und Annahme von Cookies und/oder beantworten Cookie-Abfragen möglichst restriktiv
Binnen-I be gone entfernt auf Webseiten aus Texten Wortformen des gendergerechten Sprachgebrauchs wie z. B. den Gebrauch von I/*/: innerhalb von Wörtern. Es können alle Websites mit Ausnahmen oder einzelne Websites gefiltert werden
Bookmarks Organizer überprüft, ob doppelte Bookmarks, Bookmarks ohne Namen oder Bookmarks mit nicht erreichbaren Links vorhanden sind und bietet die Möglichkeit, sie im Resultat direkt zu editieren oder zu löschen. Leider keine Optionen zur Pausierung der Überprüfung, Angabe von Verbindungs-Pausen und Ex- und Reimport von Zwischenständen.
Context Web Search nach Textauswahl auf Webseiten kann über das Kontextmenü die Suchmaschine aus einer Liste ausgewählt werden, mit der nach dem Text gesucht werden soll
Copy Plain Text entfernt Formatierungen vor dem Kopieren von Inhalten in die Zwischenablage
CustomCSSforFX keine WebExtension, sondern Ersatz für die Classic Theme Restorer (CTR) Erweiterung, die aufgrund fehlender WebExtension-API für Änderungen des Erscheinungsbilds nicht mehr eingesetzt werden kann. Über einen Katalog von CSS, userChrome.css und userContent.css Dateien, die und deren Direktiven man aktivieren, deaktivieren und abändern kann, ist eine nahezu identische Manipulation der Oberfläche wie mit CTR möglich. Siehe auch Firefox CustomCSS Beispiel.
Google Image Sizer ergänzt auf Google Images die Suche nach Größe um Bildgrößen >2 Megapixel – >70 Megapixel
HTTP Header Spy
HTTP Header Live
Mitschneiden und Verfolgen der Kopfzeileninhalte von HTTP(S) Anfragen und Antworten
Keep or Delete Bookmarks dient dem zwischenzeitlichen Aufräumen großer Bookmarksammlungen, indem sie zufällig Bookmarks auswählt und danach die Aktionen Behalten, Löschen, Webseite besuchen oder Überspringen anbietet
RSSPreview erkennt vorhandene RSS/ATOM Feeds. Bei erkannten Feeds werden die Feed-URLs über ein Icon im Adresseingabefeld angezeigt. Mit einem Klick wird eine Vorschau des Feed-Inhalts in einem Tab-Fenster angezeigt
Scroll Up Folder zeigt im Adresseingabefeld ein Verzeichnis-Icon, über das eine Verzeichnisliste eingebelendet wird, in der man die Verzeichnisebene wechseln kann
SingleFile speichert eine Webseite in einer Datei ab, wobei alle Inhalte (konfigurierbar) in die Datei eingebettet werden
Web Archives sucht in Web-Archiven und -Caches zwischengespeicherte bzw. archivierte Webseiten, die nicht (mehr) aufrufbar sind. Zu den unterstützen Archiven und Caches zählen u. a. Wayback Machine, Archive.is, Memento Time Travel und die Caches der Suchmaschinen
YouTube Classic Polymer reduziert die Oberfläche von YouTube und deaktiviert einige Funktionen auf der YouTube Webseite
Zoom Page WE ist ein Manager zum Vergrößern von Webseiteninhalten (ingesamt, nur Text, an der Breite des Browserfensters orientiert) entweder per Tab oder Website-spezifisch. Wird die Website-spezifische Funktion verwendet, muss die browser.zoom.siteSpecific Einstellung auf true stehen, was auch bedeutet, dass ein Merkmal zur Wiedererkennung/Fingerprintig des Besuchers aktiv ist.

Manuelle Anpassungen

Richtlinien

Bestimmte Einstellungen lassen sich vorab, generell und für alle Benutzer verbindlich über die Definition von Richtlinien festlegen. Dazu legt man im Installations- bzw. Programmverzeichnis von Firefox (nicht dem Profilverzeichnis des Benutzers) das distribution Unterverzeichnis an und speichert dort die policies.json Richtlinie-Datei, in der die Einstellungen eingetragen werden. Auf der Richtlinie-Vorlagen Seite oder über about:policies werden die Richlinien bzw. Einstellungen aufgeführt und beschrieben, die man in die policies.json Datei eintragen kann. Mit der Enterprise Policy Generator Erweiterung kann man komfortabel in einem Tab mit Hilfe von Anklick- und Eingabefeldern die Richtlinien-Einstellungen vornehmen und danach die Richtlinien-Datei erzeugen lassen. Eine erstellte oder generierte Richtlinie-Datei kann man auf Fehler überprüfen, indem die Datei file:///pfad/distribution/policies.json mit dem integrierten JSON-Betrachter geöffnet wird.

Beispiel

policies.json
{
  "policies": {
    "BlockAboutProfiles": true,
    "Cookies": {
      "AcceptThirdParty": "never",
      "Default": true,
      "ExpireAtSessionEnd": true,
      "Locked": true
    },
    "DisableAppUpdate": true,
    "DisableBuiltinPDFViewer": true,
    "DisableFeedbackCommands": true,
    "DisableFirefoxAccounts": true,
    "DisableFirefoxScreenshots": true,
    "DisableFirefoxStudies": true,
    "DisableFormHistory": true,
    "DisableMasterPasswordCreation": true,
    "DisablePocket": true,
    "DisableProfileImport": true,
    "DisableProfileRefresh": true,
    "DisableSetDesktopBackground": true,
    "DisableSystemAddonUpdate": true,
    "DisableTelemetry": true,
    "DisplayBookmarksToolbar": true,
    "DisplayMenuBar": true,
    "DontCheckDefaultBrowser": true,
    "EnableTrackingProtection": {
      "Locked": true,
      "Value": false
    },
    "FlashPlugin": {
      "Default": false,
      "Locked": true
    },
    "HardwareAcceleration": false,
    "Homepage": {
      "Locked": true,
      "URL": "https://sub.domain.tld/"
    },
    "InstallAddonsPermission": {
      "Allow": [
        "http://sub.domain.onion"
      ],
      "Default": true
    },
    "OfferToSaveLogins": false,
    "OverrideFirstRunPage": "",
    "OverridePostUpdatePage": "",
    "Permissions": {
      "Camera": {
        "BlockNewRequests": true,
        "Locked": true
      },
      "Location": {
        "BlockNewRequests": true,
        "Locked": true
      },
      "Microphone": {
        "BlockNewRequests": true,
        "Locked": true
      },
      "Notifications": {
        "BlockNewRequests": true,
        "Locked": true
      }
    },
    "PopupBlocking": {
      "Default": true,
      "Locked": true
    },
    "SearchBar": "separate",
    "SearchEngines": {
      "Default": "Suchmaschinenname",
      "PreventInstalls": false,
      "Remove": [
        "Google",
        "Bing",
        "Amazon.com",
        "eBay",
        "Twitter",
        "Wikipedia (en)"
      ]
    }
  }
}

So bleiben z. B. mit „DisableTelemetry“: true die Datenerhebung und -übermittlung (bis auf den Versand von Absturzmeldungen) und die entsprechenden grafischen Einstellungen deaktiviert. Wird eine Richtlinie als gesperrt markiert („Locked“: true), erhält der entsprechende Einstellungsname wie über die Autokonfiguration den locked Status.

Autokonfiguration

Für Einstellungen, die dauerhaft abgeändert und für nachträgliche Änderungen gesperrt werden sollen, damit sie z. B. von Firefox nicht überschrieben werden können, bietet sich die Autokonfiguration an:

  1. im defaults/pref Unterverzeichnis des Firefox Programmverzeichnisses (nicht dem Profilverzeichnis) wird die autoconfig.js Datei mit folgendem Inhalt gespeichert:
    pref("general.config.obscure_value", 0);
    pref("general.config.filename", "name.cfg");
  2. im Hauptverzeichnis des Firefox Programmverzeichnisses wird die name.cfg Datei gespeichert und nach folgendem Schema Einstellungen festgelegt:
    //
    lockPref("das.ist.ein.einstellungsname", "Wert");

Alternativ kann man die Einstellungen auch in die Richtlinie: Preferences aufnehmen.

Erweiterte Konfiguration

In der folgenden Tabelle sind Einstellungen aufgeführt, die über die erweiterte Konfiguration des Firefox Webbrowsers („about:config“ im Adresseingabefeld) vorgenommen werden können. Einige Einstellungen werden bereits mit den Firefox-Einstellungen (s. o.) gesetzt und können zusätzlich durch Erweiterungen gesetzt werden, die dem Datenschutz und der Sicherheit dienen.

Einstellungen können u. U. zu Einschränkungen von Zusatzfunktionen und -diensten, Geschwindigkeitseinbußen (z. B. Laden und Aufbauen v. Webseiten), Browser-Fehlfunktionen und eingeschränkter Webseitennutzung führen. Deshalb sollte man sich vorher informieren, welche Funktionen und Auswirkungen Einstellungen mit sich bringen und vorher ggf. Sicherungen der Profilverzeichnisse, prefs.js, user.js usw. anlegen.

Einstellungsname Wert Anmerkungen
accessibility.typeaheadfind.casesensitive 1 mit 1 wird bei der Suche auf Webseiten die Groß- und Kleinschreibung der Eingabe beachtet
browser.autofocus false Eingabefelder in Formularen werden nicht per HTML5 autofocus Attribut beim Laden einer Seite vorausgewählt
browser.messaging-system.whatsNewPanel.enabled false deaktiviert Button/Icon und Benachrichtigungen zu „Neuen Funktionen und Änderungen“ der aktuell installierten Firefox-Version
browser.ui.zoom.force-user-scalable true Zoomen soll immer auf jeder Webseite möglich
browser.uitour.enabled
browser.uitour.url
false
leer
deaktiviert die grafische Präsentation zur Erklärung der Firefox-Oberfläche
browser.urlbar.speculativeConnect.enabled false der spekulative Verbindungsaufbau zu Websites, deren Webseiten möglicherweise aufgerufen werden sollen, während einzugebende URLs im Adresseingabfeld autovervollständigt werden, wird deaktiviert
browser.urlbar.shortcuts.bookmarks
browser.urlbar.shortcuts.history
browser.urlbar.shortcuts.tabs
browser.urlbar.showSearchSuggestionsFirst
browser.urlbar.sponsoredTopSites
browser.urlbar.suggest.bookmark
browser.urlbar.suggest.*
browser.urlbar.usepreloadedtopurls.enabled → (anlegen)
true
false
false
false
false
true
false
false
zu Beginn einer Eingabe in die (leere) Adresseingabezeile werden nur eigene, passende Bookmarks herausgefiltert und angezeigt, aber keinerlei sonstigen „Vorschläge“
browser.zoom.siteSpecific false das einmal auf einer Webseite vorgenommene Zoom-Level wird nicht für die Website gespeichert, um ein Merkmal zur Wiedererkennung/Fingerprinting des Besuchers auszuschließen
canvas.capturestream.enabled false die HTMLCanvasElement captureStream() Methode erzeugt einen MediaStream, der einen MediaStreamTrack enthält, in dem in Echtzeit die Oberflächeninhalte per Video-Capture erfasst und übertragen werden können
clipboard.plainTextOnly
dom.allow_cut_copy
true
false
in die Zwischenablage können nur Daten mit text/plain MIME-Typ und keine Links oder Bilder kopiert werden, während Websites nicht aktiv Daten in die Zwischenablage kopieren oder aus ihr herausschneiden können
devtools.*.enabled false wer keine Webinhalte und -anwendungen entwickeln oder inspizieren muss oder dafür besser externe Anwendungen verwendet, sollte alle integrierten Entwickler-Tools (auch about:devtools) so weit wie möglich deaktivieren

Über die Einstellungen der Toolbox kann man einige Tools und zusätzliche Funktionen deaktivieren
devtools.remote.adb.extensionURL leer zur Deaktivierung der WebIDE die damit verbundene URL löschen.
devtools.remote.wifi.scan false schaltet die WebIDE over WIFI Funktion und den damit verbundenen Server zum Scannen nach WLAN-Geräten/Netzwerken ab.
browser.download.animateNotifications
browser.history_swipe_animation.disabled
dom.animations-api.*.enabled
layout.css.motion-path.enabled
layout.css.prefixes.animations
ui.prefersReducedMotion (anlegen)
false
true
false
false
false
1
schaltet so weit wie möglich Animationen von Bildern, Oberflächen- und Webseitenelementen per CSS, Web Animation API usw. ab
dom.battery.enabled false deaktiviert die Battery Status API
dom.block_external_protocol_in_iframes
dom.delay.block_external_protocol_in_iframes
true
1
der Aufruf von URLs mit externen Protokollen wie z. B. mailto:, ircs: in iFrames wird nach einer und nicht erst nach zehn Sekunden blockiert
dom.disable_window_* true verhindert die Manipulation von Fenstern
dom.event.contextmenu.enabled false das Kontextmenü ist auf allen Webseiten immer zugänglich
dom.events.dataTransfer.protected.enabled true betrifft den Datentransfer zwischen Browser und Zwischenablage
dom.gamepad.enabled
dom.gamepad.*.enabled
false
false
deaktiviert die Gamepad API, wenn man keine webbasierten Spiele mit einem Gamepad spielt
dom.mapped_arraybuffer.enabled false
dom.pointer-lock.enabled false deaktiviert die Pointer Lock API, um Mauszeiger in Webanwendungen zu fangen und zu verfolgen (z. B. für webbasierte 3D-Anwendungen oder -Spiele
dom.select_events.enabled
dom.select_events.textcontrols.enabled
false
false
deaktiviert Ereignismeldungen bzw. Funktionen der Selection API, die WebExtensions und Websites per JavaScript nutzen können, um auszuwerten oder zu beeinflussen, was der Benutzer auf Webseiten auswählt

Für webbasierte Editoren oder editor-artige Erweiterungen ggf. nützlich.
dom.targetBlankNoOpener.enabled true fügt Links, die per target Attribut in einem neuen Tab geöffnet werden, das rel=noopener Attribut hinzu, damit die aufgerufene Website nicht den Inhalt der Webseite manipulieren kann, auf der der Links angeklickt wurde
dom.vibrator.enabled false
dom.vr.*.enabled
dom.vr.service.enabled
false
false
wird keine VR/AR Hardware mit Firefox verwendet, kann man auch alle VR relevanten Optionen deaktivieren
dom.webaudio.enabled false deaktiviert die Web Audio API.
dom.webkitBlink.dirPicker.enabled
dom.webkitBlink.filesystem.enabled
false
false
deaktiviert die File and Directory Entries API
full-screen.api.enabled
full-screen-api.ignore-widgets
full-screen-api.pointer-lock.enabled
browser.fullscreen.autohide
false
true
false
false
deaktiviert die HTML5 Fullscreen API, über die Inhalte im Vollbildmodus dargestellt werden. Wer die API aktivieren will, kann mit der letzten Einstellungen das Vollbild im weiter sichtbaren Browserfenster laufen lassen.
image.animation_mode none animierte GIFs werden nur einmal als normale Bilder angezeigt
layout.css.visited_links_enabled false die Auswertung besuchter Links bei aktivierter History aufgrund der CSS:visited Farbkennzeichung der Links wird abgewehrt
media.codec.enabled false Unterstützte Multimedia Codecs bzw. Decoder werden so weit wie möglich deaktiviert, was natürlich abhängig vom persönlichen Bedarf ist.
media.media-capabilities.enabled false die Media Capabilities API dient Websites zur Emittlung der Multimediaeigenschaften bzw -möglichkeiten des Computers (Grafik- und Soundkarte, Monitor, Auflösung, unterstütze Codecs und ihre Dekodierung, Hardware- oder Softwaredekodierung), die zu einem präziseren Fingerprinting beitragen, dienen einer Website aber auch der Auswahl und Auslieferung der optimalen Multimediadaten an den Browser
media.video_stats.enabled false schaltet Statistiken zur Videoverarbeitung ab, um Fingerprinting zu erschweren.
media.webspeech.recognition.enable
media.webspeech.synth.enabled
false
false
deaktiviert SpeechRecognition (Sprecherkennung) und SpeechSynthesis (Text-to-Speech) der Web Speech API
narrate.enabled false deaktiviert Text-to-Speech Funktionen zur Sprachausgabe in der Leseansicht
network.auth.subresource-http-auth-allow 1 Dialogfenster zur Anmeldung per HTTP-Authentifizierung auf einer Webseite können nicht durch Elemente/Subressourcen fremder Domains ausgelöst werden
network.http.redirection-limit n beschränkt die maximale Anzahl an Umleitungsaufforderungen seitens des Servers, denen der Browser nach einer Anfrage folgt, auf n Umleitungen – z. B. 5 statt 20 (Standard)
network.http.speculative-parallel-limit 0 deaktiviert die Aufnahme von TCP-Verbindungen zu Servern im Voraus (ohne Inhalte zu laden wie mit network.prefetch-next), weil Firefox „erwartet“, dass die Server kurz danach aufgesucht werden, da z. B. der Mauscursor über einem Link steht (Standard: 6)
network.IDN_show_punycode true Anzeige des realen Punycode von IDNs, um Phishing/Spoofing Angriffe der Form zu erkennen.
network.prefetch-next false deaktiviert das Vorausladen von Inhalten in den Cache im Hintergrund vom aktuellen oder fremden Servern
network.predictor.enabled
network.predictor.enable-prefetch
false
false
keine DNS-Anfragen, TCP- und TLS-Handshakes im Voraus.
network.websocket.max-*
network.websocket.timeout*
1
1
ab Firefox 35 wurde die Möglichkeit, bidirektionale TCP-Verbindungen zu Servern mit Server-Push Nachrichten über die WebSockets API generell mittels network.websockets.enabled zu deaktivieren, entfernt

Eventuell können mit 1 für alle Integer-Werte der angegebenen WebSockets Einstellungsnamen zumindest WebSocket Verbindungen beschränkt werden. Mittels Privoxy-Filter für WebSockets kommen WebSocket Verbindungen nicht zustande. Mit der WebSocket Detector Erweiterung können aktive WebSocket Verbindungen erkannt und signalisiert werden.
security.data_uri.block_toplevel_data_uri_navigations true der Aufruf von data:// URLs wird eingeschränkt bzw. teilweise blockiert
security.family_safety.mode 0 deaktiviert unter Windows Microsoft Family Features Zensur-Funktionen
webchannel.allowObject.urlWhitelist leer keiner Website ist es erlaubt, über WebChannel Objekte statt nur Strings zu senden
webgl.disable-wgl
webgl.disabled
webgl.enable-debug-renderer-info
webgl.enable-webgl2
true
true
false
false
deaktiviert das Rendern von 3D-Objekten per WebGL / HTML5 / JavaScript

JavaScript

In Firefox wurden alle grafischen Einstellungen zur Aktivierung von JavaScript und der Einschränkung erlaubter Aktionen komplett auf Kosten der Sicherheit und einer mehr als fragwürdigen "Usability" Ideologie – die z. T. vom Tor Browser Projekt geteilt wird – entfernt. Stattdessen gibt es nur noch die Möglichkeit, JavaScript über die javascript.enabled Einstellung in der erweiterten Konfiguration global zu deaktivieren oder zu aktivieren. Deshalb ist es unabdingbar und dringend geboten, Erweiterungen zur Kontrolle der JavaScript-Verwendung, die in der Liste der Erweiterungen genannt werden, zu installieren und ggf. zusätzliche Einstellungen zu setzen.

Einstellungsname Wert Anmerkungen
dom.ipc.processCount.webLargeAllocation
dom.largeAllocationHeader.enabled
1
false
es werden keine großen Speicherbereiche für Webseiten reserviert und > 1 zusätzliche, separate Prozesse gestartet, die wegen WASM oder asm.js einen größeren Speicherbedarf signalisieren (z. B. Webspiele, WASM und asm.js Anwendungen)
dom.script_loader.bytecode_cache.enabled
dom.script_loader.bytecode_cache.strategy
false
-2
deaktiviert den JavaScript Start-up Bytecode Cache, in den der Javascript-Quellcode und -Funktionen besuchter Webseiten XDR kodiert und komprimiert abgespeichert wird. Bei nachfolgenden Besuchen der gleichen Webseiten wird Javascript nicht erneut heruntergeladen, geparst und ausgeführt, sondern aus dem Zwischenspeicher bezogen, was das Laden und Anzeigen von Webseiten beschleunigen soll. Mit -2 wird auf den Zwischenspeicher nur lesend zugeriffen
dom.audioworklet.enabled
dom.workers.maxPerDomain
dom.worklet.enabled
dom.serviceWorkers.enabled
false
1
false
false
keine Installation und kein Ausführen von Dienste-Javaskripten im Hintergrund, über die u. a. im Hintergrund clientseitige Javaskript „Proxys“ eingerichtet oder Push-Daten von Webservern empfangen werden können. Gleiches gilt für Worklets der Worklet Web-API, die als leichtgewichtige Web Worker Variante bezeichnet werden. Die Deaktivierung der (ausgelagerten) Ausführung (lastiger) Web Worker Javaskripte im Hintergrund mit dom.workers.enabled=false wurde mit Firefox 60 deaktiviert und kann nur noch nach Anzahl pro Domain begrenzt werden.
dom.workers.serialized-sab-access true aktiviert den JSExecutionManager, der die Ausführung verschiedener JavaScript-Kontexte in Bezug zueinander reguliert, um den CPU- und Energie-Verbrauch von Hintergrund-JavaScripten wg. Timing-Angriffen zu drosseln und zu verhindern, dass JavaScripts Threads, die sich gemeinsamen Speicher teilen (s. u.), Code gleichzeitig ausführen, um z. B. Spectre-ähnliche Seitenkanalangriffe zu erschwerden. Siehe Safely reviving shared memory.
javascript.options.asmjs
javascript.options.blinterp
javascript.options.baselinejit
javascript.options.native_regexp
javascript.options.ion
javascript.options.parallel_parsing
javascript.options.wasm
javascript.options.wasm_baselinejit
false
false
false
false
false
false
false
false
deaktiviert u. a. das OdinMonkey Javascript-Modul für asm.js des IonMonkey JIT Compilers (siehe asm.js files should not be cached to disk in Tor Browser and no linkability risk, außerdem anfällig für Exploits), den Baseline Compiler bzw. den IonMonkey Javascrit JIT Compiler der SpiderMonkey Javascript-Engine und WebAssembly (wasm) – bzw. wird die Ausführung von JavaScript auf das unbedingt nötige Mass reduziert.

Siehe auch iSEC Partners: Tor Browser Research Engagement, Recent Study Estimates That 50% of Websites Using WebAssembly Apply It for Malicious Purposes, More Worries over the Security of Web Assembly. Beeinträchtigungen bzgl. Erweiterungen oder Websites konnten bis jetzt nicht festgestellt werden.
javascript.options.discardSystemSource true „Diese Präferenz weist die JS-Engine an, den Quellcode von privilegiertem JS nach der Kompilierung zu verwerfen. Dies spart Speicher, lässt aber Dinge wie Function.prototype.toSource() fehlschlagen.“
dom.postMessage.sharedArrayBuffer.withCOOP_COEP
javascript.options.shared_memory
false
false
„Beachte, dass SharedArrayBuffer als Reaktion auf Spectre am 5. Januar 2018 in allen gängigen Browsern standardmäßig deaktiviert war. Chrome hat ihn in v67 auf Plattformen wieder aktiviert, auf denen Site-Isolationsfunktion zum Schutz vor Schwachstellen im Stil von Spectre aktiviert sind.“
security.block_Worker_with_wrong_mime true blockiert die Ausführung von Worker und SharedWorker JavaScripten, die mit einem anderen MIME-Typ als JavaScript ausgeliefert werden

Verweise auf aktuelle Seite