Firefox Tuning zur Absicherung und Anonymisierung

Einleitung

Auf dieser Seite werden Einstellungen für Firefox ESR ab Version 60 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. Zusäztlich werden Möglichkeiten, mit denen der Benutzer modifizerend eingreifen kann, schrittweise immer weiter reduziert. Deshalb empfehle ich die Verwendung der aktuellen Firefox ESR (Extended Support Release) Version.

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

Stand: FF 60 ESR

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

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 Cookie AutoDelete Erweiterung nutzen, die zusätzlich immer alle Cookies 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 false 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.countryCode (anlegen)
browser.search.region (anlegen)
US
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
spellchecker.dictionary (anlegen) en-US

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

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

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 7

Laut Firefox Hardware Report vom 20.05.2018 verwenden ca. 43% aller Firefox-Anwender Windows 7 (38% Windows 10) mit ca. 82% in der 64-Bit Variante und die 64-Bit Version von Firefox mit ca. 70%. Linux und Mac OS setzen < 4% der Benutzer ein. Anfang 2019 wird die Mehrheit der Benutzer Windows 10 (Windows NT 10.0) einsetzen und der weltweite „Marktanteil“ von Firefox vermutlich < 4% betragen, weil die Mehrheit aller Internetnutzer Google Chrome einsetzt, so dass man eigentlich mit Firefox den Chrome Browser unter Windows 10 vortäuschen müsste.

Für einen Firefox unter Windows 7 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. 20120627151113

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 6.1; Win64; x64
general.platform.override Win64
general.productSub.override 20100101 („geckotrail“) bei Firefox Desktopversion
general.useragent.override
general.useragent.site_specific_overrides
Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:60.0) Gecko/20100101 Firefox/60.0
false

Von WebExtensions, die User-Agent Angaben fälschen, kann man nur abraten, da sie 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. 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 und sollte die Blend In WebExtension installieren.

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. 20140127194636
%BUILD_TARGET% WINNT_x86_64-msvc
%CHANNEL% release
%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%206.1.1.0%20(x64)

in app.update.url und extensions.blocklist.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
browser.aboutHomeSnippets.updateUrl Aktualisierung der „Snippets“ auf der „Firefox Homepage“
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.

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
(X) Nicht nach Updates suchen (nicht empfohlen)

Bei Betriebssystemen, die Firefox aus eigenen Software-Quellen installieren und automatisch aktualisieren, erübrigt sich die Aktivierung. Ebenso, wenn man Firefox selbst manuell installiert und aktualisiert. 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.

Einstellungsname Wert Anmerkungen
app.update.auto
app.update.enabled
false
false

Richtlinie: DisableAppUpdate

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.

Netzwerk-Proxy

Über den Einstellungen Button werden die Verbindungs-Einstellungen aufgerufen, wo festgelegt wird, 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
FoxyProxy Erweiterung: Eine Möglichkeit, viele Proxys und Anondienste zu verwalten und zu nutzen.

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 wie z. B. FoxyProxy 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 true deaktiviert Anfragen zur Namensauflösung von Domainnamen in Links/URLs einer Website, die im Voraus und im Hintergrund vorgenommen wird
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.

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) deaktiviert im „en-US“ alle vorinstallierten Suchmaschinen
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

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.

Datenschutz & Sicherheit

Formulare & Passwörter

[ ] Zugangsdaten und Passwörter für Websites speichern
[ ] Master-Passwort verwenden

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

Einstellungsname Wert Anmerkungen
signon.autofillForms
signon.autofillForms.http
signon.formlessCapture.enabled
signon.storeWhenAutocompleteOff
false
false
false
false
es erfolgt bei neuen Anmeldeformularen keine Nachfrage, ob Benutzername-Passwort Anmeldedaten gespeichert werden sollen bzw. werden eingegebene Anmeldedaten nicht gespeichert und automatisch in Formularfelder eingetragen

Richtlinie: DisableMasterPasswordCreation, OfferToSaveLogins

Passwörter

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

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

Zur Speicherung, Verwaltung und Verwendung von Zugangsdaten & Passwörtern kann man eine Passwort-Manager Erweiterung mit extern gespeicherten Passwort-Datenbanken oder eine eigenständige, lokale Passwort-Manager Anwendung mit lokal gespeicherter Passwort-Datenabank benutzen. Ich empfehle neben der Deaktivierung des Firefox Passwort-Managers keine Passwort-Datenbanken zu verwenden, die von Passwort-Management Diensteanbietern auf ihren Servern gespeichert und mittels eigener Passwort-Manager verwaltet werden.

Passwort-Manager KeePassXC

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

KeePassXC Hauptfenster

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

KeePassXC Stammgruppe

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

KeePassXC Eintrag

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

KeePassXC Auto-Type

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

Chronik

Im Mittelpunkt der Datenschutzeinstellungen steht die sogenannte Firefox „Chronik“. Die Chronik kann man auch als Gesamtheit aller Zwischenspeicher bezeichnen, in die je nach Einstellung für einen vozugebenden Zeitraum verschiedene Daten abgelegt und vorgehalten werden. Zu den Daten gehören:

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

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

Zur Beantwortung der Fragestellung bietet der Firefox Browser verschiedene Vorgehensweisen:

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

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

Wählt man benutzerdefinierte Einstellungen, sollte man:

  • die Chronik (ausgewählte oder alle Datentypen) spätestens dann löschen lassen, wenn Firefox geschlossen wird.
  • beachten, dass bei aktivierter Leerung des Cache nur noch der RAM und kein lokaler Zwischenspeicher von Firefox verwendet wird.
  • Anlage, Zugriff und Nutzung der Datentypen zusätzlich mit Datenschutz-Erweiterungen und Datenschutz-Einstellungen regulieren.
  • ein gutes Cookie-Management betreiben.
Einstellungsname Wert Anmerkungen
browser.formfill.enable false in Formularfelder eingetragende Inhalte werden nicht zum erneuten Gebrauch gespeichert
browser.sessionhistory.max_entries
browser.sessionhistory.max_total_viewers
3
0
3: per Tab werden nur die Adressen der beiden vorher aufgerufenen und der aktuell angezeigten Website als Tab-Historie im Sitzungsspeicher zwischengespeichert

0: für die Dauer der Browsersitzung werden im Arbeitsspeicher überhaupt keine Webseiten zwischengespeichert, was auch bedeutet, dass sie beim erneuten Laden wieder komplett geparst werden müssen
browser.sessionstore.privacy level 2 sofern die Sitzungswiederherstellung verwendet wird, werden besondere Sitzungsdaten (u. a. Formularinhalte, Cookies) für keine Websites gesichert
extensions.formautofill.addresses.enabled
extensions.formautofill.available
extensions.formautofill.creditCards.enabled
extensions.formautofill.heuristics.enabled
extensions.formautofill.section.enabled
false
off
false
false
false
deaktiviert die Speicherung persönlicher Daten in Profilen, um sie mittels "Form Autofill Feature" automatisch in Formulare zu übertragen
privacy.clearOnShutdown.*
privacy.cpd.*
privacy.item.*
true jenseits der grafischen Einstellungen zum Datenschutz und der Chronik sollten die Optionen daraufhin überprüft werden, ob für alle relevanten Daten der Wert tatsächlich auf true steht, um sie löschen zu lassen

Richtlinie: Cookies, DisableFormHistory, SanitizeOnShutdown

Schnelles Leeren der Chronik

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

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

Cookies und Website-Daten

Cookies

Siehe Cookie. Zu sogenannten Supercookies siehe Websitedaten bzw. Web Storage und HSTS-Kritik.

Einstellungsname Wert Anmerkungen
network.cookie.cookieBehavior 1 mit 1 werden nur Cookies von der eigentlichen Website, aber keine 3rd-party Cookies von anderen Websites akzeptiert
network.cookie.lifetimePolicy 2 alle Cookie-Daten werden bei Sitzungsende bzw. Schließen des Browsers gelöscht
network.cookie.thirdparty.sessionOnly true 3rd-party Cookies werden nur als Sitzungs-Cookies gespeichert, wenn network.cookie.cookieBehavior auf 0 oder 3 steht

Websitedaten

Die Websitedaten beziehen sich auf einen lokalen Zwischenspeicher, in den Websites über die Storage API bzw. Web Storage API Inhalte und Daten dauerhaft (persistent) oder nicht dauerhaft speichern können. Die Daten im dauerhaften Speicher bleiben solange bestehen, bis man sie manuell löscht, während die Daten im nicht dauerhaften Speicher solange bestehen bleiben, wie Speicherplatz zur Verfügung steht. Die Websitedaten beinhalten auch die Daten webbasierter Anwendungen bzw. von Webinhalten, die offline weiter genutzt werden sollen. Der Application Cache Zwischenspeicher war unter der Offline-Webinhalte und -Benutzerdaten Einstellung aufgeführt und wird seit Firefox Quantum ausgeblendet. Die Offline-Websitedaten können über die Einstellungen zur Chronik automatisch nach Sitzungsende gelöscht werden.

Einstellungsname Wert Anmerkungen
dom.storage.enabled
dom.storage.default_quota
offline-apps.quota.warn
false
1
1
deaktiviert die Speicherung und das Auslesen von Objekten / Informationen per DOM Storage und gibt eine Warnmeldung aus, sobald mehr als 1 Kb gespeichert werden soll

Hinweis: Wird dom.storage.enabled deaktiviert, funktionieren einige WebExtensions nicht

Webinhalte

Webinhalte (Grafikdateien, Textinhalte usw.), die der Darstellung von und der Navigation in Webseiten dienen, können in einem lokalen Verzeichnis (Cache) temporär zwischengespeichert werden, um sie bei erneutem Aufruf schneller in das Browserfenster zu laden oder nur im Arbeitsspeicher vorgehalten werden.

Einstellungen

  • [Daten entfernen] Button: manuelles Löschen aller gespeicherten Cookies, Websitedaten und Webinhalte aller Websites
  • [Daten verwalten] Button: manuelles Löschen der gespeicherten Cookies und Websitedaten einzelner Websites

Ohne WebExtensions wie z. B. uBlock, uMatrix, Cookie AutoDelete, die das Laden von Inhalten und Cookies regulieren:

  • [X] Cookies und Website-Daten ablehnen

Anschließend fügt man Ausnahmen über den Ausnahmen Button hinzu:

  • Adresse der Website: https://domainFür diese Sitzung erlauben Button für Websites

Mit oben genannten WebExtensions:

  • (X) Cookies und Website-Daten annehmen (empfohlen)
  • Behalten, bis [Firefox geschlossen wird]
  • Cookies und Website-Daten von Drittanbietern akzeptieren [Nie]

Zwischenspeicher deaktivieren

Alle Zwischenspeicher eigenen sich zum Speichern von Daten, die als Cookie-Alternative und damit zum Tracking dienen können. Die Deaktivierung aller Zwischenspeicher wird durch das Setzen von erweiterten Einstellungen ermöglicht:

Einstellungsname Wert Anmerkungen
browser.cache.disk.capacity 0 setzt verfügbaren Speicherplatz für Dateien-Zwischenspeicher auf 0
browser.cache.disk.enable false deaktiviert Dateien-Zwischenspeicher im Cache-Verzeichnis
browser.cache.disk.smart_size.enabled false deaktiviert dynamische Änderung des Speicherplatzes für Dateien-Zwischnespeicher
browser.cache.disk_cache_ssl false Inhalte, die mit TLS Verschlüsselung bezogen wurden, werden nicht dauerhaft im Dateien-Zwischenspeicher zwischengespeichert.
browser.cache.memory.enable false deaktiviert das Zwischenspeichern in Speicherbereiche des Arbeitssspeichers
browser.cache.offline.capacity 0
browser.cache.offline.enable false
browser.cache.offline.insecure.enable false
browser.sessionstore.dom_storage_limit 1
devtools.cache.disabled true
dom.caches.enabled false
media.cache_size 0
offline-apps.allow_by_default false

Schutz vor Aktivitätenverfolgung

[X] Nie

Mit den Einstellungen wird der Schutz vor Aktivitätenverfolgung (Tracking Protection) immer oder nur für den Privaten Modus aktiviert oder generell deaktiviert. Bei Aktivierung wird eine von Disconnect.me gepflegte Blockierliste in der „Basisschutz“ oder „Strenger Schutz“ Variante verwendet, mit der Anfragen zu Domains über Javascripte, Webseiten-Elemente und Werbung in der aufgesuchten Webseite blockiert werden, die Aktivitätenverfolgung betreiben.

Eine Alternative – auch hinsichtlich Kontrolle und Unabhängigkeit – stellen Erweiterungen wie uMatrix und uBlock dar, die über restriktive Standard-Direktiven zunächst generell alle Anfragen zu Dritt-Parteien blockieren und in denen man für einzelne Websites bzw. Webseiten generelle oder daten-/objektspezifische Ausnahmeregeln festlegt. Zusätzlich können in beiden Erweiterungen ebenfalls Blockierlisten genutzt werden, so dass man den obigen Schutz deaktivieren kann.

Do not Track

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

[X] Nur wenn der Schutz vor Aktivitätenverfolgung aktiv ist

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

Richtlinie: EnableTrackingProtection

Berechtigungen

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

  • Standort
    Übermittlung des eigenen Standorts per Geo-Lokalisierung mittels IP-Adresse, WLAN Access Point Informationen und Google Location Service
  • Kamera
    Aktivierung und Verwendung von Webcams
  • Mikrofon
    Aktivierung und Verwendung von Mikrofonen
  • Benachrichtigungen
    Push-Benachrichtigungen, die Webserver per Service Worker „Proxy“ Javaskripten, die Firefox im Hintergrund ausführt und Push API als Pop-up Fenster auf den Desktop des Benutzers senden können
Einstellungsname Wert Anmerkungen
browser.search.geoip.url
browser.search.geoip.timeout
browser.search.geoSpecificDefaults (anlegen)
browser.search.geoSpecificDefaults.url (anlegen)
leer
1
false
leer
zur Ermittlung des Landes und der Bestimmung der Standard-Suchmaschinen (siehe "US-Browser") für US-Nutzer werden Geolokalisierungsanfragen an den location.services.mozilla.com Server gesendet

