有人知道苹果的APN推送通知服务中存在哪些漏洞吗?
我们可以确保我们的通知被安全地发送到苹果,所以我们只需要知道它们是否可以从那个点被拦截?
动机: 我们构建了一个iOS消息应用程序,我们正在使其成为100%安全的解决方案,并具有一些以前从未在安全领域中利用过的功能。
有人知道苹果的APN推送通知服务中存在哪些漏洞吗?
我们可以确保我们的通知被安全地发送到苹果,所以我们只需要知道它们是否可以从那个点被拦截?
动机: 我们构建了一个iOS消息应用程序,我们正在使其成为100%安全的解决方案,并具有一些以前从未在安全领域中利用过的功能。
UNNotificationServiceExtension
,使开发人员能够通过 APNS 发送完全加密的通知负载,然后让最终用户设备上的应用程序自行解密(或加载任何其他支持数据)以显示通知。 UNNotificationServiceExtension 类提供了一个入口点,用于 Notification Service 应用程序扩展,该扩展允许您在将远程通知传递给用户之前自定义其内容。 Notification Service 应用程序扩展不会呈现任何自己的 UI。相反,在传递适当类型的通知到用户设备时,它会按需启动。您可以使用此扩展来修改通知的内容或下载与扩展相关的内容。例如,您可以使用扩展来解密加密数据块或下载与通知相关联的图像。
我们的团队正在进一步研究这一点,作为以完全符合HIPAA标准的方式发送有用通知的手段,而且苹果无法查看通知的明文。我们持乐观态度。UNNotificationServiceExtension
2)在消息中添加对数随机延迟 3)当没有实际消息存在时,以概率α=0.1随机发送APNS 4)当实际存在消息时,以概率β=0.9发送APNS。 - William EntrikenUNNotificationServiceExtension
传递通知警报,最终也会将其交回给操作系统在某个时刻显示给用户。简而言之,在横幅显示之前,操作系统始终有机会“查看”警报内容,并且不能消除所有内部威胁或0-day威胁。端到端加密更多地提供了传输保护和数据安全,同时减轻了几乎所有威胁,除了最偏执的用例。消息推送通知永远无法完全进行端到端加密。看起来这次对话主要集中在数据方面。 - amza设备本身与推送云服务之间的连接当然是通过TLS通道进行保护的。
...
但是,从应用程序云服务发送到设备上安装的应用程序的推送消息中实际的文本和其他元数据又是如何得到保护的呢? 这就是问题所在。如上所述,在传输过程中始终得到保护,但消息本身在这些传输之间是明文的。
这里涉及到用户隐私的问题。 所有的推送云服务都拥有其系统中发送的每个推送消息的明文。
也就是说,他们有分析、查看、共享/出售数据的能力。 并且他们有被黑客攻击而失去数据的风险。
因此,一般来说,如果您想要安全起见,请不要使用推送通知发送任何敏感数据。相反,只需将推送通知作为同步机制,以告诉应用程序需要以您可以控制的安全方式获取新数据即可。
简短回答:您不应该将敏感数据包含在通知负载中。
更多细节:尽管APNs使用两个级别的信任进行端到端的加密验证和身份验证,根据苹果文档,您不应该在负载中包含敏感数据。
由于远程通知的传递不能保证,因此永远不要在负载中包含敏感数据或可以通过其他方式检索的数据。相反,使用通知来提醒用户有新信息或作为您的应用程序等待数据的信号。
例如,电子邮件应用程序可以使用远程通知来徽章化应用程序的图标或提醒用户特定帐户中有新电子邮件可用,而不是直接发送电子邮件消息的内容。收到通知后,应用程序应打开与您的电子邮件服务器的直接连接以检索电子邮件消息。