Firefox Absicherung & Anonymisierung - Seite 1

Einleitung

Auf dieser Seite werden Einstellungen für Firefox ESR (Stand: Firefox 68 ESR) 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/oder Anonymisierung der Browsernutzung sowie 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 die Mozilla Foundation und der Mozilla-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 immer lückenhaftere und unzureichende Dokumentation während Möglichkeiten, mit denen der Benutzer modifizerend eingreifen kann, schrittweise immer weiter reduziert werden. Deshalb empfehle ich die Verwendung der aktuellen Firefox ESR (Extended Support Release) Version, für die das vorher Gesagte ebenfalls immer mehr zutrifft.

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.

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. 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.

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

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 den Anmerkungen zur Veröffentlichung, Sicherheits-Hinweisen zu behobenen Schwachstellen, Anmerkungen für Entwickler und im Firefox Site Compatibility Blog.

Allgemein

Tabs

Tab-Umgebungen

Container-Tabs, kurz Container oder Contextual Identity Container sind Begriffe für Tab-Umgebungen, die auf Websites in begrenzterem Umfang ähnliche Isolationsfunktionen anwenden, die mit der privacy.firstparty.isolate Einstellung aktiviert werden können. Der Begriff der Contextual Identities bezieht sich auf die Absicht, mittels Tab-Umgebungen verschiedene Online-Identitäten parallel aber separiert voneinander in einer Browser-Sitzung zu „leben“ bzw. zu nutzen. Im folgenden Abschnitt steht die zusätzliche Isolierung von Websites und ihrer Daten an sich im Vordergrund.

Zunächst gibt es eine Standard bzw. die Keine Umgebung genannte Tab-Umgebung, die für alle Websites bzw. eingegebene URLs im Adresseingabefeld 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. Im Abschnitt zu den Details der Implementierung von Containern des Contextual Identity Projekts wird aufgeführt, welche Daten, Dateien, Speicher in Containern isoliert werden:

  • Cookies
  • localStorage
  • indexedDB
  • HTTP data cache
  • Image Cache

Tab-Umgebungen können nicht im aktivierten Privaten Modus verwendet werden.

Aktivierung

Zur Aktivierung von Tab-Umgebungen und privacy.firstparty.isolate nimmt man folgende Einstellungen vor:

Einstellungsname Wert Anmerkungen
privacy.firstparty.isolate
privacy.firstparty.isolate.restrict_opener_access
mit true für die erste Einstellung werden alle Daten, die von der Domain der Website im Adresseingabefeld (die 1st Party) als Cookies, Skripte und Speicher-/Cache-Inhalte lokal gespeichert wurden, 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. Mit false für die zweite Einstellung werden Regeln zur Isolierung der 1st Party gelockert, falls Probleme mit Websites auftreten, bei denen man sich anmeldet.

Bestandteil des Tor Uplift bzw. Fusion Projekts.
privacy.resistFingerprinting mit true werden Patches zur Unterstützung der Absicherung und Anonymisierung aktiviert, die im Rahmen des Tor Uplift bzw. Fusion Projekts in Firefox zur Verhinderung von Browser-Fingerprinting integriert werden
privacy.userContext.enabled true aktiviert Tab-Umgebungen
privacy.userContext.longPressBehavior 2 bei längerem Klick auf das [+] Tab in der Tableiste zum Öffnen eines Tabs klappt das Kontextmenü der Tab-Umgebungen aus, um ein neues Tab in der ausgewählten Tab-Umgebung zu öffnen. Bei einem einfachen Klick öffnet sich wie gewohnt ein einfaches, neues Tab
privacy.userContext.ui.enabled true aktiviert die Anzeige von Option und Button zu Tab-Umgebungen in den Einstellungen
privacy.usercontext.about_newtab_segregation.enabled true nutzt für geladene Websites bzw. Thumbnails in einer neu geöffneten, leeren Tab-Seite, falls mit ihr Activity Stream Gedöns genutzt wird, ebenfalls einen isolierten Container

