Live data from Hacker News

Apple Change Causes Scramble Among Private Messaging App Makers

theinformation.com

31–40 of 110 posts

Re: Apple Change Causes Scramble Among Private Messaging App Makers

#31
Note that the intended replacement API has been available for three years:

https://developer.apple.com/documentation/usernotifications/...

According to Moxie, it does have a downside. Notifications must be marked as either displaying an alert or as silent. Silent notifications are invisible to the user, but can be read by the app; Signal uses them for things like typing indicators and read receipts. With the new API, if a notification is marked as displaying an alert, the notification extension gets a chance to modify (i.e. decrypt) the content, but the end result must be an alert of some sort. If it’s marked as silent, the notification extension doesn’t run at all: after all, the data isn’t used for anything until the app asks for it, which can only happen if the app is actively running, so the app can just handle decryption itself. And if notification extensions were allowed to trigger on silent notifications, app developers could send meaningless notifications to keep their apps running in the background without the user’s awareness – the same issue Apple is trying to address by cracking down on PushKit.

The problem is that the flag for whether a notification is silent or not is visible to Apple’s server, whereas Signal wants to keep even that one bit of information hidden behind its end-to-end encryption.

https://twitter.com/moxie/status/1159127482143875072

Re: Apple Change Causes Scramble Among Private Messaging App Makers

#32

This article is terrible. The change mentioned in the headline isn't explained until the fifth paragraph and beyond. > Apple’s change involves an API called PushKit, which was originally designed to be used in apps that let people make online phone calls using voice over internet protocol. .... Over time, many apps began using the tool for purposes other than Internet phone calls, including encrypted messaging apps t…

Came here to say the same thing. Even this description is _really_ light on details.

I'd love to see a technical breakdown of this problem. iOS 13 has a background task API - why can't that be used?

Incoming notifications can trigger application code to run - why can't that method be used?

Re: Apple Change Causes Scramble Among Private Messaging App Makers

#33
post #17

It's pretty weird how the article doesn't even bother to mention that Apple has an official API for doing encrypted notifications, and I really have no idea why these apps are abusing the VOIP stuff instead of using the actual encrypted notification feature. The article quotes someone as claiming APNS isn't reliable, but with zero evidence, and it seems pretty darn reliable for all of the non-encrypted apps using it.

From PushKit's documentation:

PushKit notifications also have the following advantages over user notifications:

- The device wakes only when it receives a PushKit notification, which can improve battery life.

- Upon receiving a PushKit notification, the system automatically launches your app if it isn't running. By contrast, user notifications aren't guaranteed to launch your app.

- The system gives your app execution time (potentially in the background) to process PushKit notifications.

- PushKit notifications can include more data than user notifications.

Sounds like PushKit notifications are treated like a full app launch, which gives your code access to APIs which regular push notifications don't give you (trivial example being location) https://developer.apple.com/documentation/pushkit?language=o...

Re: Apple Change Causes Scramble Among Private Messaging App Makers

#34

My wife and I use Life360 every day for giving us notifications whenever we leave work, arrive at home, arrive at our kid's school, etc. We use these tracking notifications for all sorts of things. For example, my wife won't start prepping dinner until she gets the notification that I've left work. I will be very annoyed if Apple's changes break tools like Life360. I opted into the tracking for a reason. I don't need…

What does Life360 provide that Apple's own 'Find My Friends' app does not? That's what my partner and I use to track locations.

Android cross compatibility is the only real feature I can think of.

Re: Apple Change Causes Scramble Among Private Messaging App Makers

#35
This article doesn't quite explain what's going on as much as I would like, so maybe I can add some more detail.

The key problem from an app developer's point of view is that the iOS push notification API doesn't just let a server send an encrypted blob of data to a user's app, and have the app handle it locally, deciding whether it needs to display a notification to the user.

What the iOS push notification API does let you do is send an encrypted notification to a user's app, and then if the user is going to see this notification, have the app locally intercept that, and decide what exactly to display. So for an encrypted messaging service, you can send the encrypted message, and have the app locally decrypt it.

The difference is that the push notification API doesn't let you send push notification data that won't be visible to the end user. So to use this API, your server needs to know that a user just received a message. It can't send out something like an encrypted blob that could be a received-message or could be a different sort of encrypted message like a read receipt, and let the app decide locally. This isn't optimal for a private messaging app - ideally the server wouldn't have to be able to distinguish your received messages from other metadata. This is similar to phone call metadata leaking, where even if someone can't eavesdrop on the content of your phone calls, you still don't want them knowing precisely when you made a phone call.

