Subject: bug#52236: PRIVACY: Integrate arkenfox for icecat configuration

From: Liliana Marie Prikler <[email-masked]>
Date: Sat, 04 Dec 2021 02:27:48 +0100

Am Samstag, den 04.12.2021, 00:31 +0000 schrieb Jacob Hrbek:
> arkenfox is a **TEMPLATE** we can't just paste it in userland and
> expect peak security instead we should process the template and
> integrate the configuration in parametrisation with cherrypicked
> defaults to **generate** the user.js and enable the user to configure
> it from config.scm or alike.
This is the thing that makes the least sense about this proposal. 
Like, even if we were to write a service that allows user.js generation
through guix home, there'd be no reason to adopt arkenfox or any other
template for that matter.  People would have to adapt their templates
to the guix home workflow, which would hopefully not be more difficult
than writing some gexp.

> To provide context: Browser fingerprinting works by using [a bunch of
> side-channels that are hard to all disable completely...]

> [...]

> NOTE: For those reasons minimal browsers such as nyxt and surf have
> the potential to be more private, but from the point of view of an
> attacker it's just different vector for an attack so firefox should
> be preferred as it gets more development to address these issues
> quickly.
I'm pretty sure that using (a) Firefox (variant) is the only reliable
way to circumvent side-channel based fingerprinting as noted above
since you probably won't be able to patch all variants (especially not
those you aren't aware of yet), so better to only leak that you're "a
Firefox user".  That is until Chromium has all the market share and we
need to switch to the bigger fish for anonymity.  

> > Geolocation is disabled by default in IceCat.  When you say that
> > "it's pinging google servers currently", have you observed this in
> > its default configuration, or did you enable Geolocation?  --
> > Weaver
> 
> I use custom configuration so I was not aware of that being default
You might want to generate your custom configuration with arkenfox
then, so that Geolocation is always disabled.

> but even then just simple "default" is not enough where the issue is
> that there might be vulnerabilities that access the geolocation data
> even when it's disabled so everything in the browser (in my proposal)
> should be treated as compromised and layer defences so in this
> example:
Again, have you observed this?

> Even if geolocation is disabled we can't afford treating the value in
> prefs.js as not a concern and just keep google there we have to treat
> it as compromised at all time and treat it as that it might get used
> at some point to use either:
> a) value that breaks geolocation when accessed (vulnerability might
> allow the attacker to inject their own value)
> b) if it's ever accessed or use more privacy-oriented provider such
> as mozilla allegedly (preferably if GNUzilla made their own
> geolocating thing).
It'd probably be feasible to clear the value by default, but then
again, that'd not really help with custom configs created from a
"trusted" template, would it?

> > Your use of the word "Actual" above seems to suggest that the
> > IceCat project aims to disable WebRTC.  I'm not aware of any such
> > decision by the IceCat project. -- Weaver
> 
> I was told by FSF representative that icecat's compilation does not
> include support for WebRTC by default when i was invitted on the
> associate member meetup so i was basing that opinion on that.
This does not mean, that it's intentional, however.  It could also be
just a bug that they haven't figured out yet.  For example, WebRTC in
Webkit requires gst-plugins-bad, which is bad...

> If that is not a goal then disabling it in the settings is sufficient
> and preferred for me where i assumed there being reasoning for it to
> be outcompiled like that due to it being reasonably new technology
> which seems to be the common reason to do such thing.
Again, no statement about an "aim".

> > <Other IceCat-relevant proposals> -- Weaver
> 
> This is a discussion that gets exponentially more complicated the
> more we talk about it so i propose some written way of managing all
> these values to be used for implementation where my initial idea was
> wiki? So that the end-user can just search the value and find all the
> relevant information to make the decision for their threat model.
I'm pretty sure you don't need a Wiki to look up the invocation for ls,
do you?  Similarly, to configure Emacs you would first consult the
Emacs manual, no?  Guix does currently in no way interfere with your
ability to mess with Icecat's configuration, any documentation with
that regard is therefore Icecat/Firefox' burden, not Guix'.

> NOTE: I would also argue for icecat to just have disabled settings
> page with prefs.js set as read-only and owned by room with permission
> to read by the relevant user to reduce the risk of vulnerability or
> malicious extension altering the config.
To be fair, that'd be a nice quality to have, but you'd also have to
make the directory itself read-only in that case and at least I
personally haven't checked how well browsers like not being able to
write in their "dump everything" directories.  You might have more
success using containers in which the files are writable, but not
synced back to disc.  That also gives you a playground to experiment
with potentially malicious extensions.

On that note, you probably shouldn't mess around with extensions as a
journalist.

Cheers