应用内计费API(IAB版本3)安全性



现在我首次添加IAB。我已经阅读了文档,下载了样本,并且似乎有效。但是,设置问题不是我的问题,我想了解Google的以下两个建议,这些建议应该提高安全性

  • 加密公钥

如果攻击者对我的应用程序进行了反复编译,他还可以删除我的加密,字符串 - 分布或位移动的东西。

  • 开发人员有效载荷

这里的同一件事。实际上,我可以按照Google建议这样做。我的服务器上有用户ID,可以将其提出要求并进行比较……但是我认为,当我的应用程序分解时,从代码中删除此逻辑很容易。

我用proguard将代码混淆,然后在将其上传到Google Play之前,请始终对其进行反复编译,以查看它是否有效并正确设置。这就是为什么我说这两个建议不会带来巨大的安全福利。

我也知道私钥系统的工作方式。这就是为什么我可以说不可能让我的应用与"假"服务器通信而不将其分解。如果Google不使用某种异步加密,我可能会理解为什么我必须检查响应是否来自伪造的服务器...

您能帮我理解吗?

欢呼,Stefan

安全性就是在投资努力攻击应用程序并从黑客攻击中受益的全部权衡。如果您的应用程序的价格为99美分,而黑客需要3个小时才能入侵它,并且他需要一次又一次地入侵所有新版本,那么将他的时间投入到黑客黑客上是没有意义的,尽管他可以从技术上讲这样做。只需实施尽可能多的安全性即可使您的应用程序无吸引力的黑客目标。

不安全的存储公共密钥将允许攻击者轻松地用自己的公钥替换。如果您的公钥更换,则您的应用程序将成功验证攻击者服务器签署的响应。这就是为什么您需要更困难地在应用程序中查找和更换公共密钥的原因。

开发有效载荷。它用于保护您的应用程序免受攻击,当攻击者试图给您的应用程序提供有效的签名响应,这已被另一个从另一个用户购买过去。例如,我过去购买了您的应用程序的扩展名,并以字节形式存储了Google Play响应。如果您的代码无法区分两个有效的响应,那么我可以将此响应提供给其他用户,他们可以将其用于进一步购买。这就是为什么Google建议添加开发有效载荷的原因,您可以在有效响应返回时验证它。在简单的情况下,这可以是用户的电子邮件。在更复杂的情况下,您需要一台服务器,该服务器将生成一个用于用户购买的字符串并将其存储在数据库中。稍后,当响应返回时,它将再次验证生成字符串的响应。

我希望这可以更好地理解为什么需要。

最新更新