Mit den gesetzten Werten wird die URL entfernt und ein so geringer Timeout gesetzt, dass keine Anfragen stattfinden oder ins Leere laufen.
dom.push.enabled
dom.push.connection.enabled
dom.push.serverURL
false
false
leer
siehe Benachrichtigungen Berechtigung
dom.webnotifications.enabled
dom.webnotifications.serviceworker.enabled
false
false
schaltet die API für Web-Benachrichtigungen ab, über die Webserver z. B. Pop-up Benachrichtigungsfenster auf dem Desktop des Benutzers anzeigen und einblenden können. Im Gegensatz zu Push-Benachrichtigungen muss die benachrichtigende Webseite im Browser geöffnet sein und bleiben.
geo.enabled
geo.wifi.uri
geo.wifi.xhr.timeout
false
leer
1
deaktiviert die ungefähre Geo-Lokalisierung mittels IP-Adresse / WLAN Access Point Informationen per Google Location Service
media.getusermedia.browser.enabled
media.getusermedia.audiocapture.enabled
media.getusermedia.screensharing.enabled
false
false
false
deaktiviert Funktionen zum Teilen bzw. zur bidirektionalen Übertragung von Bildschirm- und Fensterinhalten in Echtzeit per WebRTC
media.navigator.enabled
media.peerconnection.default_iceservers
media.peerconnection.enabled
media.peerconnection.ice.default_address_only
media.peerconnection.ice.force_interface
media.peerconnection.ice.no_host
media.peerconnection.ice.proxy_only
media.peerconnection.identity.enabled
media.peerconnection.identity.timeout
media.peerconnection.simulcast
media.peerconnection.turn.disable
media.peerconnection.use_document_iceservers
media.peerconnection.*.enabled
media.peerconnection.*.disable
false
[]
false
true
nnnn
true
true
false
1
false
true
false
false
true
deaktiviert die Verwendung der MediaStream und PeerConnection Javascript APIs zur Nutzung von WebRTC für P2P Audio-/Video-Streaming, Datenaustausch und damit Zugriff auf angeschlossene Mikrofone und Webkameras

Siehe auch STUN IP Address requests for WebRTC, MozillaWiki: Media/WebRTC/Privacy
privacy.permissionPrompts.showCloseButton true zeigt im Abfragefenster zur Erteilung einer Website-Berechtigung, für die als Option „Immer fragen“ aktiviert ist, einen Button zum Schließen des Fensters an, der die Berechtigung beim Anklicken des Buttons automatisch verweigert

Das Setzen von Standard-Einstellungen für Berechtigungen ist nicht möglich, weil Mozilla die Funktionen dafür entfernt hat. Der gesamte Berechtigungskomplex wurde von Mozilla inkonsistent, lückenhaft, intransparent und redundant gestaltet.

Spezifische Berechtigungen für einzelne Websites können im Berechtigungen Tab eingestellt werden, nachdem der Seiteninformationen Button im Adresseingabefeld anklickt wurde. Im Berechtigungen Tab sind folgende Berechtigungen aufgeführt, die teilweise bereits in Kategorien der Datenschutz & Sicherheit Einstellungen reguliert werden (z. B. Pop-up Fenster):

  • Auf Standort zugreifen → siehe Standort oben
  • Canvas-Daten abfragen (mit privacy.resistFingerprinting) → siehe CanvasBlocker
  • Add-ons installieren → siehe Warnen, wenn Websites versuchen, Addons zu installieren
  • Grafiken (Bilddateien) laden
  • Offline Speicher anlegen (und auslesen) → Websitedaten
  • Öffnen von Popup-Fenstern → siehe Pop-up Fenster blockieren unten
  • Tastenkombinationen überschreiben
  • Benachrichtigungen empfangen → siehe Benachrichtigungen oben
  • Cookies setzen (und auslesen)
  • Auf Bildschirm zugreifen (Bildschirm übertragen, Screen Sharing)
  • Daten im dauerhaften Speicher speichern → siehe Websitedaten
  • Zu diesem Tab wechseln
  • Kamera verwenden → siehe Kamera oben
  • Mikrofon verwenden → siehe Mikrofon oben

Außer Grafiken laden sollten alle Berechtigungen so restriktiv wie möglich vergeben werden: Blockieren → Immer fragen / Für Sitzung erlauben → Erlauben.

[X] Pop-up Fenster blockieren

ist per Standardeinstellung aktiviert und sollte auch aktiviert bleiben. Die Hostnamen der wenigen Websites, die Pop-up Fenster verwenden, können über den Ausnahme Button aufgenommen werden.

Einstellungsname Wert Anmerkungen
dom.popup_allowed_events click dblclick beschränkt die Erlaubnis, Popup-Fenster per JavaScript Events zu öffnen, auf das aktive 1x oder 2x Anklicken von Links
dom.popup_maximum 1 beschränkt die Anzahl von Popup-Fenstern, die nicht durch das aktive Anklicken von Links ausgelöst wurden
privacy.popups.disable_from_plugins 3 die Initialisierung von Popup-Fenster durch Plugins wird generell blockiert.

Richtlinie: PopupBlocking

[x] Warnen, wenn Websites versuchen, Addons zu installieren

sollte aktiviert sein, um eine Warnmeldung zu erhalten, wenn eine Website versucht, eine Erweiterung ohne Zustimmung des Benutzers zu installieren. Die Aktivierung verhindert jedoch nicht, dass u. U. trotzdem WebExtensions und Plugins über andere Anwendungen oder Funktionen des Betriebssystemherstellers ohne Nachfrage im Hintergrund installiert werden können. Deshalb sollte die Liste der installierten Erweiterungen und Plugins über den Add-ons Menüeintrag (about:addons) kontrolliert werden.

Über den Ausnahmen Button können die Hostnamen der Websites eingetragen werden, denen die Installation von Addons erlaubt sein soll. Man kann die Ausnahme-Liste leer halten oder auf die https://addons.mozilla.org URL beschränken und die https://testpilot.firefox.com URL entfernen.

Richtlinie: InstallAddonsPermission

[X] Dienste für Barrierefreiheit am Zugriff auf Ihren Browser hindern

Einstellungsname Wert Anmerkungen
accessibility.force_disabled 1 deaktiviert Funktionen für barrierefreies Arbeiten am Computer (a11y).

Datenerhebung durch Firefox und deren Verwendung

[ ] Firefox erlauben, Daten zu technischen Details und Interaktionen an Mozilla zu senden
[ ] Firefox erlauben, Absturzberichte an Mozilla zu senden

Mit den Telemetrie-, Status- (FHR, "Health") und Absturzmelde-Funktionen werden Daten über Konfiguration und Nutzung des Browsers, den Betriebssystem-Kontext – das, was ein eindeutiges Browserprofil ausmacht – erhoben und an Mozilla gesendet. Bei aktivierter Telemetrie und aktivierten Experiment-Einstellungen können Telemetrie-Experimente über Experiment-Erweiterungen ausgeführt werden, die von einem Mozilla Experiment-Server in den Browser installiert werden. Die Erweiterungen haben ebenfalls Zugriff auf die Telemetrie/FHR Daten und Infrastruktur.

Mit Eingabe von about:telemetry, about:healthreport, about:crashes und about:support im Adresseingabefeld kann man mit aktivierten Funktionen die Daten einsehen. Die Experiment-Erweiterungen werden wie andere Erweiterungen auch im Add-on Manager unter Experimente aufgeführt.