Danach wird die aktivierte Tab-Umgebungen aktivieren Option unter Einstellungen → Allgemein mit dem Einstellungen Button angezeigt, über den man Name, Farbe und Icon existierender Tab-Umgebungen ändern und neue Tab-Umgebungen anlegen kann. Standardmäßig existieren nach Aktivierung die Freizeit, Arbeit, Banking und Einkaufen genannten Tab-Umgebungen.

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. Neben der privacy.firstparty.isolate Einstellung und Tab-Umgebungen kann man die Site Bleacher Erweiterung nutzen, die zusätzlich immer alle Cookies und in Zwischenspeichern abgelegte Daten einer Website löscht, sobald ein Browser-Tab geschlossen wird.

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 Browser-Instanz mit einem eigenen Profil gestartet werden. Dafür wird zuerst neben dem Standard-Profil ein zweites Profil mit firefox --ProfileManager --no-remote erstellt und für den Start verwendet:

firefox -P 2profil_name --no-remote Start mit zweitem Profil in eigener Instanz
firefox -P 2profil_name --no-remote --safe-mode zusätzlich mit „sicherem Modus“ (deaktivierte Erweiterungen und Themes)
firefox -P 2profil_name --no-remote --private zusätzlich mit „privatem Modus“ (s. o.)
firefox -P 2profil_name --no-remote --safe-mode --private zusätzlich mit „sicherem“ und „privaten Modus“

Berechtigungen der Firefox Anwendung können zusätzlich zu den obigen Anpassungen und der Firefox Security Sandbox mit Mandatory Access Control (MAC) Implementationen wie AppArmor und SELinux und/oder Sandbox Lösungen wie Firejail reguliert und eingeschränkt werden. Für den Einsatz mit AppArmor wird die /programmverzeichnis/firefox Programmdatei nach /programmverzeichnis/firefox-name kopiert und für beide Instanzen eigene AppArmor Profile eingerichtet, die beide Firefox Datenverzeichnisse im Heimatverzeichnis des Benutzers voneinander isolieren und u. a. Zugriffe auf sensible Unterverzeichnisse und Dateien verbieten. Zur Firefox Security Sandbox siehe auch Linux sandboxing improvements in Firefox 60. Schreibberechtigungen für einzelne Verzeichnisse oder Dateien kann man auch über eine entsprechende Rechtevergabe oder sudo chattr +i einschränken.

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.

Manuelle Einstellungen

Einstellungsname Wert Anmerkungen
browser.display.use_document_fonts 0 Webseiten verwenden nur die unter Schriftarten & Farben festgelegten Schriftarten mit lokalen Schriftart-Dateien. Gleichbedeutend mit der Deaktivierung der Seiten das Verwenden von eigenen statt der oben gewählten Schriftarten erlauben Option.
font.blacklist.underline_offset leer
gfx.downloadable_fonts.enabled
gfx.downloadable_fonts.woff2.enabled
false
false
externe TrueType, OpenType und Web Open File Schriftart-Dateien, die über CSS @font-face deklariert sind, werden nicht heruntergeladen

Da für Webicons in Menü- und Navigationselementen auf Webseiten oft nicht mehr Grafikdateien, sondern in Schriftart-Dateien enthaltene Webicons verwendet werden, müssen für die Anzeige und Nutzung von Webicons die Einstellungen auf true gesetzt sein. Andernfalls müsste man permanent alle möglichen Schriftart-Dateien lokal vorhalten.
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-loading-api.enabled false per Javascript CSS Font-Loading API zu ladende Schriftart-Dateien werden nicht heruntergeladen und gerendert
layout.css.prefixes.font-features false

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
intl.locale.requested en-US vormals general.useragent.locale
privacy.spoof_english
bzw.
intl.accept_languages

javascript.use_us_english_locale (anlegen)
2

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

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
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)
Tor network.http.referer.hideOnionSource true es wird keine Referer Kopfzeile gesendet, wenn von der Weseite 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 JonDoFox und Torbrowser Profile gehen davon aus, dass möglichst viele Firefox Anwender weltweit JonDoFox bzw. Torbrowser 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 JonDoFox und Torbrowser 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 der britischen Zeitung Guardian und der amerikanischen Zeitung 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
z. B. 20181203164059

