对于在线安卓游戏,都有哪些服务可以保证APK文件的完整性,防止作弊?
Posted
技术标签:
【中文标题】对于在线安卓游戏,都有哪些服务可以保证APK文件的完整性,防止作弊?【英文标题】:For online Android games, what services are available to ensure the integrity of the APK file to prevent cheating?对于在线安卓游戏,有哪些服务可以保证APK文件的完整性,防止作弊? 【发布时间】:2020-04-25 07:20:36 【问题描述】:假设我开发了一个与 android 服务器交互的在线游戏。我要确保在给定用户设备上运行的 APK 文件是我上传到 Google Play 商店的 APK。 (意思是,我试图避免有人从设备中提取 APK、对其进行破解、将其侧载回设备然后使用它来玩游戏的情况。
是否有 Google、Play Store、Android 等提供的服务可以做到这一点?例如,Play 商店可能具有该 APK 文件的 SHA256 校验和。由于我的游戏与 Google Play 集成(用于保存您的游戏和进度),是否可以调用一些服务来比较当前运行的游戏与 Play 商店注册的游戏?
我的想法是我不能向我的应用程序本身添加验证,因为有足够动力的改装者可能只是绕过或伪造。我希望平台级别可能存在一些东西。
提前致谢!
【问题讨论】:
这能回答你的问题吗? Way to protect from Lucky Patcher / play licensing 是的,这与我的问题很好地重叠(尽管不完全),并且那里的内容讨论了我所询问的一些项目。尽管在那种情况下,开发人员试图阻止应用程序本身的盗版。就我而言,游戏本身是免费的,我试图通过防止被黑的 APK 版本与服务器交互来确保高质量的在线交互。 如果您询问服务器端安全性,请参阅以下答案:If “you can never trust the client”, then why do companies such as Valve rely solely on client-side verification? 【参考方案1】:这似乎是SafetyNet Attestation API 的用途。
【讨论】:
接近但不完全。虽然我担心在 Root 上运行的用户能够在运行时修改游戏,但我看到的是有些网站会获取 APK,对其进行广泛破解,然后与其他用户共享。您共享的 SafetyNetAttestation API 不能直接解决此问题。被黑 APK 的用户可能拥有完全干净的 Android 设备,但只是通过允许从不受信任的来源安装来侧载被黑 APK。 没用过,也不敢自称专家。尽管如此,apkPackageName
和 apkCertificateDigestSha256
在证明响应中的存在,结合声明,“......您的服务器正在与您的正版应用程序交互......”,强烈建议我证明包括一个完整的应用程序签名验证。这是有道理的;如果SafetyNet
信任设备/OS,它肯定可以信任设备/OS 进行可靠的签名检查。以上是关于对于在线安卓游戏,都有哪些服务可以保证APK文件的完整性,防止作弊?的主要内容,如果未能解决你的问题,请参考以下文章
强烈推荐:一个h5网页转安卓App的工具,可以在线云打包安卓apk