The Paranoiac's Guide: Firefox

Discussion in 'privacy technology' started by TomeiNingen, Nov 12, 2016.

  1. TomeiNingen

    TomeiNingen Registered Member

    Joined:
    Nov 8, 2016
    Posts:
    50
    Location:
    Fort Meade, Maryland
    Hey all!

    I've compiled a list of privacy tips and techniques which I'm going to be rolling out in the near future but I wanted to share what I have so far to get input from the community. The first installment will address my browser of choice, Firefox. Here I assume basic familiarity with standard settings for the sake of brevity.

    Most of what I've been able to find posted elsewhere tends to be outdated and most articles/tutorials are insufficiently detailed to provide appreciable guidance. What I'd like to create is a blueprint that a reasonably competent layperson can mimic to enhance their privacy while avoiding bloat where possible. Install, tweak as shown, go about your business in comfort.

    I'll be editing and updating this initial post as it evolves; this is not yet a mature or comprehensive reference; critiques wholeheartedly encouraged and sought! I plan to consolidate everything but I'd like to get the kinks worked out as I go along.

    To quickly gauge the effectiveness of any pre/post changes on tracking and fingerprinting, feel free to test your browser at Panopticlick, Browserspy, and Browserleaks.


    Recommended changes and additions to FF defaults:
    • Misc
      • Disable prefetching, search suggestions, search history, clear history on close, etc.
    • Search
      • Startpage (by Ixquick)
        • Privacy-centered search which offers the power of Google without the invasive tracking
      • DuckDuckGo
        • Their result ranking leaves something to be desired but I rely on it to escape Google's bubble when necessary
    • Add-ons:
      • Better Privacy
        • Manage and delete LSOs/Cookies
      • Canvas Blocker
        • Mitigate HTML5 canvas fingerprinting
      • Decentraleyes
        • Local CDN emulation; mitigates tracking
        • Complements and plays nicely with the other blockers/privacy add-ons
      • Google Search Link Fix
        • Prevents Google/Yandex from altering result links
      • HTTPS Everywhere
        • Force HTTPS
      • No Resource URI Leak
        • Additional fingerprinting/tracking mitigation; seems especially useful for a setup with multiple plugins (such as this one) which otherwise increases the ease with which the browser may be fingerprinted
      • Privacy Settings
        • Pretty neat; no more digging around in about:config to configure the default prefs individually
        • Disables DOM witchcraft, becons, geo, webgl, and plenty of other hoodoo
      • Random Agent Spoofer
        • Fingerprinting protection; robust profiles which spoof not only useragent strings but a host of other characteristics to afford increased protection from browser fingerprinting attempts.
      • Self Destructing Cookies
        • Purges respective cookies and LocalStorage as soon as you close its tabs; expunges lingering sessions. Closest I've come to cookie-free browsing without breaking every site in the process.
      • uBlock Origin
        • Better than AdBlock Plus; more powerful, easier on CPU/Memory, better interface (IMO)
      • uMatrix
        • Point-and-click matrix-based firewall, w/ privacy-enhancing tools
    • As for how to configure these add-ons, here's what I recommend for the best privacy with the least impact on your browsing experience - YMMV.
      N.B. - These are tweaks to the default settings, which should be left in their default state unless shown here. All of the above addons listed even if no tweaking req./possible. The sections for uBlock, uMatrix and Privacy Settings are incomplete.
      • Better Privacy
        • Confirm the proper Flash directory is shown (default should be fine for Win/OSX, Linux users may need to check)
      • Canvas Blocker
        • Remove any whitelisted sites (developer's site kkapsner.de is only site whitelisted by default)
        • Set "Block Mode" to your preferred mode; I recommend either "Block Readout API", "Fake Readout API", or "Block Everything". See FAQ on developer site for details.
          • If "Fake Readout API" is chosen, be sure to adjust the "Maximal Fake Size" setting.
        • Leave the default for "Random Number Generator" set to non-persistent
        • Check "Ask only once" box
      • Decentraleyes
      • Google Search Link Fix
      • HTTPS Everywhere
        • Disable observatory
      • No Resource URI Leak
        • Check the following:
          • Block access to resource:// URIs from Web
          • Block Web-exposed subset of chrome:// URIs
          • Uniformly filter disallowed redirects
        • Click the "Update the policy" button to apply changes
      • Privacy Settings (may break certain sites depending on settings chosen - WORK IN PROGRESS)
        • Navigate to the toolbar icon and select "Advanced Settings" (lower-left button in dropdown)
          • network.http.sendRefererHeader
            • Set to "0"
          • network.predictor.enabled
            • "False"
          • loop.facebook.shareUrl
            • Ensure this is an empty string
          • security.OCSP.require
            • True
      • Random Agent Spoofer
        • My intention is to vary the agents presented while making the UA as unremarkable as possible, so I've purposefully excluded all but the most common UAs.
        • "Profile" section
          • "Change Periodically" option
            • Set to "every request"
              • Do yourself a favor and disable notifications from the Extensions panel if you're opting to change UAs this frequently.
          • Exclude the following profiles to ensure usability is least impacted (i.e. mobile browsers). YMMV.
            • Tip: Spacebar+Tab to cycle through and enable/disable browser profiles
            • Windows Browsers
              • Edge
              • Seamonkey
              • Firefox ESR
            • Mac Browsers
              • Seamonkey
            • Linux Browsers
              • Chromium
              • Epiphany
              • Konqueror
              • Qupzilla
              • Rekonq
              • Seamonkey
            • Console Browsers (all)
            • Windows Phone Browsers (all)
            • iOS Browsers (all)
            • Android Browsers (all)
            • Firefox OS Browsers (all)
            • Unix Browsers (all)
        • "Headers" Section
          • Disable Authorization
          • Spoof If-None-Match (ETags)
          • Spoof Via using Random IP
          • Spoof X-Forwarded-For using Random IP
          • Spoof Source Referer
        • "Options" section (Numerous options; as above, only listing recommended changes to defaults)
          • § Script Injection
            • Screen Size Spoofing
              • Profile
            • Block Plugins
            • Limit Tab History to 2
            • Protect window.name
            • Disable canvas support
          • § Standard Options
            • Limit Detectable Fonts
            • Disable Context Menu Events
            • Disable gamepad API
          • § Reporting Options
            • Disable Safe Browsing (Google)
            • Disable Safe Browsing Downloads Check
            • Disable Safe Browsing Malware Check
      • Self Destructing Cookies
        • Clear Browser Cache when Idle
          • 15
        • Strict Cookie Access Policy
      • uBlock Origin
      • uMatrix
        • Note: I recommend not enabling uMatrix's UA spoofing option since we have User Agent Spoofer installed, which is much more robust.
     
    Last edited: Nov 13, 2016
  2. Krusty

    Krusty Registered Member

    Joined:
    Feb 3, 2012
    Posts:
    10,241
    Location:
    Among the gum trees
    Hi,

    There is some discussion about CanvasBlocker's Random Number Generator re Persistent vs Non-Persistent in this thread and my post here.
     
  3. TomeiNingen

    TomeiNingen Registered Member

    Joined:
    Nov 8, 2016
    Posts:
    50
    Location:
    Fort Meade, Maryland
    Excellent, thanks!
     
  4. Sampei Nihira

    Sampei Nihira Registered Member

    Joined:
    Apr 7, 2013
    Posts:
    3,365
    Location:
    Italy
    + Noscript.
    ..........And many in the list extensions are unnecessary.
     
  5. TomeiNingen

    TomeiNingen Registered Member

    Joined:
    Nov 8, 2016
    Posts:
    50
    Location:
    Fort Meade, Maryland
    Could you elaborate on that thought?

    And I excluded NoScript on purpose; in situations where I want to ensure an even greater degree of security I simply disable JS manually. Most of the other NoScript functions are addressed by uMatrix and uBlock as well.

    See here for rationale: http://arstechnica.com/security/201...-firefox-add-ons-open-millions-to-new-attack/
     
    Last edited: Nov 13, 2016
  6. Sampei Nihira

    Sampei Nihira Registered Member

    Joined:
    Apr 7, 2013
    Posts:
    3,365
    Location:
    Italy
  7. TomeiNingen

    TomeiNingen Registered Member

    Joined:
    Nov 8, 2016
    Posts:
    50
    Location:
    Fort Meade, Maryland

    I'm not sure I understand; those links seem to me to be more reason to avoid NoScript than to use it. And which add-ons were you referring to when you said that many of them are unnecessary? I'd like to reduce the number of extensions where possible so if you see any fat I can trim I'd appreciate the tip.

    EDIT: I certainly appreciate the value of NoScript's tenure but I think gorhill has clearly built upon and improved on it. No?
     
    Last edited: Nov 13, 2016
  8. subhrobhandari

    subhrobhandari Registered Member

    Joined:
    Nov 6, 2009
    Posts:
    780
    Great post. I would like to add somethings.

    1. Search Engines: You should include SearX. Choose any of the multiple instances available here. Or if you are knowledgeable, you can run your own instance.
    2. Among FF add-ons; Configuration Mania, Config Descriptions, Privacy Badger should be added. You can "Disable canvas support" via script injections in Random Agent Spoofer, so Canvas Blocker is not needed. I also use Calomel SSL Validation.
    3. Greasemonkey scripts are good. Following are the ones I use (and also recommend to others)
    a) AdsBypasser
    b) AntiAdware
    c) Adblock Protector
     
  9. summerheat

    summerheat Registered Member

    Joined:
    May 16, 2015
    Posts:
    2,199
    I don't see any benefit if you already use uBlock Origin (and uMatrix). Besides, there are other concerns.

    I doubt if this is still necessary. uB0 supports injectable scriplets which can probably replace those Greasemonkey scripts. If anything is not blocked it should be reported to gorhill who will usually add a new filter in order to solve the problem.

    I generally hesitate to add new addons particularly if they overlap with other ones: The more addons, the more unique and, hence, identifiable is your browser (-> fingerprinting!).
     
  10. paulderdash

    paulderdash Registered Member

    Joined:
    Dec 27, 2013
    Posts:
    4,644
    Location:
    Under a bushel ...
    @summerheat can you elaborate a bit please?
    I understand uB0 in medium mode to block 3rd party scripts by default, but would Privacy Badger not provide some additional protection from unwanted behaviour of 1st party scripts and 3rd party tracking cookies?
    I understand. Interesting discussion nonetheless.
     
    Last edited: Nov 14, 2016
  11. summerheat

    summerheat Registered Member

    Joined:
    May 16, 2015
    Posts:
    2,199
    Well, Privacy Badger doesn't use static filterlists but some kind of heuristics. So, theoretically, it is able to catch trackers that are not included in any filterlist or hosts file. But how probable is that? The lists available in uBlock Origin are already very comprehensive, and you can easily add some more if you want. I think it's very unlikely that Privacy Badger blocks something that isn't already blocked by uB0. So its benefit is negligible at best, IMO. And it's probably zero if you're using Dynamic Filtering.
     
  12. inka

    inka Registered Member

    Joined:
    Oct 21, 2009
    Posts:
    426
    the decentraleyes extension is ineffectual & breeds a false sense of security
    https://github.com/Synzvato/decentraleyes

    I had explored the prospect (seriously) of creating a local archive of the entire "togetherjs" CDN
    and creating custom mappings (er rules governing path mapping) within decentraleyes
    but realized that its mechanism is dead-in-the-water when it comes up against
    "SRI" declarations (declared as html attribute) and hashsum checks performed by in-page scripts.
    IOW, your carefully curated and locally-injected script(s) will be rejected

    edit: fixed typo (SRI) and removed the confusingly "related" (looking forward) ramblings
     
    Last edited: Nov 15, 2016
  13. summerheat

    summerheat Registered Member

    Joined:
    May 16, 2015
    Posts:
    2,199
    @inka : I must admit that I don't fully understand what you wrote. Could you elaborate a bit more?
     
  14. inka

    inka Registered Member

    Joined:
    Oct 21, 2009
    Posts:
    426
  15. summerheat

    summerheat Registered Member

    Joined:
    May 16, 2015
    Posts:
    2,199
    @inka : Thanks for this food for thought! I will certainly read the links you provided.
     
  16. inka

    inka Registered Member

    Joined:
    Oct 21, 2009
    Posts:
    426
    the TL:DR takeaway is that the decentraleyes dev insists that tampering/ignoring SRI declarations is beyond the scope of the project. Until it does tamper/ignore, or until another extension, e.g. NoScript or uBlock, can enforce "surrogate resources shall trump any SRI declaration"... surrogate injection is rendered ineffective when loading any page containing SRI declarations for its scripts.
     
  17. inka

    inka Registered Member

    Joined:
    Oct 21, 2009
    Posts:
    426
    TomeiNingen, look beyond fretting over cookies. Nowadays, tracking data is often passed via request/response headers or via websocket payload. Also, investigate the mechanism behind google's "AMP project" ~~ unless you "Just Say No" by crippling functionality so that your browser will not load AMP pages, it's basically a privacy GameOver scenario IMO.
     
  18. paulderdash

    paulderdash Registered Member

    Joined:
    Dec 27, 2013
    Posts:
    4,644
    Location:
    Under a bushel ...
    What should 'Maximal Fake Size' be set to if 'Fake Readout API' (developer's favourite) is chosen? I don't see a recommendation?
     
  19. guest

    guest Guest

    I think at least it should be changed to a size different than the default size of "0".
    But setting it too high can lead to some problems:
     
  20. paulderdash

    paulderdash Registered Member

    Joined:
    Dec 27, 2013
    Posts:
    4,644
    Location:
    Under a bushel ...
    Thanks @mood. I have now set it to 30000.
     
  21. Synzvato

    Synzvato Registered Member

    Joined:
    Nov 27, 2016
    Posts:
    6
    Location:
    The Netherlands
    Author of Decentraleyes here. I do not agree with you statements and would like to explain why.

    Essentially, what you needed is unsupported as it's beyond the current scope of the project. For security reasons, it does not facilitate tampering with bundled content. Bundled resources are handpicked based on estimated effectiveness using statistics by W3Techs. Thanks to this, Mozilla signs all bundled libraries along with the add-on to ensure resource integrity. If you need custom bundles, this is add-on is (currently) not for you.

    It would be perfectly possible for Decentraleyes to ignore security measures like Content Security Policies, but that would be highly irresponsible. I have engaged in quite a few security discussions with people at Mozilla, to ensure that this add-on actually improves your privacy without expanding other attack vectors. The add-on will always play it safe and will therefore not be blindly overriding other types of security measures.

    Absolutely, and rightfully so. Let me give you a basic example. Most of the following versions of jQuery and AngularJS are still widely used, but can no longer be considered safe. If Decentraleyes would bypass Content Security Policies and would ignore SRI declarations, an attacker could use an XSS exploit to load vulnerable, bundled, libraries. This would all happen despite a website's own security measures, "thanks" to the add-on.

    Lastly, I'd like to get back to your conclusions. Firstly, I fail to see how any of these properties could be rendering the add-on "ineffectual". Every additional request this add-on prevents means less data leakage, and it's generally known for being quite effective. Anyone who's unsure can simply use the add-on for a while, and then check the local injections counter. The counter value only increments when a resource has been successfully injected. Secondly, I'm not sure why this add-on would be giving anyone a "false sense of security". I'm sure it does improve overall security by playing things safe, and by preventing CDN requests.
     
    Last edited: Nov 27, 2016
  22. Krusty

    Krusty Registered Member

    Joined:
    Feb 3, 2012
    Posts:
    10,241
    Location:
    Among the gum trees
    Hi @Synzvato ,

    Welcome to the Wilders Security forums. Thanks for your explanation. :thumb:

    - Dave
     
  23. TomeiNingen

    TomeiNingen Registered Member

    Joined:
    Nov 8, 2016
    Posts:
    50
    Location:
    Fort Meade, Maryland
    @Synzvato - Just echoing @Krusty's sentiment; welcome! Thanks again for taking the time to weigh in.


    @inka - Thanks for your insights as well! I'm looking into the AMP protocols in earnest and certainly realize that cookies and the like are just one piece of the puzzle. Thanks for keeping me pointed in the right direction though :thumb:. Any other burgeoning tech worth paying mind to? I was surprised to see that AMP was in development for as long as it has been - I've only become aware of it in recent months, personally. No fun playing catch-up!
     
  24. inka

    inka Registered Member

    Joined:
    Oct 21, 2009
    Posts:
    426
    Use of SRI declarations is becoming increasingly prevalent. If the extension does not "tamper", forcing the browser to ignore/disregard such, browser will reject the locally-injected assets. That, along with the fact that the extension only intervenes to provide a woefully small cherry-picked "presumably most-popular" list of scripts/assets... clearly renders it ineffectual.

    What is "irresponsible" is to lull users into a false sense of security, coaching them to install an extension which provides approximately 0.002% coverage, AND includes an "download if missing" option, and represent to those users "now you are safer than xyz". There is no xyz -- it's black and white. Either disallow connections to enumerated CDN hostnames/domains, period, or connect once (or weekly, or monthly) and thereafter be recognized based on fingerprint established during the initial connection.
     
  25. Privacy Settings is a must have add on. I use it on my home Debian OS and it stops the user from fiddling through agent:config.
     
  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.