Mainstream Firefox with a better privacy and security

intika 45a4d3ce64 Update README.md 1 month ago
dark-theme 16b89c96ab Librefox v2.1 Release 3 months ago
debugging 54b4b60340 Standardise line endings 1 month ago
extensions 74507e9f7f Librefox v2 Beta Pre Release 3 months ago
ghacks-diff 54b4b60340 Standardise line endings 1 month ago
librefox e892b0ebfd Merge pull request #112 from shreyasminocha/new-name 1 month ago
omni-patching 54b4b60340 Standardise line endings 1 month ago
packaging 54b4b60340 Standardise line endings 1 month ago
Changelog.txt 54b4b60340 Standardise line endings 1 month ago
License.txt 54b4b60340 Standardise line endings 1 month ago
README.md 45a4d3ce64 Update README.md 1 month ago
capture.png 6657f94b69 Add capture image 3 months ago

README.md


Librefox: Browse With Freedom Tweet

This project aims at enforcing privacy and security of Firefox without forking the project.

Librefox uses more than 500 privacy/security/performance settings, patches, Librefox-Addons (optional) and a cleaned bundle of Firefox (updater, crashreporter and Firefox's integrated addons that don't respect privacy are removed).

Librefox is NOT associated with Mozilla or its products.

Features

  • Updated browser: because this project is not a fork, it is kept updated with the latest Firefox version.
  • Extensions firewall: limit internet access for extensions (firewall-test-feature)
  • IJWY (I Just Want You To Shut Up): embedded server links and other calling home functions are removed (zero unauthorized connection by default).
  • User settings updates: gHacks/pyllyukko base is kept up to date.
  • Settings protection: important settings are enforced/locked within mozilla.cfg and policies.json, those settings cannot be changed by addons/updates/Firefox or unwanted/accidental manipulation; To change those settings you can easily do it by editing mozilla.cfg and policies.json.
  • Librefox-addons: set of optional Librefox extensions
  • Statistics disabled: telemetry and similar functions are disabled
  • Tested settings: settings are performance aware
  • ESR and Tor version (Librefox TBB Beta)
  • Tor Librefox-addons: adapted Librefox extensions for TBB
  • Multi-platform (Windows/Linux/Mac/and soon Android)
  • Dark theme (classic and advanced)
  • Recommended and code reviewed addons list
  • Community-Driven
  • And much more... ---

Index

> Librefox: Features ............................................................... 
> Librefox: Download ............................................................... 
> Librefox: Capture ................................................................ 
> Addons: Librefox Addons .......................................................... 
> Addons: Recommended Addons ....................................................... 
> Addons: Recommended Addons Settings .............................................. 
> Addons: Reviewing Addons Source Code ............................................. 
> Addons: Other Useful Addons Listing .............................................. 
> Wiki: Installation Instructions .................................................. 
> Wiki: Extensions Network Firewall ................................................ 
> Wiki: IJWY (I Just Want You To Shut Up) .......................................... 
> Wiki: Edit Locked Settings ....................................................... 
> Wiki: Settings Index ............................................................. 
> Wiki: Cookies Settings ........................................................... 
> Wiki: Tracking Protection ........................................................ 
> Wiki: Comparing Changes And Updates .............................................. 
> Wiki: Documentation .............................................................. 
> Wiki: Librefox Dark Theme ........................................................ 
> Wiki: Tuning Librefox ............................................................ 
> Wiki: Librefox ESR ............................................................... 
> Wiki: Tor Compatibility .......................................................... 
> Wiki: DRM Compatibility .......................................................... 
> Wiki: Building And Packaging ..................................................... 
> Browser Tests: Security/Fingerprint .............................................. 
> Browser Tests: Performance ....................................................... 
> Browser Tests: DNS/VPN/Proxy Leak ................................................ 
> Infos: Librefox Roadmap .......................................................... 
> Infos: Changelog ................................................................. 
> Infos: About ..................................................................... 

Download

Important notice: this is a temporary version, awaiting a correct build of the project, Librefox is distributed as a configuration files for Firefox. To apply Librefox configuration to Firefox extract the compressed file to Firefox's installation directory (detailed installation instructions). Future Librefox version will have its own trademark and therefore solve this issue.

Linux

Windows

Mac

Capture

Librefox Addons

Librefox addons are not bundled and need to be installed manually

Recommended Addons

Recommended addons are not bundled and need to be installed manually

Recommended Addons Settings