Das Tor Browser und JoDoFox Profil setzt 0 statt einer realen BuildID ein, die u. a. in den Dateien application.ini und platform.ini im Firefox Installationsverzeichnis angegeben ist. Unter Linux kann man die Windows Firefox Setupdatei mit 7z e entpacken.
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:68.0) Gecko/20100101 Firefox/68.0
general.useragent.site_specific_overrides false

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. Aktiv bleiben sie mit enstprechend vergebenen Werten in den Einstellungen der CanvasBlocker Erweiterung unter APIs → Navigator API → Navigator settings oder der Blend In Erweiterung (die aber wg. irriger Annahmen des Entwicklers Werte für Windows 7 setzt).

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
z. B. 20181203164059
%BUILD_TARGET% WINNT_x86_64-msvc (extensions.blocklist.url)
WINNT_x86_64-msvc-x64 (app.update.url)
%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 (extensions.blocklist.url)
Windows_NT%2010.0.0.0.17763.195%20(x64) (app.update.url)
%PRODUCT% Keine Ersetzung:
immer Firefox
%VERSION% 60.0
URL-Einstellungsname Zweck
app.support.baseURL Aufruf der Firefox Hilfe
app.update.url Firefox Aktualisierungsprüfung und Aktualisierung
extensions.blocklist.url Aktualisierung der Blockliste für Malware-Erweiterungen
extensions.getAddons.get.url Download von Erweiterungsdatei
extensions.getAddons.getWithPerformance.url Download von Erweiterungsdatei im Hintergrund
extensions.getAddons.recommended.url Anzeige empfohlener Erweiterungen
extensions.getAddons.search.browseURL Suche von Erweiterungen
extensions.getAddons.search.url
extensions.update.background.url Aktualisierungsprüfung und Aktualisierung installierter Erweiterungen
werden nicht geändert, s. a. Add-on Update Checker Erweiterung
extensions.update.url
extensions.webservice.discoverURL Add-ons suchen Startseite
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

Anwendungen

Für Dateien 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 (z. B. Flash)
  • 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.

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
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.

Plugins

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

Flash Plugin

Flash Plugins werden nicht installiert und genutzt.

Richtlinie: FlashPlugin

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
pdfjs.disabled
pdfjs.disable*
true
true
deaktiviert das Ausführen des integrierten Javascript PDF Betrachters

Richtlinie: DisableBuiltinPDFViewer

Click to Play

Mit der Opt-in Aktivierung für Plugins – auch „Click to Play“ gennant – wird vor Ausführung von Plugins die Bestätigung des Benutzers durch Anklicken von Hinweisicons bzw. Akzeptieren von Nachfragen in der Informationsleiste eingeholt. Bei GMPs hat man dagegen nur die Wahl, die Ausführung immer oder nie zuaktivieren. Zur Aktivierung von Click to Play setzt man folgende Einstellungen:

Einstellungsname Wert
plugins.click_to_play true
plugin.persistentPermissionAlways.intervalInDays 0
plugin.sessionPermissionNow.intervalInMinutes 0

Neben der generellen „Click to Play“ Aktivierung kann für jedes Plugin im Add-ons Manager oder in der erweiterten Konfiguration festgelegt werden, wie „Click to Play“ angewendet wird und standardmäßig Plugins zu behandeln sind, die neu hinzugefügt wurden:

Einstellungsname Wert Anmerkungen
plugin.default.state 0 neu hinzugefügte Plugins sind zunächst deaktviert
plugin.defaultXpi.state 0 Plugins, die in XPI-Modulen bzw. Erweiterungen enthalten sind, bleiben deaktiviert.
plugin.state.name n 0 (Nie aktivieren im Add-ons Manager)
1 (Nachfragen, ob aktiviert werden soll im Add-ons Manager - „Click to Play“)
2 (Immer aktivieren im Add-ons Manager)

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
browser.eme.ui.enabled true In den Einstellungen unter Inhalt erscheint die Inhalte mit DRM-Kopierschutz wiedergeben Option, mit der man den Wert der media.eme.enabled Einstellung auf false oder true schaltet.
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
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. Zur Deaktivierung der Prüfung auf Vorliegen und Installation von Updates kann man die DisableAppUpdate Richtlinie auf true setzen.

Für alle anderen Fälle 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.

[ ] Suchmaschinen automatisch aktualisieren

Die automatische Aktualisierung kann aktiviert werden, sofern man ausschließlich die mit Firefox ausgelieferten oder über die Firefox Add-ons Seite für Firefox Suchmaschinen-Plugins installierten Suchmaschinen benutzt. Zu beachten ist, dass den Suchmaschinen u. U. Parameter übergeben werden, die das Tracking unterstützen oder der Aufruf der Such-URL nicht abgesichert genug erfolgt. Deshalb sollte man möglichst Suchmaschinen selbst einrichten und die Option deaktivieren.

