diff --git a/README.md b/README.md index 9bf1bb0..121aca4 100644 --- a/README.md +++ b/README.md @@ -36,6 +36,9 @@ IronFox is a fork of [Divested Computing Group](https://divested.dev/)'s [Mull Browser](https://divestos.org/pages/our_apps#mull), based on [Mozilla Firefox](https://www.mozilla.org/firefox/). **Our goal is to continue the legacy of Mull by providing a free and open source, privacy and security-oriented web browser for daily use.** +> [!IMPORTANT] +>**⚠️ All users are HIGHLY recommended to take a look at our [documentation](./docs/README.md), ESPECIALLY the [Limitations](./docs/Limitations.md) and [Frequently Asked Questions](./docs/FAQ.md) pages!** + > While IronFox's home is [GitLab](https://gitlab.com/ironfox-oss/IronFox), this repo is also mirrored to both [Codeberg](https://codeberg.org/ironfox-oss/IronFox) & [GitHub](https://github.com/ironfox-oss/IronFox). ### Want to join the IronFox Community? @@ -78,49 +81,6 @@ https://gitlab.com/ironfox-oss/fdroid/-/raw/main/fdroid/repo C5:E2:91:B5:A5:71:F9:C8:CD:9A:97:99:C2:C9:4E:02:EC:97:03:94:88:93:F2:CA:75:6D:67:B9:42:04:F9:04 ``` -## Known Issues - -Please see the list of known issues and workarounds before opening an issue! - -
-Issues inherited from Mull that still apply to IronFox - (contents adapted from the DivestOS website) - -- **GrapheneOS** users may encounter a crash with the error `IronFox tried to perform DCL via memory`. Unfortunately, Firefox is incompatible with this hardening feature, so it's not just limited to IronFox. You can fix this issue by navigating to IronFox's app info, scrolling down to the `Exploit protection` section, and setting `Dynamic code loading via memory` to `Allowed`. You can then navigate to `Dynamic code loading via storage`, and set that to `Restricted` - as this hardening feature **is** compatible with Firefox. -- uBlock Origin is the only recommended and supported content blocker (included by default). -- ~~Some fonts, particularly ones used for displaying Korean text, [may not display correctly](https://bugzilla.mozilla.org/show_bug.cgi?id=1881993) due the font restrictions by resist fingerprinting. Please do not disable RFP. This should be hopefully fixed in future versions such as v126.~~ -- Dark Reader is known to be incompatible with IronFox's changes and will cause significant breakage/slowdowns. -- Dark mode for websites is disabled due to resist fingerprinting. Please do not disable RFP. -- ~~Refresh rate is capped to 60hz due to resist fingerprinting. Please do not disable RFP.~~ -- Multitouch gestures will not work due to resist fingerprinting. Please do not disable RFP. -- If audio/video content fails to play in private tabs navigate to `about:config` and change `browser.privatebrowsing.forceMediaMemoryCache` to false, this is however a privacy risk. -- IronFox disables the JavaScript JIT to increase security at the cost of slowing down webapps, complex websites, and the PDF viewer. Navigate to `about:config` and change `javascript.options.ion` and `javascript.options.baselinejit` to `true` to restore their performance, though this is not recommended. -- IronFox has strict certificate revocation checks. The CA revocation servers are occasionally down/blocked/inaccessible, so you may see a "Secure Connection Failed" error from time to time. Navigate to `about:config` and change `security.OCSP.require` to `false`, this is however a security and privacy risk. -- IronFox requires safe renegotiation for connections. Certain websites do not support this and will result in a "Secure Connection Failed" error. **Please report these errors to the impacted websites.** You can navigate to `about:config` and set `security.ssl.require_safe_negotiation` to `false` to disable the requirement for safe renegotiations, this is however a security and privacy risk. -- IronFox has strict certificate pinning. If you are using a proxy or VPN that does HTTPS manipulation, you may encounter a "Secure Connection Failed" error. Navigate to `about:config` and change `security.cert_pinning.enforcement_level` from `2` to `1` to disable strict certificate pinning; this is however a security and privacy risk. -- IronFox does not trust user-added CA certificates, you can optionally enable them at your own extreme risk: Settings > About IronFox > Tap IronFox logo until debug settings are enabled > back a menu > Secret Settings > Use third party CA certificates > Enabled, this is however a security and privacy risk. -- IronFox has stripped referrers. This often breaks loading of images on websites with hotlink protection. Navigate to `about:config` and change `network.http.referer.XOriginPolicy` from `2` to `1` _(or `0` if you're still having issues)_, this is however a privacy risk. -- IronFox has visited link highlighting disabled by default. Navigate to `about:config` and change `layout.css.visited_links_enabled` to `true` if needed, this is however a privacy risk. -- IronFox has WebAssembly disabled by default. This is often used for web apps. Navigate to `about:config` and change `javascript.options.wasm` to `true` if needed, this is however a security risk. -- IronFox has WebGL disabled by default. This is often used for games and maps. Navigate to `about:config` and change `webgl.disabled` to `false` if needed, this is however a privacy risk. -- IronFox forcibly excludes private IP addresses from being leaked over WebRTC. This may cause issues with audio/video calls. Navigate to `about:config` and change `media.peerconnection.ice.no_host` to `false` if needed, this is however a privacy risk. If you still have issues, you should also set `media.peerconnection.ice.default_address_only` to `false`. -- If you want to access Onions using IronFox and Orbot: navigate to `about:config` and change `network.dns.blockDotOnion` to `false`. Tor Browser for Android however should be preferred. -- If you have issues playing some videos: navigate to `about:config` and change `media.android-media-codec.preferred` from `true` to `false`. This may reduce battery life. -- When adding a custom search engine that contains a \`:\` you must replace it with \`%3A\` to workaround an upstream substitution bug. -- Upstream issues: [background timers](https://github.com/mozilla-mobile/fenix/issues/26220), [bookmark import/export](https://bugzilla.mozilla.org/show_bug.cgi?id=1806482), [disable images](https://bugzilla.mozilla.org/show_bug.cgi?id=1807116), [download location](https://bugzilla.mozilla.org/show_bug.cgi?id=1812815), [duplicate tab](https://bugzilla.mozilla.org/show_bug.cgi?id=1812931), [FIDO](https://gitlab.com/relan/fennecbuild/-/issues/34), [Fission](https://bugzilla.mozilla.org/show_bug.cgi?id=1610822), [isolatedProcess](https://bugzilla.mozilla.org/show_bug.cgi?id=1565196), [language issues](https://bugzilla.mozilla.org/show_bug.cgi?id=1765375), [open .html file](https://bugzilla.mozilla.org/show_bug.cgi?id=1809954), [RFP canvas exception](https://bugzilla.mozilla.org/show_bug.cgi?id=1801733), [Sync broken by RFP](https://bugzilla.mozilla.org/show_bug.cgi?id=1810741), [touch gestures](https://bugzilla.mozilla.org/show_bug.cgi?id=1800567) - -
- -
-Issues originating in IronFox - -_None yet._ :) - -
- -
- -You should also see [here](https://phoenix.celenity.dev/compat) for a list of websites with known issues due to hardening, and what you may need to do to fix them. This list is maintained by [Phoenix](https://phoenix.celenity.dev/) - so while it isn't specific to IronFox or Mull, many of these problems do still apply. - ## Building IronFox makes it easier (and faster) to build the project locally. diff --git a/docs/FAQ.md b/docs/FAQ.md new file mode 100644 index 0000000..674c774 --- /dev/null +++ b/docs/FAQ.md @@ -0,0 +1,182 @@ +# Frequently Asked Questions + +## How can I download IronFox? + +You can currently download IronFox from [Accrescent](https://accrescent.app/app/org.ironfoxoss.ironfox), directly from [our GitLab releases](https://gitlab.com/ironfox-oss/IronFox/-/releases), or from [our F-Droid repository](https://fdroid.ironfoxoss.org/fdroid/repo/index.html). + +## How *should* I download IronFox? + +If possible, we highly recommend downloading IronFox from [Accrescent](https://accrescent.app/app/org.ironfoxoss.ironfox). If you're unfamiliar, [Accrescent](https://accrescent.app/) is an up-and-coming free and open source app store for Android, with a focus on [privacy and security](https://accrescent.app/features). Due to Accrescent's strong privacy and security properties, it's the most secure way to download and install IronFox; As a result, it's what we recommend using if possible. + +For reference, Accrescent is also recommended by [GrapheneOS](https://grapheneos.org/), and supported by other privacy and security-focused projects, such as [Cake Wallet](https://cakewallet.com/), [Cryptomator](https://cryptomator.org/), [Molly](https://molly.im/), [IVPN](https://www.ivpn.net/en/), and [Organic Maps](https://organicmaps.app/). + +## Why isn't IronFox available on F-Droid? + +We currently do not support IronFox's inclusion in F-Droid's official repository, due to what we feel are significant privacy and security concerns. For more details, you can [read our issue where this was discussed here](https://gitlab.com/ironfox-oss/IronFox/-/issues/7). + +We'd also recommend checking out [this article from privacy and security researchers](https://privsec.dev/posts/android/f-droid-security-issues/), [this post from the developer of WireGuard](https://gitlab.com/fdroid/fdroiddata/-/issues/3110#note_1613430404), and [this thread from GrapheneOS](https://infosec.exchange/@GrapheneOS@grapheneos.social/113900951182535101). + +While we do provide our own [F-Droid repository](https://fdroid.ironfoxoss.org/fdroid/repo/index.html) for those who insist on using F-Droid, F-Droid's client isn't without its own privacy and security issues *(notably: [not properly notifying users of updates...](https://codeberg.org/celenity/Phoenix/issues/89#issuecomment-3145034))*, so other installation methods, such as [Accrescent](https://accrescent.app/app/org.ironfoxoss.ironfox), should be preferred if possible. + +For those who do insist on using F-Droid to install and update IronFox, we would recommend using [F-Droid Basic](https://f-droid.org/packages/org.fdroid.basic/) as your preferred client of choice, as it is more secure than the standard F-Droid client, due to its reduced feature-set. + +## Aren't Firefox-based browsers less secure than Chromium? + +**Yes**. While we do as much as possible to improve the situation, IronFox is unfortunately also impacted by some of Firefox's fundamental issues. For more details, please see [our `Limitations` page](./Limitations#security). + +Depending on your threat model, it may be preferable to use a Chromium-based browser, such as [Vanadium](https://grapheneos.org/features#vanadium) on GrapheneOS, or [Cromite](https://github.com/uazo/cromite). + +We're deeply disappointed by Mozilla's lack of focus in this area, and we hope to see them improve in the future. + +## So IronFox is **insecure**? Why should I use it then, what's the point? + +I want to make an important distinction that I feel is often forgotten: something that is *less* secure is **NOT** necessarily *insecure*. + +**Don't get me wrong**: As noted above, Firefox-based web browsers are objectively less secure than their Chromium counterparts. We are **not** trying to discredit Firefox's legitimate issues in this area. + +**However**, *especially due to [the hardening that IronFox provides](./Features)*, assuming that users keep the browser up to date and follow other good privacy and security practices, we believe that IronFox is secure *enough* for most users and threat models. + +While we do as much as we can to improve Firefox's security, we also feel that IronFox's primary strengths are in other areas. Notably, when compared to most Chromium browsers, IronFox offers users with stronger *privacy*, superior content blocking *([uBlock Origin](https://addons.mozilla.org/addon/ublock-origin/))*, more freedom, more customization, and more control *(ex. `about:config`)* over their browsing experience. IronFox also supports other important features missing from many of these browsers, such as extensions and end-to-end encrypted browser sync. + +Additionally, with the notable exception of [Cromite](https://github.com/uazo/cromite), Chromium browsers on Android include proprietary Google Play libraries. **Unlike these browsers, IronFox is fully free and open source**. Unlike Chromium browsers, IronFox also supports [Google Safe Browsing](https://support.mozilla.org/kb/how-does-phishing-and-malware-protection-work) without Google Play Services. Thanks to our support for [UnifiedPush](https://unifiedpush.org/), we also provide support for push notifications without Google Play Services. + +It should also be noted that Firefox-based web browsers, such as IronFox, help to promote browser engine diversity, and oppose [Google's browser engine monoculture/monopoly with Chromium](https://contrachrome.com/ContraChrome_en.pdf). + +Even from a *security* perspective, IronFox has certain features that a majority of Chromium browsers still lack, such as [JavaScript Just-in-time Compilation *(JIT)*](https://microsoftedge.github.io/edgevr/posts/Super-Duper-Secure-Mode/) being disabled by default. + +Ultimately, while Firefox-based web browsers *(including IronFox)* provide weaker security compared to their Chromium peers *(and this is indeed something important to consider and take into account)*, I wanted to highlight that IronFox brings lots of benefits to the table in *other* aspects, and that there are other important areas worth consideration. + +**At the end of the day, I'm not going to tell you that IronFox is the perfect browser, or even that you should use it at all**. Which browser you should use depends on your [threat model](https://www.privacyguides.org/en/basics/threat-modeling/), personal preference, and values. **Most importantly, the browser you should use is the one that works best for you**. If that browser turns out to be IronFox? Great, welcome aboard! If not? No problem. I hope you at least learned something. + +## Why is Google Safe Browsing supported and enabled by default? + +Please see [our `Safe Browsing` page here](./Safe-Browsing). + +## Why does IronFox crash on GrapheneOS? + +On **GrapheneOS**, if the `Dynamic code loading via memory` exploit mitigation is enabled, IronFox might crash on launch with an error, stating `IronFox tried to perform DCL via memory`. Unfortunately, Firefox-based web browsers are currently incompatible with this protection. + +If you encounter this issue, you can disable the `Dynamic code loading via memory` exploit mitigation for IronFox, by navigating to IronFox's `App info` *(You can get there by holding IronFox's app icon and selecting `App info`, *or* by navigating to `Settings` -> `Apps`, and finding + selecting `IronFox`), navigating to `Exploit protection` -> `Dynamic code loading via memory`, and selecting `Allowed`. + +## Can I use FIDO/U2F/Passkeys? + +Yes! While IronFox removes the proprietary [Google Play FIDO library](https://developers.google.com/android/reference/com/google/android/gms/fido/Fido), it replaces it with its FOSS [microG](https://github.com/microg/GmsCore/wiki) equivalent. + +In addition to providing support for FIDO/U2F/Passkeys to users with **microG** installed, this can **also** be used **without microG or Google Play Services**, thanks to the excellent, free and open source [`HW Fido2 Provider` app](https://codeberg.org/s1m/hw-fido2-provider). + +**NOTE**: After installing `HW Fido2 Provider`, ensure you set it as Android's `Preferred service for passwords, passkeys & autofill` *(On GrapheneOS, this is located at `Settings` -> `Passwords, passkeys & accounts` -> `Preferred service`)*. + +## Can I receive push notifications? + +Yes! While IronFox removes the proprietary [Google Play Firebase Messaging Library](https://firebase.google.com/docs/cloud-messaging/), it adds support for [UnifiedPush](https://unifiedpush.org/). + +To use UnifiedPush, you'll first need to install and set-up a [distributor app](https://unifiedpush.org/users/distributors/) - we recommend [`Sunup`](https://unifiedpush.org/users/distributors/sunup/) for this. + +After setting up your distributor, you can enable support for UnifiedPush by selecting the `Use UnifiedPush` option, located under `Advanced` in settings. You should then receive a prompt to restart IronFox; after restarting, you should be ready to go! + +**NOTE**: By default, IronFox blocks prompts from websites to enable web notifications. If you'd like to receive notifications from websites, you can re-enable notifications prompts by navigating to `Privacy and security` -> `Site settings` -> `Permissions` -> `Notification` in settings, and selecting `Ask to allow`. + +**NOTE**: To receive notifications while IronFox is in the background, [**GrapheneOS** users might unfortunately need to disable the `Dynamic code loading via storage` exploit protection for IronFox](https://gitlab.com/ironfox-oss/IronFox/-/issues/124). You can do this by navigating to IronFox's `App info` *(You can get there by holding IronFox's app icon and selecting `App info`, *or* by navigating to `Settings` -> `Apps`, and finding + selecting `IronFox`), navigating to `Exploit protection` -> `Dynamic code loading via storage`, and selecting `Allowed`. + +## Why isn't Resist Fingerprinting (RFP) enabled? + +[Resist Fingerprinting *(RFP)*](https://support.mozilla.org/kb/resist-fingerprinting) is Firefox's traditional fingerprinting protection, designed and intended for use by [Tor Browser](https://www.torproject.org/). + +Unfortunately, due to it's design and intended use case, some of RFP's behavior is known to cause breakage and undesired behavior for users. RFP is also an all-or-nothing package, meaning you are forced to pick between having protection, or **no protection at all**. + +Thankfully, for Firefox, Mozilla has recently developed [Suspected Fingerprinters Protection *(FPP)*](https://support.mozilla.org/kb/firefox-protection-against-fingerprinting#w_suspected-fingerprinters). **FPP** is far more flexible than RFP, as it allows users to enable or disable specific protections as needed, globally or on a per-site basis. + +Due to RFP's issues, we enable **FPP** instead. Additionally, as Mozilla's default protections for FPP are currently very limited, we use our own [hardened configuration](https://gitlab.com/ironfox-oss/IronFox/-/blob/dev/patches/gecko-overlay/toolkit/components/resistfingerprinting/RFPTargetsDefault.inc) for it. Our hardened configuration is designed to match RFP, but with exceptions to avoid certain behaviors that are known to cause issues and undesired behavior for users. You can see our [`Features` page](./Features#fingerprinting) for more details. + +We also include [a list](https://gitlab.com/ironfox-oss/IronFox/-/blob/dev/patches/gecko-overlay/services/settings/dumps/main/ironfox-fingerprinting-protection-overrides.json) of default overrides to fix breakage or harden protection on a per-site basis. If desired, you can disable our overrides, as well as overrides from Mozilla that serve a similar purpose, by setting `privacy.fingerprintingProtection.remoteOverrides.enabled` to `false` in your [`about:config`](about:config). + +**Due to our use of FPP, and the reasons listed above, RFP is NOT recommended or supported**. + +## Why can't I install add-ons/extensions? + +By default, due to privacy and security concerns, IronFox disables the installation of add-ons. This has **no** impact on already installed extensions, and updates to those extensions. + +To allow the installation of add-ons, **at the cost of privacy and security**, you can navigate to `Settings` -> `Advanced`, and select the option to `Allow installation of add-ons`. **It is recommended to disable this option when you are done installing your desired extension(s)**. + +## What add-ons/extensions should I install? + +Besides [uBlock Origin](https://addons.mozilla.org/addon/ublock-origin/)? Ideally, **none**. + +In general, we highly recommend keeping your installed extensions to a minimum; **only use what you need**. Installing add-ons increases your attack surface, can help aid fingerprinting, degrades performance, and has various other concerns. + +For more details, and information on why you don't actually need many of the extensions that you might think you do, take a look at [Arkenfox's `Extensions` wiki page](https://github.com/arkenfox/user.js/wiki/4.1-Extensions). + +## Why is IronFox so slow? + +By default, in order to improve security, IronFox disables [JavaScript Just-in-time Compilation *(JIT)*](https://microsoftedge.github.io/edgevr/posts/Super-Duper-Secure-Mode/). While this doesn't cause a noticeable difference on most modern devices, depending on your device, this might be what's causing the slowness you're experiencing. + +**At the cost of security**, you can re-enable JIT by navigating to `Settings` -> `Privacy and security` -> `Site settings`, and selecting the option to `Enable JavaScript Just-in-time Compilation (JIT)`. + +If re-enabling JIT doesn't give you the desired outcome, **at the cost of privacy**, you can re-enable disk cache by navigating to `Settings` -> `Privacy and security` -> `Site settings`, and selecting the option to `Enable disk cache`. You can also optionally enable it for secure webpages by selecting the option to `Enable disk cache for secure webpages` from the same screen. + +If this *still* doesn't give you the desired outcome, please [file an issue](https://gitlab.com/ironfox-oss/IronFox/-/issues) and let us know! + +## Why can't I stream certain content from streaming services (Ex. Amazon Prime Video, Apple TV+, Disney+, HBO Max, Hulu, Netflix, Peacock, Plex, Sling, Spotify, etc?) + +IronFox does not support [Encrypted Media Extensions *(EME)*](https://wikipedia.org/wiki/Encrypted_Media_Extensions), due to privacy, security, freedom, and ideological concerns. For more details, see [this article](https://www.eff.org/deeplinks/2017/10/drms-dead-canary-how-we-just-lost-web-what-we-learned-it-and-what-we-need-do-next) from the EFF, as well as [this post](https://celenity.dev/posts/thoughts/drm/). + +Unfortunately, certain streaming services *(such as the examples listed above)* arbitrarily prevent IronFox users *(as well as users of other privacy and security-focused projects)* from accessing content, by requiring EME for media playback. **When you encounter an issue due to this, please report this to the website's operator**! Please also [file an issue](https://codeberg.org/celenity/Phoenix/issues/new?template=.github%2fISSUE_TEMPLATE%2fweb-compat.yml), so that we can track/document impacted services. + +**At your own risk**, **at the cost of privacy and security**, you can re-enable support for EME with a **not supported**, **not recommended** hidden setting, by navigating to `Settings` -> `About` -> `About IronFox`, tapping the `IronFox` logo 7 times until you see a message stating `Debug menu enabled`, navigating back to `Settings` -> `About` -> `Secret Settings`, and selecting the `Enable Encrypted Media Extensions (EME)` option. To play content, you will likely also need to enable the `Enable Widevine CDM` option from the same screen, which enables Google's Widevine Content Decryption Module *(CDM)*, provided by Android's [`MediaDrm` API](https://developer.android.com/reference/android/media/MediaDrm). + +## Why can't I connect to certain websites? + +By default, to improve security, IronFox [hard-fails](https://github.com/arkenfox/user.js/issues/1576) [OCSP](https://wikipedia.org/wiki/Online_Certificate_Status_Protocol) certificate revocation checks. Unfortunately, from time to time, OCSP servers can be down or inaccessible, which is most likely what's causing the connection issue you're experiencing. + +**At the cost of security**, you can disable hard-failing OCSP certificate revocation checks, by navigating to `Settings` -> `Privacy and security`, and selecting the option to `Hard-fail OCSP revocation checks`. **It is highly recommended to re-enable this option as soon as possible after visiting the impacted website(s)**. **Please also report this issue to the website's operator**! + +If you're still having connection issues, but can access the site from other browsers on your device, please [file an issue](https://gitlab.com/ironfox-oss/IronFox/-/issues) and let us know! + +## Why are websites displayed in light mode? + +By default, to protect against fingerprinting, IronFox sets the preferred website appearance to Light mode. + +**At the cost of privacy**, you can change this by navigating to `Settings` -> `General` -> `Customization` -> `Website appearance`, and selecting `Dark` or `Follow browser theme`. + +**NOTE**: The **[Dark Reader](https://addons.mozilla.org/addon/darkreader/)** add-on is known to cause severe performance issues on hardened Firefox-based browsers/configurations. Installing Dark Reader also poses privacy and security concerns, as detailed above. Dark Reader should be **AVOIDED** if possible, in favor of the `Website appearance` setting. + +## Why do websites display the incorrect timezone? + +By default, to protect against fingerprinting, IronFox spoofs the system's timezone to `UTC-0`. + +**At the cost of privacy**, you can disable this protection globally by setting the value of `privacy.fingerprintingProtection.overrides` in your [`about:config`](about:config) to `-JSDateTimeUTC`. You can also disable this protection on a per-site basis by setting the value of `privacy.fingerprintingProtection.granularOverrides` in your [`about:config`](about:config) to `[{"firstPartyDomain":"example.com","overrides":"-JSDateTimeUTC"}]`, replacing `example.com` with the base domain of the website you'd like to disable timezone spoofing for. + +**Please [file an issue](https://codeberg.org/celenity/Phoenix/issues/new?template=.github%2fISSUE_TEMPLATE%2fweb-compat.yml) for websites impacted by this, so that we can track/document the issue, and potentially add the site to [our list](https://gitlab.com/ironfox-oss/IronFox/-/blob/dev/patches/gecko-overlay/services/settings/dumps/main/ironfox-fingerprinting-protection-overrides.json) of default overrides**. + +## Why are websites always displayed in English? + +By default, to protect against fingerprinting, IronFox spoofs the preferred locale to English *(`en-US`)*. + +**At the cost of privacy**, you can change this by navigating to `Settings` -> `General` -> `Language`, and selecting `Request English versions of webpages for stronger fingerprinting protection`. + +## Why do some fonts display incorrectly? + +By default, to protect against fingerprinting, IronFox restricts the visibility of fonts exposed to websites. Unfortunately, this is known to [cause issues with displaying certain text in Korean](https://gitlab.com/ironfox-oss/IronFox/-/issues/31). + +**At the cost of privacy**, if you encounter this issue, you can disable this protection globally by setting the value of `privacy.fingerprintingProtection.overrides` in your [`about:config`](about:config) to `-FontVisibilityBaseSystem`. You can also disable this protection on a per-site basis by setting the value of `privacy.fingerprintingProtection.granularOverrides` in your [`about:config`](about:config) to `[{"firstPartyDomain":"example.com","overrides":"-FontVisibilityBaseSystem"}]`, replacing `example.com` with the base domain of the website you'd like to disable this protection for. + +## Why can't I see emojis? + +By default, to protect against fingerprinting, IronFox restricts the visibility of fonts exposed to websites. Unfortunately, this is known to break the display of emojis *(See [a testing page here](https://tmh.conlang.org/emoji-language/all-emoji.html))* for users on **Android 10** or lower. + +If you encounter this issue, please upgrade to a newer version of Android as soon as possible ;)... but, for a work-around, **at the cost of privacy**, you can disable this protection globally by setting the value of `privacy.fingerprintingProtection.overrides` in your [`about:config`](about:config) to `-FontVisibilityBaseSystem,-FontVisibilityLangPack`. You can also disable this protection on a per-site basis by setting the value of `privacy.fingerprintingProtection.granularOverrides` in your [`about:config`](about:config) to `[{"firstPartyDomain":"example.com","overrides":"-FontVisibilityBaseSystem,-FontVisibilityLangPack"}]`, replacing `example.com` with the base domain of the website you'd like to disable this protection for. + +## Why doesn't this website work? + +For background, IronFox uses configs from **[Phoenix](https://phoenix.celenity.dev)** to harden and configure Gecko's preferences and underlying behavior. While it is both the goal of IronFox *and* Phoenix to provide users with a balance between strong privacy and security, while also preventing breakage where possible and preserving compatibility with websites, you may occasionally encounter issues. + +As these issues generally stem from Gecko, **unless you're confident that the issue is caused by a IronFox-specific change**, please report the issue on [Phoenix's issue tracker](https://codeberg.org/celenity/Phoenix/issues/new?template=.github%2fISSUE_TEMPLATE%2fweb-compat.yml). + +**If you're confident that the change is IronFox-specific**, please report the issue on [our issue tracker](https://gitlab.com/ironfox-oss/IronFox/-/issues) instead. + +**Regardless of whether you're using Phoenix or IronFox's issue tracker**, please do the following before opening an issue: + +- **Confirm that the website/issue is not already listed on [Phoenix's `Website Compatibility` page](https://phoenix.celenity.dev/compat)** +- **Ensure that IronFox is up-to-date, and confirm that the issue occurs on the latest release** +- **Verify that the issue does NOT occur on the latest release of vanilla Firefox from Mozilla** - *you can find [the latest `.apk`s here](https://ftp.mozilla.org/pub/fenix/releases/) - just find the version that corresponds to the version of IronFox you're using, this can be found by navigating to `Settings` -> `About` -> `About IronFox`* +- **If possible, please check if the issue occurs on a clean install of IronFox, without changing any settings** - *you can do this without impacting your current installation by using Android's [`Private Space`](https://source.android.com/docs/security/features/private-space) feature, or with [the Shelter app](https://github.com/PeterCxy/Shelter) if you're not on Android 15 or newer* diff --git a/docs/Features.md b/docs/Features.md index 1a9287a..0f6a99e 100644 --- a/docs/Features.md +++ b/docs/Features.md @@ -2,7 +2,9 @@ This list is not exhaustive... -**NOTE**: IronFox uses configs from [Phoenix](https://phoenix.celenity.dev) to harden and configure Gecko's preferences. This page will **NOT** document changes from Phoenix; it is instead going to be focused on **IronFox-specific** changes. For information on Phoenix's features, please see [the documentation here](https://codeberg.org/celenity/Phoenix/wiki/Features). +**NOTE**: IronFox uses configs from [Phoenix](https://phoenix.celenity.dev) to harden and configure Gecko's preferences. This page is focused on **IronFox-specific** changes; some changes from Phoenix that are major or overlap with ours for IronFox may be covered, but it won't cover everything. For more information on Phoenix's features, please see [the documentation here](https://codeberg.org/celenity/Phoenix/wiki/Features). + +**⚠️ BEFORE PROCEEDING**: Please see our [`Limitations`](./Limitations) page to better understand what IronFox can and can not protect against. ## Privacy @@ -29,10 +31,17 @@ This list is not exhaustive... ## Fingerprinting -- Enables Mozilla's [Suspected Fingerprinters Protection *(FPP)*](https://support.mozilla.org/kb/firefox-protection-against-fingerprinting#w_suspected-fingerprinters), with a [hardened configuration](https://gitlab.com/ironfox-oss/IronFox/-/blob/dev/patches/gecko-overlay/toolkit/components/resistfingerprinting/RFPTargetsDefault.inc) that closely resembles [Resist Fingerprinting *(RFP)*](https://support.mozilla.org/kb/resist-fingerprinting) +In order to combat fingerprinting, IronFox enables Mozilla's [Suspected Fingerprinters Protection (FPP)](https://support.mozilla.org/kb/firefox-protection-against-fingerprinting#w_suspected-fingerprinters). **However:** IronFox modifies the set of protections *([targets](https://searchfox.org/mozilla-central/source/toolkit/components/resistfingerprinting/RFPTargets.inc))* covered by FPP to match [Resist Fingerprinting (RFP)](https://support.mozilla.org/kb/resist-fingerprinting), but **with the following changes**: + +- We allow first-party canvas data extraction, due to prompts unfortunately not being supported on Android *(Third parties are still blocked from extracting canvas data, and canvas data is still randomized when extracted)* +- We do not unconditionally spoof CSS [`prefers-color-scheme`](https://developer.mozilla.org/docs/Web/CSS/@media/prefers-color-scheme), to allow users to enable Dark mode if desired *(though we still enable light mode by default, see below)* +- We allow display of content over 60FPS + +IronFox **additionally**: + - Includes bundled fonts at [build-time](https://gitlab.com/ironfox-oss/IronFox/-/blob/2609477a278f7e4a3681e5979b354d6063249edd/patches/gecko-overlay/mobile/android/ironfox.configure#L18), to improve compatibility, and to help provide users with a baseline/common set of fonts - Sets the preferred appearance for websites *(CSS [`prefers-color-scheme`](https://developer.mozilla.org/docs/Web/CSS/@media/prefers-color-scheme))* to light mode by default, and adds an option to configure it independently of the browser's theme *(Like Firefox on Desktop)*, located at `General` -> `Customize` -> `Website appearance` in settings -- Spoofs the locale for websites to English *(`en-US`)* by default, and adds a toggle to enable/disable it, located at `General` -> `Language` in settings +- Spoofs the preferred locale for websites to English *(`en-US`)* by default, and adds a toggle to enable/disable it, located at `General` -> `Language` -> `Request English versions of webpages for stronger fingerprinting protection` in settings ## Security @@ -44,7 +53,7 @@ This list is not exhaustive... - Disables the [Gecko Profiler](https://firefox-source-docs.mozilla.org/tools/profiler/index.html) at [build-time](https://gitlab.com/ironfox-oss/IronFox/-/blob/6eb1f610d036636908e1a2f0508847671994b345/scripts/prebuild.sh#L465) - Disables [HTTP Live Streaming *(HLS)*](https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/29859) at [build-time](https://gitlab.com/ironfox-oss/IronFox/-/blob/2609477a278f7e4a3681e5979b354d6063249edd/patches/gecko-overlay/mobile/android/ironfox.configure#L7) - Disables installation of add-ons by default, and adds a toggle to enable/disable it, located at `Advanced` -> `Allow installation of add-ons` in settings -- Disables JavaScript [Just-in-time Compilation *(JIT)*](https://microsoftedge.github.io/edgevr/posts/Super-Duper-Secure-Mode/) by default, and adds a toggle to enable/disable it, located at `Privacy and security` -> `Site settings` -> `Content` -> `Enable JavaScript Just-in-time Compilation (JIT)` in settings +- Disables [JavaScript Just-in-time Compilation *(JIT)*](https://microsoftedge.github.io/edgevr/posts/Super-Duper-Secure-Mode/) by default, and adds a toggle to enable/disable it, located at `Privacy and security` -> `Site settings` -> `Content` -> `Enable JavaScript Just-in-time Compilation (JIT)` in settings - Disables [Parental Controls](https://searchfox.org/mozilla-central/source/toolkit/components/parentalcontrols/nsIParentalControlsService.idl) at [build-time](https://gitlab.com/ironfox-oss/IronFox/-/blob/6eb1f610d036636908e1a2f0508847671994b345/scripts/prebuild.sh#L473) - Disables `SSLKEYLOGGING` at [build-time](https://gitlab.com/ironfox-oss/IronFox/-/blob/a3c9025e044b780adf43e14bc5dbc213d6119ce9/patches/disable-sslkeylogging.patch) *([1](https://bugzilla.mozilla.org/show_bug.cgi?id=1183318), [2](https://bugzilla.mozilla.org/show_bug.cgi?id=1915224))* - Disables support for [GSS-API negotiate authentication](https://htmlpreview.github.io/?https://github.com/mdn/archived-content/blob/main/files/en-us/mozilla/integrated_authentication/raw.html) at [build-time](https://gitlab.com/ironfox-oss/IronFox/-/blob/6eb1f610d036636908e1a2f0508847671994b345/scripts/prebuild.sh#L471) diff --git a/docs/Limitations.md b/docs/Limitations.md new file mode 100644 index 0000000..bf48920 --- /dev/null +++ b/docs/Limitations.md @@ -0,0 +1,17 @@ +# Limitations + +Your web browser is a tool; as such, it's important to use the right tool for the right job. You wouldn't use a bulldozer to unscrew a screw, or a feather as a knife. + +Please take the time to [threat model](https://www.privacyguides.org/en/basics/threat-modeling/). Determine what you're trying to protect, why you're trying to protect it, who you're trying to protect it from, etc. **Everyone** has their own unique threat model and different needs, goals, and desires; you must determine yours. + +**When using IronFox, you must understand the following**: + +## Fingerprinting + +IronFox can **not** defeat sophisticated fingerprinting. **Nothing besides [Tor Browser](https://www.torproject.org/) can**. Please use Tor Browser if your threat model calls for it *(Ex. whistleblowers, political dissidents, journalists, etc.)*. IronFox [still takes steps to protect users against fingerprinting](./Features#fingerprinting) *(which we believe are sufficient for most threat models)*, but this is something important to keep in mind. + +## Security + +While we do as much as possible to improve the situation, it should be noted that Firefox-based web browsers, including IronFox, have security deficiencies when compared to Chromium. This is *especially* notable on Android. For more details, see [this article from GrapheneOS](https://grapheneos.org/usage#web-browsing), and [this article from madaidan *(a security researcher)*](https://madaidans-insecurities.github.io/firefox-chromium.html). + +Depending on your threat model, it may be preferable to use a Chromium-based browser, such as [Vanadium](https://grapheneos.org/features#vanadium) on GrapheneOS, or [Cromite](https://github.com/uazo/cromite). diff --git a/docs/Network-Connections.md b/docs/Network-Connections.md new file mode 100644 index 0000000..bffec12 --- /dev/null +++ b/docs/Network-Connections.md @@ -0,0 +1,232 @@ +# Network Connections + +This page serves to document connections commonly made by IronFox. It will explain the purpose of each connection, what data is shared, and how to disable *(or override if applicable)* the connection if desired. + +## Default + +These connections are made **by default**, out of the box. + +### [Add-on Updates](https://blog.mozilla.org/addons/how-to-turn-off-add-on-updates/) + +- `https://versioncheck-bg.addons.mozilla.org/update/VersionCheck.php?reqVersion=2&*` + +If you install add-ons from outside of the AMO *(`addons.mozilla.org`)*, you may notice additional connections to other servers as part of this functionality *(as specified by the extension(s) you install)*. + +**Operator**: [Mozilla](https://www.mozilla.org/) - *[Privacy policy](https://www.mozilla.org/privacy/)* + +**Purpose**: Downloads updates for installed extensions and themes. + +**Type(s) of data shared**: Identifiers of installed add-ons, Current versions of installed add-ons, Browser version, User Agent, public IP address. + +**How often the connection occurs**: Hourly *(`extensions.update.interval`)*. + +**Control**: You can disable add-on updates globally by setting `extensions.update.enabled` to `false` in your [`about:config`](about:config). + +You can also disable updates for individual add-ons by setting `extensions.{GUID}.update.enabled` to `false` in your [`about:config`](about:config), replacing `{GUID}` with the ID of your desired add-on *(IDs of your installed extensions can be found at [`about:support`](about:support))*. **For example**: if I wanted to disable updates for uBlock Origin, I would set `extensions.uBlock0@raymondhill.net.update.enabled` to `false`. + +Note that disabling add-on updates is **NOT** recommended. + +### [Autograph](https://github.com/mozilla-services/autograph) + +- `https://content-signature-2.cdn.mozilla.net/g/chains/*` + +**Operator**: [Mozilla](https://www.mozilla.org/) - *[Privacy policy](https://www.mozilla.org/privacy/)* + +**Purpose**: Provides signing/verification for various functionality, including: [content signatures](https://github.com/mozilla-services/autograph/blob/main/signer/contentsignaturepki/README.md), and extension signing *([1](https://github.com/mozilla-services/autograph/blob/main/signer/xpi/README.md), [2](https://wiki.mozilla.org/Add-ons/Extension_Signing))*. + +**Type(s) of data shared**: User Agent, public IP address. + +**How often the connection occurs**: Every browser launch, and periodically after. + +**Control**: This request can be disabled by appending `,content-signature-2.cdn.mozilla.net` to the value of `network.dns.localDomains` in your [`about:config`](about:config) *(or by blocking `content-signature-2.cdn.mozilla.net` on the network level)*; though it is **NOT** recommended to disable or block this connection. + +### [DNS over HTTPS](https://wikipedia.org/wiki/DNS_over_HTTPS) + +- `https://dns.quad9.net/dns-query` + +**Operator**: [Quad9](https://quad9.net/) - *[Privacy policy](https://quad9.net/privacy/policy/)* + +**Purpose**: Provides encrypted domain name resolution. + +**Type(s) of data shared**: Domain names of servers you connect to, User Agent, public IP address. + +**How often the connection occurs**: Every time you connect to a domain. + +**Control**: You can change DNS providers by navigating to `Privacy and security` -> `DNS over HTTPS` in settings. Under `Max Protection` *(or your chosen mode)*-> `Choose provider:`, you can either select one of our presets: + +- **AdGuard** - `https://dns.adguard-dns.com/dns-query` - *[Privacy policy](https://adguard.com/privacy.html)* +- **AdGuard (Unfiltered)** - `https://unfiltered.adguard-dns.com/dns-query` - *[Privacy policy](https://adguard.com/privacy.html)* +- **Cloudflare** - `https://mozilla.cloudflare-dns.com/dns-query` - *[Privacy policy](https://developers.cloudflare.com/1.1.1.1/privacy/cloudflare-resolver-firefox/)* +- **Cloudflare (Malware Protection)** - `https://security.cloudflare-dns.com/dns-query` - *[Privacy policy](https://developers.cloudflare.com/1.1.1.1/privacy/public-dns-resolver/)* +- **DNS0** - `https://dns0.eu` - *[Privacy policy](https://www.dns0.eu/privacy)* +- **DNS0 (ZERO)** - `https://zero.dns0.eu` - *[Privacy policy](https://www.dns0.eu/privacy)* +- **DNS4EU (Ad Blocking)** - `https://noads.joindns4.eu/dns-query` - *[Privacy policy](https://www.joindns4.eu/privacy-policy)* +- **DNS4EU (Protective)** - `https://protective.joindns4.eu/dns-query` - *[Privacy policy](https://www.joindns4.eu/privacy-policy)* +- **DNS4EU (Unfiltered)** - `https://unfiltered.joindns4.eu/dns-query` - *[Privacy policy](https://www.joindns4.eu/privacy-policy)* +- **Mullvad (Base)** - `https://base.dns.mullvad.net/dns-query` - *[Privacy policy](https://mullvad.net/help/privacy-policy)* +- **Mullvad (Unfiltered)** - `https://dns.mullvad.net/dns-query` - *[Privacy policy](https://mullvad.net/help/privacy-policy)* +- **NextDNS** - `https://firefox.dns.nextdns.io/` - *[Privacy policy](https://nextdns.io/privacy)* +- **Wikimedia** - `https://wikimedia-dns.org/dns-query` - *[Privacy policy](https://meta.wikimedia.org/wiki/Wikimedia_DNS#Privacy_policy)* + +**Or** you can add your own provider by selecting `Custom`, and entering your desired URL. + +You can also set DNS over HTTPS to use your system's DNS resolver, by selecting `Default Protection` from the same screen. + +### Initial add-on installation + +- `https://addons.mozilla.org/firefox/downloads/latest/uBlock0@raymondhill.net/latest.xpi` + +**Operator**: [Mozilla](https://www.mozilla.org/) - *[Privacy policy](https://www.mozilla.org/privacy/)* + +**Purpose**: Downloads and installs the [uBlock Origin](https://addons.mozilla.org/addon/ublock-origin/) extensions. + +**Type(s) of data shared**: User Agent, public IP address. + +**How often the connection occurs**: Once, on initial set-up. + +**Control**: Uncheck the box to install uBlock Origin on the onboarding if desired, though doing so is **NOT** recommended. + +### [Online Certificate Status Protocol (OCSP) Checks](https://wikipedia.org/wiki/Online_Certificate_Status_Protocol) + +- `http://ocsp.digicert.com/` - *[Privacy policy](https://privacy.digicert.com/policies/)* +- `http://ocsp.globalsign.com/*` - *[Privacy policy](https://www.globalsign.com/repository/globalsign-privacy-policy.pdf)* +- `http://r10.o.lencr.org/` - *[Privacy policy](https://letsencrypt.org/privacy/)* +- `http://r11.o.lencr.org/` - *[Privacy policy](https://letsencrypt.org/privacy/)* + +You may also notice connections to additional servers as part of this functionality *(as specified by website operators)*, but the above specifically are known to result from default connections. + +**Purpose**: Validates HTTPS certificates. + +**Type(s) of data shared**: User Agent, public IP address. + +**How often the connection occurs**: Every time you connect to a server that doesn't support [CRLite](https://blog.mozilla.org/security/2020/01/09/crlite-part-1-all-web-pki-revocations-compressed/) or [OCSP stapling](https://wikipedia.org/wiki/OCSP_stapling). + +**Control**: This functionality can be disabled by setting `security.OCSP.enabled` to `0` in your [`about:config`](about:config), though it is **NOT** recommended to disable this feature. + +### [Push Service](https://mozilla-push-service.readthedocs.io/en/latest/) + +- `wss://push.services.mozilla.com/` + +**Operator**: [Mozilla](https://www.mozilla.org/) - *[Privacy policy](https://www.mozilla.org/privacy/)* + +**Purpose**: Provides support for [web push notifications](https://support.mozilla.org/kb/push-notifications-firefox) and [Remote Settings](https://searchfox.org/mozilla-central/rev/97feebcab27f1a92e70ceacaa77211e9eaba0e6e/services/settings/remote-settings.sys.mjs#593-609). + +**Type(s) of data shared**: Random identifier *(`dom.push.userAgentID`)*, User Agent, public IP address. + +**How often the connection occurs**: Every browser launch, and periodically after. + +**Control**: You can disable this functionality by setting the following preferences in your [`about:config`](about:config): + +- `dom.push.connection.enabled` -> `false` +- `dom.push.userAgentID` -> ` ` + +Note that disabling this feature is **NOT** recommended. + +### [Remote Settings](https://remote-settings.readthedocs.io/en/latest/) + +- `https://firefox.settings.services.mozilla.com/v1/buckets/blocklists/collections/*` +- `https://firefox.settings.services.mozilla.com/v1/buckets/main/collections/*` +- `https://firefox.settings.services.mozilla.com/v1/buckets/monitor/collections/changes/changeset?_expected=*` +- `https://firefox.settings.services.mozilla.com/v1/buckets/security-state/collections/*` +- `https://firefox-settings-attachments.cdn.mozilla.net/bundles/security-state--intermediates.zip` +- `https://firefox-settings-attachments.cdn.mozilla.net/bundles/startup.json.mozlz4` +- `https://firefox-settings-attachments.cdn.mozilla.net/main-workspace/tracking-protection-lists/*` +- `https://firefox-settings-attachments.cdn.mozilla.net/security-state-staging/cert-revocations/*` + +**Operator**: [Mozilla](https://www.mozilla.org/) - *[Privacy policy](https://www.mozilla.org/privacy/)* + +**Purpose**: Downloads configurations and databases for [various functionality](https://mozilla-services.github.io/remote-settings-permissions/), including: [Add-on blocklists](https://firefox.settings.services.mozilla.com/v1/buckets/blocklists/collections/addons-bloomfilters/changeset?_expected=0), [Certificate Revocations](https://firefox.settings.services.mozilla.com/v1/buckets/security-state/collections/cert-revocations/changeset?_expected=0), [Certificate Transparency logs](https://firefox.settings.services.mozilla.com/v1/buckets/security-state/collections/ct-logs/changeset?_expected=0), [Intermediate Certificates](https://firefox.settings.services.mozilla.com/v1/buckets/security-state/collections/intermediates/changeset?_expected=0), [Tracking Protection lists](https://firefox.settings.services.mozilla.com/v1/buckets/main/collections/tracking-protection-lists/changeset?_expected=0), [Translation models](https://firefox.settings.services.mozilla.com/v1/buckets/main/collections/translations-models/changeset?_expected=0), etc. + +**Type(s) of data shared**: User Agent, public IP address. + +**How often the connection occurs**: Hourly *(`services.settings.poll_interval`)*. + +**Control**: This functionality can be disabled globally by setting `browser.ironfox.services.settings.allowedCollections` to ` ` in your [`about:config`](about:config), though it is **NOT** recommended to disable this feature. + +You can also disable certain individual parts of this functionality if desired by setting the following preferences in your [`about:config`](about:config): + +- **[Add-on blocklists](https://support.mozilla.org/kb/add-ons-cause-issues-are-on-blocklist)**: `extensions.blocklist.enabled` -> `false` +- **[CRLite](https://blog.mozilla.org/security/2020/01/09/crlite-part-1-all-web-pki-revocations-compressed/) filters**: `security.remote_settings.crlite_filters.enabled` -> `false` +- **[Intermediate certificate](https://support.globalsign.com/ca-certificates/intermediate-certificates/overview-intermediate-certificates) downloads**: `security.remote_settings.intermediates.enabled` -> `false` +- **[Tracking blocklists](https://support.mozilla.org/kb/trackers-and-scripts-firefox-blocks-enhanced-track)**: `browser.safebrowsing.provider.mozilla.lists` -> `disabled` + +Note that disabling this functionality is **NOT** recommended. + +### [Safe Browsing](https://support.mozilla.org/kb/how-does-phishing-and-malware-protection-work) + +- `https://safebrowsing.ironfoxoss.org/v4/fullHashes:find?$ct=application/x-protobuf&*` +- `https://safebrowsing.ironfoxoss.org/v4/threatListUpdates:fetch?$ct=application/x-protobuf&*` + +**Operator**: [IronFox OSS](https://ironfoxoss.org/) - *[Privacy policy](https://codeberg.org/celenity/Phoenix/wiki/Transparency#google-safe-browsing)* + +**Purpose**: Provides real-time protection against malware and phishing *([Proxies `https://safebrowsing.googleapis.com`](https://gitlab.com/ironfox-oss/safebrowsing-proxy))*. + +**Type(s) of data shared**: [Partial URL hashes upon potential matches](https://feeding.cloud.geek.nz/posts/how-safe-browsing-works-in-firefox/), User Agent, public IP address. + +**How often the connection occurs**: Every browser launch, and every 30 minutes after. + +**Control**: See [our `Safe Browsing` page](./Safe-Browsing.md) for more details, including how to disable Safe Browsing or change providers if desired. Note that disabling Safe Browsing is **NOT** recommended. + +### [System Add-on Updates](https://firefox-source-docs.mozilla.org/toolkit/mozapps/extensions/addon-manager/SystemAddons.html#system-add-on-updates) + +- `https://archive.mozilla.org/pub/system-addons/*` +- `https://aus5.mozilla.org/update/3/SystemAddons/*` + +**Operator**: [Mozilla](https://www.mozilla.org/) - *[Privacy policy](https://www.mozilla.org/privacy/)* + +**Purpose**: Downloads and updates [system add-ons](https://firefox-source-docs.mozilla.org/toolkit/mozapps/extensions/addon-manager/SystemAddons.html). + +**Type(s) of data shared**: Browser version, locale, OS, OS architecture, OS version, User Agent, public IP address. + +**How often the connection occurs**: Hourly. + +**Control**: You can disable this functionality by setting `extensions.systemAddon.update.enabled` to `false` in your [`about:config`](about:config); though this is **NOT** recommended. + +### uBlock Origin + +- `https://cdn.jsdelivr.net/gh/uBlockOrigin/uAssetsCDN@main/*` - *[Privacy Policy](https://www.jsdelivr.com/terms/privacy-policy)* +- `https://cdn.statically.io/gh/uBlockOrigin/uAssetsCDN/main/*` - *[Privacy Policy](https://statically.io/policies/privacy/)* +- `https://filters.adtidy.org/extension/ublock/filters/*` - *[Privacy Policy](https://adguard.com/privacy.html)* +- `https://gitlab.com/celenityy/BadBlock/-/raw/*` - *[Privacy Policy](https://about.gitlab.com/privacy/)* +- `https://gitlab.com/celenityy/Phoenix/-/raw/*` - *[Privacy Policy](https://about.gitlab.com/privacy/)* +- `https://gitlab.com/DandelionSprout/adfilt/-/raw/master/*` - *[Privacy Policy](https://about.gitlab.com/privacy/)* +- `https://gitlab.com/hagezi/mirror/-/raw/main/dns-blocklists/adblock/*` - *[Privacy Policy](https://about.gitlab.com/privacy/)* +- `https://malware-filter.gitlab.io/urlhaus-filter/urlhaus-filter-ag-online.txt` - *[Privacy Policy](https://about.gitlab.com/privacy/)* +- `https://malware-filter.pages.dev/urlhaus-filter-ag-online.txt` - *[Privacy Policy](https://www.cloudflare.com/privacypolicy/)* +- `https://pgl.yoyo.org/adservers/serverlist.php?hostformat=hosts&showintro=1&mimetype=plaintext` +- `https://publicsuffix.org/list/public_suffix_list.dat` - *[Privacy policy](https://www.mozilla.org/privacy/)* +- `https://raw.githubusercontent.com/fmhy/FMHYFilterlist/main/filterlist-basic.txt` - *[Privacy Policy](https://docs.github.com/site-policy/privacy-policies/github-general-privacy-statement)* +- `https://raw.githubusercontent.com/yokoffing/filterlists/main/*` - *[Privacy Policy](https://docs.github.com/site-policy/privacy-policies/github-general-privacy-statement)* +- `https://secure.fanboy.co.nz/*` +- `https://someonewhocares.org/hosts/hosts` +- `https://ublockorigin.github.io/uAssets/*` - *[Privacy Policy](https://docs.github.com/site-policy/privacy-policies/github-general-privacy-statement)* +- `https://ublockorigin.github.io/uAssetsCDN/*` - *[Privacy Policy](https://docs.github.com/site-policy/privacy-policies/github-general-privacy-statement)* +- `https://ublockorigin.pages.dev/*` - *[Privacy Policy](https://www.cloudflare.com/privacypolicy/)* + +**Purpose**: Downloads and updates for filterlists and other resources in uBlock Origin. + +**Type(s) of data shared**: User Agent, public IP address. + +**How often the connection occurs**: Periodically. + +**Control**: You can disable uBlock Origin by navigating to `Advanced` -> `Extensions` -> `uBlock Origin` in settings, and selecting `Enabled`. You can also uninstall uBlock Origin entirely from the same screen, by selecting `Remove`; though disabling or uninstalling uBlock Origin is **NOT** recommended. + +## Additional + +The following are **optional**, **non-standard** connections that IronFox might make, depending on the features you decide to use. + +### [Geolocation](https://support.mozilla.org/kb/does-firefox-share-my-location-websites) + +- `https://api.beacondb.net/v1/geolocate` + +**Operator**: [BeaconDB](https://beacondb.net/) - *[Privacy policy](https://beacondb.net/privacy/)* + +**Purpose**: Serves as a fallback to provide geolocation when the system's provider is unavailable. + +**Type(s) of data shared**: Strength and general information of nearby cellular towards and Wi-Fi networks *(if available/supported)*, User Agent, public IP address. + +**How often the connection occurs**: When/if you grant a website permission to access your location **and** if your system's geolocation provider is unavailable. + +**Control**: You can simply choose not to grant websites permission to access your location, **or** you can disable the network geolocation provider entirely by setting `geo.provider.network.url` to ` ` in your [`about:config`](about:config); though doing so may cause issues with geolocation if your system's geolocation provider is unavailable. + +You can also change the network geolocation provider if desired by setting the value of `geo.provider.network.url` to your preferred URL in the [`about:config`](about:config). diff --git a/docs/README.md b/docs/README.md index dd0bb3b..03923ba 100644 --- a/docs/README.md +++ b/docs/README.md @@ -3,3 +3,13 @@ Welcome! This directory is meant to serve as the temporary home for resources and information regarding IronFox, until our website is ready. + +___ + +- [Limitations](./Limitations) + - [Fingerprinting](./Limitations#fingerprinting) + - [Security](./Limitations#security) +- [Frequently Asked Questions](./FAQ) +- [Features](./Features) +- [Safe Browsing](./Safe-Browsing) +- [Network Connections](./Network-Connections) diff --git a/docs/Safe-Browsing.md b/docs/Safe-Browsing.md new file mode 100644 index 0000000..22e39ce --- /dev/null +++ b/docs/Safe-Browsing.md @@ -0,0 +1,18 @@ +# Safe Browsing + +**IronFox enables Google Safe Browsing by default to provide users with real-time protection against malware, phishing, and other threats**. + +Firefox's Safe Browsing implementation is [very well-designed from a privacy perspective](https://feeding.cloud.geek.nz/posts/how-safe-browsing-works-in-firefox/). It is free and open source, and unlike Chromium browsers on Android, does **not** rely on Google Play Services. + +On top of [Firefox's already privacy-respecting design and implementation of Safe Browsing](https://support.mozilla.org/kb/how-does-phishing-and-malware-protection-work), we take additional measures to further improve privacy for users, by routing connections to Google through our [proxy](https://gitlab.com/ironfox-oss/safebrowsing-proxy). + +**When Safe Browsing is enabled**, IronFox will periodically update its database *(through our proxy)* to provide protection against the latest threats. Additionally, if a potential match for a malicious website is found, IronFox might submit a partial hash of the suspected URL to Google *(through our proxy)*. + +**At the cost of security**, you can disable Safe Browsing if desired, by navigating to `Settings` -> `Privacy and security` -> `Enable Safe Browsing`. + +**If you'd like to keep Safe Browsing enabled, but prefer to disable our proxy and connect to Google directly**, you can do this by navigating to your `about:config`, and following these steps: + +- Find the `browser.safebrowsing.provider.ironfox.lists` preference. Select and **Copy** its current value, and change it to `disabled`. +- Find the `browser.safebrowsing.provider.google4.lists` preference, and change its value to the value of the `browser.safebrowsing.provider.ironfox.lists` preference that you copied before. + +If you'd like to revert back to using our proxy, you can do so at any time by resetting the values of the `browser.safebrowsing.provider.google4.lists` and `browser.safebrowsing.provider.ironfox.lists` preferences.