paranoid.is

Digitale Selbstverteidigung im Zeitalter von Google, Meta & Amazon

Firefox härten, mit dem Arkenfox user.js

Erhöhte Sicherheit und Privatsphäre beim Browsen

Originaler Firefox

Der Firefox Browser ist von Werk aus eine gute Option für ein privates Surfen. Als Vielzweckbrowser bietet er eine Balance aus Performance, Benutzerfreundlichkeit und Sicherheit. Wer seine Sicherheit und Privatsphäre höher gewichtet, kann Firefox zusätzlich härten.


Gehärteter Firefox in hydraulischer Presse.
Gehärteter Firefox in hydraulischer Presse.

Begriffserklärung

  • user.js – Eine optionale JavaScript-Datei, die in einem Firefox Profil dazu eingesetzt wird, erweiterte Einstellungen bei jedem Browser Start zu laden.
  • Arkenfox – Eine Sammlung von Sicherheit und Privatsphäre orientierten Firefox Anpassungen bestehend aus einem user.js, einem Update-Skript und zum Zurückstellen inaktiver Einstellungen einem prefsCleaner Skript. Arkenfox funktioniert auf Linux, Mac und Windows. In der Arkenfox README.md finden sich weitere Ressourcen wie das nützliche Wiki.
  • Härten / Hardening – Bezogen auf die IT, eine Erhöhung der Sicherheit und Privatsphäre durch Reduzierung der Angriffsfläche wie das Entfernen von unnötigen Funktionen, die Isolation von Prozessen und die Reduzierung der Datenübertragung. Bei einem Webbrowser können für ein Härten unter anderem Tabs voneinander isoliert werden, unsichere Funktionen wie WebGL deaktiviert werden und die Übertragung von Telemetrie verhindert werden.
  • Browser Fingerprinting – Die Bestimmung eines einzigartigen Browser-Fingerabdrucks für eine Verfolgung des Nutzers über verschiedenen Webseiten. Dazu gehört die Größe des Gerätebildschirms, installierte Add-ons, Betriebssystem, Sprache, installierte Systemschriften und vieles mehr.

Die Schwierigkeit, Firefox selbst zu härten

Es gibt verschiedenste Meinungen und Anleitungen, wie Firefox zu härten ist. Normalerweise beinhalten diese drei Teile: Einstellungen, about:config (Erweiterte Einstellungen, die erreichbar sind, indem about:config in die Adressleiste eingegeben wird) und Add-ons. Mit den normalen Firefox Einstellungen kann nach Belieben experimentiert werden. Die Einstellungen in about:config jedoch sind mit Absicht versteckt, Änderungen können zu ungewollten Ergebnissen führen. Nutzer, die mit about:config experimentieren möchten, sollten sich gut mit Firefox auskennen und sich aufgrund von regelmäßigen Änderungen in Firefox und in den Trackingverfahren stets auf dem Laufendem halten.

about:config - Erweiterte Einstellungen

Add-ons sind meist von Dritten programmiert, mit privilegierten Berechtigungen. Wer Erweiterungen installiert, vergrößert seine Angriffsfläche, muss den Entwicklern vertrauen und erleichtert den Daten sammelnden Firmen das Fingerprinting. Arkenfox hat eine gute Wiki-Seite, in der erwähnt wird, welche Browser Erweiterungen die Entwickler bei implementiertem Arkenfox Profil empfehlen. Es sind momentan zwei: uBlock Origin und Skip Redirect.

Skip Redirect versucht ungewollte Weiterleitungen zu überspringen. Wenn zum Beispiel eine Suchmaschine zu paranoid.is verlinkt, kann diese zuerst eine Webseite zu Trackingzwecken im Hintergrund laden und dann erst automatisch auf paranoid.is weiterleiten. Dieses Add-on kann Sinn machen, da Arkenfox und uBlock Origin keine Verteidigung bieten gegen diese Trackingmethode. Wer jedoch Google, Amazon und zentralisierte Social Media Seiten meidet, hat eher einen kleinen Nutzen. Ich verzichte darauf, da ich nur selten einen Treffer hatte, als ich die Erweiterung testete. Die potenziellen Nachteile eines weiteren Add-ons überwiegen für mich. Von daher haben meine Standard Arkenfox Profile nur den Inhaltsblocker uBlock Origin installiert. uBlock Origin im Einsatz

