保护环境

Google 提供了一套 API 和服务,帮助您检测自己的应用是否 在安全、可信的环境中运行。核心是 Play Integrity API,它通过检测潜在互动和 存在风险的欺诈性互动。除了应用和设备完整性之外,Play 还会 Integrity API 现在提供有关访问和无障碍风险的信息, Google Play 保护机制近期设备活动记录。为了进一步强化 您的反欺诈策略;Android 平台为特定场景提供 API 可能与您的应用相关

Play Integrity API

Play Integrity API 功能

借助 Play Integrity API,您可以了解 运行应用的设备这有助于您确信 访问敏感信息

它可以帮助您检查互动和服务器请求是否来自您的 在可信环境中提供正版应用二进制文件:

  • 正版应用二进制文件:确定您是否正在与自己的 Google Play 可识别的未经修改的二进制文件。
  • 正规 Play 安装:确定当前用户账号是否 已获得许可,这意味着用户安装或购买了您的应用或游戏 Google Play。
  • 正品 Android 设备:确定您的应用是否在正品上运行 由 Google Play 服务提供支持的 Android 设备。
  • 不含已知恶意软件:确定 Google Play 保护机制是否已开启 以及是否发现设备上安装了存在风险或危险的应用。
  • 其他应用访问风险较低:确定其他应用是否在运行 可能会截屏或控制设备和输入到您的应用中的元素。

这些信息如何帮助防范欺诈行为

当用户在您的应用中执行重要操作时,您可以调用 Play Integrity API。否则,应用的后端服务器就可以决定 抵御攻击和欺诈。例如,您可以要求 额外的用户验证或拒绝使用敏感功能。

Play Integrity API 决策流程

应用访问风险

我们推出了应用访问风险信号,以帮助您评估 设备上的应用可能在 运行或访问您的应用。已验证 系统会自动从这些判定结果中排除无障碍应用。应用访问权限 风险有助于开发者保护其应用,同时保护用户隐私,因为: 发出请求的应用无法获取已安装应用的身份, 未与用户或设备标识符相关联。

屏幕截图:手机要求用户关闭特定应用。

多亏有这样的通力协作,我们才得以获得 为我们提供更深入的数据洞见,从而更有效地保护客户。
- Nubank,抢先体验合作伙伴

App Access Risk 具有不同的风险级别:

  • 捕获响应表示有其他应用正在运行,可以截取屏幕。
  • 控制响应表示其他应用正在运行,可控制 因此它们既可以截屏,又可以控制输入 嵌入您的应用中

应用访问风险信号现已进入公开 Beta 版阶段,并将公开发布 。

强制执行应用访问风险

确定应用或游戏中的高价值或敏感操作,以通过 Play Integrity API 进行保护,而不是直接拒绝访问。在可能的情况下,请先对存在风险的流量进行查验,然后再允许执行高价值操作。例如,当应用访问风险信号表明一款可截屏的应用正在运行时,请要求用户停用或卸载可截屏的应用,然后才允许用户继续使用您要保护的功能。

下表包含一些示例判定结果:

应用访问风险判定结果响应示例 解读
appsDetected:
["KNOWN_INSTALLED"]
只有 Google Play 可识别的已安装应用 或由设备制造商在系统分区中预加载。 没有运行会导致捕获、 或叠加判定结果
appsDetected:
["KNOWN_INSTALLED",
"UNKNOWN_INSTALLED",
"UNKNOWN_CAPTURING"]
Google Play 安装了应用或已预加载到 system 分区。 有其他应用正在运行且已启用相关权限 用于查看屏幕或捕获其他输入和输出。
appsDetected:
["KNOWN_INSTALLED",
"KNOWN_CAPTURING",
"UNKNOWN_INSTALLED",
"UNKNOWN_CONTROLLING"]
正在运行的 Play 或系统已启用相关权限 可用于查看屏幕或捕获其他输入和输出。 还有正在运行的其他应用启用了相关权限 可用于控制设备和直接控制 。
appAccessRiskVerdict: {} 由于一项必要要求,系统未能评估应用访问风险 缺失。例如,设备不够可信。

Play 保护机制信号

Play 保护机制信号会告知您的应用是否已开启 Play 保护机制, 是否发现设备上安装了已知的有害应用。

environmentDetails:{
  playProtectVerdict: "NO_ISSUES"
}

如果您的应用或用户特别关注恶意软件数据,您可以 检查此判定结果,并要求用户开启 Play 保护机制或移除有害内容 应用,然后再继续。

“开启 Play 保护机制”对话框

playProtectVerdict 可采用以下值之一:

判定 说明 推荐操作

NO_ISSUES

Play 保护机制处于开启状态,但在 设备。

