GrapheneOS 防止从锁定设备提取数据的防护措施

GrapheneOS 防止从锁定设备提取数据的防护措施

GrapheneOS 采用多层安全架构来防止从锁定设备提取数据,依赖于 Android 17 安全功能、专用硬件和定制 OS 加固的组合。主要目的是迫使攻击者要么在 After First Unlock (AFU) 状态下利用 OS 漏洞,要么尝试在硬件强制速率限制下进行密码暴力破解。

硬件支持的速率限制和内部攻击抵抗

支持的设备上的安全元件实施严格的速率限制,以防止对 PIN 和密码的暴力破解攻击。根据 Android 16 QPR2 规范,系统会在尝试之间逐步增加延迟:失败 10 次后施加 4 小时延迟,失败 15 次后延迟增加到 41 天。系统锁定之前仅允许总共 20 次尝试。

为了防止政府或企业实体通过被迫的固件更新绕过这些限制,GrapheneOS 使用“内部攻击抵抗”。此机制要求 Owner 用户在安全元件固件更新之前成功进行身份验证,以确保仅凭有效的签名密钥和更高的版本号不足以推送移除速率限制的恶意更新。

加强身份验证和密码短语

为了超越安全元件速率限制的局限,GrapheneOS 将最大密码长度从 16 个字符扩展到 128 个字符。这使用户能够使用高熵 diceware 密码短语,在数学上不可行地进行暴力破解。

为了在高安全性与日常便利之间取得平衡,GrapheneOS 引入了一种可选的第二因素指纹 PIN:

  • 机制: 有效的指纹扫描会提示用户输入一个短的第二因素 PIN。
  • 安全: 允许的指纹尝试次数从 20 减少到 5。未能输入正确的第二因素 PIN 将被视为一次失败尝试。
  • 结果: 这使用户能够在 Before First Unlock (BFU) 状态下保持一个长而复杂的密码短语,同时在 AFU 状态下使用指纹和短 PIN 实现快速访问。

OS 加固和物理访问防护

GrapheneOS 实施多层防护以降低物理访问设备者的攻击面:

  • 漏洞防护: OS 使用强化内存分配器和基于硬件的内存标记(MTE)来缓解内存损坏利用。
  • USB 阻塞: 设备锁定时,新的 USB 连接默认在软件和硬件两个层面被阻塞。USB 数据在活动连接终止后立即被禁用。
  • 自动重启计时器: GrapheneOS 包含一个锁定设备自动重启计时器(默认设置为 18 小时)。这会自动将设备返回到 BFU 状态,从而清除 RAM 中的残留数据并阻止安全元件更新。虽然 Apple (iOS 18.1) 和 Google (Android 16) 此后已添加类似功能,但 GrapheneOS 的实现包括在启动过程中进行内存清零,以确保数据在 RAM 中被完全擦除。

次要用户和私密空间的数据管理

Android 为次要用户和私密空间提供独立的加密密钥。GrapheneOS 通过允许这些配置文件通过“结束会话”针对次要用户或特定切换来在不进行完整系统重启的情况下返回到 BFU 状态,从而增强此功能。

胁迫 PIN/密码功能

GrapheneOS 提供一个胁迫 PIN/密码,当在任何 OS 身份验证提示中输入时(锁屏幕、敏感设置更改等)会擦除设备。此功能适用于所有配置文件,包括次要用户和私密空间。

需要注意的是,胁迫 PIN 是一种用于完全数据销毁的可选工具,而不是针对提取的主要防御手段。正如社区讨论所指出的,在法律或边境搜索场景中使用此功能可能会带来显著的物理或法律风险:

"如果您将手机和加密的例子移到更普通的事物上,您会发现这不是一个明智的举动,您很可能会面临处罚,或者至少会遇到大量的问题和进一步的质疑。"

硬件兼容性和未来支持

目前,GrapheneOS 仅支持 Google Pixel 设备,因为它们提供了必要的硬件安全功能和更新。然而,与 Motorola Mobility 的合作以及高通的进展预计将从 2027 年起将硬件支持扩展到 Pixel 以外的设备。

SUMMARY: GrapheneOS 利用硬件支持的速率限制、自动重启计时器和强化内存分配器来保护用户数据免受锁定设备上的提取。

TITLE: GrapheneOS 防止从锁定设备提取数据的防护措施

Sources