So one weird thing about iOS is that the VOIP APIs did give you ways to silently send an encrypted blob of data from a server to an app. This functionality would be logical in the push notification API, but the push notification API didn't support it and the VOIP API did, so developers started using the VOIP API for it.

It makes sense that Apple wouldn't want the VOIP API used in this way. But secure messaging apps have a legitimate reason to silently transfer encrypted data from server to application. Making this impossible will weaken the privacy that apps like Signal can offer, not improve it, because Signal will have to know a little bit more about your messaging behavior in order to send you push notifications.

Re: Apple Change Causes Scramble Among Private Messaging App Makers

#36

My wife and I use Life360 every day for giving us notifications whenever we leave work, arrive at home, arrive at our kid's school, etc. We use these tracking notifications for all sorts of things. For example, my wife won't start prepping dinner until she gets the notification that I've left work. I will be very annoyed if Apple's changes break tools like Life360. I opted into the tracking for a reason. I don't need…

[deleted]

Re: Apple Change Causes Scramble Among Private Messaging App Makers

#37
post #17

It's pretty weird how the article doesn't even bother to mention that Apple has an official API for doing encrypted notifications, and I really have no idea why these apps are abusing the VOIP stuff instead of using the actual encrypted notification feature. The article quotes someone as claiming APNS isn't reliable, but with zero evidence, and it seems pretty darn reliable for all of the non-encrypted apps using it.

In Apple's API you can send an encrypted message and have the app decrypt it. But you can't send an encrypted blob of data and have the app decide whether that blob of data was a message to be shown to the user, or a different sort of data like a read receipt. So the server needs to be able to differentiate the types of data packets sent from user to user, in order to use Apple's notification API, which is less private.

Re: Apple Change Causes Scramble Among Private Messaging App Makers

#38
post #3

It seems like a user side configurable app permission such as "allow this application to use PushKit for non VOIP related functions" would take care of this without breaking functionality. However if the author of this article is correct it seems like this is more a jab at Facebook messenger than anything.

"allow this application to use PushKit for non VOIP related functions" The number of users who would understand that phrase and find it useful in making a decision is roughly .000000001%. Maybe.

Nitpick: I'd think it's significantly more than that, not because the number of users is large, but because .000000001% is mindbogglingly small. Remove a few zeros!

Re: Apple Change Causes Scramble Among Private Messaging App Makers

#39

My wife and I use Life360 every day for giving us notifications whenever we leave work, arrive at home, arrive at our kid's school, etc. We use these tracking notifications for all sorts of things. For example, my wife won't start prepping dinner until she gets the notification that I've left work. I will be very annoyed if Apple's changes break tools like Life360. I opted into the tracking for a reason. I don't need…

What does Life360 provide that Apple's own 'Find My Friends' app does not? That's what my partner and I use to track locations.

Find My Friends rarely works reliably for me. It regularly says the person can't be located, while if I use services like WhatsApp this never happens. It's also way slow, I've tried meeting people while we were both on the move and missed them because the update rate was too slow. I don't use Life360, but Find My Friends hasn't worked for me for a long time.

Re: Apple Change Causes Scramble Among Private Messaging App Makers

#40

This article is terrible. The change mentioned in the headline isn't explained until the fifth paragraph and beyond. > Apple’s change involves an API called PushKit, which was originally designed to be used in apps that let people make online phone calls using voice over internet protocol. .... Over time, many apps began using the tool for purposes other than Internet phone calls, including encrypted messaging apps t…

Came here to say the same thing. Even this description is _really_ light on details. I'd love to see a technical breakdown of this problem. iOS 13 has a background task API - why can't that be used? Incoming notifications can trigger application code to run - why can't that method be used?

iOS 13 has a background task API - why can't that be used?

The iOS 13 background task API limits your background tasks to a few minutes. So, they're useful for short batch tasks you don't want to interrupt when the app closes, like cleaning up a database. They aren't so useful for listening for a notification that could come after hours of inactivity.

Incoming notifications can trigger application code to run - why can't that method be used?

This is probably what apps will do in response to the rule changes. It isn't ideal, though. Incoming notifications can trigger application code to run, but only for notifications that include a visible display to the user. This means that a server has to differentiate between different types of data on their network, like knowing the difference between a new user message and a read receipt. It is not ideal for privacy to expose that information to the server.

So, this isn't the end of the world, but it will hurt the privacy model of non-iMessage private messaging apps.

Post reply on HN