繁体   English   中英

从Android设备消费时的Google API安全性

[英]Google API Security when consuming from an android device

我正在构建一个Android应用程序,我将在其中使用应用程序本身的一些Google API。 我已经启用了某些API的计费和增加的配额。

创建凭据时,我选择了Installed Application,Application type为Android,并提供了包名和SHA1指纹。 我只是想知道Google如何决定请求是否来自我自己的Android应用程序。

任何在我们的设备上安装了我的应用程序的人都可以通过root设备获取APK,并获得SHA1指纹和包名称。 此外,通过使用一些Dex工具反编译代码,也可以提取客户端ID。 由于我已经为我的帐户启用了结算功能,如果有人能够获得所有这些详细信息,他们可以使用我的ID开始使用API​​。

请帮助我这个方案如何避免未经授权的应用程序/系统使用我的ID消费API。

为API使用创建凭证

你是正确的,攻击者可以获得你的签名证书SHA1指纹和ClientID,但幸运的是,这些信息对攻击者来说没什么用,因为他们没有你的apk签名的私钥。 这意味着他们无法使用相同的指纹创建自己的包。

在Android设备上,您通过Google Play服务APK使用谷歌服务。 此代码将请求应用程序签名证书指纹发送到Google后端服务器。 您(或潜在的攻击者)代码在调用Google API时不提供此指纹。 使用包管理器在后台查询证书指纹。 Google后端会将收到的指纹与您注册的指纹进行比较。 如果不匹配,则拒绝请求。 所有这些通信都是加密的,因此流量监听不起作用。

因此,对于攻击者使用您的客户端ID,他必须操纵Android平台或Play服务APK,以便发送不正确的证书指纹。 这不是一件容易的事。 Google Play服务不是开源的,Google也非常积极地对其进行更新,并拒绝为旧版本的请求提供服务。 这意味着如果某些针对服务的攻击APK出现在野外,他们将发布新版本。

类似的机制可能适用于Chrome和iOS。

排序答案是:你不能。 更长的响应:将重要的事情移动到安全的Web服务器......更多更好的技巧和解释如何避免对APK文件进行逆向工程?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM