[GrapheneOS 讨论论坛](https://discuss.grapheneos.org)
建议使用启用 JavaScript 的现代浏览器访问此网站,以获得最佳浏览体验。加载此网站的完整版本时出现了问题,可尝试强制刷新此页面来解决该错误。
GrapheneOS 对锁定设备数据提取的防护措施
GrapheneOS 基础情况
GrapheneOS 具备强大的数据提取防御能力,它在 Android 17 提供的标准安全功能以及最安全的 Android 硬件基础上深度构建。目前,仅 Pixel 系列设备能提供 GrapheneOS 所需的硬件安全功能和系统更新,但到 2027 年,随着与摩托罗拉移动的合作以及高通的技术进展,这种状况将会改变。
磁盘加密与安全元件防护
磁盘加密为数据提供强有力保护,即便最老练的攻击者也难以直接破解,他们要么需在设备首次解锁后利用操作系统漏洞,要么只能暴力破解 PIN 码或密码。
Android 16 QPR2 要求安全元件实现速率限制,即增加延迟机制。尝试 10 次后会延迟 4 小时,15 次后则延迟 41 天,且最多允许 20 次尝试。为提高可用性,系统会提前拒绝最近 5 次不同的失败尝试,避免因重复错误浪费尝试次数。GrapheneOS 仅支持采用最新一代安全元件速率限制的设备。
受支持设备上的安全元件还具备抵御内部攻击的能力,这通过要求机主用户在更新安全元件固件前成功进行身份验证来实现,仅有有效签名密钥和更高版本号是不够的,目的是防止任何政府通过强制创建移除速率限制的固件更新来绕过速率限制。
自 2017 年末 Pixel 2 发布以来,Pixel 系列设备就采用了带有内部计时器的安全元件,实现了速率限制和抵御内部攻击的功能。从那时起,安全元件及其与操作系统的集成有了显著改进,但该功能由来已久,并非新特性。
密码设置与解锁方式优化
GrapheneOS 将密码的字符限制从 16 个提高到 128 个,使用户可使用高熵的掷骰密码短语,而无需依赖安全元件的速率限制。
为方便使用强密码,同时避免因生物识别解锁降低安全性,GrapheneOS 增加了可选的第二因素指纹 PIN 码,将允许的指纹尝试次数从 20 次减少到 5 次,输入错误的第二因素 PIN 码也会计入尝试次数。这使用户可使用 6 - 8 个随机的掷骰单词作为首次解锁前的主要解锁方式,日常使用中,可通过指纹 + 短 PIN 码的方式方便解锁。使用有效指纹解锁时,系统会提示输入第二因素 PIN 码,输入正确后才能完成屏幕解锁和硬件密钥库解锁。
漏洞防护与物理访问攻击防护
GrapheneOS 通过强化内存分配器和其他功能,极大提升了操作系统的漏洞防护能力,大量采用基于硬件的安全功能,包括硬件内存标记(MTE),以抵御漏洞攻击。
GrapheneOS 还针对物理访问攻击增加了专门防护措施,例如设备锁定时,默认在软件和硬件层面阻止新的 USB 连接,并在没有活跃的 USB 连接时立即禁用 USB 数据传输。
自动重启计时器功能
早在 2021 年 6 月,GrapheneOS 就推出了锁定设备自动重启计时器功能,该计时器可设置在 10 分钟至 72 小时之间,最初默认设置为 72 小时,之后缩短至 18 小时。由于在关闭操作系统和重启过程中会进行内存清零操作,设备会自动恢复到首次解锁前的状态。2024 年 4 月,促使 Pixel 系列设备在快速启动模式下增加了内存清零功能。苹果和谷歌分别在 iOS 18.1 和 Android 16 中增加了锁定设备自动重启计时器功能,在 Android 系统中,可通过高级保护模式启用该功能,GrapheneOS 的实现方式在多个方面更具优势。
二级用户和私人空间安全
Android 系统为每个二级用户和私人空间使用单独的加密密钥。GrapheneOS 支持在不重启设备的情况下,通过结束二级用户会话或切换开关,将二级用户和私人空间恢复到首次解锁前的状态,但为让主用户数据完全处于安全状态、彻底清除 RAM 中的残留数据并阻止安全元件更新,重启设备仍是更好选择。
胁迫 PIN 码/密码功能
胁迫 PIN 码/密码功能虽属于整体安全体系中的小功能,但有其重要作用。当在任何操作系统提示输入当前用户配置文件的 PIN 码或密码时输入胁迫 PIN 码/密码,设备将被擦除,不仅在锁屏界面,在更改敏感设置或其他需要身份验证的提示中输入该码,设备也会被擦除,该功能适用于所有用户配置文件,包括二级用户和私人空间,而非仅主用户。
使用胁迫 PIN 码/密码功能有多种方法,如将其写在手机壳上或放在钱包里的纸上。用户在实际胁迫情况下使用该功能时,应仔细考虑擦除设备可能带来的物理或法律后果。GrapheneOS 保护设备数据并不依赖胁迫 PIN 码/密码,但一旦使用该码,即使攻击者获取了每个用户配置文件的 PIN 码/密码,也无法恢复设备数据。
GrapheneOS 并不依赖胁迫 PIN 码/密码来保护用户数据,它是 GrapheneOS 提供的众多隐私和安全改进功能之一。其功能页面概述了 GrapheneOS 与标准 Android 17 的差异,涵盖了大部分主要功能和许多次要功能,实际功能远不止于此,发布说明更加详尽,确保涵盖了所有新增、更改或移除的功能。
论坛讨论情况
FunkTastic
[GrapheneOS](https://discuss.grapheneos.org/d/40700-grapheneos-protections-against-data-extraction-from-locked-devices/1) 这个帖子应该置顶。
moonlitmartyr
[GrapheneOS](https://discuss.grapheneos.org/d/40700-grapheneos-protections-against-data-extraction-from-locked-devices/1) 写得太棒了,感谢分享。询问 USB PD 的攻击面有多大,想知道未来是否可通过一个开关消除风险,只使用 5V 充电,而非完全禁用充电端口。认为即使只用于充电,风险仍存在,因为它不是标准的数据连接,但不确定自己理解是否有误。
skully373
询问是否有计划增加这样的功能:在首次解锁前使用长密码解锁,之后在首次解锁后只使用 PIN 码,而不是需要指纹和 PIN 码进行双因素认证。表示自己工作中手指容易受伤,指纹解锁经常失败,若能在重启后使用复杂密码,日常使用中只使用 PIN 码,会是很棒的功能,就像加密的 Linux 机器一样,使用复杂的解密密码和方便的解锁密码,并感谢开发者的辛勤工作。
Matth
提出在某些情况下可能会陷入法律麻烦,询问增加一个次要胁迫 PIN 码功能,该功能不擦除设备,只是重启设备,是否会有用,并举例在边境管制时,手机可能已不在手中无法自行重启,交出这个 PIN 码不会破坏证据,但会让攻击者更难利用设备数据。
Notme
引用原帖中关于锁定设备自动重启计时器功能的内容,回应 Matth 提到手机可能不在手中无法自行重启的问题。还设想了自动重启场景,如警察逼近要求交出密码,手机重启,自己表示没做什么,让警察没办法。
Pocketstar
建议让他们自己发现贴在手机套里写有胁迫 PIN 码的小纸条,认为如果他们在自己未主动提供的情况下用胁迫 PIN 码解锁了手机,可能会让自己避免陷入法律麻烦,并提醒查看当地关于销毁证据的法律规定。
GrapheneOS
回复 moonlitmartyr 目前可将 USB - C 设置为“关闭”以完全禁用充电,需要充电时再将其设置为“仅充电”或“锁定时仅充电”。即便设置为“关闭”,仍可在设备关机、充电、快速启动或恢复模式下为其充电,也可在启动时的验证启动屏幕暂停充电,设备不会因无法充电而没电。
FunkTastic
提出自己的办法,称同时使用 GrapheneOS 和 iOS 系统,后者用于银行和政府应用,将在 iOS 上使用的 PIN 码设置为 GrapheneOS 的胁迫 PIN 码,输入时不会避开监控摄像头。
ProfessorMonks
询问鉴于最近新闻头条,写这篇文章是否为了重申 GrapheneOS 的防护能力,并提及新闻内容:一名男子在审讯中被迫解锁设备,他提供了胁迫密码,导致设备被擦除。还提到他们因该男子抗议警察培训中心将其列入监视名单,但却以涉嫌儿童色情材料(CSAM)为由对他进行询问,推测这只是借口。