Das Ziel ist Probleme, die oft mit Erweiterungen gelöst werden, mit Firefox internen Mitteln zu meistern. Da dies kompliziert ist, sich stetig ändert und weil ich das Rad nicht neu erfinden will, benutze ich eine fertige regelmäßig aktualisierte Lösung: Das user.js von dem Arkenfox Projekt.


Einrichtung von Arkenfox

Installation

Das Herzstück ist die user.js Datei. Dieses Skript überschreibt die Einstellungen von Firefox bei jedem Start. Diese Lösung wird verwendet, damit die Einstellungen nicht mühsam manuell in about:config geändert werden müssen und damit bei jedem Start von Firefox sichergestellt wird, dass die Einstellungen auch angewendet werden. Bei einmalig geänderten Einstellungen besteht die Gefahr, dass diese bei einem Update von Firefox überschrieben werden.

  • Unter Hilfe - Über Firefox sicherstellen, dass Firefox aktuell ist
  • Neustes Arkenfox user.js herunterladen und im Download Ordner entpacken
  • Neues Firefox Profil erstellen, dazu about:profiles in Adressleiste eingeben und auf Neues Profil erstellen (Create a New Profile) klicken.
  • Ohne das neue Profil zu öffnen, auf Ordner öffnen (Open Directory) klicken beim Wurzelordner (Root Directory)
  • In neuem Profil Wurzelordner öffnen
  • Ordner öffnen des entpackten Archivs und Inhalt (nur den Inhalt, nicht den ganzen Ordner) in den Wurzelordner verschieben
  • Das neue Arkenfox Profil kann nun unter about:profiles gestartet werden. Dort kann auch bequem zwischen verschiedenen Profilen gewechselt, mehrere gleichzeitig gestartet, die Profile umbenannt und das Standardprofil festgelegt werden.

Nach der Installation (optional)

  • LICENSE.txt, README.md, Wiki und common questions and answers lesen.
  • In about:profiles wählen, welches Profil als Standard geöffnet werden soll.
  • Installieren von uBlock Origin und auf gewünschten Modus einstellen
  • Einstellungen (Settings) - Suche (Search) - Standardsuchmaschine (Default Search Engine) auf privatere Suchmaschine stellen
  • Löschen nicht privater Suchmaschinen in Einstellungen (Settings) - Suche (Search) - Suchmaschinen-Schlüsselwörter (Search Shortcuts)
  • Installation von Theme für einfache Unterscheidung von Profilen
  • Beliebige Anpassung von Toolbar
Minimalistisches Layout eines Arkenfox Profils

Aktualisierung von Arkenfox

  • Profilordner öffnen über about:profiles - Wurzelordner (Root Directory) - Ordner öffnen (Open Directory)
  • Firefox komplett schließen
  • [Linux/Mac]
    • Terminal in Profilordner öffnen
    • ./updater.sh ausführen und den Anweisungen folgen
    • ./prefsCleaner.sh ausführen und den Anweisungen folgen
  • [Windows]
    • updater.bat mit Doppelklick ausführen und den Anweisungen folgen
    • Bei Frage ob prefsCleaner.bat ausgeführt werden soll bestätigen und den Anweisungen folgen

Die Aktualisierung sollte regelmäßig manuell ausgeführt oder automatisiert werden. Wer eine Benachrichtigung möchte, sobald eine neue Version verfügbar ist, kann dies über einen beliebigen Feedreader, der Atom unterstützt tun wie Newsblur (Web) oder Feeder (Android). Der Arkenfox Feed ist https://github.com/arkenfox/user.js/releases.atom. Dieses Schema funktioniert auch für andere GitHub Projekte. Der Atom-Feed für den Erhalt von den neusten paranoid.is Beiträgen ist https://paranoid.is/atom.xml.

Aktualisieren von Arkenfox unter Linux

Arkenfox anpassen

user-overrides.js

Das user.js sollte nicht direkt abgeändert werden, bei einem Update würden die überschriebenen Einstellungen auf den Standardwert zurückgesetzt werden. Stattdessen kann eine Datei user-overrides.js im Profilordner erstellt werden für die Anpassungen.

Beispiel: Adressbar Suche