Richtlinie: DisableTelemetry

Shield-Studien

Außerdem führt Mozilla im Rahmen des Shield Programms sogenannte Shield-Studien aus, mit denen Benutzer zur „Test-Plattform“ werden, die für Mozilla geplante/experimentelle, neue oder bereits existierende „Features“, „Ideen“ und Funktionen zur Datenübermittlung testen, mit der auch in die Konfiguration und Funktionsweise des Browsers eingegriffen wird. Die Option zur Aktivierung von und Teilnahme an Sheild war in früheren Firefox-Versionen eine Unteroption der ersten Option zur Datenerhebung.

Die Studien werden über Skripte, eingebettet in WebExtensions oder die Shield System-Erweiterung implementiert. Die Shield Erweiterung lädt von Normandy Servern Rezepte, die mögliche Studien enthalten. Bei Aktivierung einer Studie werden danach von Normandy Servern Aktionen heruntergeladen, die von Firefox umgesetzt bzw. ausgeführt werden. Im Rahmen der Aktivierung und Teilnahme an Shield-Studien werden von den Shield Erweiterungen ebenfalls Daten erhoben, von Normandy Servern eingesammelt und an die Telemetrie-Server übermittelt. Weitere Daten können zusätzlich über die Normandy Driver API bzw. den "Normandy-Treiber" erhoben, übermittelt und lokal gespeichert werden. Allgemein wird der „Normandy-Treiber“ als Objekt beschrieben, das allen Aktionen beigefügt wird, wenn sie erstellt werden und Methoden und Attribute bereitstellt, um Operationen auszuführen, die mehr Privilegien benötigen, als JavaScript normalerweise zugebilligt wird.

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

Richtlinie: DisableFirefoxStudies

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

Marionette & geckodriver

Siehe vorab Marionette Protokoll und geckodriver (WebDriver) HTTP-Proxyserver. Firefox muss mit Marionette und geckodriver Unterstützung kompiliert sein und Firefox entweder mit -marionette gestartet oder die MOZ_MARIONETTE Umgebungsvariable gesetzt werden.

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

Einstellungen

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

Einstellungsname Wert Anmerkungen
app.normandy.enabled
app.normandy.user_id
app.normandy.api_url
app.shield.optoutstudies.enabled
false
leer
leer
false
siehe Shield-Studien
beacon.enabled false deaktiviert die navigator.sendBeacon Funktion, über die Websites den Browser per Javascript veranlassen können, vor dem Verlassen bzw. Entladen einer Webseite (ArrayBufferView, Blob, DOMString, FormData) Daten an den Webserver zu senden, die der „Analyse und Diagnose“ dienen. Siehe auch sendBeacon requests lack an Origin header.
breakpad.reportURL leer Breakpad Absturz-Berichte (falls aktiviert) können nicht mehr an einen Server gesendet werden. Wer Breakpad bzw. Absturz-Berichte komplett deaktivieren will, setzt die Umgebungsvariablen MOZ_CRASHREPORTER_DISABLE=1 und XRE_NO_WINDOWS_CRASH_DIALOG=1
browser.chrome.errorReporter.enabled
browser.chrome.errorReporter.submitUrl
false
leer
deaktiviert das Browser Error Reporter Modul, das Meldungen zu Fehlern sammelt, die vom Browser selbst erzeugt und in der Browser-Konsole mitprotokolliert werden, um sie dann an Mozilla Sentry Server zu senden

In Firefox ESR per Standard deaktiviert, soll das Modul im Lauf des Jahres 2018 entfernt werden
browser.library.activity-stream.enabled
browser.newtabpage.activity-stream.prerender
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.ping-centre.production.endpoint
browser.ping-centre.staging.endpoint
browser.ping-centre.telemetry
leer
leer
false
deaktiviert die Anwendung des ping-centre Framework zur Datenerhebung und den Datenversand für Telemetrie und Activity Stream
browser.send_pings
browser.send_pings.max_per_link
browser.send_pings.require_same_host
false
0
true
deaktiviert das Senden von POST-Anfragen im Hintergrund zu zusätzlichen Servern, deren URLs im ping Attribut von Links zwecks Click-Tracking untergebracht sind. Generell sind Pings mit true nicht zu zusätzlichen, fremden Servern möglich.
browser.slowStartup.notificationDisabled
browser.slowStartup.maxSamples
browser.slowStartup.samples
true
0
0
deaktiviert Kontextdaten, die zur Analyse eines verlangsamten Startvorgangs der Browsers erhoben werden und ggf. Eingang in zu übermittelnde Statusberichte finden
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
1
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
browser.tabs.crashReporting.sendReport
dom.ipc.plugins.reportCrashURL
false
false
es werden keine Absturz-Berichte versendet
datareporting.policy.dataSubmissionEnabled
datareporting.healthreport.uploadEnabled
false
false
deaktiviert die Datenübermittlung zum Status („Health“) Bericht an Mozilla
device.sensors.enabled
device.sensors.*.enabled
false
false
keine Erfassung und Auswertung von Sensordaten über Hardware/Geräte
dom.enable_performance
dom.enable_performance_navigation_timing
dom.enable_performance_observer
dom.enable_resource_timing
false
false
false
false
keine Zeitmessungen und Übermittlung ihrer Resultate (z. B. Dauer, bis eine Seite vollständig geladen ist) per Navigation Timing API, per Resource Timing API, bezogen auf alle Ressourcen, die in Webdokumenten enthalten sind bzw. per Performance API
dom.event.clipboardevents.enabled false keine Benachrichtigung der Website per Zwischenablage-API, wenn Inhalte über die Zwischenablage kopiert, eingefügt oder ausgeschnitten werden
dom.requestIdleCallback.enabled false deaktiviert Rückmeldungen per IdleDeadline API, wie lange der Browser untätig ist, um die Zeiträume für die Ausführung von Tasks im Hintergrund zu nutzen
dom.w3c_pointer_events.enabled
dom.w3c_touch_events.enabled
false
false
deaktiviert die PointerEvent Web-API und TouchEvent Web-API, über die Daten zur Hardware und die Handhabung/Verwendung von Mäusen, Touch-Feldern und Pens ausgewertet werden können
dom.webdriver.enabled
marionette.enabled
false
false
siehe Marionette & geckodriver
dom.workers.maxPerDomain
dom.serviceWorkers.enabled
1
false
keine Installation und kein Ausführen von Dienste-Javaskripten im Hintergrund, über die u. a. im Hintergrund clientseitige Javaskript „Proxys“ eingerichtet oder Push-Daten von Webservern empfangen werden können. Die Deaktivierung der (ausgelagerten) Ausführung (lastiger) Javaskripte im Hintergrund mit dom.workers.enabled=false wurde mit Firefox 60 deaktiviert und kann nur noch nach Anzahl pro Domain begrenzt werden.
extensions.getAddons.cache.enabled false keine Übermittlung und Anzeige von Metadaten zu Erweiterungen über addons.mozilla.org.
extensions.getAddons.getWithPerformance.url URL um Erweiterungen im Hintergrund ohne zusätzliche Metadaten herunterzuladen, setzt man die URL von extensions.getAddons.get.url ein
network.allow-experiments false keine Experimente, über die Meta-Verkehrsdaten und Parameter zu Verbindungen erhoben und analysiert werden.
network.captive-portal-service.enabled
captivedetect.canonicalURL
captivedetect.maxRetryCount
captivedetect.maxWaitingTime
captivedetect.pollingTime
false
leer
0
0
0
deaktiviert den Captive Portal Dienst für WLAN-Hotspots
security.ssl.errorReporting.enabled
security.ssl.errorReporting.url
false
leer
deaktiviert die Datenübermittlung an Mozilla Server zu Fehlern bei der Validierung von Zertifikaten
toolkit.telemetry.cachedClientID
toolkit.telemetry.enabled
toolkit.telemetry.*.enabled
toolkit.telemetry.server
toolkit.telemetry.unified
experiments.activeExperiment
experiments.enabled
experiments.manifest.uri
experiments.supported
leer
false
false
leer
false
false
false
leer
false
deaktiviert die Datenübermittlung zum Telemetrie-Bericht an Mozilla und die Optionen zur Durchführung von Telemetrie-Experimenten

