Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Networking Options for Google Push Notifications #2112

Open
ssoufi-code opened this issue Dec 8, 2023 · 3 comments
Open

Add Networking Options for Google Push Notifications #2112

ssoufi-code opened this issue Dec 8, 2023 · 3 comments

Comments

@ssoufi-code
Copy link

ssoufi-code commented Dec 8, 2023

It has recently come to light that governments use Google Push Notifications to surveil users. Given privacy focused like Calyx OS, this could be a problem for some users. Given this, I think it would be useful to give the option to users to hide their IP addresses.

A new firebase setting page could allow custom networking settings. There, a user could input a HTTPS proxy server to be inputted. All push notifications are received through an HTTPS proxy. This could reduce the information sent to Google, and make it harder for Governments to identify one person from another. Unlike TOR or VPNs, there is no difficult protocols to implement or concerns about breaking Android;s security model.The battery impact would be negligible. Although there may be a small half a second delay before a push notification will come in. But unlike TOR or VPNs, a network operator could detect the presence of a proxy and infer some information about the request. This could be mitigated with Private DNS but not completely. Another issue is if the proxy is down there needs to be some way of communicating that to the user.

@ssoufi-code ssoufi-code changed the title Add Networking Options for Firebase Push Notifications Add Networking Options for Google Push Notifications Dec 8, 2023
@mar-v-in
Copy link
Member

While I generally like the idea of proxying push notifications to hide IP addresses from Google, I don't think just allowing to enter an https proxy will make it an option that is very usable to endusers.

  • We would probably need to also implement proxy authentication, because nobody wants to host a public open proxy
  • The proxy would need to be configured appropriately. Most proxies probably default to not allow long-lasting connections as they are needed for push notifications.

My idea to allow push notifications while hiding IP addresses from Google is to create a server software that connects to FCM for the user and pushes the received notifications to a UnifiedPush distributor server. The user would then configure a UnifiedPush distributor of their choice on their device and allow microG to receive notifications from the server through this service. This would allow to hide the IP address while at the same time making sure that an entirely Google-free push service (via UnifiedPush) is also available. Custom ROMs like CalyxOS or /e/OS could integrate and preconfigure a UnifiedPush distributor as part of their OS or users configure any of the available UnifiedPush distributors themselves.

@ssoufi-code
Copy link
Author

ssoufi-code commented Dec 11, 2023

I actually agree, with this approach. I still think it is a good idea to allow an option to allow a 3rd party complaint proxy service. Maybe there could be a handshake or some other verification method to verify basic functionality and security. I am thinking something like the UX of Private DNS in Android. Either way, for this to work major players in this place like CalyxOS or /e/OS or even VPN providers like Mullvad should be in this discussion for it to go anywhere.

@t-m-w
Copy link
Contributor

t-m-w commented Dec 11, 2023

This sounds very interesting for sure! I also wanted to mention that #173 is a similar issue that is still open and might be a simpler option / stepping-stone.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants