Firefox Absicherung & Anonymisierung - Seite 1

Einleitung

Hier werden Einstellungen für die aktuelle Firefox ESR Version aufgeführt, die grafisch über den Menüpunkt Einstellungen, manuell über Richtlinien, Autokonfiguration, erweiterte Konfiguration oder mittels WebExtensions vorgenommen werden können. Die Einstellungen betreffen die Absicherung und Anonymisierung der Browsernutzung, die bestmögliche Nutzung von Datenschutzfunktionen und die mögliche Begrenzung der Firefox-Funktionen auf seine Kernaufgabe: Webinhalte anzuzeigen. Will man Firefox anpassen und Richtlinien einsetzen, startet man am besten mit den Richtlinien.

Leider wird die Realisierung dieser Ziele mit jeder neuen Firefox-Version schwieriger, weil Mozilla Foundation und Entwicklergemeinde jede neue Firefox-Version mit speziellen „Features“ und Funktionen überfrachten, bis der Firefox Browser völlig zur unbenutzbaren, nicht mehr regulierbaren BLOATWARE verkommt. Hinzu kommt eine für Benutzer unzureichende, oberflächliche oder unverständliche Dokumentation, während Möglichkeiten, mit denen der Benutzer modifizerend eingreifen kann, schrittweise immer weiter reduziert werden. U. a. werden auch Einstellungen, die zuvor über die erweiterte Konfiguration vorgenommen werden konnten, entfernt bzw. in Dateien verborgen, um den Benutzer von Änderungen abzuhalten, die sich negativ auf die Funktionalität des Browsers auswirken könnten. Deshalb empfehle ich die Verwendung der aktuellen Firefox ESR (Extended Support Release) Version, für die das vorher Gesagte ebenfalls immer mehr zutrifft. Siehe dazu auch den Artikel The web browser I'm dreaming of auf Artificial truth.

Die Einstellungen bewirken, dass Layouts und Funktionen einzelner Webseiten und -dienste u. U. nur noch eingeschänkt, nach erneuten Eingriffen oder im Extremfall überhaupt nicht mehr benutzbar sind. Für die betroffenen Webseiten und -dienste kann man z. B. Firefox in einer zweiten Instanz mit anderem Browserprofil oder einen anderen Browser starten, die „offener“ eingestellt sind. Die Einstellungen können auch bewirken, dass einzelne WebExtensions nicht funktionieren. Deshalb ist vor Änderungen ggf. ein Backup des Profilverzeichnisses anzuraten – zumindest der prefs.js Datei, in der Änderungen gespeichert werden.

Zum Verhältnis zwischen Absicherung und Anonymisierung eine Anmerkung: Ich denke nicht, dass sich die eindeutige Wiedererkennung bzw. ein eindeutiger Fingerprint 100% verhindern lässt, aber der gleiche Fingerprint sitzungs- und seitenübergreifend. Insofern kommt es letztendlich darauf an, dass ein Browserprofil nicht mit der Identität einer realen Person verknüpft und die Identität indirekt ermittelt werden kann, weil ein Browser-Benutzer mit seiner realen IP-Adresse in Erscheinung tritt bzw. diese aufgrund der Nutzung und Konfiguration von Betriebssystem und Browser zu ermitteln ist. Für mich ist der sichere Einsatz des Browsers primär, seine „Anonymisierung“ sekundär relevant.

Zur Anonymisierung kann man vorab den gesamten Netzwerktraffic inklusive DNS-Anfragen über einen vertrauenswürdigen VPN-Dienst und/oder Tor leiten. Zur Erschwerung von Browser-Fingerprinting kann man vorab die privacy.fingerprintingProtection und privacy.resistFingerprinting Einstellung mit true aktivieren, womit Patches aktiv werden, die im Rahmen des Tor Uplift bzw. Fusion Projekts für Firefox entwickelt wurden. Siehe dazu Web fingerprinting is worse than I thought oder Fashion Faux Pas: Implicit Stylistic Fingerprints for Bypassing Browsers’ Anti-Fingerprinting Defenses.

Sofern neue bzw. zusätzliche Einstellungsnamen mit entsprechenden Werten selbst angelegt werden müssen, wird das mit (anlegen) gekennzeichnet. Die Einstellungsnamen unterscheiden sich im Wert-Typ nach:

  • String: Zeichenkette, Begriff
  • Integer: positive oder negative Zahl
  • Boolean: true oder false

Die manuellen Einstellungen sind so weit wie möglich den verschiedenen Themen zugeordnet und in Form von Tabellen aufgeführt:

Einstellungsname Wert Anmerkungen
eine.einstellung wert-typ zusätzliche Informationen

Download / Installation

Anstatt über die Mozilla Website oder Nutzung der automatischen Update-Funktion nur das Programm herunterzuladen, kann die jeweils aktuelle Firefox Version zusammen mit einer SHA-512 Prüfsummen-Datei heruntergeladen und nach Überprüfung der Prüfsummen manuell installiert werden.

Download aus Verzeichnis der aktuellen Version:

  • KEY „Mozilla Software Releases“ GnuPG-Schlüsseldatei
    Updated GPG key for signing Firefox Releases
  • SHA512SUMS.asc Prüfsummendatei GnuPG-Signaturdatei
  • SHA512SUMS Prüfsummendatei
  • firefox-version.ext Firefox-Archivdatei und firefox-version.ext.asc GnuPG-Signaturdatei (alternativ zu den SHA-512 Dateien) aus dem Betriebssystem-Unterverzeichnis

Vorgehen:

  1. Import „Mozilla Software Releases“ GnuPG-Schlüsseldatei: gpg --import KEY
  2. Import Mozilla OpSec/InfoSec GnuPG Schlüssel (mit dem der „Mozilla Software Releases“ Schlüssel zertifiziert sein muss)
  3. Überprüfung der Firefox-Archivdatei mit GnuPG-Signaturdatei: gpg --verify firefox-version.ext.asc
    oder
  4. Überprüfung der Prüfsummendatei mit GnuPG-Signaturdatei: gpg --verify SHA512SUMS.asc
  5. Überprüfung der Firefox-Archivdatei mit SHA-512 Prüfsummen: sha512sum firefox-version.ext
    und Vergleich des Werts mit der entsprechenden Zeile aus der SHA512SUMS Datei
  6. Installation von firefox-version.ext
  7. im Installationsverzeichnis Ausführungsberechtigungen der Dateien crashreporter, minidump-analyzer, pingsender und updater entfernen

Ergeben die Überprüfungen Unstimmigkeiten oder negative Statuswerte, kann es sich entweder um Übertragungsfehler handeln, so dass der Download wiederholt werden muss oder um manipulierte Firefox Versionen.

Informationen zu neu eingeführten Funktionen, behobenen Sicherheits- und Funktionsbugs zur aktuellen Firefoxversion finden sich in Sicherheits-Hinweisen zu behobenen Schwachstellen, Firefox Roadmap, Anmerkungen für Entwickler und den Release Notes über die URL https://www.mozilla.org/firefox/version-einsetzen/releasenotes/.

Allgemein

Tabs

Einstellungsname Wert Anmerkungen
browser.link.open_newwindow
browser.link.open_newwindow.restriction
browser.link.open_newwindow.disabled_in_fullscreen
1
0
true
1: Links werden im aktuellen Tab des Browserfensters statt in einem neuen Browserfenster geöffnet
0: per JavaScript aufgerufene, neue Browserfenster werden stattdessen in Tabs geöffnet
true: während der Vollbildanzeige werden keine zusätzlichen Browserfenster geöffnet
browser.tabs.remote.warmup.enabled
browser.tabs.remote.warmup.maxTabs
false
0
Ein Tab wird nicht im Hintergrund vorausgeladen, weil der Benutzer vermutlich zu diesem Tab wechseln wird, weil sich z. B. sein Mauszeiger über den Tab bewegt hat
browser.tabs.allowTabDetach false kein Ablösen von Tabs in eigene Fenster
browser.tabs.closeWindowWithLastTab false Nach Schließen des letzten Tabs wird der Browser nicht beendet

