SHARE THE PERSPECTIVE
泄露范围取决于密钥类型以及攻击者持续访问的时间;棘轮并不保证只有一条消息面临风险。

强大的加密也需要在设备上正确实现。操作系统、加密实现或硬件中的漏洞可能为访问敏感数据打开通道;但不能因为存在处理器攻击研究,就断定每部手机或每款即时通信应用都能以同样的方法被入侵。

更有用的问题是:攻击者具有什么访问权限,能够看到哪种密钥或明文,以及其访问是暂时的还是持续的?这些问题的答案比算法名称更重要。

侧信道攻击与内存提取有何区别?

直接提取内存时,攻击者可能能够读取进程或设备内存空间的某些部分。侧信道攻击则利用操作执行时间、缓存行为等迹象来推断信息。两者不一定具有相同的前提条件或结果。

最初的 FLUSH+RELOAD 研究在特定实验环境中考察了缓存行为和共享内存页,并展示了从某个版本的 GnuPG 中提取密钥。这一结果既不是对 Livara 的安全测试,也不能证明所有手机处理器都存在该漏洞。

访问类型 评估时需要回答的问题
在同一设备上运行普通应用 进程隔离和攻击的前提条件是否允许观察相关信息?
拥有操作系统的高权限访问 攻击者能够获得哪些数据或密钥操作权限?
物理访问或实验室访问 锁定状态、硬件型号和密钥保护情况如何?
持续访问应用 攻击者能否再次收集新的明文或密钥?

缺少这些细节时,笼统的“破解 RAM”并不是充分的技术解释。

Keystore 和安全硬件能提供哪些帮助?

Android Keystore 可以限制密钥的使用,并在适当的设备上通过硬件支持执行操作。在这一设计中,密钥不可导出不等于攻击者无法使用它:在某些情况下,受感染的应用可能滥用获准的密钥操作,即使它无法取出密钥字节。Android Keystore 指南。

也不是所有密钥和所有算法都会自动置于安全硬件中。必须明确密钥类型、设备支持情况以及应用的使用方式。仅仅说“密钥在设备上”并不能证明其存放位置或保护级别。

一把泄露的密钥是否只会暴露一条消息?

有时,一把独立消息密钥的泄露影响有限。但如果攻击者获得链密钥、会话状态、身份密钥、可读历史记录或多个缓冲区,结果就不同了。因此,在未确定泄露数据的情况下,不能说“最多一条消息”面临风险。

此外,为每条消息更换密钥不一定会切断攻击者的访问。如果后续密钥由攻击者已掌握的状态派生,或者攻击者仍驻留在设备上,其也可能获取后续消息。保护过去的内容与恢复未来的安全是两种不同的特性,各自具有明确的假设条件。

棘轮与内存清理有哪些局限?

棘轮可以在对话过程中演进密钥。泄露后的恢复需要引入攻击者无法访问的新信息;仅仅发送一条消息并不能证明这一条件成立。Double Ratchet 规范 除了讨论恢复,也说明了持续访问和恢复已删除数据的风险。

缩短敏感数据的存活时间和清理缓冲区是有益的,但不能据此笼统声称 RAM 中的所有副本都已清除。还需要检查库、编程语言以及显示路径。

关于 Livara,可以得出哪些结论?

Livara 安全页面 描述了 LVR1 的混合结构和密钥演进。本文不是侧信道测试、内存审计,也不是对所有密钥均使用 Keystore 的确认。尤其是,公开的威胁模型 文档并不保证保护已受感染的设备。

因此,除非有针对同一版本和场景的具体证据,否则不应把“下一条消息就能消除硬件入侵的影响”或“最多泄露一条消息”这样的承诺归于该产品。

用户的实际选择

保持操作系统和应用更新,选择仍获得安全支持的设备,避免不可信的安装来源和多余权限,并设置适当的锁定保护。如果存在严重入侵的可能,更换即时通信应用或发送新消息不能替代对设备的检查和清理。

阅读安全声明时,请要求提供四项信息:受测版本、攻击者的访问权限、泄露的数据,以及结论的局限。单凭处理器或加密标准的名称,无法回答这四个问题。

查看 Livara 证明实验室
CONTINUE THE THREADAndroid & device security ↗
YOU’VE REACHED THE ENDBack to the reading room ↗