恢复账户、身份和聊天历史是不同的操作;请核实产品实际支持哪一种。
密码学身份恢复会恢复与消息通信身份相关联的密钥材料。它并不自动等同于重新登录账户、恢复所有对话,或证明替换设备是安全的。
加密密钥备份可以让服务器保存可恢复的数据包,而不持有打开它所需的秘密。这种设计是否能保护用户,取决于密钥生成、身份认证、恢复秘密的保管,以及客户端如何处理恢复的身份。
人们所说的三种“恢复”
| 恢复目标 | 必须恢复或授权的内容 |
|---|---|
| 账户访问 | 登录并使用服务的权限 |
| 密码学身份 | 相应的私钥,或一个经过认证的新身份 |
| 聊天历史 | 消息数据以及读取它所需的密钥或状态 |
成功登录并不能证明另外两项已经恢复。同样,身份密钥也不一定能重新生成被刻意擦除的旧消息密钥,或已经不存在的历史记录文件。
在依赖产品的恢复功能之前,先写明它实际承诺恢复哪一项目标。
加密身份备份如何运作
一种典型设计是在可信设备上生成身份材料,用独立的恢复秘密加密备份,并且只把受保护的数据包存放在服务端。替换设备取回数据包后,在本地使用恢复秘密。
服务器仍可能控制对数据包的访问、观察请求、拒绝提供数据或返回旧版本。认证加密以及版本和身份绑定有助于应对特定的篡改风险;可用性和回滚处理需要各自的设计。“在服务器上加密”并不是所有服务器失陷情境的完整答案。
随机的高熵恢复密钥与人类选择的密码也是不同的输入。不要把 HKDF 描述成能将任何弱口令变为强秘密的方法。RFC 5869 讨论了 HKDF 的作用,并将其与密码拉伸区分开来。
Livara 的 v7 文档说明了什么
Livara 的安全页面说明,其 P-256 密钥协商密钥和签名密钥以及 ML-KEM 种子,会先在设备上用一个随机的 256 位恢复密钥加密,然后再上传。v7 格式会对密码套件、身份纪元和代次等信息进行认证。
同一页面明确指出:它恢复的是身份,而不是聊天历史。页面也说明,仅有正确的登录密码不足以打开加密密钥备份;还必须拥有由恢复短语表示的恢复密钥。
这些是已发布的产品声明,并不是对备份格式或每条恢复路径进行的新审计。更一般的威胁模型应与这份范围较窄的恢复说明一起阅读。
SRP 的作用在哪里
SRP 身份认证模型涉及基于密码的登录。在预期的协议交互中,它可以避免传输密码本身,但它并不定义密钥备份的内容,也不会自动派生每一个恢复密钥。
其服务器端验证值仍需保护。RFC 5054 第 3.3 节描述了验证值被盗后的密码猜测风险。不要把“服务器在这次交互中不会收到密码”理解成“服务器失陷无法暴露任何有用的信息”。
账户会话、恢复数据包、运行元数据和客户端软件是不同的资产,各自有不同的失效方式。
安全的恢复准备清单
- 确认该功能究竟恢复哪些数据,以及不恢复哪些数据。
- 将恢复秘密保存在不会因手机丢失而同时失去唯一副本的地方。
- 避免把秘密放在消息、支持工单或公开截图中。
- 保护秘密的存放位置;任何获得它的人,如果也获得相关备份和访问权限,就可能获得重要能力。
- 在清除或更换唯一可用设备之前,阅读官方恢复说明。
- 只通过受支持的流程测试,不要毁掉重要数据的唯一副本。
恢复后,应另行检查已关联设备和会话。恢复身份材料并不会自动撤销旧设备。如果密码学身份发生变化,涉及敏感通信的联系人应通过独立可信的途径验证新密钥。
如果恢复短语丢失了
不要假定支持人员能够重新生成系统在设计上就不保留的秘密。同样,也不要假定每次忘记账户密码都意味着所有本地消息已经消失。结果取决于仍然可用的设备、现有备份以及产品文档规定的规则。
有用的问题应该具体:“缺少的是哪个秘密或哪份副本,还有哪种恢复目标能够实现?”这比笼统承诺恢复不是轻而易举就是绝无可能,更能得到安全的答案。