Siehe auch Startseite.

Tab-Umgebungen

[X] Tab-Umgebungen aktivieren [Einstellungen]

Über den Einstellungen Button kann man Namen, Farben und Icons existierender Tab-Umgebungen ändern und neue Tab-Umgebungen anlegen. Außerdem kann mit [X] Wählen Sie für jede neue Registerkarte einen Container aus festgelegt werden, dass beim Öffnen eines neuen Tabs immer eine Tab-Umgebung ausgewählt wird.

Container-Tabs, kurz Container oder Contextual Identity Container sind Begriffe für Tab-Umgebungen, die Funktionen zur Isolierung von Websites anwenden. Der Begriff der Contextual Identities bezieht sich auf die Hauptfunktion von Tab-Umgebungen, verschiedene Online-Identitäten parallel aber separiert voneinander in einer Browser-Sitzung zu „leben“ bzw. zu nutzen. Tab-Umgebungen können nicht im aktivierten Privaten Modus verwendet werden.

Zunächst gibt es eine Standard bzw. die Keine Umgebung genannte Tab-Umgebung, die für alle Websites bzw. eingegebene URLs in der Adressleiste gilt, für die keine eigene Tab-Umgebung eingerichtet wurde. D. h. die Websites bzw. Adressen befinden sich in einem gemeinsamen Container ohne spezielle Isolierungen voneinander, die mit eigenen Tab-Umgebungen einhergehen. Alle Websites bzw. URLs in einer eigenen Tab-Umgebung sind isoliert von denen in der Standard Tab-Umgebung und in anderen Tab-Umgebungen. Weitere Informationen finden sich im Abschnitt zu den Details der Implementierung von Containern des Contextual Identity Projekts.

Tab-Umgebungen ergänzen den Strengem Modus des Erweiterten Schutzes vor Aktivitätenverfolgung bzw. State Partitioning und Network Partitioning. Siehe dazu auch How Firefox’s Total Cookie Protection and container extensions work together. Manche WebExtensions setzen Tab-Umgebungen voraus bzw. aktivieren sie automatisch.

Einstellungsname Wert Anmerkungen
privacy.userContext.enabled true aktiviert Tab-Umgebungen
privacy.userContext.ui.enabled true aktiviert die Anzeige von Option und Button zu Tab-Umgebungen in den Einstellungen
privacy.userContext.newTabContainerOnLeftClick.enabled true über das [+] Icon zum Öffnen eines neuen Tab-Fensters öffnet sich ein Menü zur Auswahl der Tab-Umgebung, in die das neue Fenster geöffnet werden soll oder zum Öffnen ohne Tab-Umgebung

Management

Für weitere Funktionen und das Management der Tab-Umgebungen nutzt man besser die Temporary Containers WebExtension. Mit ihr kann man den Idealfall realisieren, dass automatisch für jede Website temporär ein eigener Website-spezifischer Container eingerichtet wird, der solange existiert, wie ein Tab geöffnet ist. Weitere Informationen zu Anwendung und Einrichtung stehen auf der Add-ons Seite und im Wiki der Erweiterung.

URLs der Domains addons.mozilla.org und accounts.firefox.com werden ebenfalls in eigene Tab-Umgebungen geladen, aber als priviligierte und nicht als normale Webinhalt-Prozesse. Zur Deaktivierung des Verhaltens setzt man folgende Einstellungen:

Einstellungsname Wert
browser.tabs.remote.separatePrivilegedMozillaWebContentProcess false
browser.tabs.remote.separatedMozillaDomains leer

Profile, MACs & Sandboxen

Für das Surfen zu besonderen Websites (z. B. Bank für Online-Banking) oder Websites, die aufgrund der Absicherung nicht mehr zugänglich sind, kann neben Tab-Umgebungen oder dem Privaten Modus auch eine neue, isolierte Browser-Instanz mit einem eigenen Profil gestartet werden.

Dafür wird zuerst das Firefox Installationsverzeichnis bzw. -profil dupliziert. Für jede Installation wird ein eigenes Profil mit /pfad/firefox --ProfileManager --no-remote und /pfad2/firefox --ProfileManager --no-remote erstellt. In der profiles.ini Datei im Firefox Benutzerverzeichnis sieht das so aus:

~/.mozilla/firefox/profiles.ini
[Profile1]
Name=profilname2
IsRelative=1
Path=profilname2
 
[Profile0]
Name=profilname1
IsRelative=1
Path=profilname1
Default=1
 
[General]
StartWithLastProfile=0
Version=2

Für den Start beider Instanzen:

/pfad1/firefox -P profilname1 Start der 1. Firefox-Instanz mit eigenem Profil(verzeichnis) als Standard
/pfad2/firefox -P profilname2 --no-remote Start der 2. Firefox-Instanz mit eigenem Profil(verzeichnis)
--safe-mode zusätzlich mit „sicherem Modus“ (deaktivierte Erweiterungen und Themes)
--private zusätzlich mit "privatem Modus"
--safe-mode --private zusätzlich mit „sicherem“ und „privaten Modus“

Zusätzlich wird jede installierte Firefox-Instanz neben den Anpassungen und der Firefox Security Sandbox mit Mandatory Access Control (MAC) Implementationen wie AppArmor, SELinux und/oder Sandbox Lösungen wie Firejail (Firejail Firefox Sandboxing Guide) reguliert, eingeschränkt und sowohl voneinander, als auch vom Rest der Benutzerumgebung (Dateien und Verzeichnisse, Anwendungen) isoliert.

Schreibberechtigungen für einzelne Verzeichnisse oder Dateien kann man auch über eine entsprechende Rechtevergabe oder sudo chattr +i einschränken.

Richtlinie: BlockAboutProfiles, DisableProfileImport, DisableProfileRefresh

Fission Site Isolierung

Im Rahmen des Fission Projekt hat Mozilla als Weiterentwicklung der Firefox Security Sandbox die Fission Site Isolierung in Firefox implementiert, in die im Mozilla Hacks Beitrag Introducing Firefox’s new Site Isolation Security Architecture eingeführt wird. Siehe auch New CPU side-channel attack takes aim at Chrome’s Site Isolation feature v. 07.09.21 bzw. Spook.js.

Fission Site Isolierung Grafik zur Fission Site Isolierung aus dem Mozilla Hacks Beitrag

Mit Fission werden die Webseiten jeder Website bzw. Domain, die nicht "same-site" ist, also der Hostname in einer URL nicht die gleiche eTLD+1 (effektive Top-Level Domain plus Subdomain davor) aufweist und dabei das gleiche Schema (http: oder https: Protokoll) verwendet, in einem eigenen Systemprozess geladen und ausgeführt. Das beinhaltet auch über Webframes eingebettete Webseiten anderer Websites bzw. Domains.

Für die Einstufung als „same-site“ oder nicht „same-site“ bzw. Ermittlung der eTLD+1 wird für Fission (und andere Isolierungs- oder Partitionierungsfunktion in Firefox auf Anwendungsebene) die Public Suffix List ausgewertet.

Mit einem eigenen Systemprozess ist auch ein eigener Speicherraum mit eigenen Speicheraddressen verbunden. Zwei voneinander verschiedene (nicht „same-site“) Websites bzw. Domains werden also auf „Arbeitsspeicherebene“ voneinander isoliert, damit sie nicht auf den jeweils fremden Speicherbreich der anderen Website lesen oder schreibend zugreifen können, wie es der Fall ist, wenn sie im selben Systemprozess laufen bzw. sich den Prozesspeicherraum teilen. Das soll Seitenkanalangriffe verhindern bzw. erschweren, wie sie z. B. mit Meltdown/Spectre breiter bekannt wurden und mögliche, bösartige Speicherzugriffe aufgrund von (noch unbekannten) Schwachstellen im Firefox-Code oder eingebetteten Tracker- bzw. Angreifer-Sites, die z. B. Passwort- und Anmeldedaten auslesen wollen, vorbeugen.

