12

我将在应用程序中处理非常敏感的数据。根据我的定义,混淆不会增加安全性,它只会在有限的时间内延迟破解者。Proguard 有没有可能做得这么好,可以称为增加安全性?

最敏感的是一些网络调用。很难嗅探密码,因为我们将在双方生成密码并使用时间戳检查其有效性。问题是应用程序可能被逆向工程并且生成算法可能被利用。

不可能将算法保存在本地的文件中,因为破解者可以使用已root 的电话来检索它。从服务器下载算法是行不通的,因为这里也存在同样的问题,如果破解者对应用程序进行逆向工程,他/她将能够看到算法的来源。

非常感谢任何有关如何进行的输入!

编辑

我要保护的是生成算法,因此破解者可能不会向我们的服务器发送大量数据。

4

1 回答 1

17

一般来说,你可以让饼干的寿命更长。你越努力,剩下的就越少。特别是在经济激励有限的情况下。

您的代码混淆选项是:

  • 使用proguard,它做得很好,当然不是完美的,但是很好
  • 使用 DexGuard,它可以使逆向工程变得更加困难,例如通过加密字符串或检测代码篡改
  • 用 C 编写关键部分

不管代码混淆,让你的网络协议也很难乱七八糟:加密和签名消息,确保消息不能重复(通过使用时间或序列),并验证客户端

不要在磁盘上保存任何敏感的明文。

于 2013-07-15T16:35:57.550 回答