this post was submitted on 04 Nov 2024
40 points (100.0% liked)

Privacy

31975 readers
492 users here now

A place to discuss privacy and freedom in the digital world.

Privacy has become a very important issue in modern society, with companies and governments constantly abusing their power, more and more people are waking up to the importance of digital privacy.

In this community everyone is welcome to post links and discuss topics related to privacy.

Some Rules

Related communities

Chat rooms

much thanks to @gary_host_laptop for the logo design :)

founded 5 years ago
MODERATORS
 

By "push server" I mean something like Ntfy.sh.


Cross-posts

top 14 comments
sorted by: hot top controversial new old
[–] dessalines@lemmy.ml 13 points 1 week ago* (last edited 1 week ago)

Yes, I believe all the messages are in plain text, and it's up to the server not to log it.

It is possible to e2ee the message content yourself tho.

Edit: it looks like ntfy.sh specifically keeps messages cached in memory for a few hours befor discarding them. https://docs.ntfy.sh/config/

[–] nutbutter@discuss.tchncs.de 6 points 1 week ago (1 children)

Yes, they can read the data. But apps like Molly (Signal Fork) send encrypted notifications. So, the time and some other metadata may be read by the server, but the content and contact won't be visible in plain text.

[–] dracs@programming.dev 5 points 1 week ago* (last edited 1 week ago) (1 children)

For Signal/Molly, it's less that the notification is encrypted as I understand it. It's more the notification content is just "Hey! Stuff happened" for Signal. The app then reaches out directly to the Signal servers to see what's new. So the message content is never sent via the push notification service (UnifiedPush or Google's service).

[–] nutbutter@discuss.tchncs.de 3 points 1 week ago (1 children)

Oh yes. Like, I selfhost both, ntfy and MollySocket. I am sure MollySocket does encrypt the data.

[–] dracs@programming.dev 2 points 1 week ago (1 children)

I'm self hosting both too. MollySocket's docs are pretty clear that it never gets an encryption key for your account, so it can't read your messages. It only gets/forwards alerts that something happened on your account AFAIK. So I'm not sure what data it has that's worth encrypting.

[–] nutbutter@discuss.tchncs.de 1 points 1 week ago (1 children)

Then why do have to use both, a unified push server and a mollysocket, if both are doing the exact same thing?

[–] dracs@programming.dev 1 points 1 week ago

The UnifiedPush server is intended to be a single source your phone can keep a persistent connection open to, rather than needing a connection per service/app (this is how Google's Firebase notifications work too).

As Signal doesn't support UnifiedPush, MollySocket keeps a permanent connection open to Signal's servers to listen for new activity and forward them to your UnifiedPush server. This saves your phone keeping a permanent connection open to Signal's servers and draining your mobile battery more.

[–] rcbrk@lemmy.ml 3 points 1 week ago

I think a lot of comments have missed that ntfy.sh does not use UnifiedPush, the ntfy server is a UnifiedPush provider and the ntfy app is a UnifiedPush distributor.

[–] umami_wasbi@lemmy.ml 3 points 1 week ago* (last edited 1 week ago)

I never used it, but I would assume yes after reading the frontpage and the doc. At no point there is a PSK set between sender and reciever, not I see any signs for key exchange between devices.

This is not a definitive answer though as I didn't read the source code of Nfty, nor the UnifiedPush spec.

[–] toastal@lemmy.ml 2 points 1 week ago (1 children)

I still want to know if MQTT already did this & UnifiedPush is just a startup trying to reimplement the same concept

[–] kevincox@lemmy.ml 2 points 1 week ago (1 children)

IMHO UnifiedPush is just a poor re-implementation of WebPush which is an open and distributed standard that supports (and in the browser requires, so support is universal) E2EE.

UnifiedPush would be better as a framework for WebPush providers and a client API. But use the same protocol and backends as WebPush (as how to get a WebPush endpoint is defined as a JS API in browsers, would would need to be adapted).

[–] toastal@lemmy.ml 1 points 1 week ago (1 children)

Sounds like you need a browser tho. UnifiedPush & MQTT work without a browser with WebPush support.

[–] kevincox@lemmy.ml 2 points 1 week ago

There are three parts to the whole push system.

  1. A push protocol. You get a URL and post a message to it. That message is E2EE and gets delivered to the application.
  2. A way to acquire that URL.
  3. A way to respond to those notifications.

My point is that 1 is the core and already available across devices including over Google's push notification system and making custom push servers is very easy. It would make sense to keep that interface, but provide alternatives to 2 and 3. This way browsers can use the JS API for 2 and 3, but other apps can use a different API. The push server and the app server can remain identical across browsers, apps and anything else. This provides compatibility with the currently reigning system, the ability to provide tiny shims for people who don't want to self host and still maintains the option to fully self host as desired.

[–] rcbrk@lemmy.ml 1 points 1 week ago

Regarding encryption of the push message, from https://unifiedpush.org/developers/spec/android/ :

Push message: This is an array of bytes (ByteArray) sent by the application server to the push server. The distributor sends this message to the end user application. It MUST be the raw POST data received by the push server (or the rewrite proxy if present). The message MUST be an encrypted content that follows RFC8291. Its size is between 1 and 4096 bytes (inclusive).