Die Adressleisten Suche ist in Arkenfox standardmäßig ausgeschaltet, damit zum Schutz der Privatsphäre eine falsch geschriebene URL nicht an die Suchmaschine weitergeleitet wird. Mir macht dies nichts aus und ich möchte den Komfort einer Suche in der Adressleiste nicht missen. Ich suchte im user.js nach search und fand den Abschnitt /*** [SECTION 0800]: LOCATION BAR / SEARCH BAR / SUGGESTIONS / HISTORY / FORMS ***/ Der Kommentar des zweiten Eintrags beschreibt genau die Einstellung, die ich suche: /* 0801: disable location bar using search. Der String ist: user_pref("keyword.enabled", false); ich muss also die Einstellung keyword.enabled aktivieren, indem ich im user-overrides.js die Zeile user_pref("keyword.enabled", true); hinzufüge. Als letzter Schritt muss ich das user.js aktualisieren.

Ausschnitt aus dem Arkenfox user.js

Weitere häufige Anpassungen

Cross Origin Referers

Cross Origin Referers (etwa seitenübergreifende Verweise) werden in Arkenfox strenger behandelt als standardmäßig. Es gibt 3 Einstellungsmöglichkeiten:

  1. Referrer immer senden
  2. Referrer nur senden, wenn Domainname übereinstimmt
  3. Referrer nur senden, wenn Hostname übereinstimmt

Die privateste Einstellung 2 kann gerade bei älteren Webseiten wie manchen Online-Banking Portalen zu Fehlern führen. Wer auf Schwierigkeiten trifft, kann die Einstellung auf 0 wechseln, indem im user-overrides.js eingefügt wird: user_pref("network.http.referer.XOriginPolicy", 0);. Eine Option, falls der Wert auf 0 gesetzt wird, ist eine Referrer Firefox Erweiterung zu installieren, die auf 2 gestellt wird und dann nur bei den Problemseiten ausgeschaltet wird. Siehe Warnung über zu viele Add-ons.

Anti Fingerprinting

Wer darauf angewiesen ist möglichst in der Masse unterzutauchen, also kein einmaliger Fingerabdruck zu haben, ist mit dem auf Firefox basiertem und stark gehärtetem Tor Browser am besten bedient. Für wen Tor keine Möglichkeit ist, erhält über Arkenfox einen Schutz gegen Fingerprinting, zwar schlechter als beim Tor Browser, aber auch besseren als beim Standard Firefox Profil. Das wichtigste Mittel dabei ist die privacy.resistFingerprinting (RFP) Einstellung in Firefox. RFP ist im Arkenfox user.js standardmäßig aktiviert, kann aber auch zu nicht funktionierenden Webseiten führen. Wer RFP ausschalten muss, kann im user-overrides.js hinzufügen: user_pref("privacy.resistFingerprinting", false);. Auch bei dieser Änderung kann ein Add-on, ein CanvasBlocker, Sinn machen. Detaillierte Abwägungen dazu im Arkenfox Wiki.

Ein weiteres implementiertes Anti-Fingerprint Element ist Letterboxing, welches einen Rand um das Browserfenster zeichnet, um die exakte Displaygröße zu verschleiern. Wer dies nicht möchte, kann Letterboxing ausschalten durch Hinzufügen zum user-overrides.js von: user_pref("privacy.resistFingerprinting.letterboxing", false);

Weitere übliche Überschreibungen. Die Nummern zum korrespondieren Problem können im user.js gesucht werden und der Befehl angepasst im user-overrides.js ergänzt werden.

Um zwei user.js miteinander zu vergleichen ist das Compare-UserJS Skript praktisch.

Hilfreich um Einstellungen zu finden und mit dem user.js vertraut zu werden ist die Benutzeroberfläche mit integrierter Suche. Dafür in der Adressleiste https://arkenfox.github.io/gui/ eingeben.

Arkenfox Benutzeroberfläche mit Suche

Umsetzung im Alltag

Arkenfox bietet eine fertige Lösung für eine starke Verbesserung der Sicherheit und Privatsphäre des Firefox Browsers. Wer mehr mit seinem Browser machen möchte, als einfaches Surfen gerät jedoch schnell an Probleme, hervorgerufen von den gewollten Einschränkungen. Die praktische about:profiles Oberfläche bietet einen einfachen Weg, um das Surfverhalten aufzugliedern. Zum Beispiel ein Profil für Online-Banking, eines für privates Browsen und eines für nicht privates Browsen. Gerade zu Beginn kann auch gleichzeitig ein originales Firefox Profil neben einem Arkenfox Profil ausgeführt werden.

Alternativen

Die user.js Lösung ist nicht Arkenfox spezifisch. Falls das Arkenfox Projekt zum Stillstand kommt, gibt es Alternativen. Nach demselben Prinzip gibt es zum Beispiel das Firefox configuration hardening user.js. BetterFox bietet verschiedene user.js an, auch für bessere Performance und Benutzerfreundlichkeit. Ebenso kommt das Privacy Handbuch mit mehreren user.js für verschiedene Sicherheitsansprüche. Mit dem Firefox Profilemaker kann ein Profil praktisch über eine Benutzeroberfläche erstellt werden. Dies ist weniger detailliert als die user.js Lösungen, dafür auch einfacher zu implementieren. Wem übrigens das ghacks user.js von früher ein Begriff ist, das ist der ehemalige Name von Arkenfox.

Mein Setup

Ich nutze 2 Desktop Browser, insgesamt 4 Profile

  1. Den Tor Browser für alltägliches Browsen, das mich nicht identifiziert (keine Logins oder Übertragung von auf mich spezifische Daten). Ich lasse die Einstellungen und Add-ons im Tor Browser wie sie sind, um nicht unnötig aus der Masse herauszustechen, was unbedingt empfohlen ist. Arkenfox und uBlock Origin sind deshalb keine Option, da nicht vorinstalliert. Aufgrund der guten Isolation und Anonymisierung, die der Tor-Browsers mit sich bringt, sind diese aber auch nicht nötig.
    • Add-ons
      • NoScript (Vorinstalliert)
  2. Daneben habe ich einen originalen Firefox Browser im Einsatz, mit einem Arkenfox Profil fürs Surfen außerhalb von Tor
    • Add-ons
      • uBlock Origin in Medium Mode
    • user-override.js
      • user_pref("keyword.enabled", true); // 0801 - Suche in Adresszeile einschalten
  3. Daneben ein weiteres Arkenfox Profil für Logins, die ich von meinem sonstigen Browsen trenne
    • Add-ons:
      • uBlock Origin in Hard Mode und JavaScript per Standard ausgeschaltet
    • user-override.js
      • keines
  4. Sowie ein Arkenfox Debugging Profil, falls ich eine Seite nicht zu Gange bringe, auf die ich unbedingt zugreifen muss.
    • Add-ons
      • uBlock Origin in Easy Mode
      • Smart Referer
      • CanvasBlocker
    • user-override.js
      • user_pref("privacy.resistFingerprinting", false); // 4501 - Fingerprinting Schutz ausschalten
      • user_pref("privacy.resistFingerprinting.letterboxing", false); // 4504 - Rahmen um Fenster ausschalten
      • user_pref("webgl.disabled", false); // 4520 - wegbl einschalten
      • user_pref("network.http.referer.XOriginPolicy", 0); // 1601 - Cross Origin Referers immer senden

Mit ausgeschaltetem 4501 ist 4504 und 4520 nicht mehr wirklich notwendig, da diese auf den Fingerprinting-Schutz aufbauen und können somit für bessere Benutzerfreundlichkeit und Funktionalität geändert werden.

Arkenfox Profile unter about:profiles

Bemerkung - Browsersprache

Ich habe Firefox für die Screenshots auf Deutsch gestellt und um die Einstellungen auch auf Deutsch zu beschreiben. Sonst ist mein Firefox aber immer auf Englisch eingestellt (Einstellungen - Allgemein - Sprache - English (US)). Da Webseiten die Sprache auslesen können, lässt einem die Firefox-Standard-Sprache weniger herausstechen als deutsch. Zusätzlich stelle ich all meine Software auf Englisch, da es dies einfacher macht bei einem Problem eine Lösung im Web zu finden.

Unterstützung der erwähnten Open Source Projekte

  • Firefox: Für die Mozilla Foundation hinter Firefox kann direkt gespendet werden
  • Tor Browser: Eine direkte Spende an das Tor Project ist möglich
  • Arkenfox: Das Arkenfox user.js nimmt momentan keine finanziellen Spenden an. Interessierte Entwickler melden sich am besten bei den Maintainern Thorin-Oakenpants und earthlng.
  • uBlock Origin: uBO von Raymond Hill, gorhill, hat aus Prinzip auch keine Option für finanzielle Spenden. Wer sonst zum Projekt beitragen kann, kann sich unter der Mailadresse in der Fußzeile von der uBlock Origin Webpage melden.