Schutz vor betrügerischen Inhalten und gefährlicher Software

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

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

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

Deaktivierung

Einstellungsname Wert
browser.safebrowsing.allowOverride false
browser.safebrowsing.blockedURIs.enabled false
browser.safebrowsing.downloads.enabled false
browser.safebrowsing.downloads.remote.enabled false
browser.safebrowsing.downloads.remote.timeout_ms 1
browser.safebrowsing.downloads.remote.url leer
browser.safebrowsing.malware.enabled false
browser.safebrowsing.phishing.enabled false
browser.safebrowsing.*URL leer

Zertifikate

  • Wenn eine Website nach dem persönlichen Sicherheitszertifikat verlangt
    [ ] Automatisch eins wählen
    [x] Jedes Mal fragen

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

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

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

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

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

Verschlüsselung

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

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

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

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

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

Für eine optimale Auswahl:

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

Mit Fallback bis TLS 1.2:

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

Mit den Fallback-Einstellungen sind „gefühlt“ 99% aller Verbindungen erfolgreich. Für die restlichen 1% setzt man fallweise security.tls.version.min auf 1 (Bookmark: about:config?filter=security.tls.version.min).

TLS-Konfiguration des Browsers testen:

TLS-Konfiguration von Webservern testen:

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

Beispiel der DCSec Ausgabe
Beispiel der Qualys Ausgabe

Im Beispiel wurden in der erweiterten Konfiguration über about:config?filter=security.ssl3 die Cipher-Suites so gesetzt, dass nur ECDHE/DHE Forward Secrecy Verfahren aktiviert sind. Da nicht alle Webserver auf die Cipher-Suites eingestellt sind, muss man fallweise deaktvierte Cipher-Suites aktivieren – wenn es unbedingt nötig ist.

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

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

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

