首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >确保恶意apk不会与我的服务器对话

确保恶意apk不会与我的服务器对话
EN

Stack Overflow用户
提问于 2013-02-18 12:00:27
回答 1查看 92关注 0票数 3

我正在尝试确保不会有人重新编译我的混淆应用程序,然后将恶意数据发送到我的服务器。我正在对我的应用程序的versionCode和packageName进行SSLed PHP_POST。这些发布的变量都是通过非对称加密以及签名验证进行加密的,每次版本升级都会更改签名验证。我曾想过使用校验和,但这些方法并没有得到谷歌的官方支持,而且研究表明,它们不是防错的,这意味着它们可能会扰乱合法用户。

最重要的是,当检测到100%不合法的东西时,会通过IP/Mac地址/IMEI/Serial/Android_ID/等进行现场禁止。

我知道没有什么是100%安全的,好的安全和坏的安全之间的区别是打破安全所花费的时间/金钱/努力比受安全保护的物品更有价值。考虑到这一点,有没有其他方法可以用来保护我的应用程序,或者我应该实现的任何想法,以增加现有的安全性?

顺便说一句,反编译/重新编译一个已经被混淆的apk(jar)有多容易,一旦它完成了,它会变得更容易吗?(也就是,我更改密钥多少次都无关紧要,因为应用程序已经被破坏,反编译器可以简单地查看我上一个密钥所在的相同位置)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-18 16:33:46

第一件事,首先,不要自己加密。如果您正确地(!)做SSL可能足以保护传输中的数据不被篡改,等等。你需要做的是以某种方式验证你的应用程序,这通常是棘手的,因为你需要在应用程序中保留凭据。有不同的方法可以绕过这一点,但目前的标准(也是谷歌认可的方式)是使用Google Play服务来获取令牌并在您的服务器应用程序中验证它。详情请访问:http://android-developers.blogspot.jp/2013/01/verifying-back-end-calls-from-android.html

这并不完美,但可能比您能想到的大多数非标准解决方案都要好。

反编译通常很容易,混淆也不会改变太多,因为找到调用系统API的位置(获取MAC地址、散列、加密等)是很容易的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14929274

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档