Actions

SecBrowser

From Whonix


About this SecBrowser Page
Support Status stable
Difficulty medium
Maintainer 0brand
Support Support

Introduction[edit]

SecBrowser is a security-focused browser that provides better protection from exploits, thereby reducing the risk of infection from malicious, arbitrary code. A built-in security slider provides enhanced usability, as website features which increase the attack surface (like JavaScript) can be easily disabled. Since many of the features that are commonly exploited in browsers are disabled by default, SecBrowser's attack surface is greatly reduced. Without any customization, SecBrowser’s default configuration offers better security than Firefox, Google Chrome or Microsoft Edge.[1] It also provides better protections from online tracking, fingerprinting and the linkability of activities across different websites.

SecBrowser is a derivative of the Tor Browser Bundle (which itself is a derivative of Mozilla Firefox) but without Tor. This means unlike Tor Browser, SecBrowser does not route traffic over the Tor network, which in common parlance is referred to as "clearnet" traffic. Even without the aid of the Tor network, SecBrowser still benefits from the numerous patches that Tor developers have merged into the code base. Even with developer skills, these enhancements would be arduous and time-consuming to duplicate in other browsers, with the outcome unlikely to match SecBrowser's many security benefits. While browser extensions can be installed to mitigate specific attack vectors, this ad hoc approach is insufficient. SecBrowser leverages the experience and knowledge of skilled Tor Project developers, and the battle-tested Tor Browser.

Security Enhancements[edit]

Table: SecBrowser Security and Privacy Benefits

Feature Description
Default Tor Browser Add-ons
  • HTTPS Everywhere: This browser extension encrypts communications with many major websites, making your browsing more secure.[2]
  • NoScript: NoScript can provide significant protection with the correct configuration.[3] NoScript blocks active (executable) web content and protects against cross-site scripting (XSS). "The add-on also offers specific countermeasures against security exploits".
DNS and Proxy Configuration Obedience Proxy obedience is achieved through custom patches, Firefox proxy settings, and build flags. Plugins which can bypass proxy setting are disabled.[4]
Reproducible Builds Build security is achieved through a reproducible build process that enables anyone to produce byte-for-byte identical binaries to the ones the Tor Project releases.[1] [5]
Security Slider Enables improved security by disabling certain web features that can be used as attack vectors.[6] [4]
WebRTC Disabled by Default WebRTC can compromise the security of VPN tunnels, by exposing the external (real) IP address of a user.[7][8]

Install SecBrowser[edit]

Info Note: These instructions are only for Qubes' Debian VMs running buster or later versions!

