android - 为 Google Android 应用内购买伪造签名字符串

标签 android rsa in-app-purchase signing

我正在验证来自 Android inapp 购买的签名字符串,我知道已经编写了一个基于服务器的独立验证来检查该字符串是否使用我的公钥和在 JSON 响应中发送的私钥签名,这很好。在我缺乏知识的地方,如果人们可以访问我的公钥,他们是否能够使用私钥签署字符串并向我的外部服务器发送响应,这将成功验证?

我可能遗漏了一些东西,但是在我的 iPhone 应用程序上,我联系了 Apple,他们联系了应用程序,我联系了我的服务器并获得了苹果的响应,它联系了苹果并独立验证了响应,我对我的 WP7 应用程序也这样做了 Paypal 和谷歌,我没有连接到谷歌来验证字符串,我只是检查字符串是否用我的 key 签名,这真的足够了吗?

谢谢

最佳答案

简而言之,没有。如果你有时间,你可以阅读 RSA,但非对称算法的全部要点(你加密/签名的 key 与你解密/验证的 key 不同),几乎不可能找出另一半如果你只有一把 key 。因此,如果有人拥有您的公钥,您可以非常确定他们无法生成私钥。或者,如果他们只是生成一个新 key ,当您验证签名时,您将收到验证错误。

如果您的 nonce 是真正随机的并且真的只使用一次,它们也不能重播相同的消息,所以您应该是相当安全的。 (假设没有实现问题)

你应该更担心的是人们使用字节码修补工具来绕过整个验证过程,只是从 isLicensed() 方法返回 true。

关于android - 为 Google Android 应用内购买伪造签名字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6981980/

相关文章:

用于选择文件的 android Intent 过滤器不适用于华为 P8 和 LG F70 手机

ruby-on-rails - 如何为 AWS Elastic Beans 设置多行 RSA 私钥环境变量

iOS 应用内购买在沙盒中工作,但被苹果拒绝

google-play - Google Play应用内结算-列出购买

java - 如何转换。 APK 文件到 .AAB 文件?

android - shell-查找文件中的su命令的结果android

android - 在Android MVVM中,需要多少个存储库和网络客户端来提供不同的查询?

python - 使用扩展欧几里德算法创建 RSA 私钥

java - C# 相当于 Java RSA/ECB/OAEPWithSHA-256AndMGF1Padding

windows-phone-7 - WP7 应用内购买