端到端加密并不要求通信软件避免集中存储。服务器可以保存加密消息以进行同步,而不持有读取其内容所需的秘密信息。
多设备通信的难点在于决定哪些设备获得授权、它们收到哪些密钥,以及能否访问更早的历史记录。这些决定比系统是否使用数据库更重要。
经常被统称为“同步”的四种不同操作
| 操作 | 需要实现的目标 |
|---|---|
| 投递新消息 | 将受保护的内容送达当前获得授权的设备 |
| 关联新设备 | 确认账户所有者批准这个新端点 |
| 传输历史记录 | 让新设备能够访问选定的过去内容及其解密材料 |
| 恢复身份 | 恢复或替换身份密钥,但不一定恢复消息历史记录 |
产品可以支持其中一种操作,而不支持全部四种。成功登录并不能证明旧聊天记录可以恢复。
加密投递如何支持多台设备
一种方法是为每台设备维护独立会话。Signal 的 Sesame 规范描述了异步、多设备环境中的会话管理,包括设备的添加或移除,以及消息乱序到达的情况。
这是一种有文档说明的设计示例,而不是通用要求。其他系统可能只加密一次内容,再分发受保护的内容密钥,使用群组机制,或组合多种方式。“E2EE 要求为每台设备完整复制一份载荷”的说法过于笼统。
无论选择哪种设计,增加一台能够解密的设备,就增加了一个需要保护的端点。无人维护的笔记本电脑可能泄露其收到的明文,即使服务器从未见过这些明文。
保存的密文仍然涉及隐私和保留问题
加密存储不等于不存储。服务提供商可能保留投递信息、设备记录、时间戳、成员关系或加密的消息历史记录。具体情况各不相同,应当明确说明。
Livara 的安全文档表示,其中继保存密文和运行数据,用于同步及重新连接后的恢复。文档描述了路由、成员关系、时间戳、投递状态和其他记录。因此,不应将其描述为一种未记载的临时队列,并断言所有设备一收到消息,它就必然消失。
因此,内容保密与元数据保留需要分别提问。应当询问保留哪些数据、保留多久,以及删除数据或移除账户会改变什么;如果没有核实,就不要编造保留期限。
Livara 的 v7 恢复实际恢复什么
Livara 将 v7 描述为一种加密身份备份,在上传前用随机的 256 位恢复密钥封装。文档记载的载荷包含身份密钥材料,格式会对其算法套件、身份纪元和生成代次进行真实性验证。
同一页面说明,它恢复的是身份,而不是聊天记录。因此,不应将恢复短语宣传为保证新设备能显示所有旧对话的手段。
在更换或擦除设备之前,应核实当前真正可用的历史记录传输和备份选项。将所有恢复材料保密。不要把恢复短语发送给客服账户,也不要粘贴到未经核实的网站上。
前向保密不会清空已授权设备的收件箱
在相关假设成立且过时秘密已被删除的情况下,棘轮机制可以限制后续密钥泄露对早先加密通信的暴露程度。它无法隐藏端点已经保存的明文,也无法阻止仍在运行的恶意软件读取新消息。
同样,入侵后安全需要在攻击者失去访问权限后进行适当的新更新。它并不保证每当消息计数器递增,任何旧平板电脑都会变得无害。
更安全的设备更换检查清单
- 添加另一台设备之前,先清点已关联的设备。
- 使用应用文档规定的关联与验证流程,而不是陌生人发来的二维码。
- 用不含敏感内容的测试对话检查新设备收到了哪些历史记录。
- 擦除旧设备之前,确认恢复材料以及任何单独的历史记录备份。
- 撤销不再受你控制的设备,并检查联系人是否收到身份变更通知。
- 检查每个端点上的本地下载、通知和操作系统备份。
Livara 威胁模型明确包含端点和接收者方面的限制。这些限制在每一块屏幕上都仍然适用。有用的多设备承诺应分别解释设备授权、所存数据和恢复范围。



