Google 提供了一套 API 和服务,帮助您检测自己的应用是否 在安全、可信的环境中运行。核心是 Play Integrity API,它通过检测潜在互动和 存在风险的欺诈性互动。除了应用和设备完整性之外,Play 还会 Integrity API 现在提供有关访问和无障碍风险的信息, Google Play 保护机制和近期设备活动记录。为了进一步强化 您的反欺诈策略;Android 平台为特定场景提供 API 可能与您的应用相关
Play Integrity API
借助 Play Integrity API,您可以了解 运行应用的设备这有助于您确信 访问敏感信息
它可以帮助您检查互动和服务器请求是否来自您的 在可信环境中提供正版应用二进制文件:
- 正版应用二进制文件:确定您是否正在与自己的 Google Play 可识别的未经修改的二进制文件。
- 正规 Play 安装:确定当前用户账号是否 已获得许可,这意味着用户安装或购买了您的应用或游戏 Google Play。
- 正品 Android 设备:确定您的应用是否在正品上运行 由 Google Play 服务提供支持的 Android 设备。
- 不含已知恶意软件:确定 Google Play 保护机制是否已开启 以及是否发现设备上安装了存在风险或危险的应用。
- 其他应用访问风险较低:确定其他应用是否在运行 可能会截屏或控制设备和输入到您的应用中的元素。
这些信息如何帮助防范欺诈行为
当用户在您的应用中执行重要操作时,您可以调用 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 保护机制或移除有害内容 应用,然后再继续。
playProtectVerdict
可采用以下值之一:
判定 | 说明 | 推荐操作 |
---|---|---|
|
Play 保护机制处于开启状态,但在 设备。 |
Play 保护机制处于开启状态,但未发现任何问题,因此用户未执行任何操作 必填字段。 |
|
Play 保护机制处于开启状态,但尚未执行任何扫描。通过 设备或 Play 商店应用可能在近期被重置了。 |
Play 保护机制处于开启状态,但未发现任何问题,因此用户未执行任何操作 必填字段。 |
|
Play 保护机制处于关闭状态。 |
Play 保护机制处于开启状态,但未发现任何问题,因此用户未执行任何操作 为必填字段。 |
|
Play 保护机制处于开启状态,并且发现了潜在有害应用 安装在设备上。 |
根据您的风险容忍度,您可以要求用户启动 Play 保护机制,并针对 Play 保护机制警告采取措施。如果用户 不能满足这些要求,您可以阻止它们访问服务器 操作。 |
|
Play 保护机制处于开启状态,并发现了危险的已安装应用 。 |
根据您的风险容忍度,您可以要求用户启动 Play 保护机制,并针对 Play 保护机制警告采取措施。如果用户 不符合这些要求,您可以阻止他们从 服务器操作。 |
|
未评估 Play 保护机制判定。 这可能会造成 有多种原因会造成这种情况,其中包括:
|
近期设备活动记录
您还可以选择启用近期设备活动, 在过去一小时内,您的应用在特定设备上请求了完整性令牌。您 可以根据近期设备活动记录来保护您的应用 这表明存在主动攻击。您可以 根据每个设备近期活动等级的可信度, 预计安装在典型设备上的应用请求完整性的次数 每个小时的令牌。
如果您选择接收recentDeviceActivity
,deviceIntegrity
字段将
具有两个值:
deviceIntegrity: {
deviceRecognitionVerdict: ["MEETS_DEVICE_INTEGRITY"]
recentDeviceActivity: {
// "LEVEL_2" is one of several possible values.
deviceActivityLevel: "LEVEL_2"
}
}
首先,您应该检查数据,了解典型的设备活动水平 推广您的应用然后,您可以决定 在设备发出过多请求时应做出响应。如果该 activity 是 建议用户稍后重试如果活动 ,您可能需要采取更强有力的违规处置措施。
标准请求与传统请求
在实现 Play Integrity 的过程中,请务必考虑 两种类型的请求在大多数情况下,您应该使用标准请求, 以提供最快的响应,并且在以下情况下,应使用传统请求: 需要针对设备认证记录新生成的请求。
传统请求 |
标准请求 |
---|---|
请求用时较长,应降低其频率。 例如,临时一次性检查某个颇有价值的或 是否真实。 很少使用。 |
请求的延迟时间较短,可以按需使用。 标准请求由两部分组成:
按需使用。 |
实现
如需开始使用 Play Integrity API,请执行以下操作:
- 在 Google Play 管理中心内启用 Play Integrity API 响应并进行关联 关联到一个 Google Cloud 项目。
- 在您的应用中集成 Play Integrity API。
- 决定您将如何处理判定。
默认情况下,Play Integrity API 允许每个应用每天最多发出 1 万个请求。接收者 申请提高每日请求次数上限,请按照这些 操作说明。符合提高每日次数上限的条件 请求数量,您的应用必须正确实现 Play Integrity API,并且 。
关于 Play Integrity API 的注意事项
- 请务必处理 Play Integrity API 响应中的错误, 。请按照此处有关重试和强制执行策略的指南操作 根据错误代码确定。
- Play Integrity API 提供了响应测试工具。
- 如需查看设备的完整性结果,请按照这些步骤操作。
- 请阅读这些安全注意事项,了解使用 Play Integrity API。
自动完整性保护 (API >= 23)
自动完整性保护是一项防篡改代码保护服务 保护您的应用免遭未经授权的完整性滥用 修改和再分发。它在没有数据连接的情况下运行,并且需要 无需开发者在测试前做任何工作,也无需进行后端服务器集成。
这些信息如何帮助防范欺诈行为
您开启自动完整性保护功能后,Google Play 会在您的 并利用高级混淆处理和 以及反逆向工程技术。在运行时,该保护机制会检查 :
- 如果未能通过安装程序检查,系统会提示用户从 Google Play 获取您的应用
- 如果未能通过修改检查,则应用不会运行
这有助于保护用户免受经过修改的应用版本的侵害。
实现
目前,自动完整性保护功能仅面向部分 Play 合作伙伴提供 。如果以下国家/地区不提供此功能,请与 Google Play 开发者支持团队联系 并且有意申请获取 访问权限。
您可以在创建版本时开启保护功能,也可以在应用 完整性页面(发布版本 > 应用完整性)。自动完整性 该保护机制要求您的应用使用 Play 应用签名功能。
请务必先测试受保护的应用,然后再将版本升级到 正式版。
注意事项
- 不发布不受保护的应用版本
- 混用防篡改解决方案时需小心谨慎
- 先测试受保护的应用,然后再发布正式版
- 照常监控统计信息,了解崩溃情况的增加情况
- 您可以向 Google Play 举报应用的破解版本