Einstellungsname Wert Anmerkungen
browser.tabs.remote.subframesPreferUsed false wenn dom.ipc.processCount.webIsolated > 1, wird für Subframes von 3rd-Party Domains kein bereits bestehender Inhaltsprozess wiederverwendet, um die Erstellung eines neuen Prozesses für sie zu vermeiden und damit ihre Anzahl zu verringern

Sprache und Erscheinungsbild

Schriftarten & Farben

Über JavaScript in Webseiten oder installierte Plugins können Informationen zu allen installierten Schriftarten ausgelesen werden. Da fast jeder Anwender eine individuelle Zusammenstellung von installierten Schriftarten pflegt, können die Informationen die Anonymisierung des Browserprofils einschränken und zum Fingerprinting beitragen. Das Auslesen lokaler, betriebssystemspezifischer Schriften verrät u. U. die Fälschung des Browserprofils, wenn z. B. ein „Windows-Browser“ vorgetäuscht, aber Schriften einer bestimmten Linux-Distribution gefunden werden. Einschränken lässt sich das nur über eine seletive Rechtevergabe auf Schriftart-Verzeichnisse bzw. -Dateien und Änderung der Konfiguration von Fontconfig.

Einstellungsname Wert Anmerkungen
font.blacklist.underline_offset leer
gfx.downloadable_fonts.disable_cache true deaktiviert den Cache zum Zwischenspeichern heruntergeladener Schriftart-Dateien.
gfx.font_rendering.graphite.enabled false der Graphite Schriften-Renderer ist im Normalfall unnötig
gfx.font_rendering.opentype_svg.enabled false in Schriftarten eingebettete SVG Grafiken werden nicht gerendert
layout.css.font-display.enabled
layout.css.font-loading-api.enabled
layout.css.font-loading-api.workers.enabled
false
false
false
per Javascript CSS Font-Loading API zu ladende Schriftart-Dateien werden nicht heruntergeladen und gerendert
layout.css.font-visibility.resistFingerprinting
layout.css.font-visibility.standard
layout.css.font-visibility.trackingprotection
1
1
1
die Auslesbarkeit von Schriften wird auf die systemweit gespeichterten Schriftarten ohne von Sprachpaketen oder vom Benutzer gespeicherten Schriftarten beschränkt
layout.css.prefixes.font-features false
ui.use_standins_for_native_colors true deaktiviert die Ermittlung der für die Desktopumgebung eingestellten Farben zur Darstellung von Webseitenelementen

Sprache

Die Angaben der bevorzugten Sprache(n) bestimmt den Inhalt der HTTP_ACCEPT_LANGUAGE (Accept-Language:) Kopfzeile, die vom Webbrowser zum Server übertragen wird. Wählt man Sprachen und Sprachkombinationen aus, die von einer großen Anzahl oder der Mehrheit aller Firefox-Benutzer ebenfalls verwendet wird, trägt die Auswahl zur Anonymisierung des Browserprofils bei.

Zur Anonymisierung bietet sich das Vortäuschen bzw. die Verwendung der „en-US“ Firefox-Version an. Da die Angaben auch zur Content Negotiation (Mozilla: Content Negotiation) für die Anzeige von Inhalten in einer bestimmten Sprache ausgewertet werden, kann das en-US Profil auch zur automatischen Ausgabe der englischsprachigen Version von Webseiten führen. Außerdem ist zu beachten, dass bei Erweiterungen mit deutscher Lokalisierung die Oberfläche danach u. U. ebenfalls englischsprachig wird. Die Oberfläche von Firefox selbst bleibt deutschsprachig, sofern die deutschsprachige „de“ Firefox-Version installiert wurde. Alternativ kann man auch direkt die aktuelle, englischsprachige Firefox Version aus dem en-US Unterverzeichnis herunterladen und installieren.

Einstellungsname Wert Anmerkungen
browser.search.region (anlegen) US
privacy.spoof_english
bzw.
intl.accept_languages

javascript.use_us_english_locale (anlegen)
2

en-US, en

true
ist die Einstellung privacy.resistFingerprinting aktiviert, setzt privacy.spoof_english automatisch die Werte für die beiden anderen Einstellungen

Richtlinie: RequestedLocales

HTTP Kopfzeilen & Browserkennung

Mit der Manipulation weiterer HTTP Kopfzeilen und anderer Datenn kann man die Anonymisierung des Browserprofils, der Browsernutzung und das Unterbinden von Tracking unterstützen.

Referer

In der HTTP_REFERER (Referer:) Kopfzeile speichert und überträgt der Browser die URL der Website oder Webseite als Quelladresse, über die Links zu weiteren Websites oder Webseites aufgerufen bzw. deren Inhalte in der Quell-Webseite abgerufen wurden. Der Webserver der nach der Quelladresse aufgrufenen Website oder Webseite liest die Kopfzeile aus und kann damit in Erfahrung bringen, welche fremde Website/Webseite oder welche eigenen Webseiten zuvor vom Anwender aufgesucht wurden und kann damit eine Historie der besuchten Ziele aufzeichnen. Gehören zu einem Betreiber verschiedenste Websites bzw. Domains, erhöht sich der Umfang der Historie nochmals.

Für die Behandlung der Referer Kopfzeile muss man Grundeinstellungen über die Kombination mehrerer Einstellungsnamen in der erweiterten Konfiguration vornehmen oder durch grafische Erweiterungen setzen lassen, die alle Einstellungen vollständig berücksichtigen:

P Einstellungsname Wert Anmerkungen
network.http.sendOriginHeader 1 Origin Kopfzeile, die protokoll://hostname(:port) der Website enthält, von der Anfragen stammen, wird bei WebSocket, POST Anfragen und Anfragen im CORS Kontext nur an gleiche Domainnamen gesendet. Mit 0 wird die Kopfzeile nie, mit 2 immer domainübergreifend an alle Websites gesendet.
A network.http.sendRefererHeader n Der Wert bestimmt generell, ob und zu welchem Dateityp überhaupt Referer Kopfzeilen gesendet werden oder nicht. Mögliche Werte:

0: kein Versand von Referer Kopfzeilen oder Setzen von document.referrer (DOM)
1: Versand bei Ab- und Aufruf von Text-Links
2: Versand bei Ab- und Aufruf von Text- und Bild-Links.
B network.http.referer.XOriginPolicy n Der Wert bestimmt generell, wann eine Referer Kopfzeile bei Website-übergreifenden Anfragen gesendet wird, wenn A auf 1 oder 2 steht. Mögliche Werte:

0: immer senden
1: senden, wenn die Domainnamen der beteiligten Server übereinstimmen (a.domain.tld → b.domain.tld usw.)
2: senden, wenn Hostnamen der beteiligten Server übereinstimmen (a.domain.tld ↔ a.domain.tld)
C network.http.referer.XOriginTrimmingPolicy n Der Wert bestimmt generell, was in Verbindung mit dem Wert unter B genau in der Referer Kopfzeile versendet wird. Mögliche Werte:

0: protokoll://hostname(:port)/pfad/datei (vollständige URL)
1: protokoll://hostname(:port)/pfad/
2: protokoll://hostname(:port)/
D network.http.referer.spoofSource n Der Wert bestimmt generell, ob in der Referer Kopfzeile reale Angaben zur Linkquelle übermittelt werden, oder ob die Angaben auf die URL des Zielservers gefälscht werden. Mögliche Werte:

true oder false
E network.http.referer.trimmingPolicy n Der Wert bestimmt, generell, was genau in der Referer Kopfzeile versendet wird. Mögliche Werte:

