Firefox Absicherung & Anonymisierung - Seite 1
Einleitung
Hier werden Einstellungen für die aktuelle Firefox ESR Version aufgeführt, die grafisch über den Menüpunkt Einstellungen, manuell über Richtlinien, Autokonfiguration, erweiterte Konfiguration oder mittels WebExtensions vorgenommen werden können. Die Einstellungen betreffen die Absicherung und Anonymisierung der Browsernutzung, die bestmögliche Nutzung von Datenschutzfunktionen und die mögliche Begrenzung der Firefox-Funktionen auf seine Kernaufgabe: Webinhalte anzuzeigen. Will man Firefox anpassen und Richtlinien einsetzen, startet man am besten mit den Richtlinien.
Leider wird die Realisierung dieser Ziele mit jeder neuen Firefox-Version schwieriger, weil Mozilla Foundation und Entwicklergemeinde jede neue Firefox-Version mit speziellen „Features“ und Funktionen überfrachten, bis der Firefox Browser völlig zur unbenutzbaren, nicht mehr regulierbaren BLOATWARE verkommt. Hinzu kommt eine für Benutzer unzureichende, oberflächliche oder unverständliche Dokumentation, während Möglichkeiten, mit denen der Benutzer modifizerend eingreifen kann, schrittweise immer weiter reduziert werden. U. a. werden auch Einstellungen, die zuvor über die erweiterte Konfiguration vorgenommen werden konnten, entfernt bzw. in Dateien verborgen, um den Benutzer von Änderungen abzuhalten, die sich negativ auf die Funktionalität des Browsers auswirken könnten. Deshalb empfehle ich die Verwendung der aktuellen Firefox ESR (Extended Support Release) Version, für die das vorher Gesagte ebenfalls immer mehr zutrifft. Siehe dazu auch den Artikel The web browser I'm dreaming of auf Artificial truth.
Die Einstellungen bewirken, dass Layouts und Funktionen einzelner Webseiten und -dienste u. U. nur noch eingeschänkt, nach erneuten Eingriffen oder im Extremfall überhaupt nicht mehr benutzbar sind. Für die betroffenen Webseiten und -dienste kann man z. B. Firefox in einer zweiten Instanz mit anderem Browserprofil oder einen anderen Browser starten, die „offener“ eingestellt sind. Die Einstellungen können auch bewirken, dass einzelne WebExtensions nicht funktionieren. Deshalb ist vor Änderungen ggf. ein Backup des Profilverzeichnisses anzuraten – zumindest der prefs.js Datei, in der Änderungen gespeichert werden.
Zum Verhältnis zwischen Absicherung und Anonymisierung eine Anmerkung: Ich denke nicht, dass sich die eindeutige Wiedererkennung bzw. ein eindeutiger Fingerprint 100% verhindern lässt, aber der gleiche Fingerprint sitzungs- und seitenübergreifend. Insofern kommt es letztendlich darauf an, dass ein Browserprofil nicht mit der Identität einer realen Person verknüpft und die Identität indirekt ermittelt werden kann, weil ein Browser-Benutzer mit seiner realen IP-Adresse in Erscheinung tritt bzw. diese aufgrund der Nutzung und Konfiguration von Betriebssystem und Browser zu ermitteln ist. Für mich ist der sichere Einsatz des Browsers primär, seine „Anonymisierung“ sekundär relevant.
Zur Anonymisierung kann man vorab den gesamten Netzwerktraffic inklusive DNS-Anfragen über einen vertrauenswürdigen VPN-Dienst und/oder Tor leiten. Zur Erschwerung von Browser-Fingerprinting kann man vorab die privacy.fingerprintingProtection und privacy.resistFingerprinting Einstellung mit true aktivieren, womit Patches aktiv werden, die im Rahmen des Tor Uplift bzw. Fusion Projekts für Firefox entwickelt wurden. Siehe dazu Web fingerprinting is worse than I thought oder Fashion Faux Pas: Implicit Stylistic Fingerprints for Bypassing Browsers’ Anti-Fingerprinting Defenses.
Sofern neue bzw. zusätzliche Einstellungsnamen mit entsprechenden Werten selbst angelegt werden müssen, wird das mit (anlegen) gekennzeichnet. Die Einstellungsnamen unterscheiden sich im Wert-Typ nach:
- String: Zeichenkette, Begriff
- Integer: positive oder negative Zahl
- Boolean: true oder false
Die manuellen Einstellungen sind so weit wie möglich den verschiedenen Themen zugeordnet und in Form von Tabellen aufgeführt:
Einstellungsname | Wert | Anmerkungen |
---|---|---|
eine.einstellung | wert-typ | zusätzliche Informationen |
Download / Installation
Anstatt über die Mozilla Website oder Nutzung der automatischen Update-Funktion nur das Programm herunterzuladen, kann die jeweils aktuelle Firefox Version zusammen mit einer SHA-512 Prüfsummen-Datei heruntergeladen und nach Überprüfung der Prüfsummen manuell installiert werden.
Download aus Verzeichnis der aktuellen Version:
- KEY „Mozilla Software Releases“ GnuPG-Schlüsseldatei
Updated GPG key for signing Firefox Releases - SHA512SUMS.asc Prüfsummendatei GnuPG-Signaturdatei
- SHA512SUMS Prüfsummendatei
- firefox-version.ext Firefox-Archivdatei und firefox-version.ext.asc GnuPG-Signaturdatei (alternativ zu den SHA-512 Dateien) aus dem Betriebssystem-Unterverzeichnis
Vorgehen:
- Import „Mozilla Software Releases“ GnuPG-Schlüsseldatei:
gpg --import KEY
- Import Mozilla OpSec/InfoSec GnuPG Schlüssel (mit dem der „Mozilla Software Releases“ Schlüssel zertifiziert sein muss)
- Überprüfung der Firefox-Archivdatei mit GnuPG-Signaturdatei:
gpg --verify firefox-version.ext.asc
oder - Überprüfung der Prüfsummendatei mit GnuPG-Signaturdatei:
gpg --verify SHA512SUMS.asc
- Ü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 - Installation von firefox-version.ext
- im Installationsverzeichnis Ausführungsberechtigungen der Dateien crashreporter, minidump-analyzer, pingsender und updater entfernen
Ergeben die Überprüfungen Unstimmigkeiten oder negative Statuswerte, kann es sich entweder um Übertragungsfehler handeln, so dass der Download wiederholt werden muss oder um manipulierte Firefox Versionen.
Informationen zu neu eingeführten Funktionen, behobenen Sicherheits- und Funktionsbugs zur aktuellen Firefoxversion finden sich in Sicherheits-Hinweisen zu behobenen Schwachstellen, Firefox Roadmap, Anmerkungen für Entwickler und den Release Notes über die URL https://www.mozilla.org/firefox/version-einsetzen/releasenotes/.
Allgemein
Tabs
Einstellungsname | Wert | Anmerkungen |
---|---|---|
browser.link.open_newwindow browser.link.open_newwindow.restriction browser.link.open_newwindow.disabled_in_fullscreen | 1 0 true | 1: Links werden im aktuellen Tab des Browserfensters statt in einem neuen Browserfenster geöffnet 0: per JavaScript aufgerufene, neue Browserfenster werden stattdessen in Tabs geöffnet true: während der Vollbildanzeige werden keine zusätzlichen Browserfenster geöffnet |
browser.tabs.remote.warmup.enabled browser.tabs.remote.warmup.maxTabs | false 0 | Ein Tab wird nicht im Hintergrund vorausgeladen, weil der Benutzer vermutlich zu diesem Tab wechseln wird, weil sich z. B. sein Mauszeiger über den Tab bewegt hat |
browser.tabs.allowTabDetach | false | kein Ablösen von Tabs in eigene Fenster |
browser.tabs.closeWindowWithLastTab | false | Nach Schließen des letzten Tabs wird der Browser nicht beendet |
Siehe auch Startseite.
Tab-Umgebungen
[X] Tab-Umgebungen aktivieren [Einstellungen]
Über den Einstellungen Button kann man Namen, Farben und Icons existierender Tab-Umgebungen ändern und neue Tab-Umgebungen anlegen. Außerdem kann mit [X] Wählen Sie für jede neue Registerkarte einen Container aus festgelegt werden, dass beim Öffnen eines neuen Tabs immer eine Tab-Umgebung ausgewählt wird.
Container-Tabs, kurz Container oder Contextual Identity Container sind Begriffe für Tab-Umgebungen, die Funktionen zur Isolierung von Websites anwenden. Der Begriff der Contextual Identities bezieht sich auf die Hauptfunktion von Tab-Umgebungen, verschiedene Online-Identitäten parallel aber separiert voneinander in einer Browser-Sitzung zu „leben“ bzw. zu nutzen. Tab-Umgebungen können nicht im aktivierten Privaten Modus verwendet werden.
Zunächst gibt es eine Standard bzw. die Keine Umgebung genannte Tab-Umgebung, die für alle Websites bzw. eingegebene URLs in der Adressleiste gilt, für die keine eigene Tab-Umgebung eingerichtet wurde. D. h. die Websites bzw. Adressen befinden sich in einem gemeinsamen Container ohne spezielle Isolierungen voneinander, die mit eigenen Tab-Umgebungen einhergehen. Alle Websites bzw. URLs in einer eigenen Tab-Umgebung sind isoliert von denen in der Standard Tab-Umgebung und in anderen Tab-Umgebungen. Weitere Informationen finden sich im Abschnitt zu den Details der Implementierung von Containern des Contextual Identity Projekts.
Tab-Umgebungen ergänzen den Strengem Modus des Erweiterten Schutzes vor Aktivitätenverfolgung bzw. State Partitioning und Network Partitioning. Siehe dazu auch How Firefox’s Total Cookie Protection and container extensions work together. Manche WebExtensions setzen Tab-Umgebungen voraus bzw. aktivieren sie automatisch.
Einstellungsname | Wert | Anmerkungen |
---|---|---|
privacy.userContext.enabled | true | aktiviert Tab-Umgebungen |
privacy.userContext.ui.enabled | true | aktiviert die Anzeige von Option und Button zu Tab-Umgebungen in den Einstellungen |
privacy.userContext.newTabContainerOnLeftClick.enabled | true | über das [+] Icon zum Öffnen eines neuen Tab-Fensters öffnet sich ein Menü zur Auswahl der Tab-Umgebung, in die das neue Fenster geöffnet werden soll oder zum Öffnen ohne Tab-Umgebung |
Management
Für weitere Funktionen und das Management der Tab-Umgebungen nutzt man besser die Temporary Containers WebExtension. Mit ihr kann man den Idealfall realisieren, dass automatisch für jede Website temporär ein eigener Website-spezifischer Container eingerichtet wird, der solange existiert, wie ein Tab geöffnet ist. Weitere Informationen zu Anwendung und Einrichtung stehen auf der Add-ons Seite und im Wiki der Erweiterung.
URLs der Domains addons.mozilla.org und accounts.firefox.com werden ebenfalls in eigene Tab-Umgebungen geladen, aber als priviligierte und nicht als normale Webinhalt-Prozesse. Zur Deaktivierung des Verhaltens setzt man folgende Einstellungen:
Einstellungsname | Wert |
---|---|
browser.tabs.remote.separatePrivilegedMozillaWebContentProcess | false |
browser.tabs.remote.separatedMozillaDomains | leer |
Profile, MACs & Sandboxen
Für das Surfen zu besonderen Websites (z. B. Bank für Online-Banking) oder Websites, die aufgrund der Absicherung nicht mehr zugänglich sind, kann neben Tab-Umgebungen oder dem Privaten Modus auch eine neue, isolierte Browser-Instanz mit einem eigenen Profil gestartet werden.
Dafür wird zuerst das Firefox Installationsverzeichnis bzw. -profil dupliziert. Für jede Installation wird ein eigenes Profil mit /pfad/firefox --ProfileManager --no-remote
und /pfad2/firefox --ProfileManager --no-remote
erstellt. In der profiles.ini Datei im Firefox Benutzerverzeichnis sieht das so aus:
- ~/.mozilla/firefox/profiles.ini
[Profile1] Name=profilname2 IsRelative=1 Path=profilname2 [Profile0] Name=profilname1 IsRelative=1 Path=profilname1 Default=1 [General] StartWithLastProfile=0 Version=2
Für den Start beider Instanzen:
/pfad1/firefox -P profilname1 | Start der 1. Firefox-Instanz mit eigenem Profil(verzeichnis) als Standard |
/pfad2/firefox -P profilname2 --no-remote | Start der 2. Firefox-Instanz mit eigenem Profil(verzeichnis) |
--safe-mode | zusätzlich mit „sicherem Modus“ (deaktivierte Erweiterungen und Themes) |
--private | zusätzlich mit "privatem Modus" |
--safe-mode --private | zusätzlich mit „sicherem“ und „privaten Modus“ |
Zusätzlich wird jede installierte Firefox-Instanz neben den Anpassungen und der Firefox Security Sandbox mit Mandatory Access Control (MAC) Implementationen wie AppArmor, SELinux und/oder Sandbox Lösungen wie Firejail (Firejail Firefox Sandboxing Guide) reguliert, eingeschränkt und sowohl voneinander, als auch vom Rest der Benutzerumgebung (Dateien und Verzeichnisse, Anwendungen) isoliert.
Schreibberechtigungen für einzelne Verzeichnisse oder Dateien kann man auch über eine entsprechende Rechtevergabe oder sudo chattr +i
einschränken.
Richtlinie: BlockAboutProfiles, DisableProfileImport, DisableProfileRefresh
Fission Site Isolierung
Im Rahmen des Fission Projekt hat Mozilla als Weiterentwicklung der Firefox Security Sandbox die Fission Site Isolierung in Firefox implementiert, in die im Mozilla Hacks Beitrag Introducing Firefox’s new Site Isolation Security Architecture eingeführt wird. Siehe auch New CPU side-channel attack takes aim at Chrome’s Site Isolation feature v. 07.09.21 bzw. Spook.js.
Grafik zur Fission Site Isolierung aus dem Mozilla Hacks Beitrag
Mit Fission werden die Webseiten jeder Website bzw. Domain, die nicht "same-site" ist, also der Hostname in einer URL nicht die gleiche eTLD+1 (effektive Top-Level Domain plus Subdomain davor) aufweist und dabei das gleiche Schema (http: oder https: Protokoll) verwendet, in einem eigenen Systemprozess geladen und ausgeführt. Das beinhaltet auch über Webframes eingebettete Webseiten anderer Websites bzw. Domains.
Für die Einstufung als „same-site“ oder nicht „same-site“ bzw. Ermittlung der eTLD+1 wird für Fission (und andere Isolierungs- oder Partitionierungsfunktion in Firefox auf Anwendungsebene) die Public Suffix List ausgewertet.
Mit einem eigenen Systemprozess ist auch ein eigener Speicherraum mit eigenen Speicheraddressen verbunden. Zwei voneinander verschiedene (nicht „same-site“) Websites bzw. Domains werden also auf „Arbeitsspeicherebene“ voneinander isoliert, damit sie nicht auf den jeweils fremden Speicherbreich der anderen Website lesen oder schreibend zugreifen können, wie es der Fall ist, wenn sie im selben Systemprozess laufen bzw. sich den Prozesspeicherraum teilen. Das soll Seitenkanalangriffe verhindern bzw. erschweren, wie sie z. B. mit Meltdown/Spectre breiter bekannt wurden und mögliche, bösartige Speicherzugriffe aufgrund von (noch unbekannten) Schwachstellen im Firefox-Code oder eingebetteten Tracker- bzw. Angreifer-Sites, die z. B. Passwort- und Anmeldedaten auslesen wollen, vorbeugen.
Einstellungsname | Wert | Anmerkungen |
---|---|---|
browser.tabs.remote.subframesPreferUsed | false | wenn dom.ipc.processCount.webIsolated > 1, wird für Subframes von 3rd-Party Domains kein bereits bestehender Inhaltsprozess wiederverwendet, um die Erstellung eines neuen Prozesses für sie zu vermeiden und damit ihre Anzahl zu verringern |
Sprache und Erscheinungsbild
Schriftarten & Farben
Über JavaScript in Webseiten oder installierte Plugins können Informationen zu allen installierten Schriftarten ausgelesen werden. Da fast jeder Anwender eine individuelle Zusammenstellung von installierten Schriftarten pflegt, können die Informationen die Anonymisierung des Browserprofils einschränken und zum Fingerprinting beitragen. Das Auslesen lokaler, betriebssystemspezifischer Schriften verrät u. U. die Fälschung des Browserprofils, wenn z. B. ein „Windows-Browser“ vorgetäuscht, aber Schriften einer bestimmten Linux-Distribution gefunden werden. Einschränken lässt sich das nur über eine seletive Rechtevergabe auf Schriftart-Verzeichnisse bzw. -Dateien und Änderung der Konfiguration von Fontconfig.
Einstellungsname | Wert | Anmerkungen |
---|---|---|
font.blacklist.underline_offset | leer | |
gfx.downloadable_fonts.disable_cache | true | deaktiviert den Cache zum Zwischenspeichern heruntergeladener Schriftart-Dateien. |
gfx.font_rendering.graphite.enabled | false | der Graphite Schriften-Renderer ist im Normalfall unnötig |
gfx.font_rendering.opentype_svg.enabled | false | in Schriftarten eingebettete SVG Grafiken werden nicht gerendert |
layout.css.font-display.enabled layout.css.font-loading-api.enabled layout.css.font-loading-api.workers.enabled | false false false | per Javascript CSS Font-Loading API zu ladende Schriftart-Dateien werden nicht heruntergeladen und gerendert |
layout.css.font-visibility.resistFingerprinting layout.css.font-visibility.standard layout.css.font-visibility.trackingprotection | 1 1 1 | die Auslesbarkeit von Schriften wird auf die systemweit gespeichterten Schriftarten ohne von Sprachpaketen oder vom Benutzer gespeicherten Schriftarten beschränkt |
layout.css.prefixes.font-features | false | |
ui.use_standins_for_native_colors | true | deaktiviert die Ermittlung der für die Desktopumgebung eingestellten Farben zur Darstellung von Webseitenelementen |
Sprache
Die Angaben der bevorzugten Sprache(n) bestimmt den Inhalt der HTTP_ACCEPT_LANGUAGE (Accept-Language:) Kopfzeile, die vom Webbrowser zum Server übertragen wird. Wählt man Sprachen und Sprachkombinationen aus, die von einer großen Anzahl oder der Mehrheit aller Firefox-Benutzer ebenfalls verwendet wird, trägt die Auswahl zur Anonymisierung des Browserprofils bei.
Zur Anonymisierung bietet sich das Vortäuschen bzw. die Verwendung der „en-US“ Firefox-Version an. Da die Angaben auch zur Content Negotiation (Mozilla: Content Negotiation) für die Anzeige von Inhalten in einer bestimmten Sprache ausgewertet werden, kann das en-US Profil auch zur automatischen Ausgabe der englischsprachigen Version von Webseiten führen. Außerdem ist zu beachten, dass bei Erweiterungen mit deutscher Lokalisierung die Oberfläche danach u. U. ebenfalls englischsprachig wird. Die Oberfläche von Firefox selbst bleibt deutschsprachig, sofern die deutschsprachige „de“ Firefox-Version installiert wurde. Alternativ kann man auch direkt die aktuelle, englischsprachige Firefox Version aus dem en-US Unterverzeichnis herunterladen und installieren.
Einstellungsname | Wert | Anmerkungen |
---|---|---|
browser.search.region (anlegen) | US | |
privacy.spoof_english bzw. intl.accept_languages javascript.use_us_english_locale (anlegen) | 2 en-US, en true | ist die Einstellung privacy.resistFingerprinting aktiviert, setzt privacy.spoof_english automatisch die Werte für die beiden anderen Einstellungen |
Richtlinie: RequestedLocales
HTTP Kopfzeilen & Browserkennung
Mit der Manipulation weiterer HTTP Kopfzeilen und anderer Datenn kann man die Anonymisierung des Browserprofils, der Browsernutzung und das Unterbinden von Tracking unterstützen.
Referer
In der HTTP_REFERER (Referer:) Kopfzeile speichert und überträgt der Browser die URL der Website oder Webseite als Quelladresse, über die Links zu weiteren Websites oder Webseites aufgerufen bzw. deren Inhalte in der Quell-Webseite abgerufen wurden. Der Webserver der nach der Quelladresse aufgrufenen Website oder Webseite liest die Kopfzeile aus und kann damit in Erfahrung bringen, welche fremde Website/Webseite oder welche eigenen Webseiten zuvor vom Anwender aufgesucht wurden und kann damit eine Historie der besuchten Ziele aufzeichnen. Gehören zu einem Betreiber verschiedenste Websites bzw. Domains, erhöht sich der Umfang der Historie nochmals.
Für die Behandlung der Referer Kopfzeile muss man Grundeinstellungen über die Kombination mehrerer Einstellungsnamen in der erweiterten Konfiguration vornehmen oder durch grafische Erweiterungen setzen lassen, die alle Einstellungen vollständig berücksichtigen:
P | Einstellungsname | Wert | Anmerkungen |
---|---|---|---|
network.http.sendOriginHeader | 1 | Origin Kopfzeile, die protokoll://hostname(:port) der Website enthält, von der Anfragen stammen, wird bei WebSocket, POST Anfragen und Anfragen im CORS Kontext nur an gleiche Domainnamen gesendet. Mit 0 wird die Kopfzeile nie, mit 2 immer domainübergreifend an alle Websites gesendet. | |
A | network.http.sendRefererHeader | n | Der Wert bestimmt generell, ob und zu welchem Dateityp überhaupt Referer Kopfzeilen gesendet werden oder nicht. Mögliche Werte: 0: kein Versand von Referer Kopfzeilen oder Setzen von document.referrer (DOM) 1: Versand bei Ab- und Aufruf von Text-Links 2: Versand bei Ab- und Aufruf von Text- und Bild-Links. |
B | network.http.referer.XOriginPolicy | n | Der Wert bestimmt generell, wann eine Referer Kopfzeile bei Website-übergreifenden Anfragen gesendet wird, wenn A auf 1 oder 2 steht. Mögliche Werte: 0: immer senden 1: senden, wenn die Domainnamen der beteiligten Server übereinstimmen (a.domain.tld → b.domain.tld usw.) 2: senden, wenn Hostnamen der beteiligten Server übereinstimmen (a.domain.tld ↔ a.domain.tld) |
C | network.http.referer.XOriginTrimmingPolicy | n | Der Wert bestimmt generell, was in Verbindung mit dem Wert unter B genau in der Referer Kopfzeile versendet wird. Mögliche Werte: 0: protokoll://hostname(:port)/pfad/datei (vollständige URL) 1: protokoll://hostname(:port)/pfad/ 2: protokoll://hostname(:port)/ |
D | network.http.referer.spoofSource | n | Der Wert bestimmt generell, ob in der Referer Kopfzeile reale Angaben zur Linkquelle übermittelt werden, oder ob die Angaben auf die URL des Zielservers gefälscht werden. Mögliche Werte: true oder false |
E | network.http.referer.trimmingPolicy | n | Der Wert bestimmt, generell, was genau in der Referer Kopfzeile versendet wird. Mögliche Werte: 0: protokoll://hostname(:port)/pfad/datei (vollständige URL) 1: protokoll://hostname(:port)/pfad/ 2: protokoll://hostname(:port)/ |
F | network.http.referer.defaultPolicy network.http.referer.defaultPolicy.trackers | n n | bestimmt seitens des Clients (Browsers) die Standard Referrer-Richtlinie (W3C-Version) in der Referrer-Policy Kopfzeile und damit Inhalt von Referer Kopfzeilen, sowie ob und wann Referer Kopfzeilen gesendet werden, wenn seitens des Servers (Website) keine Referrer-Richtlinie gesetzt wird – d. h., eine Website kann die hier getroffene Einstellung überschreiben. Die zweite Einstellung setzt die Referrer-Richtlinie für 3rd-Party Tracker, wenn laut Cookie-Einstellungen die Cookies von 3rd-Party Tracker abgelehnt werden – der Standardwert ist 3. Mögliche Werte: 0: kein Versand von Referer Kopfzeilen (no-referrer) 1: sendet vollständige URL, wenn Hostname, Port und Protokoll der beteiligten Server übereinstimmen (same-origin) 2: sendet vollständige URL, wenn Hostname, Port und Protokoll der beteiligten Server übereinstimmen, sendet nur protokoll://hostname/ an Zielserver fremder Domains, wenn TLS-Verschlüsselung besteht und keine Referer Kopfzeile, wenn von einer TLS-verschlüsselten Website der Link zu einer Website ohne TLS-Verschlüsselung führt (strict-origin-when-cross-origin) 3: sendet nur dann keine Referer Kopfzeile, wenn von einer TLS-verschlüsselten Website der Link zu einer Website ohne TLS-Verschlüsselung führt (no-referrer-when-downgrade, Standard) |
network.http.referer.disallowCrossSiteRelaxingDefault.top_navigation | true | keine Beachtung weniger restriktiver Referrer-Richtlinien bei Cross-Site Top-Navigation | |
Tor | network.http.referer.hideOnionSource | true | es wird keine Referer Kopfzeile gesendet, wenn von der Webseite eines Tor Onion Service einem Link im normalen WWW gefolgt wird |
Alle Einstellungen kann man kombiniert zum Beispiel so setzen:
P | Wert | Anmerkungen |
---|---|---|
A | 2 | Referer sind „aktiviert“ |
B | 1 | Referer werden nur gesendet, wenn alle beteiligten Server zur gleichen Domain gehören |
C | 1 | Pfadgenaues Tracking innerhalb der Domain |
D | false | Keine Fälschung auf URL des Zielservers |
E | 1 | Pfadgenaues Tracking innerhalb einer Domain |
F | 2 0 |
User-Agent
Eine weitere Kopfzeile ist die HTTP_USER_AGENT (User-Agent) Kopfzeile, in der der Browser Informationen zum eingesetzten Betriebssystem, Gerät (z. B. Desktop, Smartphone), seine bzw. die Version der Gecko Engine, das Datum seiner Erstellung und ggf. Branding Kennungen des Firefox Anbieters übertragen kann. Die aktuelle Zusammensetzung des User Agents beschreibt Firefox User Agent String Referenz und Browser detection using the user agent.
Für die Auswahl der User-Agent Werte und weiterer Daten gibt es verschiedene Ansätze und Überlegungen.
Die JonDoBrowser und Tor Browser Profile gehen davon aus, dass möglichst viele Firefox Anwender weltweit JonDoFox bzw. Tor Browser nutzen, was optimal wäre, da so eine riesige Anonymitätsgruppe von Anwendern existieren würde, die alle die gleiche Browserkennung „aussenden“ und damit kein Anwender über seinen Browser wiederzuerkennen ist. Ist das global gesehen nicht der Fall, bewegt man sich mit den Profilen nur innerhalb der relativ kleinen Gruppe der JonDoBrowser und Tor Browser Anwender, innerhalb derer man nicht wiedererkennbar ist, dafür aber zum Rest der globalen Gruppe der anderen Firefox Anwender. Zum Teil werden in den Profilen auch Angaben nicht übertragen oder geändert, die von Firefox Versionen, die direkt von mozilla.org heruntergeladen und installiert werden, standarmäßig ausgesendet werden. Im Oktober 2013 zeigten interne Dokumente der beiden Geheimdienste NSA und GCHQ, die von den Zeitungen Guardian und Washington Post veröffentlicht wurden, dass die Geheimdienste genau an diesen spezifischen Browserprofilen ansetzen, um speziell Tor Anwender zu identifizieren und für weitere Überwachungsmaßnahmen zu selektieren.
Ein anderer Ansatz sieht in der permanenten Änderung der User-Agent Kopfzeile die Lösung. Dabei ist zu beachten, dass zum gesamten Browserprofil oder Browser-Fingerprint nicht nur der User Agent gehört, d. h. der übrige Kontext zum User Agent passen muss. Außerdem muss es sich um reale User-Agent Kopfzeilen handeln und nicht um konstruierte User Agent Angaben, weil gerade ein einmaliger User Agent zu einem eindeutigen Merkmal wird, das zur Wiedererkennung führt.
Ein dritter Ansatz geht davon aus, das Standard-Profil der Firefox-Versionen von mozilla.org als Tarn-Browserprofil zu verwenden, das vermutlich von einer großen Anzahl der Firefox Anwender weltweit benutzt wird. Da Windows (leider) das vorherrschende Betriebssystem ist, Englisch (abgesehen von Chinesisch und Spanisch) die vorherrschende Weltsprache ist, während die USA („en-US“ Firefox) eine größere Population stellen als Großbritannien („en-GB“ Firefox) und sich die größte Zahl der Internetnutzer neben China in den USA befinden, bietet sich das Browserprofil der US-Amerikaner als Tarnung an, die sich keine großen Gedanken zur Anonymisierung oder dem Einsatz von Anon-Diensten machen und als Betriebssystem eine relativ aktuelle Windows Version einsetzen, auf dem (aufgrund des Mozilla Updatedienstes und Update Hotfix-Rollouts) die jeweils aktuelle Firefox Release-Version läuft. Das mag zwar einige Linux-Anwender schmerzen, die mit ihrem User Agent der Welt, Statistikern und Marktanalysten die Verbreitung von Linux „mitteilen“ wollen, zweckmäßig ist eine derartige Haltung bzgl. Anonymisierung nicht.
Die dritte Methode ist aus meiner Sicht zu bevorzugen. Wenn alle Browser-Hersteller die gleichen Standards implementieren und einheitliche User-Agent Angaben verwenden würden, hätte sich das Problem der User-Agent Angaben erledigt, was aber utopisch sein dürfte.
Laut Firefox Hardware Report vom 23.12.2018 verwenden ca. 42% aller Firefox-Anwender Windows 10 (ca. 40% Windows 7) mit ca. 83% in der 64-Bit Variante und die 64-Bit Version von Firefox mit ca. 73%. Linux und Mac OS setzen ca. 8% der Benutzer ein. Anfang 2019 setzt also wird die Mehrheit der Benutzer Windows 10 (Windows NT 10.0) ein und der weltweite „Marktanteil“ von Firefox beträgt vermutlich < 4%, weil die Mehrheit aller Internetnutzer Google Chrome einsetzt.
Für einen Firefox unter Windows 10 wären folgende Einstellungen und String-Werte in der erweiterten Konfiguration zu setzen:
Einstellungsname | Wert |
---|---|
browser.sessionstore.upgradeBackup.latestBuildID browser.startup.homepage_override.buildID extensions.lastAppBuildId media.gmp-manager.buildID toolkit.telemetry.previousBuildID | 20181001000000 |
general.appversion.override (anlegen) | 5.0 (Windows) |
general.oscpu.override | Windows NT 10.0; Win64; x64 |
general.platform.override | Win32 |
general.productSub.override | 20100101 („geckotrail“) bei Firefox Desktopversion |
general.useragent.override | Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Firefox/78.0 |
general.useragent.site_specific_overrides | false |
Zur Abgrenzung vom Internet Explorer 11 lautet die Angabe für Firefox ESR 115 bis Version 119:
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/115.0
Von WebExtensions, die User-Agent Angaben fälschen, muss man abraten, da sie oft Windows User-Agent Angaben fehlerhaft oder nicht umfassend genug setzen. Mit der Vorbedingung, dass JavaScript für Webseiten aktiviert ist und aktivierter privacy.resistFingerprinting Einstellung werden die obigen Angaben zum Windows User-Agent außer Kraft gesetzt: Mozilla/5.0 (Windows NT 10.0; rv:78.0) Gecko/20100101 Firefox/78.0, was bei Verwendung eines Standard-Firefox statt eines Tor Browsers total idiotisch ist. Wer die Angaben zum User-Agent und Betriebssystem weiterhin fälschen will, muss mit aktivierter privacy.resistFingerprinting Einstellung den Datenverkehr über einen Proxy leiten, um Kopfzeilen zu manipulieren.
Mozilla IDs
Wenn sich der Firefox Browser mit Mozilla Servern verbindet, geschieht das zwar TLS verschlüsselt, es werden jedoch ebenfalls eine Reihe von browser- und betriebssystemspezifischen Merkmalen übertragen, die zu einem eindeutigen Browserprofil beitragen. Zum Beispiel, wenn man nach Erweiterungen sucht oder sie aktualisiert, für den Browser, Erweiterungen und Plugins eine Aktualisierungsprüfung manuell oder automatisch durchführt wird, die Firefox Hilfeseite aufgerufen wird usw.
Wer wie oben zusätzlich für diese Verbindungen ein stimmiges Tarn-Browserprofil sicherstellen will, kann relevante Variablen in entsprechenden Einstellungsnamen anpassen, indem Variablen durch feststehende Werte passend zum Tarn-Browserprofil ausgetauscht werden. Den Austausch kann man in der erweiterten Konfiguration oder per Autokonfiguration vornehmen.
Variablen
Variable | Ersetzung bzw. Wert |
---|---|
%APP% | Keine Ersetzung: immer Firefox |
%APP_ABI% | x86_64-msvc |
%APP_ID% | Keine Ersetzung: GUID von Firefox selbst: immer %7Bec8030f7-c20a-464f-9b0e-13a3a9e97384%7D |
%APP_LOCALE% | en-US |
%APP_OS% | WINNT |
%APP_RELEASE% | 60 |
%APP_VERSION% | 60.0 |
%BUILD_ID% | BuildID |
%BUILD_TARGET% | WINNT_x86_64-msvc-x64 |
%CHANNEL% | esr |
%CHROME_LOCALE% | en-US |
%CLIENT_OS% | Windows |
%COMPATIBILITY_MODE% | normal |
%CURRENT_APP_VERSION% | 60.0 |
%DISTRIBUTION% %DISTRIBUTION_VERSION% | default default |
%IDS% | Keine Ersetzung: GUID oder ID (name@domain) einer Erweiterung. |
%LOCALE% | en-US |
%NAME% | Keine Ersetzung: immer Firefox |
%OS% | WINNT |
%OS_VERSION% | Windows_NT%2010.0 |
%PRODUCT% | Keine Ersetzung: immer Firefox |
%VERSION% | 60.0 |
URL-Einstellungsname | Zweck |
---|---|
app.support.baseURL | Aufruf der Firefox Hilfe |
extensions.getAddons.get.url | Download von Erweiterungsdatei |
extensions.update.background.url | Aktualisierungsprüfung und Aktualisierung installierter Erweiterungen |
extensions.update.url | |
media.gmp-manager.url | Download und Aktualisierung von GMPs |
Browserprofil-Tests
Wie der Browser über die HTTP Kopfzeilen und weitere Daten bei den Webservern vor und nach Manipulationen der Browserkennung in Erscheinung tritt, kann man auf verschiedenen Seiten analysieren lassen. Dabei sollte man die Aufrufe mit und ohne zugelassenem Javascript, direkt und anonymisiert über ein Anonnetz durchführen.
Dateien und Anwendungen
Downloads
Speichere Dateien in [Standard-Verzeichnis]
[X] Immer fragen, wo Dateien gespeichert werden sollen
Anwendungen
Für Dateitypen und Protokolle kann in Firefox mit verschiedenen Aktionen festgelegt werden, wie Firefox mit Dateien und Diensten umgeht:
- Datei speichern
- Jedes Mal nachfragen
- Plugin (in Firefox) verwenden
- Lokale Anwendung, Webanwendung oder Firefox-Funktion verwenden (z. B. Thunderbird oder Googlemail für mailto://, Feedreader oder Firefox Dynamische Lesezeichen für RSS-Feeds)
Es kann u. U. sinnvoll sein, einzelne Dateitypen zuerst lokal abzuspeichern, um sie später mit einer Anwendung zu öffnen, Dateitypen nur mit bestimmten Anwendungen öffnen zu lassen bzw. extern und nicht intern in Firefox per Plugin oder sich im Zweifelsfall lieber fragen zu lassen, anstatt Inhalte automatisch mit Anwendungen öffnen zu lassen, deren Dateityp automatisch mit einer installierten Anwendung verknüpft wurde.
Wie soll Firefox mit anderen Dateien verfahren?
[ ] Dateien speichern
[X] Fragen, ob Dateien geöffnet oder gespeichert werden sollen
Einstellungsname | Wert | Anmerkungen |
---|---|---|
browser.download.dir browser.download.folderList browser.download.lastDir browser.download.lastDir.savePerSite browser.download.useDownloadDir browser.open.lastDir | /pfad/verzeichnis 2 /pfad/verzeichnis false true /pfad/verzeichnis | Firefox speichert websiteunabhängig alle Datei-Downloads immer automatisch in /pfad/verzeichnis, das auch als Basis-Verzeichnis für Datei → Öffnen dient. Soll vorher eine Abfrage nach dem Dateinamen erfolgen, setzt man browser.download.useDownloadDir auf false Richtlinie: DefaultDownloadDirectory, DownloadDirectory, PromptForDownloadLocation |
browser.download.improvements_to_download_panel | false | nach Anklicken eines Download-Links wird das klassische Download-Fenster mit Anfrage zur gewünschten Aktion eingeblendet |
network.protocol-handler.external-default network.protocol-handler.external.name | false true/false | von Firefox werden vorab alle Protokolle immer von Firefox selbst behandelt und nicht durch externe Anwendungen. Mit true als Wert der zweiten Einstellung wird das Protokoll durch eine externe Anwendung behandelt. Alle Protokollnamen außer mailto werden auf false gesetzt, wenn nur E-Mail Links durch einen externen MUA wie Thunderbird verarbeitet werden sollen |
network.protocol-handler.warn-external.default network.protocol-handler.warn-external.name | true true/false | bevor ein Protokoll durch eine externe Anwendung behandelt wird, erfolgt durch Firefox eine Nachfrage. true als Wert der zweiten Einstellung wird für alle Protokollnamen außer mailto (false) gesetzt, wenn nur E-Mail Links ohne Nachfrage an einen externen MUA wie Thunderbird übergeben werden sollen |
Werden Inhalte manuell oder automatisch mit externen Anwendungen geöffnet, sind an diese Anwendungen die gleichen Sicherheits- und Absicherungsanforderungen zu richten wie an den Browser selbst.
Richtlinie: Handlers, DefaultDownloadDirectory, DownloadDirectory, PromptForDownloadLocation
Plugins
Generell gilt wie für WebExtensions, die Anzahl installierter Plugins so klein wie möglich zu halten.
Java Plugin
Java Plugins sollten nicht installiert und genutzt werden. Falls unbedingt benötigt, werden Plugins nur fallweise aktiviert und bleiben ansonsten deaktiviert. Alternativ wird ein weiteres Firefox-Profil eingerichtet, mit dem das Java Plugin verwendet wird.
PDF Plugin
Plugins zur Betrachtung von PDF-Dateien werden nicht installiert und wie der eingebaute PDF-Betrachter nicht genutzt. Stattdessen kann man PDF-Dokumente mit PDF-Betrachtungsprogrammen wie MuPDF öffnen lassen (wenn man sie nicht zuvor abspeichern lässt), die nur die Grundfunktionen zur Betrachtung von PDF-Dokumenten mitbringen. Zusätzlich sollte das Betrachtungsprogramm mit einem entsprechenden MAC/Sandbox Profil abgesichert werden.
Einstellungsname | Wert | Anmerkungen |
---|---|---|
browser.helperApps.showOpenOptionForPdfJS pdfjs.disabled pdfjs.disable* | false true true | deaktiviert das Ausführen des integrierten Javascript PDF Betrachters |
Richtlinie: DisableBuiltinPDFViewer, PDFjs
In der erweiterten Konfiguration kann festgelegt werden, wie Plugins standardmäßig zu behandeln sind, die neu hinzugefügt wurden:
Einstellungsname | Wert | Anmerkungen |
---|---|---|
plugin.default.state | 0 | neu hinzugefügte Plugins sind zunächst deaktviert |
plugin.state.name | n | 0 (Nie aktivieren) 1 (Nachfragen, ob aktiviert werden soll) 2 (Immer aktivieren) |
Inhalte mit DRM-Kopierschutz
[ ] Inhalte mit DRM-Kopierschutz wiedergeben
Open und EME-CDM GMPs
Firefox implementiert Gecko Media Plugins (GMPs) von denen es zwei Typen gibt:
Open/Codec GMPs
- OpenH264 Plugin von Cisco für Videochats/-konferenzen über WebRTC
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.
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.
Im Unterschied zu Open GMPs ist ein EME-CDM immer ein propietäres, closed-source GMP, das Mozilla selbst als „Black Box“ bezeichnet. Nach Download und Installation vom Anbieter-Server wird beim Aufruf von EME-DRM Inhalten das CDM wie bei Open GMPs über den Plugin Container in eine Sandbox-Umgebung geladen. Der Plugin Container wird dabei als „CDM Host“ bezeichnet.
Um den Zugriff auf Inhalte an ein Gerät bzw. Browser einschränkend zu binden, generiert der CDM Host für jeden Inhalte-Anbieter (z. B. YouTube, Apple usw.) zuerst eine eigene, eindeutige Geräte- bzw. Browser-ID. Die ID ist ein Hashwert, der aus Gerätedaten und eines zufällig ermittelten Origin-Secret als „Salt“ gebildet wird (wobei es an anderer Stelle auch heißt, der Saltwert wäre einfach der User Agent), um wg. Browser-Fingerprintings keine realen Daten zu verwenden. D. h., das EME-CDM GMP ist an einen speziellen CDM Host bzw. Browser gebunden. Wird der CDM Host manipuliert bzw. ausgetauscht, deaktiviert sich das EME-CDM.
Die ID bleibt für das EME-CDM bzw. einen Inhalte-Anbeiter solange gleich und damit wiedererkennbar, wie man nicht das Origin-Secret löscht und damit die ID zurücksetzt. Diese Möglichkeit soll angeboten werden und muss dann auch genutzt werden, um Benutzerprofile zu vermeiden.
Greift der Benutzer mit seinem Browser auf DRM Inhalte zu, transportiert Firefox über IPC Känale die verschlüsselte Datei oder den verschlüsselten Datenstrom über den CDM Host zum CDM. Das CDM ermittelt die enthaltene Schlüssel-ID und lässt den Entschlüsselungsschlüssel vom Browser über eine TLS-verschlüsselte Verbindung vom CDM Anbieter-Server herunterladen, entschlüsselt und dekodiert die Daten mit dem enthaltenen Dekoder und transportiert die Daten über den CDM Host und IPC Kanäle zu Firefox, der sie anzeigt oder abspielt, aber nicht mehr abspeichern kann.
Ob die GMP und CDM Host „Sandbox“ das CDM bzw. GMP tatsächlich zuverlässig von Browser, Betriebssystem, Dateisystem und Hardware isoliert und genauso zuverlässig dem Browser-Fingerprintig und der Wiedererkennung des Benutzers entgegenwirken kann, bleibt beim CDM angesichts des „Black Box“ Charakters des CDM, der (noch) nebulösen ID-Generierung, dem verschlüsselten Kanal zum Anbieter-Server und einer eventuellen Kooperationsbereitschaft mit Geheimdiensten und Sicherheitsbehörden dahingestellt bzw. zweifelhaft. Siehe z. B. Gecko Media Plugin sandbox escape, Buffer overflow in ClearKey Content Decryption Module (CDM) during video playback.
Merkmale beider GMP-Typen
- Plugins werden als binäre Bibliotheken direkt vom Server des Anbieters – u. U. ohne TLS-Verschlüsselung – heruntergeladen und aktualisiert.
- Plugins werden im Add-ons Manager unter Plugins aufgeführt, können aber nur permanent aktiviert oder deaktiviert werden, also kein „Click to Play“.
- Die Updateprüfung und das Anstoßen des Downloads wird (mit TLS-Verschlüsselung) über Mozilla-Updateserver durchgeführt, die aber über die angefragte update.xml Datei nur SHA512 Prüfsumme liefern bzw. prüfen.
- Unterhalb des Firefox Profilverzeichnisses wird für jedes GMP ein profilname/gmp…/ Unterverzeichnis angelegt, das die Bibliotheks- und Metadaten-Datei des Plugins enthält. In der Metadaten-Datei stehen Pluginname, Zweckbeschreibung, Versionsangabe und Funktionen der Plugin-APIs.
- Plugins werden per Plugin Container in einem eigenen Kindprozess geladen und ausgeführt, der zusätzlich in einer Sandbox laufen kann, um das Plugin vom Browserprozess zu isolieren und Zugriffsprivilegien hinsichtlich Dateisystem, Speicher, Netzwerkschnittstelle usw. zu beschränken – auch zur Vermeidung von Fingerprinting-Daten. EME-CDMs sollen immer in einer Sandbox laufen.
Deaktivierung
Neben der Deaktivierung im Add-on Manager kann man GMPs und EME auch in der erweiterten Konfiguration dauerhaft deaktivieren:
Einstellungsname | Wert | Anmerkungen |
---|---|---|
media.eme.enabled | false | deaktiviert die EME DOM API |
media.gmp.trial-create.enabled | false | mit true lässt man auf installierten EME GMPs ein Testmuster laufen, um festzustellen, ob sie H.264 dekodieren können |
media.gmp-manager.url media.gmp-manager.updateEnabled (anlegen) media.gmp-provider.enabled | leer false false | keine Downloads und Aktualisierungen von GMPs. Zusätzlich die gmp Unterverzeichnisse im Firefox Profilverzeichnis löschen und das gmp Unterverzeichnis mit Schreibschutz versehen |
media.gmp-gmpname.enabled media.gmp-name.visible | false false | deaktiviert die Verwendung des GMP, die Kommunikation zum Anbieter und die Abfrage zur Reaktivierung deaktivierter CDMs |
Richtlinie: EncryptedMediaExtensions
ClearKey GMP
- gmp-clearkey Unterverzeichnis im Firefox Programmverzeichnis leeren und mit Schreibschutz versehen
andere GMPs
- gmp… Unterverzeichnisse im Firefox Profilverzeichnis leeren und mit Schreibschutz versehen. Für Ciscos OpenH264 GMP kann man auch Verbindungen zu ciscobinary.openh264.org per Paketfilter oder Proxy blockieren
Firefox-Updates
Firefox erlauben
( ) Updates automatisch zu installieren (empfohlen)
( ) Nach Updates zu suchen, aber vor der Installation nachfragen
Bei Betriebssystemen, die Firefox aus eigenen Software-Quellen installieren und automatisch aktualisieren, erübrigt sich die automatische Aktualisierung von Firefox. Ebenso, wenn man Firefox selbst manuell installiert und aktualisiert.
Mit der DisableAppUpdate Richtlinie werden die beiden Optionen deaktiviert und durch die Anzeige ersetzt, dass Updates durch den Systemadministrator deaktiviert wurden. Ansonsten muss man zwischen den Optionen wählen. Dabei bietet sich die zweite Option an – allein schon deshalb, um ggf. vor einer Aktualisierung noch ein Backup der Profilverzeichnisse anlegen zu können. Über die Mozilla Mailingliste für Ankündigungen kann man sich zu neuen Firefox Versionen informieren lassen. Die Veröffentlichung neuer Firefox-Versionen zu ignorieren oder nicht einzuspielen, verbietet sich von selbst.
Sofern WebExtensions über die Add-ons Firefox Seite bezogen wurden, werden WebExtensions regelmäßig über verschlüsselte Verbindungen zu Mozilla auf vorliegende Aktualisierungen überprüft und aktualisiert. Bei WebExtensions von anderen Websites bzw. direkt vom Programmierer wird die Überprüfung und Aktualisierung ggf. über diese Websites und ohne verschlüsselte Verbindung durchgeführt.
Einstellungsname | Wert | Anmerkungen |
---|---|---|
browser.startup.upgradeDialog.enabled | false | keine Anzeige eines Upgrade-Dialogfensters bei neuen Firefox Hauptversionen |
Leistung
[ ] Empfohlene Leistungseinstellungen verwenden
[ ] Hardware-Beschleunigung verwenden, wenn verfügbar
Wenn das Browser-Fingerprinting per Hardware-Fingerprinting erschwert werden soll, deaktiviert man die Optionen.
Richtlinie: HardwareAcceleration
Surfen
[ ] Erweiterungen während des Surfens empfehlen
[ ] Funktionen während des Surfens empfehlen
Empfehlungen zu Funktionen und Erweiterungen gehen mit der Erhebung und Analyse von Telemetrie-Daten einher.
Einstellungsname | Wert | Anmerkungen |
---|---|---|
browser.discovery.containers.enabled browser.discovery.enabled browser.discovery.sites extensions.getAddons.discovery.api_url extensions.getAddons.showPane (anlegen) extensions.htmlaboutaddons.recommendations.enabled extensions.recommendations.themeRecommendationUrl | false false leer leer false false leer | keine Ermittlung und Anzeige personalisierter, empfohlener Erweiterungen und Features, basierend auf analysiertem Surfverhalten und bereits genutzer Add-ons. Siehe auch Add-on recommendations for Firefox users: a prototype recommender system leveraging existing data sources, Contextual Feature Recommender (CFR) |
Richtlinie: UserMessaging
Verbindungs-Einstellungen
Über den Einstellungen Button werden die Einstellungen aufgerufen, die festlegen, wie Verbindungen zwischen Firefox und Servern aufgebaut werden und verlaufen. Damit sind die Verbindungs-Einstellungen der zentrale Punkt für die Anonymisierung der Firefox Nutzung.
In der folgenden Tabelle sind die IP-Adressen (immer 127.0.0.1) und Portnummern aufgeführt, die für die verschiedenen Protokolle einzutragen sind, wenn man die Verbindungen über Tor direkt oder indirekt mit Weiterleitung über einen Proxy wie z. B. Privoxy anonymisieren will.
Tor | Privoxy → Anondienst | |
---|---|---|
HTTP-Proxy | - | 127.0.0.1:8118 |
SSL-Proxy | - | 127.0.0.1:8118 |
FTP-Proxy | - | 127.0.0.1:8118 |
SOCKS-Host | 127.0.0.1:9050 | - |
SOCKS | [x] SOCKS v5 |
In den erweiterten Einstellungen von Firefox werden folgende Einstellungen gesetzt:
Einstellungsname | Wert |
---|---|
network.proxy.allow_bypass | false |
network.proxy.failover_direct | false |
network.proxy.no_proxies_on | leer |
network.proxy.socks | 127.0.0.1 |
network.proxy.socks_port | 9050 |
network.proxy.socks_version | 5 |
Richtlinie: Proxy
Bei der Installation von WebExtensions sollte man darauf achten, dass sie keine Proxy Berechtigungen erfordern, sofern sie nicht selbst als Proxy-Manager fungieren, da WebExtensions mit Proxy-Berechtigungen Proxy Einstellungen ändern und eigene Proxy-Skripte inklusive PAC Skripte verwenden können.
DNS-Anfragen
DNS-Anfragen bzw. Anfragen an DNS-Server zur Auflösung von Domainnamen in IP-Adressen sollten immer verschlüsselt und möglichst anonymisiert erfolgen. Sofern ein lokaler Proxy mit Weiterleitung an Tor oder JonDo als SOCKS-Proxy (s. o.) zwischen Firefox und den Anondienst geschaltet oder ein Anondienst direkt als Proxy eingetragen wird, übernimmt der lokale Proxy die Firefox Anfragen zur Namensauflösung und leiten sie an den Anondienst weiter bzw. übernimmt der Anondienst die Anfragen zur Namensauflösung.
Zusätzlich, als Ersatz oder zur Gewährleistung, dass Namensauflösungen immer, also auch durch das Betriebsystem selbst, verschlüsselt und anonymisiert durchgeführt werden, sollte auch die Konfigurationen eines lokalen DNS-Resolvers bzw. der Funktionen des Betriebssystems zur Namensauflösung so ausgerichtet werden, dass Anfragen zur Namensauflösung verschlüsselt und/oder anonymisiert erfolgen und nicht direkt und unverschlüsselt durch die DNS-Resolver des Internetzugang-Providers. Für Anregungen siehe Linux: DNS mit Dnsmasq, DNSCrypt-Proxy2 & Tor.
Einstellungsname | Wert | Anmerkungen |
---|---|---|
browser.urlbar.dnsResolveSingleWordsAfterSearch | 0 | bei Eingabe von einem Begriff in die Adressleiste zur Suche wird der Begriff nicht als Anfrage an DNS-Server gesendet – wie kann man überhaupt auf so eine schwachsinnige Option kommen? |
browser.fixup.alternate.enabled | false | schaltet das „Domain Guessing“ ab, d. h. die automatische Namensauflösung bzw. Verbindungsaufnahme mit (www.)domain(.com), wenn der Hostname falsch eingegeben bzw. nicht aufgelöst werden konnte |
network.dns.blockDotOnion | true | kann auf false gesetzt werden, wenn Hostnamen mit .onion TLD von Tor Onion Services wie oben erwähnt über Tor aufgelöst werden können |
network.dns.disableIPv6 | true | deaktiviert IPv6 DNS-Anfragen |
network.dns.disablePrefetch network.dns.disablePrefetchFromHTTPS | true true | deaktiviert Anfragen zur Namensauflösung von Domainnamen in Links/URLs einer Website, die im Voraus und im Hintergrund vorgenommen wird Richtlinie: NetworkPrediction |
network.dnsCacheEntries | 0 | deaktiviert den Zwischenspeicher mit den IP-Adressen aufgelöster Hostnamen |
network.dnsCacheExpiration | n | statt der Deaktivierung des DNS Cache kann man die Cache-Einträge nach n Sekunden verfallen lassen. |
network.proxy.socks_remote_dns | false | führt mit true Anfragen zur Namensauflösung über einen SOCKS-Proxy aus. Als SOCKS-Proxy kann der Client eines Anondienstes mit SOCKS-Unterstützung verwendet werden. Ist das nicht der Fall oder wird die Namensauflösung über lokale DNS-Resolver und -Proxys reguliert, wird die Einstellung auf false belassen. |
Siehe auch DNS über HTTPS.
Startseite
Neue Fenster und Tabs
Startseite und neue Fenster [Leere Seite]
Neue Tabs [Leere Seite]
Inhalte des Firefox-Startbildschirms
[ ] Internetsuche
[ ] Verknüpfungen
[ ] Gesponserte Verknüpfungen
[ ] Neueste Aktivität
[ ] Unterkategorien
[ ] Kurzinformationen
Einstellungsname | Wert | Anmerkungen |
---|---|---|
browser.newtabpage.activity-stream.* browser.newtabpage.activity-stream.default.sites browser.newtabpage.enabled browser.newtab.preload browser.partnerlink.attributionURL browser.partnerlink.campaign.topsites browser.startup.firstrunSkipsHomepage browser.startup.page browser.startup.homepage browser.startup.homepage_override.mstone browser.topsites.contile.enabled browser.topsites.contile.endpoint browser.topsites.useRemoteSetting | false bzw. {„enabled“:false} leer false false leer leer false 0 about:blank ignore false leer false | wenn die Startseite oder eine neue Tab-Seite geöffnet wird, bleibt sie einfach eine neue, leere Seite und es werden alle Activity Stream „Erweiterungen“ oder „Features“ wie Screenshots besuchter bzw. bevorzugter Websites oder Werbebanner in der neuen Tab-Seite und damit verbundener Telemetrie-Datenverwendung deaktiviert. Firefox wird immer mit einer leeren Startseite bzw. der Start-Aktion gestartet statt der „eigenen Firefox Homepage“ (about:home) und wenn die Homepage verwendet wird, werden keine "Snippets" bzw. "Tiles" von Mozilla im Hintergrund geladen |
Richtlinie: FirefoxHome, Homepage, NewTabPage
Suche
Standardsuchmaschine
[DuckDuckGo]
Sofern nur eine der bereits vorinstallierten Suchmaschinen genutzt wird, sollte man DuckDuckGo aus der Liste auswählen, da DuckDuckGo von allen installierten Suchmaschinen Datenschutz und Privatsphäre am meisten respektiert.
Suchvorschläge
[ ] Suchvorschläge anzeigen
Einstellungsname | Wert | Anmerkungen |
---|---|---|
browser.search.hiddenOneOffs | Google, Bing, Amazon.com, DuckDuckGo, eBay, Twitter, Wikipedia (en) | alle in der „en-US“ Version vorinstallierte Suchmaschinen können in einer kommaseparierten Liste aufgenommen und damit deaktiviert werden |
browser.urlbar.groupLabels.enabled browser.search.suggest.enabled browser.urlbar.merino.enabled browser.urlbar.merino.endpointURL browser.urlbar.quicksuggest.enabled browser.urlbar.shortcuts.bookmarks browser.urlbar.shortcuts.* browser.urlbar.showSearchSuggestionsFirst browser.urlbar.suggest.bookmark browser.urlbar.suggest.quicksuggest.* browser.urlbar.suggest.* | false false false leer false true false false true false false | deaktiviert bis auf die Verwendung der eigenen Lesezeichen die Übermittlung von Begriffen, um Listen mit Suchwort-Vorschlägen zu generieren oder die Einblendung von Suchwort-Vorschlägen aus weiteren Quellen und damit verbundener Erhebung und Übermittlung von Telemetrie-Daten mittels Firefox QuickSuggest/Suggest |
browser.urlbar.maxHistoricalSearchSuggestions | 0 | Suchbegriffe, die in der Adressleiste eingegeben wurden, werden nicht zur erneuten Verwendung zwischengespeichert |
browser.search.update | false | deaktiviert die automatische Aktualisierung von selbst hinzugefügten Suchmaschinen |
keyword.enabled | false | deaktiviert die Übermittlung von Begriffen und falsch eingetippter URLs in der Adressleiste an Suchmaschinen, wenn Firefox die Informationen nicht selbst in URLs der Lesezeichen oder History findet |
Richtlinie: SearchBar, SearchSuggestEnabled, UserMessaging:UrlbarInterventions
Suchmaschinen kontrollieren
Plugins für Suchmaschinen und Suchdienste, die man u. a. mit der Firefox Suchleiste oder mit weiteren Such-Erweiterungen nutzen kann, können über die Firefox Add-ons Seite für Firefox Suchmaschinen-Plugins gefunden und installiert werden. Einige Websites veröffentlichen über ihre Webserver eigene Such-Erweiterungen, die sich über die Drop-down Liste des Suchmaschinen-Eingabefelds hinzufügen lassen. Viele Such-Plugins enthalten etliche Bilddateien, Bibliotheken, Javaskripte, die völlig überflüssig sind und eventuell schädliche Funktionen ausführen oder auf verschlüsselte Verbindungen verzichten.
Wer die vollständige Kontrolle über verwendete Such-Plugins und ihren Anweisungen behalten will, sollte:
- die mit Firefox ausgelieferten Such-Plugins unter Suchmaschinen-Schlüsselwörter deaktivieren (browser.search.hiddenOneOffs) und per Richlinie deinstallieren
- die automatische Aktualisierung der Suchmaschinen deaktivieren
- keine Suchmaschinen über die Firefox Add-ons Seite installieren
- keine Suchmaschinen über Websites installieren
- vor der Installation einer neuen Suchmschine in XML-Dateien die Anweisungen (z. B. wird TLS-Verschlüsselung genutzt oder nicht) kontrollieren
Mit der Add custom search engine Erweiterung kann man nach Eingabe eines Suchmaschinennamens und der Suchparameterüber neue Suchmaschinen hinzufügen. Man kann keine Namen vergeben, die bereits durch die hartkodierten Suchmaschinen (Bing, Amazon usw.) belegt sind.
Mit true für den anzulegenden Einstellungsnamen browser.urlbar.update2.engineAliasRefresh in der Erweiterten Konfiguration kann man über den Hinzufügen Button unter Suchmaschinen-Schlüsselwörter ebenfalls Suchmaschinen hinzufügen, indem der Name und die URL mit %s als Platzhalter für die Suchbegriffstelle in Formularfelder eingetragen werden.
Richtlinie: Extensions (Uninstall), ExtensionSetting (installation_mode), SearchEngines