Firefox is the only browser that received top marks in a recent audit carried out by Germany’s cyber-security agency — the German Federal Office for Information Security (or the Bundesamt für Sicherheit in der Informationstechnik — BSI).
The BSI tested Mozilla Firefox 68 (ESR), Google Chrome 76, Microsoft Internet Explorer 11, and Microsoft Edge 44. The tests did not include other browsers like Safari, Brave, Opera, or Vivaldi.
The BSI normally uses this guide to advise government agencies and companies from the private sector on what browsers are safe to use.
The German cyber-security agency published a first secure browser guideline in 2017, but reviewed and updated the specification over the summer.
The BSI updated its guide to account for improved security measures added to modern browsers, such as HSTS, SRI, CSP 2.0, telemetry handling, and improved certificate handling mechanisms.
According to the BSI’s new guide, to be considered “secure,” a modern browser must satisfy these minimum requirements:
– Must support TLS
– Must have a list of trusted certificates- Must support extended validation (EV) certificates
– Must verify loaded certificates against a Certification Revocation List (CRL) or an Online Certificate Status Protocol (OCSP)
– The browser must use icons or color highlights to show when communications to a remote server is encrypted or in plaintext- Connections to remote websites running on expired certificates must be allowed only after specific user approval
– Must support HTTP Strict Transport Security (HSTS) (RFC 6797)
– Must support Same Origin Policy (SOP)- Must support Content Security Policy (CSP) 2.0
– Must support Sub-resource integrity (SRI)
– Must support automatic updates- Must support a separate update mechanism for crucial browser components and extensions
– Browser updates must be signed and verifiable
– Browser’s password manager must store passwords in an encrypted form- Access to the browser’s built-in password vault must be allowed only after the user has entered a master password
– User must be able to delete passwords from the browser’s password manager
– Users must be able to block or delete cookie files- Users must be able to block or delete autocomplete history
– Users must be able to block or delete browsing history
– Organization admins must be able to configure or block browsers from sending telemetry/usage data- Browsers must support a mechanism to check for harmful content/URLs
– Browsers should let organizations run locally-stored URL blacklists
– Must allow admins to disable cloud-based profile synchronization features
– Must run after its initialization with minimal rights in the operating system- Must support sandboxing. All browser components must be isolated from each other and the operating system. Communication between the isolated components may only take place via defined interfaces. Direct access to resources of isolated components must not be possible.
– Web pages need to be isolated from each other, ideally in the form of stand-alone processes. Thread-level isolation is also allowed.
– Browsers must be coded using programming languages that support stack and heap memory protections- Browser vendor must provide security updates no longer than 21 days after the public disclosure of a security flaw. If the primary browser vendor fails to provide a security update, organizations must move to a new browser.
– Browsers must use OS memory protections like Address Space Layout Randomization (ASLR) or Data Execution Prevention (DEP).- Organization administrators must be able to regulate or block the installation of unsanctioned add-ons/extensions.
According to the BSI, Firefox is the only browser to support all the above requirements. Areas where other browser failed include:
– Lack of support for a master password mechanism (Chrome, IE, Edge)
– No built-in update mechanism (IE)
– No option to block telemetry collection (Chrome, IE, Edge)
– No SOP (Same Origin Policy) support (IE)
– No CSP (Content Security Policy) support (IE)
– No SRI (Subresource Integrity) support (IE)
– No support for browser profiles, different configurations (IE, Edge)
– Lack of organizational transparency (Chrome, IE, Edge)