0: protokoll://hostname(:port)/pfad/datei (vollständige URL)
1: protokoll://hostname(:port)/pfad/
2: protokoll://hostname(:port)/
F network.http.referer.defaultPolicy
network.http.referer.defaultPolicy.trackers
n
n
bestimmt seitens des Clients (Browsers) die Standard Referrer-Richtlinie (W3C-Version) in der Referrer-Policy Kopfzeile und damit Inhalt von Referer Kopfzeilen, sowie ob und wann Referer Kopfzeilen gesendet werden, wenn seitens des Servers (Website) keine Referrer-Richtlinie gesetzt wird – d. h., eine Website kann die hier getroffene Einstellung überschreiben. Die zweite Einstellung setzt die Referrer-Richtlinie für 3rd-Party Tracker, wenn laut Cookie-Einstellungen die Cookies von 3rd-Party Tracker abgelehnt werden – der Standardwert ist 3.

Mögliche Werte:
0: kein Versand von Referer Kopfzeilen (no-referrer)
1: sendet vollständige URL, wenn Hostname, Port und Protokoll der beteiligten Server übereinstimmen (same-origin)
2: sendet vollständige URL, wenn Hostname, Port und Protokoll der beteiligten Server übereinstimmen, sendet nur protokoll://hostname/ an Zielserver fremder Domains, wenn TLS-Verschlüsselung besteht und keine Referer Kopfzeile, wenn von einer TLS-verschlüsselten Website der Link zu einer Website ohne TLS-Verschlüsselung führt (strict-origin-when-cross-origin)
3: sendet nur dann keine Referer Kopfzeile, wenn von einer TLS-verschlüsselten Website der Link zu einer Website ohne TLS-Verschlüsselung führt (no-referrer-when-downgrade, Standard)
network.http.referer.disallowCrossSiteRelaxingDefault.top_navigation true keine Beachtung weniger restriktiver Referrer-Richtlinien bei Cross-Site Top-Navigation
Tor network.http.referer.hideOnionSource true es wird keine Referer Kopfzeile gesendet, wenn von der Webseite eines Tor Onion Service einem Link im normalen WWW gefolgt wird

Alle Einstellungen kann man kombiniert zum Beispiel so setzen:

P Wert Anmerkungen
A 2 Referer sind „aktiviert“
B 1 Referer werden nur gesendet, wenn alle beteiligten Server zur gleichen Domain gehören
C 1 Pfadgenaues Tracking innerhalb der Domain
D false Keine Fälschung auf URL des Zielservers
E 1 Pfadgenaues Tracking innerhalb einer Domain
F 2
0

User-Agent

Eine weitere Kopfzeile ist die HTTP_USER_AGENT (User-Agent) Kopfzeile, in der der Browser Informationen zum eingesetzten Betriebssystem, Gerät (z. B. Desktop, Smartphone), seine bzw. die Version der Gecko Engine, das Datum seiner Erstellung und ggf. Branding Kennungen des Firefox Anbieters übertragen kann. Die aktuelle Zusammensetzung des User Agents beschreibt Firefox User Agent String Referenz und Browser detection using the user agent.

Für die Auswahl der User-Agent Werte und weiterer Daten gibt es verschiedene Ansätze und Überlegungen.

Die JonDoBrowser und Tor Browser Profile gehen davon aus, dass möglichst viele Firefox Anwender weltweit JonDoFox bzw. Tor Browser nutzen, was optimal wäre, da so eine riesige Anonymitätsgruppe von Anwendern existieren würde, die alle die gleiche Browserkennung „aussenden“ und damit kein Anwender über seinen Browser wiederzuerkennen ist. Ist das global gesehen nicht der Fall, bewegt man sich mit den Profilen nur innerhalb der relativ kleinen Gruppe der JonDoBrowser und Tor Browser Anwender, innerhalb derer man nicht wiedererkennbar ist, dafür aber zum Rest der globalen Gruppe der anderen Firefox Anwender. Zum Teil werden in den Profilen auch Angaben nicht übertragen oder geändert, die von Firefox Versionen, die direkt von mozilla.org heruntergeladen und installiert werden, standarmäßig ausgesendet werden. Im Oktober 2013 zeigten interne Dokumente der beiden Geheimdienste NSA und GCHQ, die von den Zeitungen Guardian und Washington Post veröffentlicht wurden, dass die Geheimdienste genau an diesen spezifischen Browserprofilen ansetzen, um speziell Tor Anwender zu identifizieren und für weitere Überwachungsmaßnahmen zu selektieren.

Ein anderer Ansatz sieht in der permanenten Änderung der User-Agent Kopfzeile die Lösung. Dabei ist zu beachten, dass zum gesamten Browserprofil oder Browser-Fingerprint nicht nur der User Agent gehört, d. h. der übrige Kontext zum User Agent passen muss. Außerdem muss es sich um reale User-Agent Kopfzeilen handeln und nicht um konstruierte User Agent Angaben, weil gerade ein einmaliger User Agent zu einem eindeutigen Merkmal wird, das zur Wiedererkennung führt.

Ein dritter Ansatz geht davon aus, das Standard-Profil der Firefox-Versionen von mozilla.org als Tarn-Browserprofil zu verwenden, das vermutlich von einer großen Anzahl der Firefox Anwender weltweit benutzt wird. Da Windows (leider) das vorherrschende Betriebssystem ist, Englisch (abgesehen von Chinesisch und Spanisch) die vorherrschende Weltsprache ist, während die USA („en-US“ Firefox) eine größere Population stellen als Großbritannien („en-GB“ Firefox) und sich die größte Zahl der Internetnutzer neben China in den USA befinden, bietet sich das Browserprofil der US-Amerikaner als Tarnung an, die sich keine großen Gedanken zur Anonymisierung oder dem Einsatz von Anon-Diensten machen und als Betriebssystem eine relativ aktuelle Windows Version einsetzen, auf dem (aufgrund des Mozilla Updatedienstes und Update Hotfix-Rollouts) die jeweils aktuelle Firefox Release-Version läuft. Das mag zwar einige Linux-Anwender schmerzen, die mit ihrem User Agent der Welt, Statistikern und Marktanalysten die Verbreitung von Linux „mitteilen“ wollen, zweckmäßig ist eine derartige Haltung bzgl. Anonymisierung nicht.

Die dritte Methode ist aus meiner Sicht zu bevorzugen. Wenn alle Browser-Hersteller die gleichen Standards implementieren und einheitliche User-Agent Angaben verwenden würden, hätte sich das Problem der User-Agent Angaben erledigt, was aber utopisch sein dürfte.

User-Agent Angaben unter Windows


Laut Firefox Hardware Report vom 23.12.2018 verwenden ca. 42% aller Firefox-Anwender Windows 10 (ca. 40% Windows 7) mit ca. 83% in der 64-Bit Variante und die 64-Bit Version von Firefox mit ca. 73%. Linux und Mac OS setzen ca. 8% der Benutzer ein. Anfang 2019 setzt also wird die Mehrheit der Benutzer Windows 10 (Windows NT 10.0) ein und der weltweite „Marktanteil“ von Firefox beträgt vermutlich < 4%, weil die Mehrheit aller Internetnutzer Google Chrome einsetzt.

Für einen Firefox unter Windows 10 wären folgende Einstellungen und String-Werte in der erweiterten Konfiguration zu setzen:

Einstellungsname Wert
browser.sessionstore.upgradeBackup.latestBuildID
browser.startup.homepage_override.buildID
extensions.lastAppBuildId
media.gmp-manager.buildID
toolkit.telemetry.previousBuildID
20181001000000
general.appversion.override (anlegen) 5.0 (Windows)
general.oscpu.override Windows NT 10.0; Win64; x64
general.platform.override Win32
general.productSub.override 20100101 („geckotrail“) bei Firefox Desktopversion
general.useragent.override Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Firefox/78.0
general.useragent.site_specific_overrides false

