FWIW, Ivran this logging by Proton support. They indicate that all notification data is encrypted currently but that they are looking at eliminating the need to use the google apis at all.
Proton apps pinging Google API + sending reports back after opting out
Speeduser7533 its not a good look if you intentionally implement it, but only after it has been exposed to public they attempt to patch things up.
- Edited
Thank you for revealing and discussing this issue in Proton email (and others) apps.
FWIW, I've been quite satisfied using Vanadium to access my various Proton online storage(s), and AFAICT Google is not involved.
Also Vanadium seems the MOST trustworthy and secure (hardening) web app around. Even if Proton modifies its' apps, they won't be as secure as Vanadium. So for me, the question becomes, how badly do I need push notifications?
Don't need them.
Also, the quick-reply business crowd seems to be moving to SMS - which of course has NO privacy - but significant security thanks to GOS auditing and hardening.
(FWIW this same reasoning applies to my banking - I use Vanadium, and not some poorly-written bank app)
Just suggesting that you do not abandon Proton web storage(s). HTH.
- Edited
Unfortunately, I do need notifs for my emails :/
Annoying.
I'm no security guru, so someone who knows better may give this a bad evaluation, I don't know. But, it does work for me:
- Edited
rdns dev here
GlytchMeister definitely interested in a guide... And even more interested in a "RethinkDNS for Dummies" sort of guide.
I put an ad-hoc one on our subreddit: https://www.reddit.com/r/rethinkdns/comments/12ta9zo/configure_app_for_optimal_use/ / mirror: https://archive.is/Krcoh
The gist is, allow only what you trust.
- From Configure -> Firewall -> Universal firewall rules, turn ON
- Block when device is locked
- Block newly installed apps by default
- (if you're feeling particularly adventurous) Block when DNS is bypassed
- Go to Configure -> Apps, then tap on the wifi and mobile icons 🛜📶 to block all apps.
- Search for apps you use (for me, its 7 apps of the over 400 installed), and either Bypass Universal them or Isolate them.
- If you Isolate the app, you'll have to set up trust / allow rules for domains or IPs, over a period of time. Pretty time consuming, but once setup, it works flawlessly.
- Bypass Universal an app named Google Play services, which is usually responsible for Push Notifications / Gaming / Backups / Payments and other such functionalities apps installed from the Play Store depend on, without which they usually don't work.
- Search for apps you use (for me, its 7 apps of the over 400 installed), and either Bypass Universal them or Isolate them.
- From Configure -> DNS, choose or setup your favourite DNS provider. I prefer Oblivious DNS over HTTPS endpoints but there aren't many. You can also leave the default DNS settings as-is; or...
- Turn ON Advanced DNS filtering (which is experimental and may cause connectivity issues), to make sure domain to IP address mapping isn't polluted. For example, when multiple domain names (
youtube.com
,mtalk.google.com
,googleapis.com
) may point to a same set of IP addresses (all owned by Google and hence may be used interchangeably), the Stats and per-app domain rules may behave in funny ways. With Advanced DNS filtering (which has other bugs) will possibly not. - Turn ON Prevent DNS leaks to trap apps sending DNS traffic themselves. This setting may break notifications for some apps.
- Turn ON Never proxy DNS if you face connectivity issues with using your preferred DNS upstream with an egress proxy setup within Rethink (SOCKS5, Tor, or WireGuard).
- Turn ON Advanced DNS filtering (which is experimental and may cause connectivity issues), to make sure domain to IP address mapping isn't polluted. For example, when multiple domain names (
- In Configure -> Network, you may
- Set Choose IP version to Auto and turn ON Perform connectivity checks (if you're on networks that perform 4to6 translations).
- Turn ON Use all available networks, if you'd want Rethink to use either wifi or mobile at the same time. Make sure you've got enough juice on mobile data, as it is usually prohibitively expensive in some countries.
- Leave everything else in there turned OFF, unless you like living dangerously.
- Set Choose IP version to Auto and turn ON Perform connectivity checks (if you're on networks that perform 4to6 translations).
- Optionally setup WireGuard from Configure -> Proxy -> Setup WireGuard, either in Simple mode (single WireGuard, all apps routed through it, unless Bypass app from all proxies is set for that particular app) or Advanced mode (multiple WireGuards, split tunneled, manually choose apps to route through them).
Rethink has grown to be a Frankenstein monster and I get a lot of emails on how difficult it is to use, but someday someone from the community will write one true guide to setup Rethink so I can point everyone to it.
- Edited
ignoramous THANK YOU for putting the time and energy into posting this message! I haven't yet had a chance to read and absorb all that you have given us here - it is tech heavy - but it is clearly an important read even for us who rely upon our VPNs to provide DNS service which filters badware and adware! Thanks Again!
[deleted]
- Edited
Hi! ignoramous Could you please explain the reasoning behind locking local DNS filtering in Advanced proxy mode? My friend recently pointed out that Rethink's advanced proxy mode forces to use an external, non-proxy DNS, which defeats the whole purpose of VPN.
- Edited
I'm confused, are you saying that if we use the proton mail with our graphenos phone google can track us?
OK... So...
Uh.
What stuff can I use alongside the Mullvad App? I don't want to use wireguard and non-mullvad DNS because Mullvad has lockdown and always-on, and using non-mullvad DNS makes my fingerprint more unique.
I really just want to use RDNS to block apps like discord and proton mail from connecting to anything except what they strictly need to connect to in order to function.
Aka, I only want the local, on-device filtering, and I don't know enough about anything to know what is local and what will mess up the Mullvad App.
GlytchMeister don't want to use wireguard and non-mullvad DNS because Mullvad has lockdown and always-on, and using non-mullvad DNS makes my fingerprint more unique.
Lockdown and always on can be done in the system VPN settings. And Mullvad DNS can be added to the wireguard config.
[deleted]
It appears that only the ProtonMail app uses Firebase.
Proton Mail - ProtonMail-4.0.14_9270.apk
Services - ProtonMail-4.0.14_9270.apk
androidx.appcompat.app.AppLocalesMetadataHolderService
ch.protonmail.android.mailnotifications.data.remote.fcm.PMFirebaseMessagingService
com.google.firebase.components.ComponentDiscoveryService
com.google.firebase.messaging.FirebaseMessagingService
androidx.work.impl.background.systemalarm.SystemAlarmService
androidx.work.impl.background.systemjob.SystemJobService
androidx.work.impl.foreground.SystemForegroundService
androidx.room.MultiInstanceInvalidationService
com.google.android.datatransport.runtime.backends.TransportBackendDiscovery
com.google.android.datatransport.runtime.scheduling.jobscheduling.JobInfoSchedulerService
Receivers- ProtonMail-4.0.14_9270.apk
ch.protonmail.android.mailnotifications.data.local.PushNotificationActionsBroadcastReceiver
ch.protonmail.android.mailsettings.presentation.settings.autolock.broadcastreceiver.TimeSetBroadcastReceiver
me.proton.core.notification.presentation.deeplink.DeeplinkBroadcastReceiver
com.google.firebase.iid.FirebaseInstanceIdReceiver
androidx.work.impl.utils.ForceStopRunnable$BroadcastReceiver
androidx.work.impl.background.systemalarm.ConstraintProxy$BatteryChargingProxy
androidx.work.impl.background.systemalarm.ConstraintProxy$BatteryNotLowProxy
androidx.work.impl.background.systemalarm.ConstraintProxy$StorageNotLowProxy
androidx.work.impl.background.systemalarm.ConstraintProxy$NetworkStateProxy
androidx.work.impl.background.systemalarm.RescheduleReceiver
androidx.work.impl.background.systemalarm.ConstraintProxyUpdateReceiver
androidx.work.impl.diagnostics.DiagnosticsReceiver
androidx.profileinstaller.ProfileInstallReceiver
com.google.android.datatransport.runtime.scheduling.jobscheduling.AlarmManagerSchedulerBroadcastReceiver
Providers - ProtonMail-4.0.14_9270.apk
androidx.startup.InitializationProvider
com.google.firebase.provider.FirebaseInitProvider
io.sentry.android.core.SentryPerformanceProvider
leakcanary.internal.PlumberInstaller
####################################
ProtonCalendar-Android.apk
Services - ProtonCalendar-Android.apk
me.proton.android.calendar.CalendarWidgetRemoteViewsService
androidx.work.impl.background.systemalarm.SystemAlarmService
androidx.work.impl.background.systemjob.SystemJobService
androidx.work.impl.foreground.SystemForegroundService
androidx.room.MultiInstanceInvalidationService
com.google.android.gms.auth.api.signin.RevocationBoundService
com.google.android.datatransport.runtime.backends.TransportBackendDiscovery
com.google.android.datatransport.runtime.scheduling.jobscheduling.JobInfoSchedulerService
Receivers - ProtonCalendar-Android.apk
me.proton.android.calendar.ProtonCalendarBroadcastReceiver
me.proton.android.calendar.CalendarWidget
me.proton.core.notification.presentation.deeplink.DeeplinkBroadcastReceiver
androidx.work.impl.utils.ForceStopRunnable$BroadcastReceiver
androidx.work.impl.background.systemalarm.ConstraintProxy$BatteryChargingProxy
androidx.work.impl.background.systemalarm.ConstraintProxy$BatteryNotLowProxy
androidx.work.impl.background.systemalarm.ConstraintProxy$StorageNotLowProxy
androidx.work.impl.background.systemalarm.ConstraintProxy$NetworkStateProxy
androidx.work.impl.background.systemalarm.RescheduleReceiver
androidx.work.impl.background.systemalarm.ConstraintProxyUpdateReceiver
androidx.work.impl.diagnostics.DiagnosticsReceiver
androidx.profileinstaller.ProfileInstallReceiver
com.google.android.datatransport.runtime.scheduling.jobscheduling.AlarmManagerSchedulerBroadcastReceiver
Providers - ProtonCalendar-Android.apk
androidx.startup.InitializationProvider
io.sentry.android.core.SentryPerformanceProvider
################################################
Proton Drive
Services - Proton Drive
androidx.work.impl.background.systemalarm.SystemAlarmService
androidx.work.impl.background.systemjob.SystemJobService
androidx.work.impl.foreground.SystemForegroundService
androidx.room.MultiInstanceInvalidationService
com.google.android.datatransport.runtime.backends.TransportBackendDiscovery
com.google.android.datatransport.runtime.scheduling.jobscheduling.JobInfoSchedulerService
Receivers - Proton Drive
me.proton.android.drive.receiver.NotificationBroadcastReceiver
me.proton.core.notification.presentation.deeplink.DeeplinkBroadcastReceiver
androidx.work.impl.utils.ForceStopRunnable$BroadcastReceiver
androidx.work.impl.background.systemalarm.ConstraintProxy$BatteryChargingProxy
androidx.work.impl.background.systemalarm.ConstraintProxy$BatteryNotLowProxy
androidx.work.impl.background.systemalarm.ConstraintProxy$StorageNotLowProxy
androidx.work.impl.background.systemalarm.ConstraintProxy$NetworkStateProxy
androidx.work.impl.background.systemalarm.RescheduleReceiver
androidx.work.impl.background.systemalarm.ConstraintProxyUpdateReceiver
androidx.work.impl.diagnostics.DiagnosticsReceiver
androidx.profileinstaller.ProfileInstallReceiver
com.google.android.datatransport.runtime.scheduling.jobscheduling.AlarmManagerSchedulerBroadcastReceiver
Providers - Proton Drive
androidx.startup.InitializationProvider
androidx.core.content.FileProvider
me.proton.core.drive.documentsprovider.data.DriveDocumentsProvider
me.proton.core.drive.documentsprovider.data.DriveFileProvider
io.sentry.android.core.SentryInitProvider
io.sentry.android.core.SentryPerformanceProvider
leakcanary.internal.PlumberInstaller
####################################
Proton VPN - ProtonVPN-5.3.93.0.apk
Services - ProtonVPN-5.3.93.0.apk
com.protonvpn.android.vpn.wireguard.WireguardWrapperService
com.protonvpn.android.vpn.openvpn.OpenVPNWrapperService
com.wireguard.android.backend.GoBackend$VpnService
com.protonvpn.android.components.QuickTileService
com.protonvpn.android.ui.settings.AppInfoService
androidx.work.impl.background.systemalarm.SystemAlarmService
androidx.work.impl.background.systemjob.SystemJobService
androidx.work.impl.foreground.SystemForegroundService
androidx.room.MultiInstanceInvalidationService
Receivers - ProtonVPN-5.3.93.0.apk
com.protonvpn.android.OnUpdateReceiver
com.protonvpn.android.notifications.NotificationActionReceiver
com.protonvpn.android.quicktile.QuickTileActionReceiver
me.proton.core.notification.presentation.deeplink.DeeplinkBroadcastReceiver
androidx.work.impl.utils.ForceStopRunnable$BroadcastReceiver
androidx.work.impl.background.systemalarm.ConstraintProxy$BatteryChargingProxy
androidx.work.impl.background.systemalarm.ConstraintProxy$BatteryNotLowProxy
androidx.work.impl.background.systemalarm.ConstraintProxy$StorageNotLowProxy
androidx.work.impl.background.systemalarm.ConstraintProxy$NetworkStateProxy
androidx.work.impl.background.systemalarm.RescheduleReceiver
androidx.work.impl.background.systemalarm.ConstraintProxyUpdateReceiver
androidx.work.impl.diagnostics.DiagnosticsReceiver
androidx.profileinstaller.ProfileInstallReceiver
Providers - ProtonVPN-5.3.93.0.apk
androidx.core.content.FileProvider
androidx.startup.InitializationProvider
io.sentry.android.core.SentryPerformanceProvider
################################################
[deleted]
Is Proton notification data end-to-end encrypted or only point-to-point encrypted?
Reference: https://firebase.google.com/docs/cloud-messaging/concept-options#encryption_for_data_messages
[deleted] I believe e2e
https://proton.me/blog/proton-vs-tuta-encryption
This is specifically referring to the calendar app, but I doubt its any different with email. Worth double checking.
[deleted]
The calendar app does not appear to use Firebase.
[deleted] Neither does Drive but both Calendar and Drive have google mentions in the lists kindly provided by CyberAU above. Are they somehow different than Firebase?
[deleted]
Firebase Cloud Messaging (FCM) - "Using FCM, you can notify a client app that new email or other data is available to sync." Reference: https://firebase.google.com/docs/cloud-messaging/
If Proton email notifications are only point-to-point encrypted, I suspect it would be possible for Google to read the content of the notifications. Thus my previous question:
Is Proton notification data end-to-end encrypted or only point-to-point encrypted?
newbie24689 For now, I am happy to uninstall the Mail and Drive apps and revert to using Vanadium (which I also have used when I need to access my bank). I never used Proton notifications and have no Google services installed so this is disappointing to find that Proton have this in their apps. If they are good to their word and remove this in the future, I shall reinstall them. I suppose that I am fortunate in that I find that convenience is a luxury rather then a necessity in my life.
[deleted]
Proton Web App URL's
Proton Mail
https://account.proton.me/mail
Proton Calendar
https://account.proton.me/calendar
Proton Drive
https://account.proton.me/drive
Proton Pass
https://pass.proton.me/