与数十亿普通 Android 用户相比,进行 root 操作或安装第三方 ROM 的用户数量微乎其微。虽然我不会说 Google 对这些高级用户持敌意态度,但该公司在加强 Android 应用安全方面所做的努力,确实在无意中影响了这些用户的使用体验。比如,Google 最近对 Play Integrity API 的更新,使开发者更容易保护应用免受滥用用户的干扰,但同时也大大增加了真正的高级用户使用某些应用的难度。

Play Integrity API 是一个供开发者使用的工具,用于验证来自应用程序的交互或服务器请求是否来自于未被修改的原始应用,并运行在真实的 Android 设备上。许多开发者使用该 API 来减少因应用被滥用而导致的收入或数据损失。例如,该 API 可以防止用户在未付款的情况下访问高级内容,或者通过禁止潜在被攻破的设备访问应用,从而保护敏感的金融数据。

对于那些对手机进行 root 或安装第三方 ROM 的高级用户来说,问题出在 Google 对“正品”Android 设备的定义上:即运行 Google Play 认证版本的 Android 系统。这个定义本质上排除了几乎所有的第三方 ROM,因此很多使用第三方 ROM 的用户不得不通过一些技术手段伪装成已认证的系统。虽然并非所有 root 用户都会刷入第三方 ROM,但他们通常会在 root 过程中解锁引导加载器,而这个步骤就足以让设备无法通过更严格的 Play Integrity 检测,进而无法使用大量餐饮、医疗、游戏、银行和支付类应用,因为这些应用通常会启用该 API 的高级验证功能。
过去,Play Integrity API 以及其前身 SafetyNet Attestation API 对高级用户的影响还不算大,因为他们通常可以轻松绕过这些限制。但 Google 正在逐步加强对硬件级安全信号的执行,而这些基于硬件的检测比以往那些软件层面的绕过手段要难得多。虽然这种硬件验证带来了更强的安全性,高级用户一度还能安心使用未严格执行这些机制的应用。
此外,是否启用硬件安全信号原本是由应用开发者自行决定的,这给开发者提供了根据自身需求限制应用使用范围的灵活性。例如,银行或支付类应用通常会主动检测设备是否通过了硬件信号验证。但如今,这类验证已成为所有使用 Play Integrity API 应用的基础要求。
去年 12 月,Google 宣布对 Play Integrity API 进行重大更新,强化了运行 Android 13 及以上版本设备上的“基础(basic)”、“设备(device)”和“强(strong)”级别的完整性评估。其中“设备”和“强”是该 API 返回的两种更为严格的完整性判定,而“基础”级别虽然较宽松,但在追求高安全性的开发者中应用并不广泛。

过去,只有“强(strong)”级别的完整性判定使用了硬件支持的安全信号。然而从去年 12 月开始,Google 对所有完整性判定标准进行了进一步收紧:“设备(device)”级别的完整性判定也开始使用硬件支持的安全信号,而“强”级别的完整性判定则被修改为要求设备的安全补丁更新时间在过去一年以内。与此同时,“基础(basic)”级别的完整性判定也开始使用硬件支持的信号,不过由于其要求较宽松,即便设备已开启 root 或解锁引导加载器,也仍然有可能通过。
Google 宣称,此次调整的目的是为了使 Play Integrity API 变得更快速、更可靠,同时提升用户隐私水平,因为这项更新减少了需要收集的信号数量。这些变化同样使得攻击者更难以、也更高成本地绕过这套系统。
在发布公告时,这些更新后的完整性判定标准尚未强制执行,Google 当时将其设为开发者可选择启用的功能,但同时表示,所有 Play Integrity API 集成将在 2025 年 5 月自动过渡到新标准。
如今已是 5 月,Google 正兑现其承诺。在 Google I/O 2025 大会上,该公司宣布已正式启用默认更严格的完整性判定标准。在 “Google Play 新动态” 的会议环节中,Google Play 开发者与变现负责人 Raghavendra Hareesh 表示,公司正在“为所有开发者启用更强的完整性判定,且无需开发者额外操作”。
“Play Integrity API 是任何全面安全策略中的关键工具,帮助你保护整个应用的使用体验。它在防止可能导致收入损失甚至伤害用户的滥用行为方面至关重要。使用该 API 的开发者,其应用的未授权使用率比其他应用低了 80% 以上。这意味着更少的欺诈、更少的作弊行为以及更少的数据盗窃。
我们也在不断发展和完善 Play Integrity API,以应对不断演变的各种威胁。因此,从今天起,我们将为所有开发者默认启用更强的完整性判定,无需开发者做任何额外操作。这使得设备可信性检测更快速、更可靠、也更加注重用户隐私。开发者现在还可以检查设备是否近期安装了安全更新,这对于那些保护敏感操作的应用来说非常重要。”
—— Raghavendra Hareesh,Google Play 开发者平台与变现负责人
这意味着,那些对手机进行 root 或安装第三方 ROM 的高级用户,可能会突然发现某些应用无法正常使用,尤其是在运行 Android 13 或更高版本的设备上。即便是没有修改系统的 Android 13+ 用户,如果设备长时间没有收到系统更新,也可能遇到问题。这是因为启用了“强(strong)”完整性判定的应用,要求设备具备最近的安全补丁才能通过验证。

Google 完全实施基于硬件的安全信号早已是预期之中。尽管此前高级用户可以通过一些简单方法绕过早期的检测机制——通常是欺骗 Play Integrity API,让其依赖更容易伪造的软件层面检测——但这些手段从来都不是长期有效的解决方案。因此,这些用户迟早会遇到应用无法正常运行的情况,也只是时间问题。
不久之后,这些简单的绕过方法很可能将彻底失效,用户将别无选择,只能依赖不太可靠的 keybox 泄露资源,或者将设备恢复到官方原厂状态。虽然 Google 推出这些变化的主要目的是提升所有用户的应用安全性,但这无疑也让高级用户的使用体验大打折扣。
感谢安全研究员 linuxct 为本文提供的见解!