gpt4 book ai didi

android - 应用内支付安全 - 混淆 key 有什么用?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:08:35 27 4
gpt4 key购买 nike

我正在 Xamarin 应用程序中实现 Google Play 应用程序内结算,因此我查看了 android 和 xamarin 文档。他们都推荐模糊的方法来混淆应用程序内部的公钥:

http://developer.android.com/training/in-app-billing/preparing-iab-app.html

Security Recommendation: It is highly recommended that you do not hard-code the exact public license key string value as provided by Google Play. Instead, you can construct the whole public license key string at runtime from substrings, or retrieve it from an encrypted store, before passing it to the constructor. This approach makes it more difficult for malicious third-parties to modify the public license key string in your APK file.

http://components.xamarin.com/gettingstarted/xamarin.inappbilling/true

While the best practice is to perform signature verification on a remote server and not on a device, this might not always be possible. Another technique is to obfuscate your Google Play public key and never store the assembled key in memory. Xamarin.InAppBilling provides the Unify routine that can be used to break your Google Play public key into two or more pieces and to obfuscate those pieces using one or more key/value pairs. In addition, Xamarin.InAppBilling always encrypts your private key while it's in memory. Here is an example of using Unify to obfuscate a private key:

string value = Security.Unify (
new string[] { "X0X0-1c...", "+123+Jq...", "//w/2jANB...", "...Kl+/ID43" },
new int[] { 2, 3, 1, 0 },
new string[] { "X0X0-1", "9V4XD", "+123+", "R9eGv", "//w/2", "MIIBI", "+/ID43", "9alu4" })

但没有任何地方解释,这是怎么回事。为什么会有人想看到这把 key ?查看/替换我的 APK 中的 key 会给任何人带来什么好处?这里可能的“攻击”是什么?谢谢。

最佳答案

我的理解是你的公钥不一定是 secret 的,但它只是一个帮助防止他人用自己的 key 轻松替换您的 key 的方法。它主要保持 key 在内存中时会被混淆,因此更难拔出。

假设您的应用使用它来下载额外内容。如果用户用他们知道私钥的公钥替换您的公钥,他们无需联系服务器就可以生成购买收据,并且您的应用程序会认为它们是真实的。

避免这种情况的最佳方法是在他们无法获取代码的您自己的服务器上进行验证。如果服务器验证它,则它会下载。

无论您做什么,如果他们想花时间,您的应用程序都可能被黑客入侵,这是事实正在做。即使在进行了所有 key 检查之后,也可能只是翻转一位来更改 key 检查的结果。目的是让他们再克服一个障碍。

关于android - 应用内支付安全 - 混淆 key 有什么用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22378758/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com