uBlock Origin: Additional filters are availables here: https://filterlists.com/ (don't surcharge it to avoid performance loss)

Browser Plugs Privacy Firewall: Keep settings light to make privacy.resistFingerprinting efficient because too much customization will lead to uniqueness and therefore easy fingerprinting.

  - Privacy / Fingerprint / Fake values for getClientRects
  - Privacy / Fingerprint / Randomize Canvas Fingerprint
  - Privacy / Fingerprint / 100% Randomize ALL Fingerprint Hash
  - Firewall / Experimental / Block SVG getBBox and getComputedTextLength
  - Privacy / Font / Randomize
  - Privacy / Font / Enable protection for font and glyph fingerprinting

Reviewing Extensions Code

Recommended extensions code have been reviewed for potential unwanted behaviour... reviewed version are available under extensions directory.

Extensions Firewall

Extensions Firewall - Description

This is a test experiment feature and it is disabled by default !!! A new section Extensions Manager is added to manage addons globally (and addons networking in the subsection Extensions Firewalling). Firewalling the network for addons is doable, but it requires a considerable amount of additional work in Librefox to make it usable through a button or in a per addon basis (this may or may not be added in a future version, it also could be abandoned as it is a test feature). Currently you can block a list of domains or block the whole network for all the extensions.

Extensions Firewall - The Settings

Available native network restriction settings for addons:

  • Restricted domains list: extensions.webextensions.restrictedDomains this is a list of restricted domains that will be used to block some hosts for all the extensions, Firefox uses this setting to block extensions from accessing mozilla's domains/sites, by default in Librefox this setting is set to allow extensions to access all the web (You can edit that list to match your needs or to block a specific domain, note that the domain name has to be 'exact' (for instance facebook.com will only block facebook.com not mobile.facebook.com)
  • Content security policy: extensions.webextensions.base-content-security-policy and extensions.webextensions.default-content-security-policy the later settings can be redefined/changed within an extension so it's not efficient for a firewall purpose. CSP settings are used in Firefox as an added layer of security that helps to detect and mitigate certain types of attacks, including Cross Site Scripting (XSS) and data injection attacks. These attacks are used for everything from data theft to site defacement to distribution of malware; In short: CSP settings block and allow certain domains under certain circumstances and thus could be used to firewall the extensions (CSP Documentations, its sources code and implementation)

Extensions Firewall - Blocking A Domain

Edit the restricted domains setting as follow under the about:config page:

  • Restricted Domains Setting: extensions.webextensions.restrictedDomains Value: ExactDomains1,ExactDomains2,ExactDomains3 etc.

Extensions Firewall - Blocking The Network

To enable the feature and block the network for all the extensions open mozilla.cfg search for Enable-Firewall-Feature-In-The-Next-Line and remove the // in the next line.

Note that this will block the network access for all the extensions and a lot of extensions needs to be connected in order to work. In the current version of Librefox you can block the network for all the extensions or allow it for all of them, a future version may provide additional features like "per addon" setting (By default Librefox allows networking for extensions).

Extensions Firewall - More Infos

Check debug-notes.log for additional info about future version and researches about the subject. Also check CSP Documentations, its sources code and implementation.

IJWY (I Just Want You To Shut Up)

This is a set of settings that aim to remove all the server links embedded in Firefox and other calling home functions in the purpose of blocking un-needed connections. The objective is zero unauthorized connection (ping/telemetry/Mozilla/Google...).

Changelog

Available in the releases page

Installation Instructions

Notice: in the current state of the project Librefox is a set of configuration files for Firefox (awaiting a correct build of the project), therefore if you already have a Firefox profile, that profile will be used and temporary files will be removed (cookies and current session), make sure to backup your current Firefox's profile before using Librefox. Using Librefox simultaneously with Firefox is possilbe through a different profile you can follow this wiki to do so. Future Librefox version will be independent from Firefox and therefore will solve this issue.

Windows

  • Download and install the last version of Firefox x32 release or x64 release
  • Download Librefox zip file and extract it
  • Locate Firefox's installation directory (where the firefox.exe is located) C:\Program Files\Mozilla Firefox\ or C:\Program Files (x86)\Mozilla Firefox\ or Tor-Install-Directory\Browser\
  • Copy the extracted Librefox files to the install directory

Linux

  • Download and extract the last version of Firefox x32 release or x64 release
  • Download Librefox zip file and extract it
  • Copy the extracted Librefox files to the newly downloaded firefox directory
  • You can use directly Librefox by running 'firefox/firefox'
  • You can as well create a shortcut to 'firefox/firefox' to open Librefox easily.