Einstellungsname Wert Anmerkungen
browser.search.update false

Leistung

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

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

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
browser.newtabpage.activity-stream.asrouter.userprefs.cfr.addons
browser.newtabpage.activity-stream.asrouter.userprefs.cfr.features
extensions.getAddons.discovery.api_url
extensions.getAddons.showPane (anlegen)
extensions.htmlaboutaddons.discover.enabled
extensions.htmlaboutaddons.recommendations.enabled
extensions.recommendations.themeRecommendationUrl
extensions.webservice.discoverURL
false
false
leer

false

false
leer
false
false
false
leer
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, Hybrid Content Telemetry, Contextual Feature Recommender (CFR)

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 oder JonDo direkt oder indirekt mit Weiterleitung über eine Proxy wie z. B. Privoxy anonymisieren will.

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

In den erweiterten Einstellungen von Firefox werden folgende Einstellungen gesetzt:

Einstellungsname Wert Anmerkungen
network.proxy.no_proxies_on leer
network.proxy.socks 127.0.0.1
network.proxy.socks_port 9050
4001
Tor
JonDo
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.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.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 true/false führt Anfragen zur Namensauflösung über einen SOCKS-Proxy aus. Als SOCKS-Proxy kann der Client eines Anondienstes mit SOCKS-Unterstützung verwendet werden. Wird die Namensauflösung über lokale DNS-Resolver und -Proxys reguliert, wird die Einstellung mit false deaktiviert.
Firefox "DNS-Dienst"

Zur Namensauflösung kann man den „DNS-Dienst“ nutzen. Für den Dienst verwendet Firefox die öffentlichen DNS-Server von Google oder Cloudflare, die Mozilla als Trusted Recursive Resolver (TRR) bezeichnet, an die verschlüsselte DNS over HTTPS (DoH) Anfragen gesendet werden. Zur Aktivierung oder Deaktivierung setzt man folgende Einstellungen:

Einstellungsname Wert Anmerkungen
network.trr.bootstrapAddress IP-Adresse die IP-Adresse bzw. eine der IP-Adressen des Hostnamen aus network.trr.uri
network.trr.mode 0
1
2
3
(5)
0: DoH/TRR bleibt deaktiviert
1: Anfragen werden parallel über DNS-Resolver des Systems und den DoH/TRR Server gestellt und der Server mit der kürzeren Antwortzeit verwendet
2: primär wird der DoH/TRR Server verwendet mit Fallback auf DNS-Resolver des Systems bei Fehlschlag des DoH/TRR Servers
3: es wird ausschließlich der DoH/TRR Server verwendet
5: ab FF 62/68 ESR: DoH/TRR wird explizit unter allen Umständen abgeschaltet
network.trr.uri URI Der URI des verwendeten DoH/TRR Servers, an die Anfragen mit Anfrage-Parametern gesendet werden:

https://cloudflare-dns.com/dns-query aka
https://mozilla.cloudflare-dns.com/dns-query
oder
https://dns.google.com/experimental

In den Datenschutz-Richtlinien zum Cloudflare und Google DoH/TRR Server kann man nachlesen, was die beiden Anbieter offiziell respektieren und mitprotokollieren. Es ist zweifelhaft, ob sich Cloudflare und Google auf ihre Datenschutz-Richtlinien zurückziehen könnten, wenn US-Geheimdienste mit Anfragen an die beiden Anbieter herantreten.

Richtlinie: DNSOverHTTPS

Startseite

Neue Fenster und Tabs

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

Inhalte des Firefox-Startbildschirms

[ ] Internetsuche
[ ] Wichtige Seiten
[ ] Überblick
[ ] Unterkategorien
[ ] Kurzinformationen

