SHARE THE PERSPECTIVE
移除推送中继会改变参与投递的各方,但不会让路由元数据消失。

Android 通知隐私不仅取决于聊天本身是否加密。推送服务可以在不接收可读聊天文本的情况下路由通知,但它仍参与投递。直接连接移除了这一特定中间方,却不会消除通信应用服务器或网络中的元数据。

因此,有用的比较不是“FCM 泄露一切,而套接字隐藏一切”,而是:哪些数据到达哪些参与方,所选设计在后台运行时有多可靠,以及用户能验证什么?

FCM 传输什么

Firebase Cloud Messaging 区分可由平台显示的通知消息和由应用代码处理的数据消息。载荷可以包含可读的通知文本、加密数据,或仅提示应用获取更新的最小信号。这些设计带来的隐私影响不同。FCM 消息类型。

Firebase 文档说明,发送服务器、FCM 和设备之间受到 TLS 保护,但也指出 FCM 不会自动提供应用层端到端加密(E2EE)。敏感载荷需要在传输层之上获得适当保护。在私人通信应用中,这种保护必须保留其预期的端点边界;在已经知道明文的服务器上加密数据,属于另一种信任模型。FCM 加密指南。

路由标识符能证明什么,不能证明什么

定向推送需要标识相关应用实例。这并不等同于某个人永久、通用的标识符。注册信息可能变化或过期;当前 Firebase 指南既涵盖基于安装的注册,也涵盖旧式令牌。注册管理文档。

推送提供商必然参与请求处理和投递。这带来了元数据方面的考量,但确切的保留方式、账户关联和可见范围需要文档或测量来确定。不能据此推断,一条普通的“新消息”通知就会自动暴露实际发送者、接收者及完整社交关系图。

时间关联可能是威胁模型中的一个问题,尤其是在观察者能看到多条相关流量时。其准确性取决于可获得的观测、批量处理、后台活动等因素。“可以提供线索”不等于“能轻易重建每一段对话”。

FCM 与直接同步对比

设计问题 通过 FCM 推送 直接后台同步
是否涉及第三方推送中继? 是 该直接连接不涉及
能否避免让该中继接触可读聊天文本? 可以,需采用合适的载荷设计 通信应用仍需适当的 E2EE
应用服务器是否观察到连接或投递数据? 通常会;取决于架构 会,它直接服务于客户端
是否保证即时投递? 否 否
需要测试什么? 载荷内容、令牌生命周期、延迟和后备机制 操作系统限制、重连行为、电池开销和延迟

直接轮询或套接字可以减少对推送提供商的依赖。但它们不会自动产生匿名性,也无法阻止操作系统、网络或应用自身基础设施观察所有相关事件。

为什么 WorkManager 不是即时消息传输机制

Android 限制后台工作以管理资源。WorkManager 在这些约束内调度持久性工作;在架构中提及它,并不意味着连接会持续保持活跃,或每条消息都会立即到达。制造商设置、电池限制和应用状态都很重要。Android 后台工作限制。

关闭电源限制可能改变可靠性和电池消耗,但不要盲目应用广泛豁免。应在实际设备上测试应用支持的模式。移除 Google 组件不会自动教会应用使用新的投递机制;某些功能可能停止工作。

Livara 如何说明通知机制

Livara 的安全文档表示,加密消息的推送通知不包含消息详情或姓名。文档也说明服务会存储运行元数据和推送令牌。这些是产品声明,并不能证明 Livara 不使用 FCM,或投递元数据对每个中间方都不可见。

应结合威胁模型阅读公开文档。在没有相应验证的情况下,本文不声称存在经过测试的直接同步选项、经过测量的电池优势或特定日志保留政策。

实用的通知检查

使用一条无敏感内容的测试消息。比较手机在解锁、锁定、离线以及随后重新连接时显示的内容。分别检查关联设备的预览和具有通知访问权限的应用。锁屏设置控制的是本地显示,不一定改变服务器端的推送载荷。

对于开发者,应检查测试载荷,并仅记录最少量的诊断数据。在真实的电池和连接状态下测量投递表现,并说明“已发送”“已接受”“已送达”和“已显示”各自的含义。明确这些边界,能同时改善隐私和可靠性。

打开 Livara 聊天
CONTINUE THE THREADAndroid & device security ↗
YOU’VE REACHED THE ENDBack to the reading room ↗