3 ms·
This was a bug that left it cached on the device. Apple and Google have put themselves in the middle of most notifications, causing the contents to pass throug
by dlcarrier 6mo ago
This was a bug that left it cached on the device. Apple and Google have put themselves in the middle of most notifications, causing the contents to pass through their servers, which means that they are subject to all the standard warrantless wiretapping directly from governments, as well as third-party attacks on the infrastructure in place to support that monitoring.
If you don't want end-to-end messages made available to others, set your notifications to only show that you have a message, not what it contains or who its from.
- gruez 6mo ago> Apple and Google have put themselves in the middle of most notifications, causing the contents to pass through their servers, which means that they are subject to all the standard warrantless wiretapping directly from governments, as well as third-party attacks on the infrastructure in place to support that monitoring. >If you don't want end-to-end messages made available to others, set your notifications to only show that you have a message, not what it contains or who its from. This incorrect on two counts: 1. As per what you wrote immediately before the quoted text, the issue was that the OS keeps track of notifications locally. Google/Apple's notification servers have nothing to do with this 2. It's entirely possible to still have end-to-end messaging even if you're forced to send notifications through Google/Apple's servers, by encrypting data in the notification, or not including message data at all. Indeed that's what signal does. Apple or Google's never sees your message in cleartext.
- mdavidn 6mo agoYou are correct, but you omitted one complication: Clients trust Google's and Apple's servers to faithfully exchange the participants' public keys.
- soamv 6mo agoWhich clients?
- pcl 6mo agoApps (such as Signal) that care about end-to-end encryption do their own key management. So, Apple / Google servers only ever see ciphertext, and don't have access to the key material that's used for the encryption.
- toast0 6mo agoAfaik, e2e messengers don't include ciphertext with push notifications. It's an empty push to wake the client. Then the client contacts the origin to fetch the ciphertext.
- saagarjha 6mo agoThis is how it used to work; notifications can be encrypted now and Signal uses an extension to decrypt them.
- pseudalopex 6mo agoA Signal developer 12 days ago said Our FCM and APN notifications are empty and just tell the app to wake up, fetch encrypted messages, decrypt them, and then generate the notification ourselves locally.[1] [1] https://news.ycombinator.com/item?id=47723445 https://news.ycombinator.com/item?id=47723445
- saagarjha 6mo agoAh, yes, they would be right. I feel like I had read that someone had migrated at some point, maybe it was WhatsApp or something.
- ls612 6mo agoIsn’t that what Contact Key Verification solves? Or do I misunderstand how that works?
- qurren 6mo ago... and hold participants' private keys truly private, which you cannot verify without a rooted phone.
- microtonal 6mo agoYou don’t need a rooted phone. An open source OS with reproducible builds is enough. That way you can validate what the code does without giving up verified boot, or opening up another attack vector, etc.
- qurren 6mo ago> You don’t need a rooted phone. I disagree. 1. I need to be able to change SSL root cert, disable SSL cert pinning, and intentionally MITM installed apps and see what they are sending about me to their servers. Open source OS isn't enough if the apps aren't open source. 2. "Apps sending information about me to their motherships that I don't consent to them sending" is a MUCH bigger problem these days than people messing with SSL, so I accept the risks of (1) 3. Verified boot is big brother's dream. I want to be able to verify my own OS.
- xmx98 6mo agoSending public keys through the notification system is an unnecessary complication.
- saagarjha 6mo agoIf Signal wants to show you a notification with message text, it needs to put it on the screen through an OS service. That service was storing the plaintext on the device.
- Vinnl 6mo agoYes, but that service is running locally.
- avianlyric 6mo agoThrough an OS service yes, but not a hosted backend service. Obviously that service has store the notification in plaintext (although everything on an iPhone is encrypted at rest, but notification crypto keys have to stay in active memory for the lock screen to work), otherwise it wouldn’t be able to display the notification text. Apple support applications sending encrypted notifications, where the OS launches the app the decrypt the notification body locally and pass it back to the OS for display.
- saagarjha 6mo agoI think the idea here is that the notification text was also being put somewhere else that was not really tied to the lifetime of it being shown on screen.
- halapro 6mo agoThis thread is about Apple servers accessing the contents. Of course the OS has access to the contents of your messages, how else do you expect it to show a preview of the message? Do you want each notification to be a custom-rendered widget from the app? If the contents are that sensitive you must disable the preview. Even then, the OS has access to the pixels in your app so it really is a moot point. The caching issue here was evidently a bug.
- saagarjha 6mo agoI don't think there is anything here that I disagree with?
- totetsu 6mo agoWhat about when my notifications are showing up on my MacBook next to the phone via mirroring?
- ChadNauseam 6mo agotalking totally out of my ass, but apple seems to have robust infrastructure for e2ee communication between your devices, for example it is known that location information in find my is not visible to apple. I’d be surprised if the channel to send iphone notifications to your mac wasn’t also e2ee
- zadikian 6mo agoUnless something has changed since I last did this, the app's server initiating the apns doesn't encrypt using some public key for the destination. So no e2ee at that layer. But you could encrypt the payload and have the app decrypt it if you're managing the keys yourself.
- throw0101d 6mo ago> What about when my notifications are showing up on my MacBook next to the phone via mirroring? See perhaps §iMessage and §Continuity in Apple Platform Security: * https://help.apple.com/pdf/security/en_US/apple-platform-security-guide.pdf https://help.apple.com/pdf/security/en_US/apple-platform-sec...
- flumes_whims_ 6mo agoThose notifications are transfered peer to peer (from your Phone to your computer) using Apple Wireless Direct Link. The contents are encrypted using AES-GCM.
- asdfman123 6mo agoSeems like you should use an app like Signal for anything sensitive at all so you don't have to worry about megacorp ecosystems as much.
- ryanisnan 6mo agoThis is also an oversimplification. If I understand the issue correctly, the notification with the message contents was what was cashed locally and then accessed. This same vulnerability would exist with Signal if you had the notifications configured to display the full message contents. In this case, it has nothing to do with either Apple or Signal.
- deleted 6mo ago[deleted]
- mingus88 6mo agoNope, Signal messages were stored in the phones notification DB even after the app was deleted https://www.404media.co/fbi-extracts-suspects-deleted-signal-messages-saved-in-iphone-notification-database-2 https://www.404media.co/fbi-extracts-suspects-deleted-signal...
- deleted 6mo ago[deleted]
- Slash32 6mo agototally agree
- jdwithit 6mo agoAs mingus88 said, this story is literally in response to Apple leaking messages sent through Signal. Doesn't matter if the message is securely transmitted if the operating system then keeps it lying around in plain text in a cache. From the linked article: > The independent news outlet reported that the FBI had been able to extract deleted Signal messages from someone’s iPhone using forensic tools, due to the fact that the content of the messages had been displayed in a notification and then stored inside a phone’s database — even after the messages were deleted inside Signal.
- asteroidburger 6mo agoBoth Apple and Google offer the ability for your app to intercept and modify messages before being displayed. Use that to send encrypted messages and decrypt them there, using your own code on the user’s device.
- ls612 6mo agoIn fact this is what both iMessage and Signal (and maybe Whatsapp too but I can’t tell from a quick google) do.
- Zak 6mo agoThat framing Makes it sound like the app developer has to do something active to keep message cleartext out of notifications. That's not how it is on Android. A Firebase Cloud Messaging push notification contains what the app developer's server puts in it. That could include the message body or it could just be an instruction to the app to poll the server for new messages. It has nothing to do with the notification that's displayd on an Android device. Those are entirely local. An app that cares about privacy wouldn't send anything more than a poll instruction over FCM.
- saagarjha 6mo agoThis has performance/reliability tradeoffs.
- avianlyric 6mo agoYou can implement either approach on iOS as well. But if you have strong end-to-end encryption for messages, then you don’t have to care about the transport anymore, you assume they’re all compromised. At that point you might as well use the push notification system as your transport, given both OSs allow applications to intercept the push notification locally and decrypt it before it’s displayed to the user.
- asteroidburger 6mo agoPlus, decrypting using a key stored locally cuts out a network roundtrip, which has battery and data usage impacts.
- xmx98 6mo agoYou are right in that it is Google’s and Apple’s OS notification api, and we do give them the plaintext messages.
- unethical_ban 6mo agoIncorrect. At least according to the Matrix (chat) app FAQs I have read recently. With Matrix apps, certain metadata is pushed from the chat server, to a push server, through Google and then to my device. But the message is not part of that data - it's E2EE. What happens is the app wakes up from the metadata notification, and then fetches the message and displays it in the notification field. Your last point is correct, at least until/unless this is remedied in Android, too.
- 1r0nym4n 6mo agoRight, it would be too hard to just have a server send a notification and to jumble that notification locally with the read of the unlocked message without it going through Apple/Google servers.
- ya3r 6mo agoTelegram secure chat messages do this by default.
- seanieb 6mo agoOh please, Telegram being mentioned positively during a discussion of security, privacy or state surveillance? Telegram is a security nightmare, it’s not e2ee no mater what BS their very very untrustworthy founder keeps spouting, it’s not default and what they do offer is probably not secure. Servers owned by Russian oligarchs loyal to Putin. Durovs rebel persona, where he’s persona non grata in Russia is also BS. He was shown to be freely traveling in and out of Russia and having negotiations with the Russian government around censorship of Telegram all while Durov was telling us he couldn’t return. And the Russian FSB won’t use it because it’s known in their circles as being compromised. https://www.youtube.com/watch?v=a2eBDU5ea0A&t=392s https://www.youtube.com/watch?v=a2eBDU5ea0A&t=392s > "That largely depends on what an officer does outside of work. If someone is involved in corrupt dealings, and in fact, I know very few who aren't, then they reason like this. Can this messenger be monitored by internal security officers? Previously, many used WhatsApp. Almost no one used telegram because there's a wellfounded belief that this messenger is to some extent controlled by the Russian authorities. People used signal. Some use three months, but all that has now been shut down again. Why is it monitored? I think they're worried about a possible coup and trying to limit the ability to coordinate mass actions via communication channels from abroad. Hence the Max messenger. So now most security officers have switched to Chatty. That's a Dubai based messenger, but it's definitely not a universal remedy. Some have moved to Zangi, which is [clears throat] an Armenian app that markets itself as American. When it comes to targeting the opposition, the state will always find the resources. It's one of the main priorities, more important than any financial or commercial issue, even more than counterterrorism."
- BLKNSLVR 6mo ago> set your notifications to only show that you have a message, not what it contains or who its from. I'm pretty sure that's the default in GrapheneOS. Or at least that's how mine behaves.
- sneak 6mo agoThis is misinformation, and is false. For many apps, they choose to do it this way. For most e2ee apps, they do not. The notification displayed on screen does not need to be the notification pushed through APNS.
- Permik 6mo agoBut in the real world, for maximal battery savings and therefore UX, routing any notification data via APNS is recommended. Fortunately you can choose the payload by yourself and just send a notification "ping" without any data about the messages. But if we're serious about security, you just don't ping the client about new messages because even the time and existence of a notification can be compromising. _The user will know that they got a message, when they open the app and see that they got a new message._
- sneak 6mo agoRouting e2ee notification data via APNS is fine, it’s no different than routing e2ee notification data via HTTPs. Your ISP sees the outer ciphertext in both cases (APNS is also mTLS).
- codeulike 6mo agoFrom the discussion under this comment it seems its a lot more complicated than that, and lots of people think they know how it works and then lots of other people disagree with them. So all very murky
- rubzah 6mo agoThe fact that you received messages at specific times can be enough to identify you, if you have the data from the sending side.
- Schiendelman 6mo agoHonestly, there are so many good reasons to turn off notifications entirely. Sure, maybe leave them on for phone calls from people you know. But past that, I think getting interrupted by your phone is more trouble than it's worth.
- bozdemir 6mo ago[dead]
- chislobog 6mo agoI’ve been looking into reproducing the extraction of unredacted data. Found this, and it’s speculative, but Magnet Forensics has an internal “infomercial” on reconstructing content from notifications, too. “find the inclusion of this information interesting because there is a chance that this still contains communications even when the record has been deleted from the sms.db file. I've yet to find definitive proof that this is the case however and it's possible that it is purged at the same time as sms.db is cleared.” From: https://web.archive.org/web/20220120174606/www.doubleblak.com/m/blogPosts.php?id=2 https://web.archive.org/web/20220120174606/www.doubleblak.co... See also: https://theforensicscooter.com/2021/10/03/ios-knowledgec-db-notifications/ https://theforensicscooter.com/2021/10/03/ios-knowledgec-db-...
- petcat 6mo ago> If you don't want end-to-end messages made available to others, set your notifications to only show that you have a message, not what it contains or who its from. We have no idea if this actually works or even what it does, because we can't see the source code. We just have to take Apple and Google's word for it. Which is not exactly a smart thing to do.
- MisterTea 6mo ago> If you don't want end-to-end messages made available to others, set your notifications to only show that you have a message, not what it contains or who its from. Why would an encrypted app broadcast your messages to notifications? That sounds like a failure of the messenger service vendor to secure their app. My banking app requires me to log in to read messages and my account statement EVERY TIME. I get a notification that is just that, notifies me of some pending information, not the information itself.
- David_Mendoza 6mo agoThis is the notification layer, but the same structural problem exists one level deeper: the OS vendor is the custodian of the user's entire digital identity, not just message contents, but context, behavioral history, and application relationships. The notification routing is a symptom. The custody assumption underneath it is the root. As long as your identity lives inside a vendor-controlled OS, encryption at the app layer is a patch on a structural problem