Einstellungsname Wert Anmerkungen
browser.library.activity-stream.enabled
browser.newtabpage.activity-stream.*
browser.newtabpage.enabled
browser.newtab.preload
false
false
false
false
wenn eine neue Tab-Seite geöffnet wird, bleibt sie einfach eine neue, leere Seite und es werden alle Activity Stream „Erweiterungen“ wie Screenshots besuchter bzw. bevorzugter Websites oder Werbebanner in der neuen Tab-Seite und damit verbundener Telemetrie-Datenverwendung deaktiviert
browser.startup.firstrunSkipsHomepage
browser.startup.page
browser.startup.homepage
browser.startup.homepage_override.mstone
browser.aboutHomeSnippets.updateUrl
pref.browser.homepage.disable_button.current_page
pref.browser.homepage.disable_button.bookmark_page
pref.browser.homepage.disable_button.restore_default
false
0
about:blank
ignore
leer
true
true
true
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 Snippet-Inhalte von Mozilla im Hintergrund geladen. Mit den letzten Einstellungen werden die drei Buttons deaktiviert, mit denen die Startseite bzw. Homepage geändert werden kann

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. Will man andere Suchmaschinen über den Weitere Suchmaschinen hinzufügen Link installieren, bietet sich als Alternative auch Startpage an.

[ ] Suchvorschläge anzeigen deaktivieren

Einstellungsname Wert Anmerkungen
browser.search.hiddenOneOffs Google,
Bing,
Amazon.com,
DuckDuckGo,
eBay,
Twitter,
Wikipedia (en)
alle in der „en-US“ Version vorinstallierten Suchmaschinen werden in einer kommaseparierten Liste aufgenommen und damit deaktiviert
browser.search.reset.enabled
browser.search.reset.status
false
""
deaktiviert das Zurücksetzen der Suchmaschinen auf die vorinstallierten Suchmaschinen

Siehe Bug 1419941 und 1426081
browser.search.suggest.enabled
browser.urlbar.suggest.searches
false
false
deaktiviert die unmittelbare Übermittlung der im Sucheingabefeld eingetragenen Begriffe an Suchmaschinen, um Listen mit Suchwort-Vorschlägen zu generieren und anzuzeigen
browser.urlbar.oneOffSearches false deaktiviert das Einblenden der Suchmaschinen-Iconleiste unterhalb Adresseingabezeile
keyword.enabled false deaktiviert die Übermittlung von Begriffen und falsch eingetippter URLs im Adresseingabefeld an Suchmaschinen, wenn Firefox die Informationen nicht selbst in URLs der Bookmarks oder History findet

Richtlinie: SearchBar, SearchEngines, SearchSuggestEnabled

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 entweder über das Mycroft Projekt oder 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 die verwendeten Such-Plugins und ihren Anweisungen behalten will, sollte:

  • die mit Firefox ausgelieferten Such-Plugins unter Ein-Klick-Suchmaschinen deaktivieren (browser.search.hiddenOneOffs)
  • die Option zur Aktualisierung der Suchmaschinen in den Firefox Einstellungen deaktivieren
  • keine Suchmaschinen über die Firefox Add-ons Seite installieren
  • keine Suchmaschinen über Websites installieren
  • über das Mycroft Projekt die gewünschten oder eigene Such-Plugins nachinstallieren
  • vor der Installation einer neuen Suchmschine in XML-Dateien die Anweisungen (z. B. wird TLS-Verschlüsselung genutzt oder nicht) kontrollieren

Suchmaschinen anpassen & aufnehmen

Um eigene, angepasste Such-Plugins für Suchmaschinen zu nutzen, geht man so vor:

  1. man erstellt XML-Dateien für Such-Plugins nach der OpenSearch Spezifikation – per Webinterface z. B. bei Ready2Search oder lädt fertige XML-Dateien von Mycroft herunter
  2. in der erweiterten Konfiguration setzt man devtools.chrome.enabled auf true
  3. über Tools → Entwickler-Werkzeuge ruft man die Browser-Konsole auf
  4. in der Eingabezeile der Browser-Konsole gibt man

    Services.search.addEngine("file:///stamm/pfad/such-plugin.xml", null, null, false);

    ein, um in die LZ4 komprimierte search.json.mozlz4 JSON-Datei eine neue Suchmaschine zu speichern

  5. für das Ändern einer Suchmaschine wird die Suchmaschine in der Firefox-Konfiguration entfernt und nach Ändern der XML-Datei erneut hinzugefügt

Auf der Firefox Such-Plugins Seite sind einige Such-Plugins als XML-Dateien aufgeführt, die man hinzufügen kann.

Verweise auf aktuelle Seite