Mac

  • Download and install the last version of Firefox
  • Download Librefox zip file and extract it
  • Locate Firefox's installation directory (Applications/Firefox.app/Contents/Resources/ or Applications/Tor Browser.app/Contents/Resources/)
  • Copy the extracted files to the install directory

Uninstall

  • To uninstall, just remove the files you added to your Firefox's install directory (to know what are the files to remove just check the downloaded Librefox zip file) then restart Firefox.

Edit Locked Settings

Just edit mozilla.cfg, save and restart Librefox.

Browser Tests - Security/Fingerprint

Firefox 60 and privacy.resistFingerprinting are relatively new, please give it some time to be more widely used and thus less finger-printable; If you are using a different site to analyze your browser make sure to read and understand what the test is about.

Browser Tests - Performances

Performance tests can be done here LVP Octane, it needs to be launched alone with other applications closed and with no other activity but the benchmark, also it's recommended to launch it many times and then calculate the average.

Browser Tests - DNS/VPN/Proxy Leak

About

License: Mozilla Public License 2.0

Inspired from: ungoogled-chromium

Author: Intika (from Liege/Belgium), contact: intika@librefox.org

Donation: Paypal - support@librefox.org if you like it you can offer me a coffee :)

Based on: gHacks-user.js, pyllyukko-user.js and privaconf big thanks to everyone.

Acknowledgement, special thanks to:

Librefox Roadmap

Objectives for future versions of Librefox (this may change)

  • Develop an all-in-one Librefox addon to rule them all ? (Normal & Tor Version… this would simplify Librefox)
  • Develop an easy to use firewall system for extensions (button/hosts/allow/deny/per-addon)
  • Develop an advanced settings page
  • Update checker extension (feature in the full extension ?)
  • Advertisement for the project to reach more users ?

Todo for future versions of Librefox (this may change)

Settings Index

// ==============================
// Index mozilla.cfg .......... :
// ==============================
//
// ---------------------------------------------------------------------
// Section: User settings                    // Bench Diff: +0    / 5000
// Section: Defaulting Settings              // Bench Diff: +0    / 5000
// ------------------------------------------
// Section: Controversial                    // Bench Diff: +0    / 5000
// Section: Firefox Fingerprint              // Bench Diff: +0    / 5000
// Section: Locale/Time                      // Bench Diff: +0    / 5000
// Section: Ghacks-user Selection            // Bench Diff: +100  / 5000
// Section: Extensions Manager               // Bench Diff: +0    / 5000
// Section: IJWY To Shut Up                  // Bench Diff: +0    / 5000
// Section: Microsoft Windows                // Bench Diff: +0    / 5000
// Section: Firefox ESR60.x                  // Bench Diff: +0    / 5000
// ------------------------------------------
// Section: Security 1/3                     // Bench Diff: +0    / 5000
// Section: Security 2/3                     // Bench Diff: +0    / 5000
// Section: Security 3/3 (Cipher)            // Bench Diff: +0    / 5000
// ------------------------------------------
// Section: Performance 1/5                  // Bench Diff: +650  / 5000
// Section: Performance 2/5                  // Bench Diff: -800  / 5000
// Section: Performance 3/5                  // Bench Diff: -1720 / 5000
// Section: Performance 4/5                  // Bench Diff: -200  / 5000
// Section: Performance 5/5                  // Bench Diff: -50   / 5000
// ------------------------------------------
// Section: General Settings 1/3             // Bench Diff: +100  / 5000
// Section: General Settings 2/3             // Bench Diff: +0    / 5000
// Section: General Settings 3/3             // Bench Diff: -40   / 5000
// ------------------------------------------
// Section: Disabled - ON/OFF                // Bench Diff: +0    / 5000
// Section: Disabled - Deprecated Active     // Bench Diff: +0    / 5000
// Section: Disabled - Deprecated Inactive   // Bench Diff: +0    / 5000
// ---------------------------------------------------------------------

// ==============================
// Index local-settings.js .... :
// ==============================
//
// ---------------------------------------------------------------------
// Section: General Settings                 // Bench Diff: ++    / 5000
// ---------------------------------------------------------------------

Cookies Settings

Using different web services without cookies is impossible and cookie settings in a browser are very important when it come to privacy, in Librefox the settings are locked to avoid unwanted changes in such an important setting, but they can be easily changed in mozilla.cfg under User Settings: Cookies settings.

