Instant message delivery and Push Notifications
From the Delta Chat FAQ.
Instant message delivery and Push Notifications
What are Push Notifications? How can I get instant message delivery?
Push Notifications are sent by Apple and Google “Push services” to a user’s device so that an inactive Delta Chat app can fetch messages in the background and show notifications on a user’s phone if needed.
Push Notifications work with all chatmail servers on
-
iOS devices, by integrating with Apple Push services.
-
Android devices, by integrating with the Google FCM Push service, including on devices that use
microGinstead of proprietary Google code on the phone.
Are Push Notifications enabled on iOS devices? Is there an alternative?
Yes, Delta Chat automatically uses Push Notifications for chatmail profiles.
And no, there is no alternative on Apple’s phones to achieve instant message delivery
because Apple devices do not allow Delta Chat to fetch data in the background.
Push notifications are automatically activated for iOS users because
Delta Chat’s privacy-preserving Push Notification system
does not expose data to Apple that it doesn’t already have.
Are Push notifications enabled / needed on Android devices?
If a “Push Service” is available, Delta Chat enables Push Notifications to achieve instant message delivery for all chatmail users.
In the Delta Chat “Notifications” settings for “Instant delivery” you can change the following settings effecting all chat profiles:
-
Use Background Connection: If you are not using a Push service, you may disable “battery optimizations” for Delta Chat, allowing it to fetch messages in the background. However, there could be delays from minutes to hours. Some Android vendors even restrict apps completely (see
dontkillmyapp.com) and Delta Chat might not show incoming messages until you manually open the app again. -
Force Background Connection: This is the fallback option if the previous options are not available or do not achieve “instant delivery”. Enabling it causes a permanent notification on your phone which may sometimes be “minified” with recent Android phones.
Both “Background Connection” options are energy-efficient and safe to try if you experience messages arrive only with long delays.
How private are Delta Chat Push Notifications?
Delta Chat Push Notification support avoids leakage of private information. It does not leak profile data, IP address or message content (not even encrypted) to any system involved in the delivery of Push Notifications.
Here is how Delta Chat apps perform Push Notification delivery:
-
A Delta Chat app obtains a “device token” locally, encrypts it and stores it on the
chatmailserver. -
When a
chatmailserver receives a message for a Delta Chat user it forwards the encrypted device token to the central Delta Chat notification proxy. -
The central Delta Chat notification proxy decrypts the device token and forwards it to the respective Push service (Apple, Google, etc.), without ever knowing the IP or profile data of Delta Chat users.
-
The central Push Service (Apple, Google, etc.) wakes up the Delta Chat app on your device to check for new messages in the background. It does not know about the profile data of the device it wakes up. The central Apple/Google Push services never see any profile data (sender or receiver) and also never see any message content (also not in encrypted forms).
The central Delta Chat notification proxy is small and fully implemented in Rust
and forgets about device-tokens as soon as Apple/Google/etc processed them,
usually in a matter of milliseconds.
Note that the device token is encrypted between apps and notification proxy but it is not signed. The notification proxy thus never sees profile data, IP-addresses or any cryptographic identity information associated with a user’s device (token).
Resulting from this overall privacy design, even the seizure of a chatmail server, or the full seizure of the central Delta Chat notification proxy would not reveal private information that Push services do not already have.
Why does Delta Chat integrate with centralized proprietary Apple/Google push services?
Delta Chat is a free and open source decentralized messenger with free server choice, but we want users to reliably experience “instant delivery” of messages, like they experience from WhatsApp, Signal or Telegram apps, without asking questions up-front that are more suited to expert users or developers.
Note that Delta Chat has a small and privacy-preserving Push Notification system
that achieves “instant delivery” of messages for all chatmail servers
including a potential one you might setup yourself without our permission.
Welcome to the power of the interoperable chatmail relay network :)