您可以使用 Play Integrity API 保护您的应用和游戏,避免因为存在风险的互动而受到损害。通过识别这些互动,您的应用可以做出适当的响应,以降低遭到攻击和滥用的风险。
运作方式
Play Integrity API 可帮助您检查用户互动和服务器请求是否来自在正版 Android 设备(或正版 Google Play 游戏电脑版实例)上运行、通过 Google Play 安装且未经修改的应用二进制文件,从而保护您的应用和游戏免遭滥用。通过检测各种威胁(例如经过修改的应用版本、不可信的设备或其他不可信的环境),您可以采取适当的措施来减少欺诈、作弊和未经授权的访问等攻击行为。
当用户执行操作时,您的应用会请求 Play Integrity API 评估。Google Play 服务器会返回包含完整性判定结果的加密响应,您的应用随后会将该响应转发给您的服务器进行验证。您的后端服务器会使用此判定结果来决定您的应用或游戏接下来应执行的操作。
该 API 会返回有助于您检测潜在威胁的判定结果,包括:
- 未经授权的访问:
accountDetails判定结果可帮助您确定用户是否在 Google Play 上安装或购买了您的应用或游戏。 - 代码篡改:
appIntegrity判定结果可帮助您确定您正在与之互动的二进制文件是否未经修改且已获得 Google Play 认可。 - 有风险的设备和模拟环境:
deviceIntegrity判定结果可帮助您确定您的应用是否在经过认证的正版 Android 设备或正版 Google Play 游戏电脑版实例上运行。
要点:当 Play Integrity API 评估环境时,它会使用由硬件支持的安全信号,这些信号具有很高的抗攻击和抗规避能力。Play Integrity API 可抽象化处理 Android SDK 版本、设备制造商所提供密钥以及设备型号之间的信号复杂性和问题缓解措施,从而简化开发者的集成工作和持续管理。
Google Play 开发者还可选择接收更多判定结果以检测更广泛的潜在威胁,包括:
- 未修补的设备:
deviceIntegrity判决中的MEETS_STRONG_INTEGRITY响应有助于您确定设备是否已应用最新的安全更新(适用于搭载 Android 13 及更高版本的设备)。 - 其他应用存在的访问风险:
appAccessRiskVerdict可帮助您确定是否有正在运行的应用可能会用于截取屏幕、显示叠加层或控制设备(例如通过滥用无障碍权限)。 - 已知恶意软件:
playProtectVerdict可帮助您确定 Google Play 保护机制是否已开启,以及是否发现设备上安装了存在风险或危险的应用。 - 超活跃度:
recentDeviceActivity级别可帮助您确定设备最近是否发出了数量异常高的请求,这可能表明存在自动流量,也可能是受攻击的迹象。 - 重复地滥用/使用的设备:
deviceRecall(Beta 版)可帮助您确定自己是否正与之前标记过的设备互动,即使您的应用已重新安装或设备已重置。
该 API 可用于各种 Android 设备规格,包括手机、平板电脑、可折叠设备、Android Auto、Android TV、Android XR、ChromeOS、Wear OS,以及 Google Play 游戏电脑版。
提示:
- 您可以通过 Google Play 状态信息中心监控 Play Integrity API 及其他 Play 服务的状态。
- 如果您遵循 Android 开发者网站上的文档中列出的所有建议做法,Integrity API 即可为您的应用带来最大价值。
设置和管理 Play Integrity API
为您的应用启用 Integrity API
- 打开 Play 管理中心,然后前往左侧菜单中的受 Google Play 保护。
- 滚动到“Play Integrity API”部分。
- 点击开始。
- 选择“关联现有项目”和要关联的项目。
- 点击“关联 Cloud 项目”。
如需开始将 Integrity API 集成到您的应用中,您需要执行以下操作:
- 对于 Java/Kotlin 应用,请从 Google Maven 代码库安装适用于 Play Integrity API 的最新可用 Android 库。
- 对于 Unity 游戏,请安装最新版本的适用于 Unity 的 Google Play 插件。所有 2019.x、2020.x 版本和更高版本均受支持。如果您使用的是 Unity 2018.x,请安装 2018.4 或更高版本。如果您使用的是 Unity 2017.x,请安装 2017.4.40 或更高版本。Unity 5.x 及更早版本不受支持。
- 对于原生应用和游戏,请安装最新 Play Core 原生 SDK。
现在,您可以遵循 Android 开发者网站上的相应步骤,开始在您的应用或游戏中使用 Play Integrity API 了。
(可选)自定义 Integrity API 响应
如需了解如何配置 API 完整性响应,请访问 Android 开发者网站。
如需修改 API 响应,请按以下步骤操作:
- 打开 Play 管理中心,然后前往左侧菜单中的受 Google Play 保护。
- 滚动到“Play Integrity API”部分。
- 点击管理。
- 滚动到“响应”部分。
- 点击修改。
- 选中或取消选中您要更改的 API 响应旁边的复选框。
- 点击保存更改。
重要提示:对 API 响应所做的更改会在您保存后立即生效,当您的应用已发布为正式版时也是如此。在 Play 管理中心内更改 API 响应集合之前,请确保服务器已准备好接受这些响应。
(可选)配置传统请求设置
默认情况下,针对传统请求的响应加密由 Google 管理。不过,如果您愿意,也可以选择自行管理您的响应加密。
如要自行管理响应加密,请按以下步骤操作:
- 打开 Play 管理中心,然后前往左侧菜单中的受 Google Play 保护。
- 滚动到“Play Integrity API”部分。
- 点击管理。
- 滚动到“传统请求”部分。默认情况下,“响应加密”旁边的状态为“由 Google 管理”。点击更改。
- 选择“管理和下载我的响应加密密钥”。Google 将生成响应加密密钥供您下载和管理。您必须更新后端服务器逻辑才能使用相应密钥来解密响应。
- 按照屏幕上的说明生成 .pem 文件,然后上传该 .pem 文件,以下载您的 API 密钥。
- 点击保存更改。
- 屏幕上会显示一条确认消息,通知您响应加密管理已更新。
- 系统会自动下载新的响应加密密钥。您日后可以随时点击下载密钥来下载这些密钥。
如果您想从自行管理还原为由 Google 管理,请按以下步骤操作:
- 打开 Play 管理中心,然后前往左侧菜单中的受 Google Play 保护。
- 滚动到“Play Integrity API”部分。
- 点击管理。
- 滚动到“传统请求”部分。由于您过去已进行更改,因此“响应加密”旁边的状态为“自行管理”。点击修改。
- 选择“让 Google 管理我的响应加密事宜(推荐)”,然后点击保存更改。Google 将为您生成并管理响应加密密钥。您的后端服务器必须调用 Google Play 的服务器来解密响应。
测试 Play Integrity API 集成
如需测试 Integrity API 集成,您可以设置一个 Gmail 账号列表。首先,请确保您的测试人员能够访问您的应用版本。将您的应用发布到内部测试轨道或您要进行测试的轨道。然后,按照有关通过电子邮件地址管理测试人员或使用 Google 群组管理测试人员的说明进行操作,以便测试人员能够访问您的应用版本。
如要设置测试,请按以下步骤操作:
- 打开 Play 管理中心,然后前往左侧菜单中的受 Google Play 保护。
- 滚动到“Play Integrity API”部分。
- 点击管理。
- 滚动到“测试”部分。
- 点击创建新的测试。
- 选择一个电子邮件列表或创建一个新列表。
- 点击创建测试。
自定义用户通过 Integrity API 对话框访问的商品详情
如果用户通过非官方渠道获取了您的应用,您可以使用 Integrity API 补救措施对话框,提示用户从 Google Play 获取您的应用。当用户点按该对话框时,系统会将其重定向到您应用的商品详情,以便用户点按“安装”(或者“购买”或“更新”)按钮,从而将应用添加到用户的 Play 内容库。
您可以针对点按 Integrity API 补救措施对话框的所有访问者自定义商品详情资源,包括应用的名称、图标、说明和图形资源。如要自定义用户通过 Integrity API 对话框访问的商品详情,请执行以下操作:
- 打开 Play 管理中心,然后前往左侧菜单中的受 Google Play 保护。
- 滚动到“Play Integrity API”部分。
- 点击管理。
- 滚动到“自定义商品详情”部分。
- 点击创建商品详情。
- 按照创建自定义商品详情页面上的说明操作,然后点击保存。
或者,您也可以直接在自定义商品详情页面中为 Integrity API 对话框创建自定义商品详情:
- 打开 Play 管理中心,然后前往自定义商品详情页面(扩大用户群 > 自定义商品详情)。
- 点击创建商品详情,选择“创建新商品详情”或“复制现有商品详情”,然后点击下一步。
- 在“商品详情”下,找到“目标受众群体”部分。
- 选择按网址,然后在文本框中输入“playintegrity”。
- 输入所有其他详细信息,然后点击保存。
提示:网址参数“playintegrity”是一个专为完整性深层链接预留的特殊关键字,因此在设置自定义商品详情时,您必须准确无误地输入该参数。
提高 Play Integrity API 的每日请求次数上限
默认情况下,应用每天最多可以向 Integrity API 发出 10,000 次请求。
如要查看您的应用每天发出的请求量,请按以下步骤操作:
- 打开 Play 管理中心,然后前往左侧菜单中的受 Google Play 保护。
- 滚动到“监控 Play Integrity API”部分。
- 点击相应监控卡片以打开 Integrity API 报告,并查看您的每日请求次数。
如要查看应用的每日请求次数上限,请按以下步骤操作:
- 打开 Play 管理中心,然后前往左侧菜单中的受 Google Play 保护。
- 滚动到“Play Integrity API”部分。
- 点击管理。
- 查看每日配额。
您可以申请每天发出超过 10,000 次请求。为了符合这一条件,您必须:
- 确认 API 逻辑(包括重试)的实现正确无误。
- 除了任何其他发布渠道之外,还要在 Google Play 上发布您的应用。
如需提高每日请求次数上限,请填写此表单。