Play 保护机制处于开启状态,但未发现任何问题,因此用户未执行任何操作 必填字段。

NO_DATA

Play 保护机制处于开启状态,但尚未执行任何扫描。通过 设备或 Play 商店应用可能在近期被重置了。

Play 保护机制处于开启状态,但未发现任何问题,因此用户未执行任何操作 必填字段。

POSSIBLE_RISK

Play 保护机制处于关闭状态。

Play 保护机制处于开启状态,但未发现任何问题,因此用户未执行任何操作 为必填字段。

MEDIUM_RISK

Play 保护机制处于开启状态,并且发现了潜在有害应用 安装在设备上。

根据您的风险容忍度,您可以要求用户启动 Play 保护机制,并针对 Play 保护机制警告采取措施。如果用户 不能满足这些要求,您可以阻止它们访问服务器 操作。

HIGH_RISK

Play 保护机制处于开启状态,并发现了危险的已安装应用 。

根据您的风险容忍度,您可以要求用户启动 Play 保护机制,并针对 Play 保护机制警告采取措施。如果用户 不符合这些要求,您可以阻止他们从 服务器操作。

UNEVALUATED

未评估 Play 保护机制判定。

这可能会造成 有多种原因会造成这种情况,其中包括:

  • 设备不够可信。
  • 仅限游戏:用户账号未获得许可。

近期设备活动记录

您还可以选择启用近期设备活动, 在过去一小时内,您的应用在特定设备上请求了完整性令牌。您 可以根据近期设备活动记录来保护您的应用 这表明存在主动攻击。您可以 根据每个设备近期活动等级的可信度, 预计安装在典型设备上的应用请求完整性的次数 每个小时的令牌。

如果您选择接收recentDeviceActivitydeviceIntegrity字段将 具有两个值:

deviceIntegrity: {
  deviceRecognitionVerdict: ["MEETS_DEVICE_INTEGRITY"]
  recentDeviceActivity: {
    // "LEVEL_2" is one of several possible values.
    deviceActivityLevel: "LEVEL_2"
  }
}

首先,您应该检查数据,了解典型的设备活动水平 推广您的应用然后,您可以决定 在设备发出过多请求时应做出响应。如果该 activity 是 建议用户稍后重试如果活动 ,您可能需要采取更强有力的违规处置措施。

标准请求与传统请求

在实现 Play Integrity 的过程中,请务必考虑 两种类型的请求在大多数情况下,您应该使用标准请求, 以提供最快的响应,并且在以下情况下,应使用传统请求: 需要针对设备认证记录新生成的请求。

传统请求

标准请求

请求用时较长,应降低其频率。

例如,临时一次性检查某个颇有价值的或 是否真实。

很少使用

请求的延迟时间较短,可以按需使用。

标准请求由两部分组成:

  • 准备完整性令牌提供程序(一次性)
  • 请求完整性令牌(按需)

按需使用

如需详细了解标准传统请求。

实现

如需开始使用 Play Integrity API,请执行以下操作:

默认情况下,Play Integrity API 允许每个应用每天最多发出 1 万个请求。接收者 申请提高每日请求次数上限,请按照这些 操作说明。符合提高每日次数上限的条件 请求数量,您的应用必须正确实现 Play Integrity API,并且 。

关于 Play Integrity API 的注意事项

自动完整性保护 (API >= 23)

自动完整性保护是一项防篡改代码保护服务 保护您的应用免遭未经授权的完整性滥用 修改和再分发。它在没有数据连接的情况下运行,并且需要 无需开发者在测试前做任何工作,也无需进行后端服务器集成。

这些信息如何帮助防范欺诈行为

您开启自动完整性保护功能后,Google Play 会在您的 并利用高级混淆处理和 以及反逆向工程技术。在运行时,该保护机制会检查 :

  • 如果未能通过安装程序检查,系统会提示用户从 Google Play 获取您的应用
  • 如果未能通过修改检查,则应用不会运行

这有助于保护用户免受经过修改的应用版本的侵害。

实现

目前,自动完整性保护功能仅面向部分 Play 合作伙伴提供 。如果以下国家/地区不提供此功能,请与 Google Play 开发者支持团队联系 并且有意申请获取 访问权限。

您可以在创建版本时开启保护功能,也可以在应用 完整性页面(发布版本 > 应用完整性)。自动完整性 该保护机制要求您的应用使用 Play 应用签名功能。

请务必先测试受保护的应用,然后再将版本升级到 正式版

注意事项

  • 不发布不受保护的应用版本
  • 混用防篡改解决方案时需小心谨慎
  • 先测试受保护的应用,然后再发布正式版
  • 照常监控统计信息,了解崩溃情况的增加情况
  • 您可以向 Google Play 举报应用的破解版本