在一周工作后,我们已将石墨烯OS(GrapheneOS)部分移植至谷歌(Google)像素(Pixel)11 系列,但因软件、固件及近乎肯定的硬件层面缺乏 ARM(ARM)硬件内存标记(MTE)支持而无法完成,谷歌似乎为省钱砍掉此重要安全功能。石墨烯OS 在整个基础操作系统与内核中运用该标记提升防护,Pixel 8 于 2023 年 10 月便支持硬件 MTE,我们当月将其集成入 hardened_malloc,Android 16 进阶保护模式仅对少数进程启用。
正文
我们对 Pixel 11 系列的 GrapheneOS 移植只完成了部分工作,花了一周时间。由于软件、固件乃至几乎可以确定在硬件层面都缺少对 ARM 硬件内存标记的支持,我们无法完成移植。看起来 Google 为省钱砍掉了一项重要的安全功能。
ARM 硬件内存标记(MTE)被 GrapheneOS 用于整个基础操作系统,包括内核和每个标准基础系统进程,仅对少数设备专用进程暂时禁用。它极大提升了对几乎所有远程漏洞利用以及许多本地漏洞利用的防护。
Pixel 8 在 2023 年 10 月发布时已具备硬件 MTE 支持。我们当月将其集成进 hardened_malloc 项目,并开始在整个系统中使用。Android 和 Pixel OS 从未默认启用它。Android 16 的 Android 高级保护模式只为少数进程启用。苹果的 Memory Integrity Enforcement(MIE)在 iPhone 17 上始终开启,是使用最新标准扩展的高质量 MTE 实现,在内核和大部分用户态都以最安全模式使用,整合得非常好。
苹果的 MIE 和 Android 16 以上的 AAPM 都不会对用户安装的应用使用 MTE,除非应用明确选择加入。GrapheneOS 自动为更多应用启用,并提供开关让用户为每个自行安装的应用选择加入;也有针对不兼容应用的逐应用退出开关,但这种情况很少见。iOS 和 Android 都不鼓励应用开发者选择加入 MTE 及基础系统中使用的其他更激进的安全功能,苹果文档还警告开发者会有性能和稳定性问题。我们的做法则能在标准分配器中强制使用 MTE。
Pixel 11 确实有一些安全改进,包括转向后量子安全的验证启动(ML-DSA),用 AOSP IMS 替代三星 Shannon IMS。Titan M3 应能显著提升首次解锁前(BFU)状态下的数据提取防护。遗憾的是砍掉 MTE 毁了这些。
Pixel 11 系列贵了不少,CPU 只是小幅提升,GPU 依旧性能不足,Pro 基础型号内存还减少了。它们终于追上了上一代高通蜂窝基带。定价过高,升级乏善可陈,失去 MTE 更是令人震惊。
与 Pixel 11 相比,Snapdragon 8 Elite Gen 5 的单线程 CPU 性能高 40%,多线程高 80%,GPU 性能高出一倍以上,蜂窝基带也好得多,并且终于支持 MTE。下一代芯片将用于首款搭载 GrapheneOS 的摩托罗拉设备。
Pixel 9a 及更早机型(包括 Nexus 设备)曾是 Android 开源项目的参考设备。随着 Android 16,AOSP 移除了 Pixel 支持。现在支持 Pixel 比支持许多其他设备更难,而且向开源固件和驱动库迈出的大量进展被丢弃了。
相比原厂 Pixel OS,GrapheneOS 提前数月提供 AOSP 补丁,提前很多个月提供 Linux 内核补丁。但固件和大部分驱动更新仍要依赖 Google,我们也希望更早转向新的内核分支。与摩托罗拉的合作可以改善这些。
我们强烈建议不要购买 Pixel 11。Pixel 8、9、10 对 GrapheneOS 而言整体安全性好得多。Pixel 10 更便宜,硬件相近且支持 MTE。Pixel 11 的 Titan M3 应能改善没有强密码用户的 BFU 安全,但失去 MTE 让解锁后(AFU)安全大打折扣。
我们还没决定怎么办。对我们来说,最好的做法可能是跳过 Pixel 11 系列,把重心完全转向即将推出的摩托罗拉设备。Pixel 10a 实际上属于第 9 代 Pixel,所以希望 Pixel 11a 同样沿用第 10 代并包含 MTE。
评论
讨论整体带着「旧闻重炒」的疲惫感:不少人指出链接里的 MTE 争议是 8 月的消息、GrapheneOS 9 月已收回说法,真正值得关注的是 Google 限制非三星 OEM 预装 GrapheneOS。分歧主轴在于,这到底只是又一轮情绪化的隐私圈内耗,还是 Google 系统性收紧 Android 生态的又一实锤。
认为这是过时消息被重新翻炒
- 指出链接信噪比很差,情绪多于信息,MTE 是否会在未来 QPR1/QPR2 随系统升级启用仍无定论(较多人)
- 有人一开始就在问这算不算新公告,说明内容对关注者并不新鲜(少数人) > 现在的问题只是 Google 会不会在后续系统升级里启用 MTE,目前没有确定答案。(@rickdeckard)
认为真正的新闻是 Google 阻止 OEM 预装 GrapheneOS
- 有人把重点从 MTE 挪开:Google 不允许非三星 OEM 直接销售搭载 GrapheneOS 的设备,只允许在配额内进行,实际做法可能是 Motorola 出厂装 Google 认证的 Android,再由第三方批量购入预装 GrapheneOS(较多人)
- 这一条被形容为上世纪 90 年代末到 2000 年代初微软级别的反竞争行为,并对监管机构、尤其是美国以外的监管者至今未介入表示意外(较多人)
认为删掉 MTE 不会有人注意
- 逻辑是 MTE 本来就没被 Android 实际使用,所以移除时大概认为没人会察觉,而对绝大多数用户来说确实如此(较多人)
认为 Pixel 11 本身就不值得买
- 这是 RAM 涨价潮之后发布的第一代 Pixel,在降成本上做了大量妥协,属于会直接跳过的一代(较多人)
- 没有换机驱动力,Pixel 8 状态仍好;如果今天手机坏了,宁可买二手 Pixel 10 也不买全新的 11(较多人)
批评 GrapheneOS 不该揣测 Google 的内部动机
- 为严肃项目做对外沟通时,最好别去推测另一个组织内部决策的理由,哪怕你相当有把握(较多人)
对转向 Motorola 路线持怀疑
- 质疑为何要买一家市占率仅 5% 的厂商的低销量机型,并建议在意隐私的人避开 Moto 首发、继续留在 Pixel(少数人) > 如果你在意隐私,就离 Moto 这波发布远一点,继续用 Pixel。(@mrbn100ful)
老 Pixel 用户开始纠结下一步去哪
- 有人手里的 Pixel 7 已显老旧,准备用到报废,但眼看 Google 把平台越锁越紧,不确定下一代该换什么(少数人)
有价值的补充
- MTE 是 Arm 架构自带的,问题在于 Google 是否在固件层就切断了访问;同时值得追问 Google 是否引入了其他针对释放后使用的缓解措施,以及禁用 MTE 是否是为了不妨碍某些(三方库/漏洞利用链)的既有做法(@pbhjpbhj)
- 一个更基础的安全问题被提出:手机的应用侧操作系统究竟有没有能力阻止设备上的实时操作系统访问应用侧正在使用的内存和磁盘?如果这一点无法控制,应用层安全就没有意义(@rkozik1989)
- 交叉印证:GrapheneOS 早先说过同时支持 Pixel 11 与 Motorola 机型,后来不得不改口,说明官方说法本身也在变动(@jordand)