Zur Abgrenzung vom Internet Explorer 11 lautet die Angabe für Firefox ESR 115 bis Version 119:

Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/115.0

Von WebExtensions, die User-Agent Angaben fälschen, muss man abraten, da sie oft Windows User-Agent Angaben fehlerhaft oder nicht umfassend genug setzen. Mit der Vorbedingung, dass JavaScript für Webseiten aktiviert ist und aktivierter privacy.resistFingerprinting Einstellung werden die obigen Angaben zum Windows User-Agent außer Kraft gesetzt: Mozilla/5.0 (Windows NT 10.0; rv:78.0) Gecko/20100101 Firefox/78.0, was bei Verwendung eines Standard-Firefox statt eines Tor Browsers total idiotisch ist. Wer die Angaben zum User-Agent und Betriebssystem weiterhin fälschen will, muss mit aktivierter privacy.resistFingerprinting Einstellung den Datenverkehr über einen Proxy leiten, um Kopfzeilen zu manipulieren.

Mozilla IDs

Wenn sich der Firefox Browser mit Mozilla Servern verbindet, geschieht das zwar TLS verschlüsselt, es werden jedoch ebenfalls eine Reihe von browser- und betriebssystemspezifischen Merkmalen übertragen, die zu einem eindeutigen Browserprofil beitragen. Zum Beispiel, wenn man nach Erweiterungen sucht oder sie aktualisiert, für den Browser, Erweiterungen und Plugins eine Aktualisierungsprüfung manuell oder automatisch durchführt wird, die Firefox Hilfeseite aufgerufen wird usw.

Wer wie oben zusätzlich für diese Verbindungen ein stimmiges Tarn-Browserprofil sicherstellen will, kann relevante Variablen in entsprechenden Einstellungsnamen anpassen, indem Variablen durch feststehende Werte passend zum Tarn-Browserprofil ausgetauscht werden. Den Austausch kann man in der erweiterten Konfiguration oder per Autokonfiguration vornehmen.

Variablen
Variable Ersetzung bzw. Wert
%APP% Keine Ersetzung:
immer Firefox
%APP_ABI% x86_64-msvc
%APP_ID% Keine Ersetzung:
GUID von Firefox selbst:
immer %7Bec8030f7-c20a-464f-9b0e-13a3a9e97384%7D
%APP_LOCALE% en-US
%APP_OS% WINNT
%APP_RELEASE% 60
%APP_VERSION% 60.0
%BUILD_ID% BuildID
%BUILD_TARGET% WINNT_x86_64-msvc-x64
%CHANNEL% esr
%CHROME_LOCALE% en-US
%CLIENT_OS% Windows
%COMPATIBILITY_MODE% normal
%CURRENT_APP_VERSION% 60.0
%DISTRIBUTION%
%DISTRIBUTION_VERSION%
default
default
%IDS% Keine Ersetzung:
GUID oder ID (name@domain) einer Erweiterung.
%LOCALE% en-US
%NAME% Keine Ersetzung:
immer Firefox
%OS% WINNT
%OS_VERSION% Windows_NT%2010.0
%PRODUCT% Keine Ersetzung:
immer Firefox
%VERSION% 60.0
URL-Einstellungsname Zweck
app.support.baseURL Aufruf der Firefox Hilfe
extensions.getAddons.get.url Download von Erweiterungsdatei
extensions.update.background.url Aktualisierungsprüfung und Aktualisierung installierter Erweiterungen
extensions.update.url
media.gmp-manager.url Download und Aktualisierung von GMPs

Browserprofil-Tests

Wie der Browser über die HTTP Kopfzeilen und weitere Daten bei den Webservern vor und nach Manipulationen der Browserkennung in Erscheinung tritt, kann man auf verschiedenen Seiten analysieren lassen. Dabei sollte man die Aufrufe mit und ohne zugelassenem Javascript, direkt und anonymisiert über ein Anonnetz durchführen.

Dateien und Anwendungen

Downloads

Speichere Dateien in [Standard-Verzeichnis]
[X] Immer fragen, wo Dateien gespeichert werden sollen

Anwendungen

