LWN:Graphene OS——更安全的安卓版本!

关注了就能看到更多这么棒的文章哦~

Graphene OS: a security-enhanced Android build

By Jonathan Corbet
July 24, 2025
Gemini flash translation
https://lwn.net/Articles/1030004/

人们总是对自己的手机非常新人。其实这些设备能够访问我们生活中无尽的敏感数据——我们的行踪、财务、通信等等——因此,即使是普通人的手机,也可能成为高价值的攻击目标。Android 设备至少在某些层面运行的是自由软件(free software),因此应该有可能确保它们为所有者的利益服务。然而,市面上现成的 Android 安装版本往往未能达到这个目标。GrapheneOS 这个 Android 重建(rebuild)项目正试图改善这一现状。

GrapheneOS 最初名为“CopperheadOS”;它曾于 2016年在此处被评论。然而,几年后,该项目的两位创始人之间一场激烈的争执导致了项目的消亡。其中一位创始人 Daniel Micay 继续了这项工作,并组建了最终的 GrapheneOS。根据其历史页面的记载,GrapheneOS 是一个独立的开源项目,它“将永远不再与任何特定的赞助商或公司紧密关联”。GrapheneOS 的工作得到了一个 2023 年在加拿大成立的基金会的支持;不过,关于这个组织几乎没有公开信息。

GrapheneOS 的核心在于努力强化 Android,以抵御多种威胁,并使 Android 服务于用户的隐私利益。它基于Android 开源项目(Android Open Source Project),但删除了大量代码并增加了许多改动。其中一些改动,例如强化的 malloc() 库(hardened malloc() library)或额外控制流完整性(control-flow-integrity)功能的使用,对用户来说大都是不可见的(当然,除非它们导致应用崩溃,这显然是已知会发生的)。其他一些改动则更为明显,但很明显,开发团队投入了大量精力,以使安全改进尽可能地不引人注目。

安装

一些 Android 重建项目优先支持广泛的设备,通常着眼于尽可能长时间地保持旧设备正常运行。GrapheneOS 并非其中之一。它支持的硬件列表仅限于 Google Pixel 6 到 Pixel 9 设备,对 Pixel 4 和 Pixel 5 设备提供一些边缘支持。即便如此,仍然强烈建议使用较新的设备:

第八代/第九代 Pixel 手机提供了从发布之日起至少 7 年的支持保障,而非之前的 5 年最低保障。第八代/第九代 Pixel 手机还引入了对极其强大的硬件内存标记(hardware memory tagging)安全功能的支持,这是向新的 ARMv9 CPU 核心(ARMv9 CPU cores)过渡的一部分。GrapheneOS 默认使用硬件内存标记来保护基础操作系统(base OS)和已知兼容的用户安装应用免受漏洞利用(exploitation),并可选择将其用于所有应用,对于少数不兼容的应用则可以逐一选择退出。

我的手机已经清楚地表明,未来它将不可靠,但购买新设备的念头也引发了诸多不安。每款新设备似乎都带有更多侵犯隐私的“功能”和侵扰性的人工智能(AI)“助手”;找到所有必要的“禁用”开关是一项繁琐且容易出错的任务。再加上有消息称 Google 的“Gemini”越来越觉得无论设备如何配置,它都有权访问设备所有者的数据,这促使我购买了一台 Pixel 9 设备,用于 GrapheneOS 的实验,以查看它是否能取代日常使用的原生 Android。

刷写昂贵设备的固件(firmware)总是一件令人紧张的事情;GrapheneOS 的安装程序旨在最大程度地减少此过程中的不安。文档中描述了两种安装方法——基于网络的安装和命令行安装。自然,我选择了命令行版本。说明非常直接:下载安装镜像(installation image),连接设备,然后运行提供的脚本。该脚本运行完成并在最后自信地宣告成功,但设备仍然只启动到正常的 Android——这是一个可重复的结果,但并非预期的结果。

经过一番调查,发现了一个(未记载的)事实,即网络安装方法被认为比命令行版本更可靠。于是我尝试了这种方法,它按预期工作了;GrapheneOS 的实验也因此正式开始。

初步印象

原生 Android 包含一些不错的功能,旨在让用户尽可能轻松地迁移到新设备——考虑到鼓励人们频繁更换设备的强烈动机,这并不令人意外。旧设备上的大部分数据、应用和配置都将自动转移到新设备。GrapheneOS 没有这样的功能;一部新安装的手机就像一块空白的石板,必须从头开始重新配置。用户应该预料到会花费大量时间来重新找回那些几年前就设置好的所有恰当的设置。

从右侧的截图可以看出,GrapheneOS 的初始屏幕是一种朴素而单色的体验。系统本身对颜色处理得很好,但颜色似乎需要所有者自行配置。

