加密Android设备上的信息(合理保护用户不被访问)
我们正在制作一款Android应用程序,一款问答游戏,我们想在用户离线时将问题+答案缓存起来。问题是,我们需要在用户回答问题之前保留这些数据。否则,作弊将非常容易,这将损害游戏。然后可以提取所有问题和答案,并自动将答案提交到服务器API 最方便的方法是在安装时从我们的服务器检索密钥或机密,将其隐藏在“某处”,并将其用于与服务器通信,以及对存储中的问题+答案进行加密。但显然,把它藏在“某处”并不是一个安全的概念 我做了一些研究,在这种情况下,可靠的加密似乎是不可能的,因为应用程序必须“知道”秘密(无论是证书、密码短语+salt还是其他什么),或者至少在哪里可以找到它,而这可以通过反编译来提取。然而,我们可以接受这样的困难 问题是:你知道有什么方法可以让普通用户很难从APK检索到秘密,也就是说,几乎不可能编写自动密钥提取程序吗? 到目前为止,我最好的猜测是:加密Android设备上的信息(合理保护用户不被访问),android,security,encryption,obfuscation,Android,Security,Encryption,Obfuscation,我们正在制作一款Android应用程序,一款问答游戏,我们想在用户离线时将问题+答案缓存起来。问题是,我们需要在用户回答问题之前保留这些数据。否则,作弊将非常容易,这将损害游戏。然后可以提取所有问题和答案,并自动将答案提交到服务器API 最方便的方法是在安装时从我们的服务器检索密钥或机密,将其隐藏在“某处”,并将其用于与服务器通信,以及对存储中的问题+答案进行加密。但显然,把它藏在“某处”并不是一个安全的概念 我做了一些研究,在这种情况下,可靠的加密似乎是不可能的,因为应用程序必须“知道”秘密(
- 在数据库中隐藏一些信息,并将其用作密钥的salt
- 将设备中的几位信息添加为salt(IMEI、电子邮件地址、序列号……)——也许再加上混淆salt的应用方式可能很难获得