SecBrowser can be installed using tb-updater which is a package developed and maintained by Whonix developers. When run, tb-updater seamlessly automates the download and verification of SecBrowser (from The Tor Project's website). One of the many benefits of tb-updater is the ability to disable Tor is prebuilt into the software. This improves usability and is convenient since a security-focused clearnet browser (SecBrowser), is readily available. To start SecBrowser users can choose between the start menu, command line or create a desktop starter.[9] Unlike other manual methods of disabling Tor, this greatly simplifies the procedure and lessens the chance of a configuration error.

Install tb-updater and tb-starter[edit]

The first step to install tb-updater is to download the Whonix signing key using APT package manager. However, as outlined in this Qubes issue, downloading GPG keys with APT will fail in TemplateVMs. To work around this issue the signing key can be downloaded in an AppVM and copied over to the Debian TemplateVM in a text file. Then tb-updater can be downloaded and verified in the TemplateVM.

1. Download the Whonix signing key.

In the AppVM, run.

sudo apt-key --keyring /etc/apt/trusted.gpg.d/whonix.gpg adv --keyserver hkp://ipv4.pool.sks-keyservers.net:80 --recv-keys 916B8D99C38EAF5E8ADC7A2A8D66066A2EEACCDA

2. Display the key's fingerprint.

In the AppVM, run.

sudo apt-key adv --fingerprint 916B8D99C38EAF5E8ADC7A2A8D66066A2EEACCDA

3. Compare the fingerprint displayed in the terminal to the one listed here.

4. Copy the Whonix signing key to a new text file named whonix.key.

In the AppVM, run.

sudo apt-key export 916B8D99C38EAF5E8ADC7A2A8D66066A2EEACCDA > /tmp/whonix.key

If the following error is encountered it can safely be ignored.

Warning: apt-key output should not be parsed (stdout is not a terminal)
gpg: WARNING: nothing exported

5. Copy the whonix.key text file to the Debian TemplateVM.

qvm-copy /tmp/whonix.key <templatevm_name>

If the following error appears, it can be safely ignored (hit "OK" when prompted).

qfile-agent: Fatal error: stat TemplateVM (error type: No such file or directory)

6. In the Debian TemplateVM, import the Whonix signing key.

Change to the Qubes Incoming directory.

cd ~/QubesIncoming/appvm_name

Next, import the Whonix signing key.

gpg --import whonix.key

7. In the Debian TemplateVM, add the Whonix APT repository to the sources.list

echo "deb https://deb.whonix.org buster main contrib non-free" | sudo tee /etc/apt/sources.list.d/whonix.list

8. In the Debian TemplateVM, update the packages lists.

sudo apt-get update

9. Install both tb-updater and tb-starter.

sudo apt-get install tb-updater tb-starter

Download SecBrowser[edit]

SecBrowser can be installed simply by running download-secbrowser in the Debian TemplateVM. Since running applications in a TemplateVM is strongly recommended against, the process will exit after SecBrowser is extracted and installed.

In the Debian TemplateVM, run.

download-secbrowser

Power off the TemplateVM after installation so these changes can propagate to newly started TemplateBasedVMs.

Start SecBrowser[edit]

To launch SecBrowser, run this command in a dom0 terminal.

qvm-run <appvm_name> secbrowser

SecBrowser no longer opens with a red background and a message stating "Something Went Wrong!" Tor is not working in this browser. [10] This warning was disabled by toggling the user preference extensions.torbutton.test_enabled to false. [11]

Settings[edit]

TemplateVM vs AppVM[edit]

Note: If users edit the TemplateVM to modify SecBrowser behavior, all AppVMs created thereafter will inherit those changes. However, AppVMs created prior to the aforementioned edits will not benefit from any changes to the SecBrowser configuration file in the TemplateVM.

While SecBrowser has numerous security enhancements they can come at a cost of decreased usability. Since it is also highly configurable, security settings and behavior can be customized according to personal requirements.

Security Slider[edit]

SecBrowser has a “Security Slider” in the shield menu. This can increase security by disabling certain web features that are possible attack vectors. By default, the Security Slider is set to “Standard” which is the lowest security level. Increasing SecBrowser’s security level will prevent some web pages from functioning properly, so security needs must be weighed against the degree of usability that is required.

Private Browsing Mode[edit]

In the default configuration Tor Browser has private browsing mode enabled. This setting prevents browsing and download history as well as cookies from remaining persistent across SecBrowser restarts. However, tb-updater includes a custom user_pref that disables private browsing mode when SecBrowser is used.

When private browsing mode is disabled SecBrowser's built-in "long-term linkability" protections are deactivated. This means users are vulnerable to attacks which can link activities between earlier and later browsing sessions. If privacy is paramount users can enable private browsing mode by commenting out the corresponding user preference.

1. In the AppVM, open the user.js configuration file in an editor.

gedit ~/.secbrowser/secbrowser/Browser/TorBrowser/Data/Browser/profile.default/user.js

2. Next, comment out "//" user_pref("browser.privatebrowsing.autostart", false);.

Check the text block is identical to the one below.

// Normalize SecBrowser behavior
user_pref("extensions.torbutton.noscript_persist", true);
//user_pref("browser.privatebrowsing.autostart", false);

If you prefer to keep private browsing mode disabled, it may be advantageous to install one or more anti-tracking browser extensions. The extensions Disconnect, Privacy Badger and uBlock Origin are all open-source and are generally recommended. Research which one(s) may be most suitable in the circumstances; their use cases are different.

Persistent NoScript Settings[edit]

tb-updater includes a user_pref that allows custom NoScript settings to persist across browser sessions. This is also a security vs usability trade-off.[12] If the SecBrowser “Security Slider” setting is changed afterwards, all NoScript preferences are overridden and all custom, per-site settings are lost. This holds true regardless of whether the security setting was increased or decreased.

If the persistent NoScript setting is undesirable, this can easily be disabled by commenting out the corresponding user_pref.

1. In the AppVM, open the user.js configuration file in an editor.

gedit ~/.secbrowser/secbrowser/Browser/TorBrowser/Data/Browser/profile.default/user.js

2. Next, comment out "//" user_pref("extensions.torbutton.noscript_persist", true);

Check the text block is identical to the one below.

// Normalize SecBrowser behavior
//user_pref("extensions.torbutton.noscript_persist", true);
user_pref("browser.privatebrowsing.autostart", false);

Remember Logins and Passwords for Sites[edit]

To increase usability, by default SecBrowser does save site login information such as user names or passwords. To implement this, signon.rememberSignons is set to true in which allows this information to be saved across browser sessions.

If you prefer to disable this feature open user.js in an editor and comment out the corresponding user_pref.

1. In the AppVM, open the user.js configuration file in an editor.

gedit ~/.secbrowser/secbrowser/Browser/TorBrowser/Data/Browser/profile.default/user.js

2. Next, comment out "//" user_pref("signon.rememberSignons", true);

Check the text block is identical to the one below.

// Save passwords.
//user_pref("signon.rememberSignons", true);

Download Alpha Versions[edit]

1. Create a /etc/secbrowser.d folder.

sudo mkdir /etc/secbrowser.d

2. Open /etc/secbrowser.d/50_user.conf in an editor with root rights.

sudo gedit /etc/secbrowser.d/50_user.conf

3. Add the following setting.

tbb_download_alpha_version=true

4. Save the file.

The procedure is complete.

New Qubes TemplateBasedVMs: Latest Tor Browser Version[edit]

It is possible to have a copy of the latest Tor Browser version made available to all freshly created AppVMs and DispVMs based upon the TemplateVM. Run the following command in the TemplateVM. [13]

sudo touch /etc/secbrowser-qubes

This setting utilizes the same mechanism used by Whonix to download Tor Browser in the Whonix-Workstation TemplateVM. See also: tb-updater in Qubes TemplateVM. When the tb-updater package is updated, download-secbrowser runs automatically.

If tb-updater has not been updated yet, Qubes users can run the following command in Qubes TemplateVM.

download-secbrowser

It is still possible to run download-secbrowser or Tor Browser Internal Updater in TemplateBasedVMs.

FAQ[edit]

Whonix developers focus their efforts on advanced anonymity with Tor being a core component. Why develop a package that disables Tor?

Package tb-upater was developed with design goals focused on securely downloading and verifying Tor Browser. However, requirements for a new operating system under development -- a security focused OS based on Hardened Debian -- called for a security hardened clearnet browser. SecBrowser (Tor Browser without Tor) met those requirements. Hence, the secbrowser wrapper that disables Tor was integrated into tb-updater and tb-starter.


What is Clearnet?

This term has two meanings:

  1. Connecting to the regular Internet without the use of Tor or other anonymity networks; and/or
  2. Connecting to regular servers which are not onion services, irrespective of whether Tor is used or not.

How does SecBrowser disable Tor?

SecBrowser supports custom user preferences "user_pref" which can be used to change browser configuration and behavior. In tb-updater the user preferences that disable Tor are located in /usr/share/tb-updater/tb_without_tor_settings.js. When SecBrowser starts this file is copied over to the corresponding SecBrowser profile where the custom user_pref(s) are parsed.[14]

Tor is disabled by setting the following three preferences to false.

user_pref("extensions.torbutton.startup", false);
user_pref("extensions.torlauncher.start_tor", false);
user_pref("network.proxy.socks_remote_dns", false);

SecBrowser also sets various environment variables when started by its /usr/bin/secbrowser wrapper.


Can I use SecBrowser in a Whonix-Workstation VM (anon-whonix)?

VMs behind a sys-whonix are always routed through Tor, meaning traffic would still be torified. However, this is strongly recommended against because using SecBrowser will break Tor Browser's per tab stream isolation.


Can I use SecBrowser in a VM torified by something other than Whonix to avoid Tor over Tor?

This is strongly recommended against because using SecBrowser will break Tor Browser's per tab stream isolation. A complete implementation compatible with Tor Browser's per tab stream isolation would be much better.


Does the SecBrowser option alter any other browser behavior?

No, the only changes to SecBrowser are to the preferences previously shown.


Can I add my own custom preferences to change SecBrowser behavior?

Yes, but this could degrade security and privacy. See: Normalizing SecBrowser behavior.


I have an idea to improve SecBrowser's security in Qubes. Can I submit a patch?

Many security enhancements, such as (in theory) adding compile time hardening options, need to be submitted upstream to The Tor Project. Patches to tb-updater, tb-starter or this wiki entry are always welcome!

Disclaimer[edit]

SecBrowser is produced independently from the Tor anonymity software and carries no guarantee from The Tor Project about quality, suitability or anything else.

Footnotes[edit]


No comments for now due to spam. Use Whonix forums instead.


Random News:

Check out the Whonix News Blog.


https | (forcing) onion

Follow: Twitter | Facebook | gab.ai | Stay Tuned | Whonix News

Share: Twitter | Facebook

This is a wiki. Want to improve this page? Help is welcome and volunteer contributions are happily considered! Read, understand and agree to Conditions for Contributions to Whonix ™, then Edit! Edits are held for moderation.

Copyright (C) 2012 - 2019 ENCRYPTED SUPPORT LP. Whonix ™ is a trademark. Whonix ™ is a licensee of the Open Invention Network. Unless otherwise noted, the content of this page is copyrighted and licensed under the same Freedom Software license as Whonix ™ itself. (Why?)

Whonix ™ is a derivative of and not affiliated with Debian. Debian is a registered trademark owned by Software in the Public Interest, Inc.

Whonix ™ is produced independently from the Tor® anonymity software and carries no guarantee from The Tor Project about quality, suitability or anything else.

By using our website, you acknowledge that you have read, understood and agreed to our Privacy Policy, Cookie Policy, Terms of Service, and E-Sign Consent. Whonix ™ is provided by ENCRYPTED SUPPORT LP. See Imprint.