原生 Android 安装时自带大量应用,其中许多应用用户可能从未想要,而且很多应用通常无法删除。GrapheneOS 没有这些东西。它自带了自己版本的网页浏览器、相机应用、PDF 阅读器和应用商店。值得注意的是,GrapheneOS  包含 Google Play 商店或其中的任何应用(但关于 Google Play,请继续阅读下文)。其应用商店总共只提供 13 个应用。

该网页浏览器是一个名为Vanadium的 Chromium 分支(fork)。它在移动设备上启用了严格的站点隔离(site isolation)(而 Chrome 显然没有),并增加了一些代码强化(code-hardening)功能。文档强烈建议避免使用 Firefox,称其“更容易受到漏洞利用”。

相机应用被描述为最好的可用应用,按 GrapheneOS 的文档中经常出现的写作风格描述如下:

GrapheneOS 相机远优于任何便携式开源相机替代品,甚至优于大多数专有相机应用,包括付费应用。在 Pixel 手机上,Pixel Camera 可以作为具有更多功能的替代品。

相机应用默认会去除 Exif 元数据(Exif metadata),如果需要位置元数据,则必须单独启用。

应用商店

另一个可以从 GrapheneOS 商店安装的应用是 Accrescent 应用商店,它是一个声称专注于安全和隐私的替代存储库(repository)。它提供了对几十个更多应用的访问权限,包括 Organic Maps、Molly Signal 分支,以及 IronFox,一个强化版的 Firefox。

有了这些应用商店,用户可以启用一定程度的基本手机功能,但可悲的事实是,我们许多人需要的远不止这些。当然,一个替代方案是 F-Droid,它肯定可以在 GrapheneOS 上安装和使用。包括 GrapheneOS 社区在内的硬核安全导向型人士,往往对 F-Droid 不屑一顾(例如参阅这篇文章),但它是一个(大部分是)自由软件应用(free-software apps)的有用来源。

不过,最终往往还是要用到 Google Play 商店;对于许多人来说,没有那里的应用,Android 设备几乎毫无用处。GrapheneOS 提供了沙盒版 Google Play(sandboxed version of Google Play),将其转变为一个普通应用,没有 Google Play 在原生 Android 系统上拥有的特殊权限。在这里它运行得很顺利;文档说有些应用可能无法正常工作,但我没有遇到任何问题。

值得注意的是,Android 提供了一个“完整性 API”(integrity API),可用于查询设备上运行的软件状态。除其他功能外,它还可以证明安全启动(secure-boot)序列是否成功执行,或者设备是否运行的是官方 Android 构建(official Android build)。GrapheneOS 实现了这个 API,并且由于它使用了安全启动机制,可以通过第一项测试,但它不是官方镜像(official image),因此无法通过第二项测试。有些应用会关注这些查询结果,如果得到不喜欢的答案,可能会拒绝工作。

GrapheneOS 会对每次使用此 API 的情况发出通知,因此很容易看出哪些应用正在使用它。大多数应用没有使用,但有些确实使用了。我看到一些应用查询了这个 API,但没有遇到任何拒绝工作的应用;安全启动对它们来说已经足够了。另一些则更挑剔;有一个简短的应用列表列出了那些拒绝在 GrapheneOS 下运行的应用。因此,在决定使用 GrapheneOS 这样的替代构建之前,测试任何重要应用是重要的尽职调查。我们只能希望未来的应用更新不会让一个原本能正常工作的应用决定停止合作;这是使用任何替代 Android 构建时一个明确的风险因素。

安全功能

GrapheneOS 包含许多安全和隐私功能,超越了底层的强化(hardening)。其中许多功能旨在让设备仿佛真正由设备所有者拥有一样运行。例如,Android 中包含的配置数据(provisioning data),它告诉设备如何与世界各地的运营商协作,允许这些运营商指定某些功能(如网络共享/tethering)不可用。GrapheneOS 从未真正实现系统的这一部分。相反,它提供了一个选项,可以防止手机降级到更旧、更不安全的蜂窝协议。

标准 Android 允许控制一些应用权限,但不允许用户拒绝应用的网络访问。GrapheneOS 确实提供了这种控制,尽管出于兼容性原因,网络访问默认是启用的。如果网络访问被禁用,相关应用会认为网络访问仍然可用,但不知何故,设备就是找不到信号。因此,应用不应该仅仅因为网络访问不可用就拒绝运行(尽管它们当然可能无法正确运行)。

有一个“传感器”(sensors)权限位,用于控制对不受其他权限约束的任何传感器的访问;这些传感器包括加速度计、指南针、温度计或任何其他可能存在的此类传感器。此权限也默认启用,但所有者可以将其关闭。

存储范围(storage scopes)功能可以将应用放入沙盒(sandbox)中,让它们以为自己拥有对设备共享存储的完全访问权限,但它们只能访问自己创建的文件。还有一个联系人范围(contact scopes)功能,允许应用以为自己拥有对所有者联系人的完全访问权限,同时将大部分或所有数据对这些应用隐藏。

