From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp1 ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms0.migadu.com with LMTPS id 6DbaOA23qmFeiAAAgWs5BA (envelope-from ) for ; Sat, 04 Dec 2021 01:32:13 +0100 Received: from aspmx1.migadu.com ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp1 with LMTPS id ELl6NA23qmGxRgAAbx9fmQ (envelope-from ) for ; Sat, 04 Dec 2021 00:32:13 +0000 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 63F2029FC4 for ; Sat, 4 Dec 2021 01:32:13 +0100 (CET) Received: from localhost ([::1]:39700 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mtIyK-0007vD-Hs for larch@yhetil.org; Fri, 03 Dec 2021 19:32:12 -0500 Received: from eggs.gnu.org ([209.51.188.92]:50200) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mtIyA-0007v5-No for bug-guix@gnu.org; Fri, 03 Dec 2021 19:32:02 -0500 Received: from debbugs.gnu.org ([209.51.188.43]:40909) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mtIyA-0000PF-GA for bug-guix@gnu.org; Fri, 03 Dec 2021 19:32:02 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1mtIyA-00029M-D6 for bug-guix@gnu.org; Fri, 03 Dec 2021 19:32:02 -0500 X-Loop: help-debbugs@gnu.org Subject: bug#52236: PRIVACY: Integrate arkenfox for icecat configuration Resent-From: Jacob Hrbek Original-Sender: "Debbugs-submit" Resent-CC: bug-guix@gnu.org Resent-Date: Sat, 04 Dec 2021 00:32:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 52236 X-GNU-PR-Package: guix X-GNU-PR-Keywords: To: Maxime Devos Received: via spool by 52236-submit@debbugs.gnu.org id=B52236.16385779128249 (code B ref 52236); Sat, 04 Dec 2021 00:32:02 +0000 Received: (at 52236) by debbugs.gnu.org; 4 Dec 2021 00:31:52 +0000 Received: from localhost ([127.0.0.1]:52455 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mtIxu-00028r-Qx for submit@debbugs.gnu.org; Fri, 03 Dec 2021 19:31:52 -0500 Received: from mail-4317.proton.ch ([185.70.43.17]:54436) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mtIxn-00028V-6D for 52236@debbugs.gnu.org; Fri, 03 Dec 2021 19:31:44 -0500 Date: Sat, 04 Dec 2021 00:31:30 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rixotstudio.cz; s=protonmail2; t=1638577890; bh=lDmabySJbWScGxH209brtGNYZvxYEIUdK+maoda1EeY=; h=Date:To:From:Cc:Reply-To:Subject:Message-ID:In-Reply-To: References:From:To:Cc; b=lfvsNPAVqzL52jHLoIyF1rP6vut8aoQ6nbzcef0Gt3myQAnSHrmc92fWV88ZWdnC8 1EteVK2Z00M1XmgbkzRkOE+Cg00QPv7s+y12VvQJ2t+fS0s0W13zSQOOXVn/CD3/TJ SqTZcSsBkaHD5PXDbQx8RRZujhx6crCtF/Bif207Ro6gUnQCUQwcSG186BKwPd64f3 pv5EX+NYcS9kNyft3GzkJ65XLbtq//Wq++3vmLEvUwhc3T6QA8KePKgi/FClwUGF7I +IXj8PoMnULWWQnSfYhMuQJdlRshRctUpfEgFManzFtrByuCVkjPHI1z6fifTguDXM tJ9MoJXjYxlcA== From: Jacob Hrbek Message-ID: In-Reply-To: References: MIME-Version: 1.0 Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha512; boundary="------3a0deb08cb8ecd414cbcc9ba0ec444e203f2c737c7ac866f92ea90fe7f22f29f"; charset=utf-8 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-guix@gnu.org List-Id: Bug reports for GNU Guix List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Jacob Hrbek Cc: 52236@debbugs.gnu.org Errors-To: bug-guix-bounces+larch=yhetil.org@gnu.org Sender: "bug-Guix" X-Migadu-Flow: FLOW_IN X-Migadu-Country: US ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1638577933; h=from:from:sender:sender:reply-to:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:resent-cc:resent-from:resent-sender: resent-message-id:in-reply-to:in-reply-to:references:references: list-id:list-help:list-unsubscribe:list-subscribe:list-post: dkim-signature; bh=lDmabySJbWScGxH209brtGNYZvxYEIUdK+maoda1EeY=; b=GgTryzoPgm3jZwMCKTCyjye5CjMIEnThhap6mSHgtXKfBTaIV62y3qHa0DA6T37KkELGiX UFoismPdM5Va0xnF/Sigyod44Qx2ZFygMZYYPw42vsNoibFBaGlAj2GGcRIg5FUBZe+1SE WNqpLpmP2CUrk+du/ymGY1YJWIZ7UZEU4enNHyis0P0sqwOMcGUa2uu/pYLSxyHUZyvMqT DoVDgESJ2gUR8yUSivvQxqMwtesckUD7KRTUciBytrcHevUtinYFbbMoq3TcPSly96GXld YS8Do0OKO/Niy7PND7oVCTDke5ZnamZgGmFpUtBUCLGmRAfPuuN+yDWHNv4/Mw== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1638577933; a=rsa-sha256; cv=none; b=aa5GbL+UsX/SeMi8Yaal5Dn43jhY16SjY2gf6sC2Q18NAVuQwvJp2iqiNmrbQjMIbfzSmn LaRAGJ6jClE9c3iNPfR494rT9lFH/rHXlX4ODJiKvolwGGc+iU8cjHAfkT76or9JGb9LpU rWCa2p2+p7OENTHHEExdZN83tdJzQaSUT+l2OsmQyMW/ShGl26RTLfvQ7UsmNI2Qkfc+D3 2Sm7f/bmPIk9mHdx+bUnuDE4HGxCu9rcqiR1Ndd0zTBpDnGrlak3cYjuGwD2xMEosaEtRK kHTL493/gi+/J8X/4DdVPZXubgoOvWGIi2NanN060cOmydKjZjqmIc2PohiukA== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=rixotstudio.cz header.s=protonmail2 header.b=lfvsNPAV; dmarc=fail reason="SPF not aligned (relaxed)" header.from=rixotstudio.cz (policy=none); spf=pass (aspmx1.migadu.com: domain of "bug-guix-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="bug-guix-bounces+larch=yhetil.org@gnu.org" X-Migadu-Spam-Score: -3.83 Authentication-Results: aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=rixotstudio.cz header.s=protonmail2 header.b=lfvsNPAV; dmarc=fail reason="SPF not aligned (relaxed)" header.from=rixotstudio.cz (policy=none); spf=pass (aspmx1.migadu.com: domain of "bug-guix-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="bug-guix-bounces+larch=yhetil.org@gnu.org" X-Migadu-Queue-Id: 63F2029FC4 X-Spam-Score: -3.83 X-Migadu-Scanner: scn0.migadu.com X-TUID: MEWUYT1/pxpZ This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --------3a0deb08cb8ecd414cbcc9ba0ec444e203f2c737c7ac866f92ea90fe7f22f29f Content-Type: multipart/mixed;boundary=---------------------42064ffcb77c700b54c111ade322de27 -----------------------42064ffcb77c700b54c111ade322de27 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain;charset=utf-8 > These things might be useful, but wouldn't IceCat's mailing lists be mor= e appropriate for suggesting different configuration defaults? (See https:= //www.gnu.org/software/gnuzilla/ for the mailing lists of IceCat and other= GNUzilla software.) -- Devos Yes there should be more effort done incecat, but I also see it being impo= rtant integrated in guix for reasons below. Be it icecat should only provide sane defaults for further configuration. > I don't think guix home is necessary for this, wouldn't some kind of par= ametrised packages be sufficient? E.g., something like -- Devos arkenfox is a **TEMPLATE** we can't just paste it in userland and expect p= eak security instead we should process the template and integrate the conf= iguration in parametrisation with cherrypicked defaults to **generate** th= e user.js and enable the user to configure it from config.scm or alike. > The Tor project advised against using anything but their Tor Browser, to= avoid fingerprinting. -- Devos DISCLAIMER: This is from my personal and unqualified research, the informa= tion provided should be discussed with a qualified professional and you sh= ould **ALWAYS** decide for yourself in relation to your threat model. To provide context: Browser fingerprinting works by either using: - Javascript which functions are used to provide unique data -> Mitigation= is disabling fingerprint or utilizing NoScript-like functionality to disa= ble specific javascript functions and making libreJS less useless. - WebGL which provides unique data about user's hardware -> Mitigation is = to disable WebGL which iceCat already does and we could also make icecat t= o run in a Virtual Machine (VM) like Xen's paravirtualization to provide t= he common VM values for reported hardware - CSS which uses exfil to pass malicious payload which can be mitigated th= rough upstream and by using functionality alike https://addons.mozilla.org= /en-US/firefox/addon/css-exfil-protection - Link tracking to pass unique identifiers in the URLs which can be mitiga= ted by removing those e.g. using ClearURL-like functionality Among other things that we can do to adapt more mitigations: - Reducing the dependency on bigtech solutions by using invidious, nitter,= libreddit, wikiless, etc.. - Containerization of tabs so that cross-side cookies can't reach across t= abs and using one tab per website. - Removing all stored data including cookies, history, etc.. on restart wi= thout the ability to restore the session. - Using uBlock origin to block ads and trackers That's bare minimum in terms of configuration that we should definitively = expand on over time, now in terms of randomization of the fingerprint: - Adapting random user-agent which seems to be the most common way of trac= king users = - Letterboxing and use of floating windows to randomize the reported windo= w lenght and width - and various randomization of values in user.js on runtime since the file= is JS and we can use JS to do that there. - Onion-routing to randomize the IP where currently we should only use tor= project's implementation as lokinet didn't yet pass independent security r= eview to my knowledge.. once it does we should randomly change the onion-r= outing implementation and if there is a VPN provider that provides a trans= parent deployment with verifiable configuration to not keep any logs then = we can also randomize the IP with that, but i wouldn't trust my payload to= any VPN provider. So to summarize we need to: 1. sanitize javascript and it's functions used across websites 2. Randomize user.js values 3. Cookies management 4. WebGL management 5. CSS mitigations 6. Be progressive on new things Now in terms of a threat model if you are a journalist, political activist= or any person who's leak of data can be life threatening then you are les= s likely to be put in such situation on TBB, but even on TBB there are way= s that are unknown to us that can be used to track invidual tor users such= as https://thehackernews.com/2021/11/researchers-demonstrate-new.html and= there are companies investing $$$$$+ in new ways to track users through b= rowser fingerprinting such as https://fingerprintjs.com where new ways are= constantly showing up. For those reasons on a theoretical bases if we can make randomized fingerp= rinting then we can basically deprecated TBB, but practically both of thes= e solutions are flawed and will be flawed as long as we keep updating fire= fox/icecat to expose new issues during development where it is unreasonabl= e to just stop development as that might expose the software to more issue= s over time. So this solution is mostly for power-users and regular users = with relaxed threat model or for high-profile targets who prefer to have m= ore control over their browser. Meaning layering defences for specific known issues (my proposal) vs relyi= ng on one huge wall (TBB). And on top of this arkenfox provides a huge amount of tests that we should= integrate to enforce out solution. NOTE: For those reasons minimal browsers such as nyxt and surf have the po= tential 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. > Geolocation is disabled by default in IceCat. When you say that "it's p= inging google servers currently", have you observed this in its default co= nfiguration, or did you enable Geolocation? -- Weaver I use custom configuration so I was not aware of that being default, but e= ven 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 a= s compromised and layer defences so in this example: Even if geolocation is disabled we can't afford treating the value in pref= s.js as not a concern and just keep google there we have to treat it as co= mpromised 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 moz= illa allegedly (preferably if GNUzilla made their own geolocating thing). I know that this might sound too paranoid, but due to the amount of new vu= lnerabilities in browsers (Like hell they can even use CSS now to track pe= ople! on top of AI used to find new vulnerabilities which is allegedly wha= t Facebook is doing) i believe that it's reasonable way of looking at it. > Your use of the word "Actual" above seems to suggest that the IceCat pro= ject aims to disable WebRTC. I'm not aware of any such decision by the Ic= eCat project. -- Weaver I was told by FSF representative that icecat's compilation does not includ= e support for WebRTC by default when i was invitted on the associate membe= r meetup so i was basing that opinion on that. 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 outcom= piled like that due to it being reasonably new technology which seems to b= e the common reason to do such thing. > -- 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 t= o be used for implementation where my initial idea was wiki? So that the e= nd-user can just search the value and find all the relevant information to= make the decision for their threat model. > Please see Maxime's comments on this, which I agree with. I'm sorry to = say that I don't see a way for IceCat users to hide that they are probably= using IceCat. -- Weaver On top of what was provided I highlight the importance of making icecat se= em as firefox to the web e.g. by using firefox useragent instead of icecat= as icecat has significantly more unique fingerprint to firefox if it's be= ing treated as a it's own separate thing. + the randomization of the finge= rprint. --- NOTE: I would also argue for icecat to just have disabled settings page wi= th 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 extensi= on altering the config. -- Jacob "Kreyren" Hrbek Sent with ProtonMail Secure Email. =E2=80=90=E2=80=90=E2=80=90=E2=80=90=E2=80=90=E2=80=90=E2=80=90 Original M= essage =E2=80=90=E2=80=90=E2=80=90=E2=80=90=E2=80=90=E2=80=90=E2=80=90 On Thursday, December 2nd, 2021 at 3:50 PM, Maxime Devos wrote: > Jacob Hrbek schreef op do 02-12-2021 om 03:58 [+0000]: > = > > Arkenfox https://github.com/arkenfox/user.js is a community > > = > > maintained user.js file used for browser hardening. > > = > > Proposing to implement it's configuration in GNU Guix's IceCat > > = > > mainly: [...] > = > These things might be useful, but wouldn't IceCat's mailing lists be > = > more appropriate for suggesting different configuration defaults? > = > (See https://www.gnu.org/software/gnuzilla/ for the mailing lists of > = > IceCat and other GNUzilla software.) > = > > Additional configuration should be defined in guix-home with sane > > = > > default [...] > = > I don't think guix home is necessary for this, wouldn't some kind of > = > parametrised packages be sufficient? E.g., something like: > = > (packages->manifest > = > ;; This creates a wrapper around ticecat instructing the firefox > = > ;; derivative to use the supplied user.js instead of wherever firefox > = > ;; normally goes looking for things. (I don't know how to do that, > = > ;; but should be possible?) > = > (icecat-with-configuration ; (defined in gnu packages gnuzilla) > = > #:user.js arkenfox ; defined in (gnu packages gnuzilla) > = > #:package the-base-icecat-package)) ; by default icecat, but any > = > firefox derivative will do > = > emacs other-packages ...) > = > That could be useful for both "guix shell --manifest=3Dmanifest.scm" and > = > guix home users. > = > > [...] so that the browser can be a sufficient replacement for Tor > > = > > Browser Bundle. > = > The Tor project advised against using anything but their Tor Browser, > = > to avoid fingerprinting. It also advised against customisation, for the > = > same reasons. I cannot find the web page explaining the details, but > = > https://support.torproject.org/tbb/tbb-14/ comes close. Tor makes > = > modifications to the browser, so simply modifying some settings isn't > = > sufficient. > = > Also, from the arkenfox/user.js README: > = > =E2=80=98Note that we do not recommend connecting over Tor on Firefox. U= se the > = > Tor Browser if your threat model calls for it, or for accessing hidden > = > services.=E2=80=99 > = > Greetings, > = > Maxime. -----------------------42064ffcb77c700b54c111ade322de27 Content-Type: application/pgp-keys; filename="publickey - kreyren@rixotstudio.cz - 0x1677DB82.asc"; name="publickey - kreyren@rixotstudio.cz - 0x1677DB82.asc" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="publickey - kreyren@rixotstudio.cz - 0x1677DB82.asc"; name="publickey - kreyren@rixotstudio.cz - 0x1677DB82.asc" LS0tLS1CRUdJTiBQR1AgUFVCTElDIEtFWSBCTE9DSy0tLS0tDQpWZXJzaW9uOiBPcGVuUEdQLmpz IHY0LjEwLjEwDQpDb21tZW50OiBodHRwczovL29wZW5wZ3Bqcy5vcmcNCg0KeGpNRVlBbDNGaFlK S3dZQkJBSGFSdzhCQVFkQVFLQXBtZFI4dEc5YUtFZHh3SEovWktPMkN2Wk1SV1B0DQpCTk5HcUpV aHAyTE5MMnR5WlhseVpXNUFjbWw0YjNSemRIVmthVzh1WTNvZ1BHdHlaWGx5Wlc1QWNtbDQNCmIz UnpkSFZrYVc4dVkzbyt3bzhFRUJZS0FDQUZBbUFKZHhZR0N3a0hDQU1DQkJVSUNnSUVGZ0lCQUFJ Wg0KQVFJYkF3SWVBUUFoQ1JDdDAzMFVxMEw4cVJZaEJCWjMyNEtUaktobGM0RWpCNjNUZlJTclF2 eXA1N1FBDQovMHRsYmRuQ0l6cmVLWG12VzJYU1lYekFKb3RKZHhDekUrWEFUTStxUERLekFRQ2Ni SHA3eXc2K0FybmcNCmVTdEdGbi9vbGh4VFBkcHU2NDFDTEdpZ1BtRW9CYzQ0QkdBSmR4WVNDaXNH QVFRQmwxVUJCUUVCQjBEYQ0KaUkzalFmU29pM0RaNC9OZm14R2RzUnN2OS9CcU1nVzVqNmpkQnFr eUlBTUJDQWZDZUFRWUZnZ0FDUVVDDQpZQWwzRmdJYkRBQWhDUkN0MDMwVXEwTDhxUlloQkJaMzI0 S1RqS2hsYzRFakI2M1RmUlNyUXZ5cEhjRUINCkFPUXhTL0ovVU0wZWU4azJqYmxpV2QvUTBJZCtY OFVIQlhoeXFWUmMyMnFyQVFETEhjVzk3V1FiU0pGbw0KMTlrd3Q3ME95SGVwRjZMV3BERDBQdUlT WkQ2SUNnPT0NCj05a1pnDQotLS0tLUVORCBQR1AgUFVCTElDIEtFWSBCTE9DSy0tLS0tDQo= -----------------------42064ffcb77c700b54c111ade322de27-- --------3a0deb08cb8ecd414cbcc9ba0ec444e203f2c737c7ac866f92ea90fe7f22f29f Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: ProtonMail wnUEARYKAAYFAmGqttQAIQkQrdN9FKtC/KkWIQQWd9uCk4yoZXOBIwet030U q0L8qXgSAP0Zqs2q0NS9qXisfRA4CRa6LapLsPUGzoayziex+CGxmAEAuTzU izzKKjqPRN/favVqGe/AhGLoz7AuU0/HuxnkdAc= =k7oG -----END PGP SIGNATURE----- --------3a0deb08cb8ecd414cbcc9ba0ec444e203f2c737c7ac866f92ea90fe7f22f29f--