Einstellungsname Wert Anmerkungen
browser.ssl_override_behavior
browser.xul.error_pages.expert_bad_cert
2
true
bei Websites, bei denen Firefox problematische bzw. fehlerhafte Zertifikate annimmt (z. B. auch, weil sie nur selbstsignierte Zertifikate verwendet), wird das Zertifikat mit 2 (statt 1) als Wert trotzdem vorausgeladen. Mit true für die zweite Option werden bei entsprechenden Zertifikaten zusätzliche Informationen angezeigt und Benutzer explizit aufgefordert, das Zertifikat ausnahmsweise dauerhaft oder temporär zu akzeptieren.
browser.urlbar.trimURLs false im Adresseingaebfeld wird in der URL immer auch das Protokoll (http(s)://) angezeigt
network.http.altsvc.enabled
network.http.altsvc.oe
false
false
deaktiviert HTTP Alternative Services und die Verwendung von Alternative Services für Opportunistic Security for HTTP/2

Siehe auch Isolate/Disable HTTP Alternative-Services, Isolate AlternateService mappings by Origin Attributes, Re-enable Alternate Services.
network.http.spdy.allow-push
network.http.spdy.coalesce-hostnames

network.http.spdy.enabled
network.http.spdy.enabled.http2
false
false

false
false
Einschränkung von Funktionen des SPDY Protokolls. Zum Deaktivieren des SPDY und HTTP/2 Protokolls werden die beiden unteren Einstellungen gesetzt.
security.cert_pinning.enforcement_level 2 bestimmt, wie streng die Überprüfung von Zertifikaten per HTTP Public Key Pinning (HPKP) ausfällt.

0: PKP deaktiviert
1: „benutzerdefiniertes MITM“ erlaubt (PKP wird bei CA-Zertifikaten, die vom Benutzer importiert wurden, nicht angewendet)
2. PKP wird immer angewendet
security.insecure_connection_icon.enabled true das Vorhängeschloss-Icon vor dem Adresseingabefeld wird bei unverschlüsselten HTTP-Verbindungen zu Servern schwarz eingefärbt und rot durchgestrichen dargestellt.
security.pki.cert_short_lifetime_in_days n falls OCSP genutzt wird, werden OSCP Prüfungen auch bei Zertifikaten mit kleinem Gültigkeitszeitraum bzw. Gültigkeitszeitraum < n Tagen durchgeführt
security.pki.sha1_enforcement_level 1 mit 1 werden TLS-Zertifikate, die mittels SHA-1 signiert wurden, abgelehnt bzw. erscheint eine Warnung, mit 0 werden sie akzeptiert
security.remember_cert_checkbox_default_setting false sofern man persönliche Benutzer-Zertifikate nach Anforderung des Webservers (s. o. „Sicherheit“) nutzt, werden die generierten Daten nicht auf Dauer gespeichert, d. h. Benutzer-Zertifikate werden immer erneut angefragt.
security.ssl3.* zu aktivierende (true) und deaktivierende (false) SSL/TLS Cipher-Suites zur Verschlüsselung
security.ssl.disable_session_identifiers (anlegen) true deaktiviert den Versand von SSL Session-IDs und TLS Session-Tickets
security.ssl.enable_false_start false siehe RFC7918 Transport Layer Security (TLS) False Start
security.ssl.require_safe_negotiation
security.ssl.treat_unsafe_negotiation_as_broken
true
true
2009 wurde in den SSL/TLS-Protokollen eine Sicherheitsschwäche in der Funktion zum Neuaushandeln verschlüsselter Sitzungen aufgedeckt, die es Angreifern erlaubt, Man-in-the-middle-Angriff (MITM) Angriffe auf eine bestehende verschlüsselte Verbindung zu unternehmen, um z. B. Daten in die Verbindung einzuschleusen oder aus der Verbindung abzugreifen. Mit RFC 5746 wurde die Schwachstelle behoben, aber von vielen Server-Betreibern (noch) nicht umgesetzt. Mit den Optionen wird die Verwendung von RFC 5746 zum sicheren Neuaushandeln verlangt. Weitere Information im Security:Renegotiation Artikel des MozillaWiki und TLS / SSLv3 renegotiation vulnerability explained von Thierry Zoller.
security.tls.enable_0rtt_data false siehe Security Review of TLS1.3 0-RTT, Playback: a TLS 1.3 story, SuperCooKey – A SuperCookie Built Into TLS 1.2 and 1.3

Richtlinie: DisableSecurityBypass

Mixed Content Blockierung

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

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

Firefox-Konto

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

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

Richtlinie: DisableFirefoxAccounts

WebExtensions

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

  • dom.indexedDB.enabled
  • dom.storage.enabled

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

Project Insight Ausgabe


Ausgabe per Manifest URL

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

Einstellungsname Wert Anmerkungen
extensions.getAddons.showPane
extensions.webservice.discoverURL
false
leer
deaktiviert in der Add-ons Verwaltung die Add-ons entdecken Seite und Funktionen
extensions.langpacks.signatures.required
xpinstall.signatures.required
true
true
WebExtensions und Sprachpaket-WebExtensions müssen signiert sein, um installiert werden zu können
extensions.webextensions.restrictedDomains
privacy.resistFingerprinting.block_mozAddonManager (anlegen)
leer
true
bewirkt, dass auf den (Mozilla) Websites der angegebenen Domainnamen alle WebExtensions aktiv werden können, was voraussetzt, dass man sich vergewissert hat, dass alle installierten WebExtensions vertrauenswürdig sind
social.directories leer deaktiviert die Verwendung der Social API zur Installation von SocialAPI-Erweiterungen, die man über das SocialAPI Verzeichnis beziehen kann, um „soziale“ Netzwerke/Dienste in Firefox zu integrieren

Richtlinie: Extensions

System-Erweiterungen

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

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

Einstellungsname Wert Anmerkungen
extensions.pocket.enabled false deaktiviert die Verwendung von Pocket
extensions.screenshots.disabled
extensions.screenshots.upload-disabled
true
true
deaktiviert das "Screenshots Feature" (zunächst per System-Erweiterung, später integriert) und/oder den Upload von Screenshots auf Firefox Screenshots bei aktivierter Screenshots-Funktion
extensions.systemAddon.update.url leer URL über die Aktualisierungen von System Add-ons bezogen werden

Richtlinie: DisableFirefoxScreenshots, DisablePocket, DisableSystemAddonUpdate

Empfehlungslisten

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

Datenschutz & Sicherheit

Name Beschreibung Anmerkungen
Block Cloudflare MiTM Attack

Detect Cloudflare
fängt Anfragen zu Websites ab, die sich hinter Cloudflare verbergen. Per Einstellungen kann man festlegen, dass solche Anfragen sofort blockiert oder 1st-Party Anfragen automatisch an die Wayback Machine weitergeleitet werden oder eine Warnseite erscheint, auf der eine Website der Whitelist hinzugefügt werden kann. Zusätzlich können auch die Dienste von Incapsula, Google Project Shield und Sucuri blockiert werden.

Wer nur informiert werden möchte, ob eine Website Cloudflare nutzt, kann die Detect Cloudflare Erweiterung installieren.
(E) (I)

Zum Hintergrund siehe:
Block Global Active Adversary Cloudflare

A collaboration to deal with The Great Cloudwall (AKA Cloudflare)

Pinboard:Cloudflare

Cloudflare
Incapsula
Project Shield
Sucuri
CanvasBlocker blockiert bei aktiviertem Javascript die Nutzung der Canvas Javascript-API für Browserprofile und die Verfolgung von Besuchern per Canvas Fingerprinting (E)
CSS Exfill Protection überprüft CSS vor dem Parsen und Laden durch den Browser auf bösartige Regeln, über die Daten an einen Angreifer ausgeschleust und übermittelt werden können, um deren Ausführung zu blockieren Zum Hintergrund siehe Stealing Data With CSS: Attack and Defense
Cookie AutoDelete entfernt automatisch Cookies, nachdem ein Tab geschlossen wurde – entweder sofort oder nach n Minuten. Mit Grey- und Whitelistfunktion. (E)
Decentraleyes emuliert Content Delivery Networks (CDN), indem Ressourcen bekannter CDNs lokal gespeichert sind. Anfragen zu CDN-Ressourcen werden inspiziert und lokal vorhandene Ressourcen zur Darstellung von Inhalten verwendet, während die Anfragen nicht weitergeleitet werden. In den Optionen kann festgelegt werden, Anfragen zu (noch) nicht vorhandenen Ressourcen zu blockieren und bestimmte Domainnamen von der Inspektion auszunehmen. (E)
Enterprise Policy Generator mit der Erweiterung nimmt man grafisch in einem Tab über Anklick- und Eingabefelder Einstellungen für Richtlinien vor und lässt Richtlinien-Dateien erstellen, sichen, exportieren und importieren (DE)
FoxyProxy Standard oder
FoxyProxy Basic oder
SmartProxy
Proxy-Manager für das Management und schnelle Umschalten zwischen verschiedener Proxys, die auch mit Regeln arbeiten können, um Websites den jeweiligen Proxys „zuzuteilen“. (E)

FoxyProxy Dokumentation
SmartProxy Wiki
HTTPS Everywhere sorgt per URL Umschreibung und Umleitung dafür, dass bei Webservern, die TLS Verschlüsselung anbieten, die TLS Verschlüsselung auch für möglichst alle Anfragen und Antworten verwendet wird ( http:// → https://). (DE)

HTTPS Everywhere Regelsätze
WebAPI Manager blockiert bzw. reguliert den Zugriff auf Web-APIs und damit die Verringerung der möglichen Angriffsfläche (Ausnutzung von Schwachstellen, Sicherheitslücken und Anwendung von Techniken zur Überwachung und Auswertung des Nutzerverhaltens). In Black- und/oder Whitelists können Hostnamen (Muster) der Websites hinzugefügt werden, die als nicht vertrauenswürdig oder vertrauenswürdig Restriktionen unterworfen werden oder nicht (DE)

WebAPI Manager Wiki
PinPatrol gibt in lesefreundlicher Tabelle die Inhalte und Daten zu HSTS und HPKP Einträgen in der SiteSecurityServiceState Datei aus (I)

PinPatrol Homepage
Project Insight zeigt grafisch auf einer Übersichtseite für alle WebExtensions an, welche Berechtigungen und Zugangsberechtigungen zu externen Domains im Manifest einer WebExtension definiert sind (I)
Skip Redirect versucht, die letztendliche URL aus Weiterleitungs-Links zu extrahieren und nach dem Anklicken der Links die letztendliche URL direkt aufzurufen, so dass die Website mit dem Weiterleitungs-Link nicht erfährt, welche Links angeklickt bzw. Website besucht werden soll. Ausnahmen können über Aufnahme von URL-Mustern in einer Blacklist definiert werden (E)
Temporary Containers für die Anlage, das Editieren und Management von Tab-Umgebungen (E)
uBlock Origin Filtert und blockiert Anfragen zu Servern, für die manuell oder über Filter-Abonnements Regeln eingestellt werden. Zusätzlich können noch ein paar datenschutzförderliche Firefox-Einstellungen gesetzt werden. (DE)

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

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

Tools

Name Beschreibung
Auto Tab Discard per tabs.discard API werden Tabs nach verschiedenen Kriterien, die man in den Einstellungen der Erweiterungen auswählt, in einen „Schlafmodus“ versetzt bzw. ihre Inhalte aus dem Arbeitsspeicher entfernt und wieder hergestellt, sobald ein Tab wiedew aktiviert wird. Für Tabs, die sich nicht deaktivieren sollen, können Ausnahmen festgelegt werden.
Bookmarks Organizer überprüft, ob doppelte Bookmarks, Bookmarks ohne Namen oder Bookmarks mit nicht erreichbaren Links vorhanden sind und bietet die Möglichkeit, sie im Resultat direkt zu editieren oder zu löschen. Leider keine Optionen zur Pausierung der Überprüfung, Angabe von Verbindungs-Pausen und Ex- und Reimport von Zwischenständen.
Copy Plain Text entfernt Formatierungen vor dem Kopieren von Inhalten in die Zwischenablage
CustomCSSforFX keine WebExtension, sondern Ersatz für die Classic Theme Restorer (CTR) Erweiterung, die aufgrund fehlender WebExtension-API für Änderungen des Erscheinungsbilds nicht mit Firefox > 56 eingesetzt werden kann. Über einen Katalog von CSS-Dateien, die und deren Direktiven man aktivieren, deaktivieren und abändern kann, ist eine nahezu identische Manipulation der Oberfläche wie mit den CTR möglich
HTTP Header Live loggt in extra Fenster den Versand der Kopfzeilen zwischen Browser und Servern als Alternative zur Netzwerkanalyse über Extras → Web-Entwickler
I don't care about cookies blockiert auf Webseiten die überflüssigen Warn- und „Opt-in“ Anzeigen zur Verwendung und Annahme von Cookies
Scroll Up Folder zeigt im Adresseingabefeld ein Verzeichnis-Icon, über das eine Verzeichnisliste eingebelendet wird, in der man die Verzeichnisebene wechseln kann
SingleFile speichert eine Webseite in einer Datei ab, wobei alle Inhalte (konfigurierbar) in die Datei eingebettet werden
Swift Selection Search nach Textauswahl auf Webseiten kann über das Kontextmenü oder ein Pop-up Fenster die Suchmaschine aus einer Liste ausgewählt werden, mit der nach dem Text gesucht werden soll. Wie das Suchergebnis angezeigt wird, kann ebenso konfiguert werden wie die Suchmaschinenliste. Für die Suchmaschinenliste kann man die search.json.mozlz4 Datei importieren.
Tab Reloader für das automatische Neuladen geöffneter Webseiten in verschiedenen Zeiträumen per Tab-Kontextmenü oder Icon
View Page Archive & Cache sucht in Web-Archiven und -Caches zwischengespeicherte bzw. archivierte Webseiten, die nicht (mehr) aufrufbar sind. Zu den unterstützen Archiven und Caches zählen u. a. Wayback Machine, Archive.is, Memento Time Travel und die Caches der Suchmaschinen
Zoom Page WE ist ein Manager zum Vergrößern von Webseiteninhalten (ingesamt, nur Text, an der Breite des Browserfensters orientiert) entweder per Tab oder Website-spezifisch. Wird die Website-spezifische Funktion verwendet, muss die browser.zoom.siteSpecific Einstellung auf true stehen, was auch bedeutet, dass ein Merkmal zur Wiedererkennung/Fingerprintig des Besuchers aktiv ist.

Manuelle Anpassungen

Richtlinien

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

Beispiel

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

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

Autokonfiguration

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

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

Erweiterte Konfiguration

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

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

Einstellungsname Wert Anmerkungen
browser.autofocus false Eingabefelder in Formularen werden nicht per HTML5 autofocus Attribut beim Laden einer Seite vorausgewählt.
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.uitour.enabled
browser.uitour.url
false
leer
deaktiviert die grafische Präsentation zur Erklärung der Firefox-Oberfläche
browser.urlbar.speculativeConnect.enabled false der spekulative Verbindungsaufbau zu Websites, deren Webseiten möglicherweise aufgerufen werden sollen, während einzugebende URLs im Adresseingabfeld autovervollständigt werden, wird deaktiviert
browser.zoom.siteSpecific false das einmal auf einer Webseite vorgenommene Zoom-Level wird nicht für die Website gespeichert, um ein Merkmal zur Wiedererkennung/Fingerprinting des Besuchers auszuschließen
canvas.capturestream.enabled false die HTMLCanvasElement captureStream() Methode erzeugt einen MediaStream, der einen MediaStreamTrack enthält, in dem in Echtzeit die Oberflächeninhalte per Video-Capture erfasst und übertragen werden können
clipboard.plainTextOnly true in die Zwischenablage können nur Daten mit text/plain MIME-Typ und keine Links oder Bilder kopiert werden
devtools.*.enabled false wer keine Webinhalte und -anwendungen entwickeln oder inspizieren muss oder dafür besser externe Anwendungen verwendet, sollte alle integrierten Entwickler-Tools so weit wie möglich deaktivieren

Über die Einstellungen der Toolbox kann man einige Tools und zusätzliche Funktionen deaktivieren
devtools.webide.*
devtools.webide.*URL
false
leer
zur Deaktivierung der WebIDE alle Einstellungen auf false setzen und damit verbundene URLs löschen.
devtools.remote.wifi.scan false schaltet die WebIDE over WIFI Funktion und den damit verbundenen Server zum Scannen nach WLAN-Geräten/Netzwerken ab.
dom.animations-api.core.enabled
dom.animations-api.element-animate.enabled
image.animation_mode
layout.css.prefixes.animations
layout.css.prefixes.webkit
toolkit.cosmeticAnimations.enabled
false
false
none
false
false
false
schaltet so weit wie möglich Animationen von Bildern, Oberflächen- und Webseitenelementen per CSS, Web Animation API usw. ab
dom.battery.enabled false deaktiviert die Battery Status API
dom.disable_window_* true verhindert die Manipulation von Fenstern und deren Aussehen per JavaScript, d. h. alle Fenster (auch Popup-Fenster) entsprechen dem Browser-Fenster.
dom.event.contextmenu.enabled false das Kontextmenü ist auf allen Webseiten immer zugänglich
dom.gamepad.enabled
dom.gamepad.*.enabled
false
false
deaktiviert die Gamepad API, wenn man keine webbasierten Spiele mit einem Gamepad spielt
dom.indexedDB.enabled false deaktiviert die Speicherung und das Auslesen von Objekten in IndexedDB Datenbanken für „HTML5/Web Datenbanken“ bzw. Web-Applikationen, die im Privaten Modus standardmäßig ebenfalls deaktiviert sind

Hinweis: Wird die indexedDB deaktiviert, funktionieren einige WebExtensions nicht
dom.mapped_arraybuffer.enabled false
dom.registerProtocolHandler.insecure.enabled false Websites, die sich als Ziel bzw. Bearbeiter von Protokollen (z. B. magnet:, mailto:) registrieren lassen wollen, müssen per HTTPS/TLS verfügbar sein
dom.select_events.enabled
dom.select_events.textcontrols.enabled
false
false
deaktiviert Ereignismeldungen bzw. Funktionen der Selection API, die WebExtensions und Websites per JavaScript nutzen können, um auszuwerten oder zu beeinflussen, was der Benutzer auf Webseiten auswählt

Für webbasierte Editoren oder editor-artige Erweiterungen ggf. nützlich.
dom.vibrator.enabled false
dom.webaudio.enabled false deaktiviert die Web Audio API.
dom.webkitBlink.dirPicker.enabled
dom.webkitBlink.filesystem.enabled
false
false
deaktiviert die File and Directory Entries API
full-screen.api.enabled
full-screen-api.ignore-widgets
full-screen-api.pointer-lock.enabled
browser.fullscreen.autohide
false
true
false
false
deaktiviert die HTML5 Fullscreen API, über die unabhängig vom Benutzer Inhalte im Vollbildmodus dargestellt werden

Die Vollbilschirmanzeige von z. B. YouTube-Videos funktioniert auch ohne aktivierte API. Wer die API aktivieren will, kann mit der letzten Einstellungen die permanente Anzeige der Toolbar- und Tab-Leiste während des Vollbildmodus erzwingen.
layout.css.mix-blend-mode.enabled
layout.css.background-blend-mode.enabled
false
false
deaktiviert CSS3 Blend-Modus

Siehe CSS mix-blend-mode is bad for your browsing history, Side-channel attacking browsers through CSS3 features.
layout.css.visited_links_enabled false die Auswertung besuchter Links bei aktivierter History aufgrund der CSS:visited Farbkennzeichung der Links wird abgewehrt
media.autoplay.enabled false Für einige eingebettete Multimediainhalte das automatische Abspielen deaktivieren (per HTML5/Skript-Funktionen u. U. ohne Wirkung).
media.codec.enabled false Unterstützte Multimedia Codecs bzw. Decoder werden so weit wie möglich deaktiviert, was natürlich abhängig vom persönlichen Bedarf ist.
media.video_stats.enabled false schaltet Statistiken zur Videoverarbeitung ab, um Fingerprinting zu erschweren.
media.webspeech.recognition.enable
media.webspeech.synth.enabled
false
false
deaktiviert SpeechRecognition (Sprecherkennung) und SpeechSynthesis (Text-to-Speech) der Web Speech API
narrate.enabled false deaktiviert Text-to-Speech Funktionen zur Sprachausgabe in der Leseansicht
network.auth.subresource-http-auth-allow 0 Dialogfenster zur Anmeldung per HTTP-Authentifizierung können nicht durch Elemente/Subressourcen wie iframe, script und fremde Domains ausgelöst werden

Siehe auch HTTP auth dialog can no longer be triggered by cross-origin resources
network.ftp.enabled false deaktiviert die Verwendung des FTP für das unverschlüsselte Herunterladen von Inhalten über ftp:// Links in Webseiten
network.http.redirection-limit n beschränkt die maximale Anzahl an Umleitungsaufforderungen seitens des Servers, denen der Browser nach einer Anfrage folgt, auf n Umleitungen (z. B. 2 oder 3) statt 20 (Standard)
network.http.speculative-parallel-limit 0 deaktiviert die Aufnahme von TCP-Verbindungen zu Servern im Voraus (ohne Inhalte zu laden wie mit network.prefetch-next), weil Firefox „erwartet“, dass die Server kurz danach aufgesucht werden, da z. B. der Mauscursor über einem Link steht (Standard: 6)
network.IDN_show_punycode true Anzeige des realen Punycode von IDNs, um Phishing/Spoofing Angriffe der Form zu erkennen.
network.jar.block-remote-files true deaktiviert den Download von Java-Archiven mit Nutzung des jar: Protokolls
network.prefetch-next false deaktiviert das Vorausladen von Inhalten in den Cache im Hintergrund vom aktuellen oder fremden Servern
network.predictor.enabled
network.predictor.enable-prefetch
false
false
keine DNS-Anfragen, TCP- und TLS-Handshakes im Voraus.
network.websocket.max-*
network.websocket.timeout*
1
1
ab Firefox 35 wurde die Möglichkeit, bidirektionale TCP-Verbindungen zu Servern mit Server-Push Nachrichten über die WebSockets API generell mittels network.websockets.enabled zu deaktivieren, entfernt

Eventuell können mit 1 für alle Integer-Werte der angegebenen WebSockets Einstellungsnamen zumindest WebSocket Verbindungen beschränkt werden. Mittels Privoxy-Filter für WebSockets kommen WebSocket Verbindungen nicht zustande. Mit der WebSocket Detector Erweiterung können aktive WebSocket Verbindungen erkannt und signalisiert werden.
security.csp.experimentalEnabled true mit true werden auch die Werte der hash-source und script-nonce Direktiven bzw. Attribute der W3C Content-Security-Policy (CSP) 1.1 ausgewertet, um Cross-Site-Scripting (XSS) Angriffe zu erschweren, wenn der Websitebetreiber die CSP Funktionen verwendet
security.data_uri.block_toplevel_data_uri_navigations true der Aufruf von data:// URLs wird eingeschränkt bzw. teilweise blockiert
security.family_safety.mode 0 deaktiviert unter Windows Microsoft Family Features Zensur-Funktionen
svg.disabled
svg.*.enabled
false
false
zusätzliche Optionen bzgl. SVG Grafiken, die man deaktivieren kann

SVG Grafiken (auch in WebExtension Oberflächen) können weiterhin angezeigt werden, sofern svg.disabled nicht auf true umgeschaltet wird
webchannel.allowObject.urlWhitelist leer keiner Website ist es erlaubt, über WebChannel Objekte statt nur Strings zu senden
webgl.disable-extensions
webgl.disable-wgl
webgl.disabled
webgl.enable-webgl2
true
true
true
false
deaktiviert das Rendern von 3D-Objekten per WebGL / HTML5 / JavaScript

JavaScript

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

Einstellungsname Wert Anmerkungen
dom.ipc.processCount.webLargeAllocation
dom.largeAllocationHeader.enabled
1
false
es werden keine großen Speicherbereiche für Webseiten reserviert und > 1 zusätzliche, separate Prozesse gestartet, die wegen WASM oder asm.js einen größeren Speicherbedarf signalisieren (z. B. Webspiele, WASM und asm.js Anwendungen)
javascript.options.asmjs
javascript.options.baselinejit
javascript.options.ion
javascript.options.wasm
javascript.options.wasm_baselinejit
javascript.options.wasm_ionjit
false
false
false
false
false
false
deaktiviert das OdinMonkey Javascript-Modul für asm.js des IonMonkey JIT Compilers (siehe asm.js files should not be cached to disk in Tor Browser and no linkability risk, außerdem anfällig für Exploits), den Baseline Compiler bzw. den IonMonkey Javascrit JIT Compiler der SpiderMonkey Javascript-Engine und WebAssembly (wasm)

Siehe auch iSEC Partners: Tor Browser Research Engagement. Beeinträchtigungen bzgl. Erweiterungen oder Websites konnten bis jetzt nicht festgestellt werden.
javascript.options.discardSystemSource true „This preference instructs the JS engine to discard the source of any privileged JS after compilation. This saves memory, but makes things like Function.prototype.toSource() fail.“
javascript.options.shared_memory false
jsloader.shareGlobal false „saves memory, but makes it possible for scripts to interfere with each other“
security.xpconnect.plugin.unrestricted false das Scripting von Plugins durch externe (nicht vertrauenswürdige) Javascripte per XPCOM / XPconnect wird verboten.

Verweise auf aktuelle Seite