加密Android设备上的信息(合理保护用户无法访问)

时间:2011-06-17 16:00:14

标签: android security encryption obfuscation

我们正在开发一款Android应用程序,一个测验游戏,我们希望在用户离线时缓存问题+答案。这样做的问题是我们需要从用户那里隐瞒这些数据,直到她回答了问题为止。否则,作弊会非常容易,这会对游戏造成伤害。然后,可以提取所有问题+答案并自动提交服务器API的答案。

最方便的方法是在安装时从我们的服务器检索密钥或密钥,将其隐藏在“某处”,并将其用于与服务器通信,以及加密存储中的问题+答案。但显然,将其隐藏在“某处”并不是一个安全的概念。

我已经研究了一下,似乎在这种情况下不可能进行可靠的加密,因为应用程序必须“知道”秘密(无论是证书,密码+盐,还是其他)或者至少在哪里可以找到,这可以通过反编译来提取。但是,我们会很难做到这一点。

问题是:您是否知道如何让常规用户从APK中检索秘密变得非常困难 - 即,几乎不可能编写自动密钥提取器?

到目前为止我最好的猜测:

  • 隐藏数据库中的一些信息,并将其用作密钥的盐
  • 从设备中添加几条信息作为盐(IMEI,电子邮件地址,序列号......) - 也许与混淆一起,如何应用盐可能很难获得?

1 个答案:

答案 0 :(得分:1)

您可以为每个问题使用单独的密钥,这取决于上一个问题的答案。因此,除非您已经回答了问题1,否则无法解密问题2.