使用 Play Integrity API 来保护您的应用和游戏

使用 Play Integrity API 来保护您的应用和游戏

在 Android 平台上有丰富的应用和游戏,为用户带来了很多绝佳的使用体验。其中大部分的用户会按照应用或游戏所设计的体验路线享受其带来的乐趣。但还是有一些用户来者不善,他们会通过作弊、恶意篡改、欺诈盗窃、盗版或未经授权等方式对应用或游戏进行滥用,这使得开发者不得不绞尽脑汁应对。通常使用未知账户或未知设备同应用进行不可信的交互将会带来滥用行为,且形式越来越复杂,这给开发者带来的挑战也在持续升级。本文您将学习到如何使用最新的 Play Integrity API 在兼顾便利性的同时为开发者保障应用的安全和完整性。

如果您更喜欢通过视频了解此内容,请在此处查看:

△ 使用 Play Integrity API 来保护您的应用和游戏

Play Integrity API

我们曾推出独立的 API 来专门处理此类特定问题,比如 SafetyNet Attestation APIGoogle Play Licensing,每天帮助上千个应用处理对设备和用户账号的信任问题。但是随着挑战升级,所要面临的情况越来越复杂,开发者往往要集成多个 API 才能成功处理反滥用问题,但这样带来的复杂性很容易产生遗漏,而一项遗漏造成的结果往往可能会导致应用被严重滥用。

为解决这类问题,我们整合了最为先进的完整性技术,提供了全新的 Play Integrity API,实现了让开发者只需调用单个 API 就能够实现整个应用的保护。该 API 会检测应用中存在的风险和不可信的交互,并发送信号给应用后端服务器,应用后端服务会判断是否能够信任同应用进行的交互。

Play Integrity API 有助于保护您的应用和游戏,使其免受可能存在风险的欺诈性交互 (例如欺骗和未经授权的访问) 的危害,让您能够采取适当措施来防范攻击并减少滥用行为。

当您的应用在搭载 Android 4.4 (API 级别 19) 或更高版本的设备上使用时,Play Integrity API 会提供已签名且加密的响应,其中包含以下信息:

  • 正版应用二进制文件: 确定您正在与之交互的二进制文件是否已获 Google Play 认可且未经篡改。
  • 正规 Play 安装: 确定当前用户帐号是否以正当方式 (例如通过 Google Play 安装或付费购买) 获取应用或游戏。
  • 正品 Android 设备: 确定您的应用是否在由 Google Play 服务 提供支持、已知且未经篡改的 Android 设备上运行。

一旦发现问题,您可以决定是否需要提高用户使用门槛,来提高应用被滥用的难度,从而降低应用可能会面临的风险。我们已同一些开发者们紧密合作来测试这一 API,它已投入生产环境使用,来保护应用和游戏不被滥用。

△ Play Integrity API 的优势

△ Play Integrity API 的优势

Play Integrity API 具有如下关键优势:

  1. 它由 Google Play 提供支持,并提供了最新的文档、代码示例和最佳实践,开发者可从 Play Console 进行配置,并得到开发者支持;
  2. Integrity API 返回的数据包体积小且被加密,单个返回的数据包封装了多个完整性检测信号,无需进行多个 API 调用;
  3. 这是一个面向未来设计的 API,它将会支持更新的设备种类和规格的完整性检测。

授信流程

Play Integrity API 通过某种难以被侵入的方式让您的应用服务器同 Play 服务器进行通信,并进一步处理授信。其具体步骤如下图所示:

△ Play Integrity API 授信步骤

△ Play Integrity API 授信步骤

  1. 用户开始进行某项操作,比如登陆应用或者加入多人游戏;

  2. 应用后端服务器开始生成唯一 ID,并通过触发应用开始进行完整性检查;

  3. 应用调用 Play Integrity API;

  4. Play 服务器会开始根据多项信号进行评估,包括设备是否已经受到侵入,是否通过证书认证测试,并对应用的授权许可进行验证,随后 Play Integrity API 会返回经过签名和加密的判定结果给应用,告知是否可以信任设备和二进制文件;

  5. 应用再将 Play Integrity API 返回的结果转发回应用服务器;

  6. 应用服务器会检查返回的 ID 与发送时的 ID 是否相同,并对结果进行分析判断,并将其返回给应用;

  7. 应用拿到结果之后,如果判定一切正常就可以让用户继续使用。

以上所有的操作都会在一瞬间完成,用户不会感觉到有任何的延迟。如果您使用的是 SafetyNet Attestation API,它的实现同上述步骤相似。

注意事项

在使用 Play Integrity API 时,需要注意以下几点:

  1. 确认遇到的主要问题,是盗版问题,比如流量欺诈、作弊,还是其他问题。分析出问题的严重程度,以及它造成的损失程度,以判断需要花费多大的努力去减少损失;
  2. 就完整性问题而言,没有一劳永逸的解决方案,新的 Play Integrity API 也不能解决所有问题,它仅可作为整体安全和反滥用策略的一个环节;
  3. 务必要考虑到误报的风险以及其他可能带给普通用户的使用成本,与其遇到有风险的操作就进行封堵,更好的做法通常是通过额外步骤增加用户滥用的门槛;
  4. 持续分析,倾听用户反馈,并持续更新 Android 和 Play 支持的功能,积极采用行业内反滥用的最佳实践。

如需了解 Play Integrity API 详情,请前往 Play Integrity API 页面

针对在 Google Play 以及其他平台发行的应用,我们都将发布集成指南,我们还会分享更多从 Safety Device Attestation 以及 Play Licensing 迁移至新 API 的相关信息,敬请关注,同时期待您的反馈。

欢迎您 点击这里 向我们提交反馈,或分享您喜欢的内容、发现的问题。您的反馈对我们非常重要,感谢您的支持!

版权声明

禁止一切形式的转载-禁止商用-禁止衍生 申请授权

脉脉不得语
脉脉不得语
Zhengzhou Website
Android Developer | https://androiddevtools.cn and https://androidweekly.io WebMaster | GDG Zhengzhou Funder & Ex Organizer | http://Toast.show(∞) Podcast Host

你已经成功订阅到 Android 开发技术周报
太棒了!接下来,完成检验以获得全部访问权限 Android 开发技术周报
欢迎回来!你已经成功登录了。
Unable to sign you in. Please try again.
成功!您的帐户已完全激活,您现在可以访问所有内容。
Error! Stripe checkout failed.
Success! Your billing info is updated.
Error! Billing info update failed.