Für Dateitypen und Protokolle kann in Firefox mit verschiedenen Aktionen festgelegt werden, wie Firefox mit Dateien und Diensten umgeht:

  • Datei speichern
  • Jedes Mal nachfragen
  • Plugin (in Firefox) verwenden
  • Lokale Anwendung, Webanwendung oder Firefox-Funktion verwenden (z. B. Thunderbird oder Googlemail für mailto://, Feedreader oder Firefox Dynamische Lesezeichen für RSS-Feeds)

Es kann u. U. sinnvoll sein, einzelne Dateitypen zuerst lokal abzuspeichern, um sie später mit einer Anwendung zu öffnen, Dateitypen nur mit bestimmten Anwendungen öffnen zu lassen bzw. extern und nicht intern in Firefox per Plugin oder sich im Zweifelsfall lieber fragen zu lassen, anstatt Inhalte automatisch mit Anwendungen öffnen zu lassen, deren Dateityp automatisch mit einer installierten Anwendung verknüpft wurde.

Wie soll Firefox mit anderen Dateien verfahren?
[ ] Dateien speichern
[X] Fragen, ob Dateien geöffnet oder gespeichert werden sollen

Einstellungsname Wert Anmerkungen
browser.download.dir
browser.download.folderList
browser.download.lastDir
browser.download.lastDir.savePerSite
browser.download.useDownloadDir
browser.open.lastDir
/pfad/verzeichnis
2
/pfad/verzeichnis
false
true
/pfad/verzeichnis
Firefox speichert websiteunabhängig alle Datei-Downloads immer automatisch in /pfad/verzeichnis, das auch als Basis-Verzeichnis für Datei → Öffnen dient. Soll vorher eine Abfrage nach dem Dateinamen erfolgen, setzt man browser.download.useDownloadDir auf false

Richtlinie: DefaultDownloadDirectory, DownloadDirectory, PromptForDownloadLocation
browser.download.improvements_to_download_panel false nach Anklicken eines Download-Links wird das klassische Download-Fenster mit Anfrage zur gewünschten Aktion eingeblendet
network.protocol-handler.external-default
network.protocol-handler.external.name
false
true/false
von Firefox werden vorab alle Protokolle immer von Firefox selbst behandelt und nicht durch externe Anwendungen. Mit true als Wert der zweiten Einstellung wird das Protokoll durch eine externe Anwendung behandelt. Alle Protokollnamen außer mailto werden auf false gesetzt, wenn nur E-Mail Links durch einen externen MUA wie Thunderbird verarbeitet werden sollen
network.protocol-handler.warn-external.default
network.protocol-handler.warn-external.name
true
true/false
bevor ein Protokoll durch eine externe Anwendung behandelt wird, erfolgt durch Firefox eine Nachfrage. true als Wert der zweiten Einstellung wird für alle Protokollnamen außer mailto (false) gesetzt, wenn nur E-Mail Links ohne Nachfrage an einen externen MUA wie Thunderbird übergeben werden sollen

Werden Inhalte manuell oder automatisch mit externen Anwendungen geöffnet, sind an diese Anwendungen die gleichen Sicherheits- und Absicherungsanforderungen zu richten wie an den Browser selbst.

Richtlinie: Handlers, DefaultDownloadDirectory, DownloadDirectory, PromptForDownloadLocation

Plugins

Generell gilt wie für WebExtensions, die Anzahl installierter Plugins so klein wie möglich zu halten.

Java Plugin

Java Plugins sollten nicht installiert und genutzt werden. Falls unbedingt benötigt, werden Plugins nur fallweise aktiviert und bleiben ansonsten deaktiviert. Alternativ wird ein weiteres Firefox-Profil eingerichtet, mit dem das Java Plugin verwendet wird.

PDF Plugin

Plugins zur Betrachtung von PDF-Dateien werden nicht installiert und wie der eingebaute PDF-Betrachter nicht genutzt. Stattdessen kann man PDF-Dokumente mit PDF-Betrachtungsprogrammen wie MuPDF öffnen lassen (wenn man sie nicht zuvor abspeichern lässt), die nur die Grundfunktionen zur Betrachtung von PDF-Dokumenten mitbringen. Zusätzlich sollte das Betrachtungsprogramm mit einem entsprechenden MAC/Sandbox Profil abgesichert werden.

Einstellungsname Wert Anmerkungen
browser.helperApps.showOpenOptionForPdfJS
pdfjs.disabled
pdfjs.disable*
false
true
true
deaktiviert das Ausführen des integrierten Javascript PDF Betrachters

Richtlinie: DisableBuiltinPDFViewer, PDFjs

In der erweiterten Konfiguration kann festgelegt werden, wie Plugins standardmäßig zu behandeln sind, die neu hinzugefügt wurden:

Einstellungsname Wert Anmerkungen
plugin.default.state 0 neu hinzugefügte Plugins sind zunächst deaktviert
plugin.state.name n 0 (Nie aktivieren)
1 (Nachfragen, ob aktiviert werden soll)
2 (Immer aktivieren)

Inhalte mit DRM-Kopierschutz

[ ] Inhalte mit DRM-Kopierschutz wiedergeben

Open und EME-CDM GMPs

Firefox implementiert Gecko Media Plugins (GMPs) von denen es zwei Typen gibt:

Open/Codec GMPs

Open oder propietäre Codec GMPs liefern z. B. Funktionen zum Kodieren und Dekodieren von Multimedia-Inhalten, zukünftig vermutlich auch zum Anzeigen verschiedener Datei- bzw. Dokument-Typen. Für GMPs gelten die gleichen Aussagen wie zu Plugins. Deshalb sind Codec GMPs auch nicht anders zu bewerten als z. B. das Flash Plugin und werden vermutlich Plugins diesen Typs ablösen. Die Bewertung des Anbieters (auch hinsichtlich seiner Kooperation mit Geheimdiensten und Sicherheitsbehörden) bleibt dem Benutzer überlassen. Negativ stößt jedenfalls bei Aktualisierungen von Firefox auf, dass das Cisco OpenH264 GMP automatisch, ohne Nachfrage und ohne TLS-Verschlüsselung heruntergeladen, installiert und aktualisiert wird. Das Ausnehmen der GMPs von der Click to Play Kontrolle durch den Benutzer ist ebenfalls negativ zu bewerten.

Download des OpenH264 GMP.

EME-CDM GMPs

für Webvideos, Video- und TV-Streams

Die Encrypted Media Extensions (EME) sind eine W3C HTML5 Spezifikation für <video> und <audio> Elemente, die von Apple, Microsoft, Google und Unterhaltungsinhalte-Anbietern wie Netflix für das DRM-beschränkte Abspielen von Video- und Audiodaten entwickelt und beim W3C durchgedrückt wurde. Sie stellen allgemein gesprochen die Browser Javascript API für den Zugriff auf die Content Decryption Module (CDM) bzw. Plugins dar, die DRM-verschlüsselte Inhalte entschlüsseln und mit einem Multimedia-Dekoder dekodieren.

Vereinfachtes CDM Modell. Quelle:
Reconciling Mozilla’s Mission and W3C EME


Im Unterschied zu Open GMPs ist ein EME-CDM immer ein propietäres, closed-source GMP, das Mozilla selbst als „Black Box“ bezeichnet. Nach Download und Installation vom Anbieter-Server wird beim Aufruf von EME-DRM Inhalten das CDM wie bei Open GMPs über den Plugin Container in eine Sandbox-Umgebung geladen. Der Plugin Container wird dabei als „CDM Host“ bezeichnet.

Um den Zugriff auf Inhalte an ein Gerät bzw. Browser einschränkend zu binden, generiert der CDM Host für jeden Inhalte-Anbieter (z. B. YouTube, Apple usw.) zuerst eine eigene, eindeutige Geräte- bzw. Browser-ID. Die ID ist ein Hashwert, der aus Gerätedaten und eines zufällig ermittelten Origin-Secret als „Salt“ gebildet wird (wobei es an anderer Stelle auch heißt, der Saltwert wäre einfach der User Agent), um wg. Browser-Fingerprintings keine realen Daten zu verwenden. D. h., das EME-CDM GMP ist an einen speziellen CDM Host bzw. Browser gebunden. Wird der CDM Host manipuliert bzw. ausgetauscht, deaktiviert sich das EME-CDM.

Die ID bleibt für das EME-CDM bzw. einen Inhalte-Anbeiter solange gleich und damit wiedererkennbar, wie man nicht das Origin-Secret löscht und damit die ID zurücksetzt. Diese Möglichkeit soll angeboten werden und muss dann auch genutzt werden, um Benutzerprofile zu vermeiden.

Greift der Benutzer mit seinem Browser auf DRM Inhalte zu, transportiert Firefox über IPC Känale die verschlüsselte Datei oder den verschlüsselten Datenstrom über den CDM Host zum CDM. Das CDM ermittelt die enthaltene Schlüssel-ID und lässt den Entschlüsselungsschlüssel vom Browser über eine TLS-verschlüsselte Verbindung vom CDM Anbieter-Server herunterladen, entschlüsselt und dekodiert die Daten mit dem enthaltenen Dekoder und transportiert die Daten über den CDM Host und IPC Kanäle zu Firefox, der sie anzeigt oder abspielt, aber nicht mehr abspeichern kann.

Ob die GMP und CDM Host „Sandbox“ das CDM bzw. GMP tatsächlich zuverlässig von Browser, Betriebssystem, Dateisystem und Hardware isoliert und genauso zuverlässig dem Browser-Fingerprintig und der Wiedererkennung des Benutzers entgegenwirken kann, bleibt beim CDM angesichts des „Black Box“ Charakters des CDM, der (noch) nebulösen ID-Generierung, dem verschlüsselten Kanal zum Anbieter-Server und einer eventuellen Kooperationsbereitschaft mit Geheimdiensten und Sicherheitsbehörden dahingestellt bzw. zweifelhaft. Siehe z. B. Gecko Media Plugin sandbox escape, Buffer overflow in ClearKey Content Decryption Module (CDM) during video playback.

Merkmale beider GMP-Typen

  • Plugins werden als binäre Bibliotheken direkt vom Server des Anbieters – u. U. ohne TLS-Verschlüsselung – heruntergeladen und aktualisiert.
  • Plugins werden im Add-ons Manager unter Plugins aufgeführt, können aber nur permanent aktiviert oder deaktiviert werden, also kein „Click to Play“.
  • Die Updateprüfung und das Anstoßen des Downloads wird (mit TLS-Verschlüsselung) über Mozilla-Updateserver durchgeführt, die aber über die angefragte update.xml Datei nur SHA512 Prüfsumme liefern bzw. prüfen.
  • Unterhalb des Firefox Profilverzeichnisses wird für jedes GMP ein profilname/gmp…/ Unterverzeichnis angelegt, das die Bibliotheks- und Metadaten-Datei des Plugins enthält. In der Metadaten-Datei stehen Pluginname, Zweckbeschreibung, Versionsangabe und Funktionen der Plugin-APIs.
  • Plugins werden per Plugin Container in einem eigenen Kindprozess geladen und ausgeführt, der zusätzlich in einer Sandbox laufen kann, um das Plugin vom Browserprozess zu isolieren und Zugriffsprivilegien hinsichtlich Dateisystem, Speicher, Netzwerkschnittstelle usw. zu beschränken – auch zur Vermeidung von Fingerprinting-Daten. EME-CDMs sollen immer in einer Sandbox laufen.

Deaktivierung

Neben der Deaktivierung im Add-on Manager kann man GMPs und EME auch in der erweiterten Konfiguration dauerhaft deaktivieren:

Einstellungsname Wert Anmerkungen
media.eme.enabled false deaktiviert die EME DOM API
media.gmp.trial-create.enabled false mit true lässt man auf installierten EME GMPs ein Testmuster laufen, um festzustellen, ob sie H.264 dekodieren können
media.gmp-manager.url
media.gmp-manager.updateEnabled (anlegen)
media.gmp-provider.enabled
leer
false
false
keine Downloads und Aktualisierungen von GMPs. Zusätzlich die gmp Unterverzeichnisse im Firefox Profilverzeichnis löschen und das gmp Unterverzeichnis mit Schreibschutz versehen
media.gmp-gmpname.enabled
media.gmp-name.visible
false
false
deaktiviert die Verwendung des GMP, die Kommunikation zum Anbieter und die Abfrage zur Reaktivierung deaktivierter CDMs

Richtlinie: EncryptedMediaExtensions

ClearKey GMP
  • gmp-clearkey Unterverzeichnis im Firefox Programmverzeichnis leeren und mit Schreibschutz versehen
andere GMPs
  • gmp… Unterverzeichnisse im Firefox Profilverzeichnis leeren und mit Schreibschutz versehen. Für Ciscos OpenH264 GMP kann man auch Verbindungen zu ciscobinary.openh264.org per Paketfilter oder Proxy blockieren

Firefox-Updates

Firefox erlauben
( ) Updates automatisch zu installieren (empfohlen)
( ) Nach Updates zu suchen, aber vor der Installation nachfragen

Bei Betriebssystemen, die Firefox aus eigenen Software-Quellen installieren und automatisch aktualisieren, erübrigt sich die automatische Aktualisierung von Firefox. Ebenso, wenn man Firefox selbst manuell installiert und aktualisiert.

Mit der DisableAppUpdate Richtlinie werden die beiden Optionen deaktiviert und durch die Anzeige ersetzt, dass Updates durch den Systemadministrator deaktiviert wurden. Ansonsten muss man zwischen den Optionen wählen. Dabei bietet sich die zweite Option an – allein schon deshalb, um ggf. vor einer Aktualisierung noch ein Backup der Profilverzeichnisse anlegen zu können. Über die Mozilla Mailingliste für Ankündigungen kann man sich zu neuen Firefox Versionen informieren lassen. Die Veröffentlichung neuer Firefox-Versionen zu ignorieren oder nicht einzuspielen, verbietet sich von selbst.

Sofern WebExtensions über die Add-ons Firefox Seite bezogen wurden, werden WebExtensions regelmäßig über verschlüsselte Verbindungen zu Mozilla auf vorliegende Aktualisierungen überprüft und aktualisiert. Bei WebExtensions von anderen Websites bzw. direkt vom Programmierer wird die Überprüfung und Aktualisierung ggf. über diese Websites und ohne verschlüsselte Verbindung durchgeführt.

Einstellungsname Wert Anmerkungen
browser.startup.upgradeDialog.enabled false keine Anzeige eines Upgrade-Dialogfensters bei neuen Firefox Hauptversionen

Leistung

[ ] Empfohlene Leistungseinstellungen verwenden
[ ] Hardware-Beschleunigung verwenden, wenn verfügbar

Wenn das Browser-Fingerprinting per Hardware-Fingerprinting erschwert werden soll, deaktiviert man die Optionen.

Richtlinie: HardwareAcceleration

Surfen

[ ] Erweiterungen während des Surfens empfehlen
[ ] Funktionen während des Surfens empfehlen

Empfehlungen zu Funktionen und Erweiterungen gehen mit der Erhebung und Analyse von Telemetrie-Daten einher.

Einstellungsname Wert Anmerkungen
browser.discovery.containers.enabled
browser.discovery.enabled
browser.discovery.sites
extensions.getAddons.discovery.api_url
extensions.getAddons.showPane (anlegen)
extensions.htmlaboutaddons.recommendations.enabled
extensions.recommendations.themeRecommendationUrl
false
false
leer
leer
false
false
leer
keine Ermittlung und Anzeige personalisierter, empfohlener Erweiterungen und Features, basierend auf analysiertem Surfverhalten und bereits genutzer Add-ons. Siehe auch Add-on recommendations for Firefox users: a prototype recommender system leveraging existing data sources, Contextual Feature Recommender (CFR)

Richtlinie: UserMessaging

Verbindungs-Einstellungen

Über den Einstellungen Button werden die Einstellungen aufgerufen, die festlegen, wie Verbindungen zwischen Firefox und Servern aufgebaut werden und verlaufen. Damit sind die Verbindungs-Einstellungen der zentrale Punkt für die Anonymisierung der Firefox Nutzung.

Firefox Verbindungs-Einstellungen


In der folgenden Tabelle sind die IP-Adressen (immer 127.0.0.1) und Portnummern aufgeführt, die für die verschiedenen Protokolle einzutragen sind, wenn man die Verbindungen über Tor direkt oder indirekt mit Weiterleitung über einen Proxy wie z. B. Privoxy anonymisieren will.

Tor Privoxy → Anondienst
HTTP-Proxy - 127.0.0.1:8118
SSL-Proxy - 127.0.0.1:8118
FTP-Proxy - 127.0.0.1:8118
SOCKS-Host 127.0.0.1:9050 -
SOCKS [x] SOCKS v5

In den erweiterten Einstellungen von Firefox werden folgende Einstellungen gesetzt:

Einstellungsname Wert
network.proxy.allow_bypass false
network.proxy.failover_direct false
network.proxy.no_proxies_on leer
network.proxy.socks 127.0.0.1
network.proxy.socks_port 9050
network.proxy.socks_version 5

Richtlinie: Proxy

Bei der Installation von WebExtensions sollte man darauf achten, dass sie keine Proxy Berechtigungen erfordern, sofern sie nicht selbst als Proxy-Manager fungieren, da WebExtensions mit Proxy-Berechtigungen Proxy Einstellungen ändern und eigene Proxy-Skripte inklusive PAC Skripte verwenden können.

DNS-Anfragen

DNS-Anfragen bzw. Anfragen an DNS-Server zur Auflösung von Domainnamen in IP-Adressen sollten immer verschlüsselt und möglichst anonymisiert erfolgen. Sofern ein lokaler Proxy mit Weiterleitung an Tor oder JonDo als SOCKS-Proxy (s. o.) zwischen Firefox und den Anondienst geschaltet oder ein Anondienst direkt als Proxy eingetragen wird, übernimmt der lokale Proxy die Firefox Anfragen zur Namensauflösung und leiten sie an den Anondienst weiter bzw. übernimmt der Anondienst die Anfragen zur Namensauflösung.

Zusätzlich, als Ersatz oder zur Gewährleistung, dass Namensauflösungen immer, also auch durch das Betriebsystem selbst, verschlüsselt und anonymisiert durchgeführt werden, sollte auch die Konfigurationen eines lokalen DNS-Resolvers bzw. der Funktionen des Betriebssystems zur Namensauflösung so ausgerichtet werden, dass Anfragen zur Namensauflösung verschlüsselt und/oder anonymisiert erfolgen und nicht direkt und unverschlüsselt durch die DNS-Resolver des Internetzugang-Providers. Für Anregungen siehe Linux: DNS mit Dnsmasq, DNSCrypt-Proxy2 & Tor.

Einstellungsname Wert Anmerkungen
browser.urlbar.dnsResolveSingleWordsAfterSearch 0 bei Eingabe von einem Begriff in die Adressleiste zur Suche wird der Begriff nicht als Anfrage an DNS-Server gesendet – wie kann man überhaupt auf so eine schwachsinnige Option kommen?
browser.fixup.alternate.enabled false schaltet das „Domain Guessing“ ab, d. h. die automatische Namensauflösung bzw. Verbindungsaufnahme mit (www.)domain(.com), wenn der Hostname falsch eingegeben bzw. nicht aufgelöst werden konnte
network.dns.blockDotOnion true kann auf false gesetzt werden, wenn Hostnamen mit .onion TLD von Tor Onion Services wie oben erwähnt über Tor aufgelöst werden können
network.dns.disableIPv6 true deaktiviert IPv6 DNS-Anfragen
network.dns.disablePrefetch
network.dns.disablePrefetchFromHTTPS
true
true
deaktiviert Anfragen zur Namensauflösung von Domainnamen in Links/URLs einer Website, die im Voraus und im Hintergrund vorgenommen wird

Richtlinie: NetworkPrediction
network.dnsCacheEntries 0 deaktiviert den Zwischenspeicher mit den IP-Adressen aufgelöster Hostnamen
network.dnsCacheExpiration n statt der Deaktivierung des DNS Cache kann man die Cache-Einträge nach n Sekunden verfallen lassen.
network.proxy.socks_remote_dns false führt mit true Anfragen zur Namensauflösung über einen SOCKS-Proxy aus. Als SOCKS-Proxy kann der Client eines Anondienstes mit SOCKS-Unterstützung verwendet werden. Ist das nicht der Fall oder wird die Namensauflösung über lokale DNS-Resolver und -Proxys reguliert, wird die Einstellung auf false belassen.

Siehe auch DNS über HTTPS.

Startseite

Neue Fenster und Tabs

Startseite und neue Fenster [Leere Seite]
Neue Tabs [Leere Seite]

Inhalte des Firefox-Startbildschirms

[ ] Internetsuche
[ ] Verknüpfungen
[ ] Gesponserte Verknüpfungen
[ ] Neueste Aktivität
[ ] Unterkategorien
[ ] Kurzinformationen

Einstellungsname Wert Anmerkungen
browser.newtabpage.activity-stream.*
browser.newtabpage.activity-stream.default.sites
browser.newtabpage.enabled
browser.newtab.preload
browser.partnerlink.attributionURL
browser.partnerlink.campaign.topsites
browser.startup.firstrunSkipsHomepage
browser.startup.page
browser.startup.homepage
browser.startup.homepage_override.mstone
browser.topsites.contile.enabled
browser.topsites.contile.endpoint
browser.topsites.useRemoteSetting
false bzw. {„enabled“:false}
leer
false
false
leer
leer
false
0
about:blank
ignore
false
leer
false
wenn die Startseite oder eine neue Tab-Seite geöffnet wird, bleibt sie einfach eine neue, leere Seite und es werden alle Activity Stream „Erweiterungen“ oder „Features“ wie Screenshots besuchter bzw. bevorzugter Websites oder Werbebanner in der neuen Tab-Seite und damit verbundener Telemetrie-Datenverwendung deaktiviert. Firefox wird immer mit einer leeren Startseite bzw. der Start-Aktion gestartet statt der „eigenen Firefox Homepage“ (about:home) und wenn die Homepage verwendet wird, werden keine "Snippets" bzw. "Tiles" von Mozilla im Hintergrund geladen

Richtlinie: FirefoxHome, Homepage, NewTabPage

Suche

Standardsuchmaschine

[DuckDuckGo]

Sofern nur eine der bereits vorinstallierten Suchmaschinen genutzt wird, sollte man DuckDuckGo aus der Liste auswählen, da DuckDuckGo von allen installierten Suchmaschinen Datenschutz und Privatsphäre am meisten respektiert.

Suchvorschläge

[ ] Suchvorschläge anzeigen

Einstellungsname Wert Anmerkungen
browser.search.hiddenOneOffs Google,
Bing,
Amazon.com,
DuckDuckGo,
eBay,
Twitter,
Wikipedia (en)
alle in der „en-US“ Version vorinstallierte Suchmaschinen können in einer kommaseparierten Liste aufgenommen und damit deaktiviert werden
browser.urlbar.groupLabels.enabled
browser.search.suggest.enabled
browser.urlbar.merino.enabled
browser.urlbar.merino.endpointURL
browser.urlbar.quicksuggest.enabled
browser.urlbar.shortcuts.bookmarks
browser.urlbar.shortcuts.*
browser.urlbar.showSearchSuggestionsFirst
browser.urlbar.suggest.bookmark
browser.urlbar.suggest.quicksuggest.*
browser.urlbar.suggest.*
false
false
false
leer
false
true
false
false
true
false
false
deaktiviert bis auf die Verwendung der eigenen Lesezeichen die Übermittlung von Begriffen, um Listen mit Suchwort-Vorschlägen zu generieren oder die Einblendung von Suchwort-Vorschlägen aus weiteren Quellen und damit verbundener Erhebung und Übermittlung von Telemetrie-Daten mittels Firefox QuickSuggest/Suggest
browser.urlbar.maxHistoricalSearchSuggestions 0 Suchbegriffe, die in der Adressleiste eingegeben wurden, werden nicht zur erneuten Verwendung zwischengespeichert
browser.search.update false deaktiviert die automatische Aktualisierung von selbst hinzugefügten Suchmaschinen
keyword.enabled false deaktiviert die Übermittlung von Begriffen und falsch eingetippter URLs in der Adressleiste an Suchmaschinen, wenn Firefox die Informationen nicht selbst in URLs der Lesezeichen oder History findet

Richtlinie: SearchBar, SearchSuggestEnabled, UserMessaging:UrlbarInterventions

Suchmaschinen kontrollieren

Plugins für Suchmaschinen und Suchdienste, die man u. a. mit der Firefox Suchleiste oder mit weiteren Such-Erweiterungen nutzen kann, können über die Firefox Add-ons Seite für Firefox Suchmaschinen-Plugins gefunden und installiert werden. Einige Websites veröffentlichen über ihre Webserver eigene Such-Erweiterungen, die sich über die Drop-down Liste des Suchmaschinen-Eingabefelds hinzufügen lassen. Viele Such-Plugins enthalten etliche Bilddateien, Bibliotheken, Javaskripte, die völlig überflüssig sind und eventuell schädliche Funktionen ausführen oder auf verschlüsselte Verbindungen verzichten.

Wer die vollständige Kontrolle über verwendete Such-Plugins und ihren Anweisungen behalten will, sollte:

  • die mit Firefox ausgelieferten Such-Plugins unter Suchmaschinen-Schlüsselwörter deaktivieren (browser.search.hiddenOneOffs) und per Richlinie deinstallieren
  • die automatische Aktualisierung der Suchmaschinen deaktivieren
  • keine Suchmaschinen über die Firefox Add-ons Seite installieren
  • keine Suchmaschinen über Websites installieren
  • vor der Installation einer neuen Suchmschine in XML-Dateien die Anweisungen (z. B. wird TLS-Verschlüsselung genutzt oder nicht) kontrollieren

Mit der Add custom search engine Erweiterung kann man nach Eingabe eines Suchmaschinennamens und der Suchparameterüber neue Suchmaschinen hinzufügen. Man kann keine Namen vergeben, die bereits durch die hartkodierten Suchmaschinen (Bing, Amazon usw.) belegt sind.

Mit true für den anzulegenden Einstellungsnamen browser.urlbar.update2.engineAliasRefresh in der Erweiterten Konfiguration kann man über den Hinzufügen Button unter Suchmaschinen-Schlüsselwörter ebenfalls Suchmaschinen hinzufügen, indem der Name und die URL mit %s als Platzhalter für die Suchbegriffstelle in Formularfelder eingetragen werden.

Richtlinie: Extensions (Uninstall), ExtensionSetting (installation_mode), SearchEngines

Verweise auf aktuelle Seite