Tracking Protection

Firefox now integrates a tracking protection feature (based on disconnect.me) it's a small content blocking list, the listing can not be edited, this feature is disabled in Librefox. It's recommended to use uBlock Origin instead. This feature is disabled:

  • Until it evolves and integrates at least list editing.
  • Because double filtering (this + ublock) is not suitable for performance.

You can however easily enable this feature in mozilla.cfg under User Settings: Track Protection (just comment active lines with // or remove the entire section).

Comparing Changes And Updates

If you want to compare changes over updates or if you already have a user.js/mozilla.cfg/policies.json. consider using Compare-UserJS, it's an amazing tool to compare user.js files and output the diffs in detailed breakdown, developed by gHack's very own resident cat, claustromaniac :cat:

Usage: If not on windows install PowerShell then (for example) pwsh Compare-UserJS.ps1 mozilla.cfg user.js (Warning that PowerShell connects to Microsoft sometimes).

Documentation

Mozilla.cfg: Locking and defaulting Librefox settings for security, privacy and performance.

Policies.json: Policies for enterprise environments (the settings available with policies.json are limited right now because this is a new feature of Firefox).

Bench diff: Impact on the performance of Librefox, it can be a gain or a loss of performance +100/5000 stand for 2% gained performance and -1500/5000 stand for -30% performance loss.

lockPref: Locked preference can not be changed by extensions or updates, they can only be changed in mozilla.cfg.

Section: Description of the settings section separated by ">>>".

Defaulting VS Enforcing: Defaulted settings can be changed by the user or an extension if permitted within the browser while enforced settings are locked and can not be changed within the browser, enforced settings can be changed in mozilla.cfg.

About:config: http://kb.mozillazine.org/About:config_entries.

Librefox Dark Theme

Librefox provides a classic dark theme extension (Librefox Dark Theme) but also a purified version of ShadowFox available under dark-theme directory to install it just copy the directory chrome to your Librefox profile directory and then restart Librefox, this will expand the dark theme to internal pages like settings pages.

Tuning Librefox

Restart Button

One simple solution is to bookmark about:restartrequired or about:profiles ... when restart is needed open that page and click "normal restart". You can even go further and add the bookmarks links to your icons bar and rename the link to an empty text (you will then have a direct icon to about:profiles and a 2 clicks restart).

capture ...

Alternative Dark Theme

Linux Fix Text Colors

On Linux when using a dark desktop theme Librefox could display white text over white background or black text on black input on some sites or addons, this is fixed in Librefox with lockPref("ui.use_standins_for_native_colors", true);.

If ui.use_standins_for_native_colors is not enough to fix everything you can fix this issue with an other additional solution by using the following values in about:config (you need to have Adwaita theme installed) more details (Note that this is not needed with the default Librefox settings as it is already fixed)

widget.content.allow-gtk-dark-theme;false
widget.chrome.allow-gtk-dark-theme;false
widget.content.gtk-theme-override;Adwaita:light

Other Addons

Other privacy addons

Other useful addons

Librefox Addons For ESR And Tor

Tor Compatibility

We do not recommend connecting over Tor on Librefox classic version (because of the missing Librefox-Tor-Addons, they are only included in the tor version for obvious reasons), use instead Librefox-Tor version if your threat model calls for it, or for accessing hidden services (Thus said tor settings have been enabled since v2 on all Librefox versions for user toriffying/proxifying their entire connection).

Currently Librefox-TBB is in beta test, Tor compatibility may change.

DRM Compatibility

Digital rights management (DRM) is enforced off by default (this is needed for Netflix and similar); you can enable it with the following instructions:

  • Open mozilla.cfg
  • Under the section Section: User Settings
  • Comment the active lines with // under the subsection User Settings: DRM/CDM - Main
  • Comment the active lines with // under the subsection User Settings: DRM/CDM - Widevine
  • Restart Firefox then open about:preferences and enable Play DRM... under general section
  • Firefox will download Widevine and enable it (under about:addons plugins section) you can force the download by clicking Check for updates under the tools button

Librefox ESR

For ESR users if you opt for Librefox HTTP Watcher you need to use this version Librefox HTTP Watcher ESR - Tor MoD

Building And Packaging

Linux

  • Build instruction will be updated soon

Windows

  • Build instruction will be updated soon

Mac

  • Build instruction will be updated soon