GrapheneOS 支持指纹解锁,就像普通 Android 一样,但有一个区别:连续五次失败后,指纹功能将被禁用 30 分钟。因此,当所有者被迫通过指纹解锁设备时,可以使用未识别的指纹快速禁用该功能。对于那些隐私需求更严格的用户,可以配置一个胁迫 PIN 码(duress PIN);输入该 PIN 码将导致设备立即擦除所有数据。毋庸置疑,这项自毁功能应谨慎使用。

有一个特殊应用,可以审计 GrapheneOS 设备的状态,并利用硬件安全功能提供一份证明(attestation),证明该设备未被篡改或降级到旧的软件版本。

该项目频繁发布版本(releases),已安装的 GrapheneOS 系统会积极更新。该项目于七月初更新到 Android 16 版本,距离 Google 发布该版本不到一个月。在默认配置下,设备在 18 小时不活动后会自动重启,以此方式将所有数据推送到(加密)静止状态;这也有助于设备运行最新的软件版本。

另请参阅此页面,其中比较了多个基于 Android 的构建(build)的安全功能列表。

治理与社区

一个潜在的警告是,GrapheneOS 背后的开发社区有些模糊。如前所述,确实有一个基金会来支持这个系统,但除了一份令人印象深刻的捐赠方式列表之外,关于基金会如何运作的信息很少。公共注册信息显示有三位董事:Micay、Khalykbek Yelshibekov 和 Dmytro Mukhomor,但关于董事如何选出或基金会如何使用其资金,没有公开信息。

存在大量存储库(repositories)包含该项目的源代码,但关于如何贡献或开发社区的动态信息很少。一些信息可以在构建说明页面上找到。该项目运行着一套聊天室和一个论坛,但它们似乎主要被用户导向的对话所主导,而非开发讨论。该项目在论坛中的参与来自一个通用的“grapheneos”账户。

在对一次私人查询的回应中,该项目声称拥有十名活跃的、受薪的开发者,其中大部分是全职的。不过,人们会觉得 Micay 仍然是 GrapheneOS 背后的推动力量;至少,该项目好斗的联邦宇宙(fediverse)存在与他以前的互动模式有很多相似之处。如果他离开项目会发生什么,目前尚不清楚。这里存在一个难以量化的潜在风险。

总体印象

使用 GrapheneOS 设置设备需要几天的时间,其中大部分时间都致力于在新设备上重新安装和配置旧设备上的应用和设置。需要投入一定时间适当配置隐私功能,并授予应用正常工作所需的权限。然而,最终设备运行得和它的前身一样好,所有需要的功能都存在,而许多不必要的功能则不存在。我已经心甘情愿地开始使用它,并且无意回头。

这个系统无疑更加安全,即使那些不可见的强化改动实际上没有做任何事情。沙盒更严密,对应用能做什么有更多控制,也没有人工智能精灵竭力想从瓶子里逃脱。

当然,剩下的问题是,对许多人来说,仅仅 GrapheneOS 是不够的,有必要让专有软件(proprietary software)介入。文档说不需要登录 Play 商店,但它坚持要我登录,重新建立了安装 GrapheneOS 时切断的与 Google 的脐带连接。键盘不支持“滑动”(swipe)输入;想要此功能的用户很可能会安装 GBoard,这会带来自己的隐私风险。GrapheneOS 的消息应用可以工作,但 Google 的应用可以过滤一些垃圾邮件,不妨也安装上。如今 F-Droid 上有一些合理、尊重隐私的天气应用,但那些专有的、侵犯隐私的应用可以更好地获取天气警报(至少在仍有正常运作气象机构的国家)和红色预警。Android Auto 非常有用,在 GrapheneOS 中也能正常工作,但它需要自己级别的特殊访问权限。

此外,还有一大堆银行应用、叫车应用、航空公司应用等等,它们似乎在现代生活中不可或缺。每一个应用都在 GrapheneOS 精心创建的私人空间中又打了一个洞。/确实/有可能在没有这些工具的情况下生活和发展,我们许多人也认识这样做的人,但这些工具的存在和流行是有原因的。对于许多人来说,没有专有软件根本无法生活,而其中许多软件已知会监视我们的一举一动并以敌对方式行事。

至少,在手机上安装 GrapheneOS 会让人意识到每个被“捅破”的漏洞,并促使人们尽可能地减少这些漏洞。当潜在的恶意软件不得不被允许进入一个包含我们许多最私密信息的设备时,系统至少会尽力将该软件限制在其指定的边界内,使其无法做任何未经明确允许的事情。安装 GrapheneOS 会使设备更倾向于其所有者的利益;仅此一点,就值得付出代价。

全文完
LWN 文章遵循 CC BY-SA 4.0 许可协议。

欢迎分享、转载及基于现有协议再创作~

长按下面二维码关注,关注 LWN 深度文章以及开源社区的各种新近言论~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值