4

如您所知,我们可以在root后访问android设备上的任何文件夹。我的应用程序有一个数据库和一些其他二进制文件。我知道我无法阻止用户查看我的文件和数据库。但是有什么办法可以防止用户将其复制到其他安卓设备上进行非法使用?

4

2 回答 2

4

一种选择是加密存储在数据库中的数据。通常它以明文形式存储。SQLCipher,我相信也适用于 Android ..

来自安卓/谷歌官方论坛

拥有根电话的用户可以访问他们想要的任何文件。否则,传统板载闪存位置中的数据库是安全的。

如果您想阻止该(路由访问),唯一的选择是对其进行加密。不管需要多久。

编辑:

我要说的是,它从来都不是完全安全的。你可以让黑客变得更加困难。您可以(仅)将解密密钥保存在服务器中(如果从服务器下载整个数据很耗时),但应用程序需要网络连接才能工作。您可以将密钥保存在隐藏文件中(文件名以 . 开头),但具有 linux 类型文件系统知识的 root 用户可以找到它们。或者,您可以按照 Teovald 在对此答案的评论中建议的方式进行操作,方法是在运行时使用任何常量(如 IMEI 编号)的任何哈希算法生成密钥,但它也需要一些处理。您尝试保护它的次数越多,使用它所需的工作就越多。所以这是一个50-50的情况,要根据自己的需求来决定。

于 2012-10-29T10:51:25.537 回答
3

除了加密(请参阅 Krishnabhadra 的回答),确保关键数据的唯一方法是设备上没有所有内容。因此,您只能始终在线访问最关键的数据。

当然,这有一个缺点,即如果用户没有连接,则并非所有应用程序都可用。您必须在保持数据安全免遭窥探和允许即时离线访问数据之间取得平衡。

能否缓解前一个问题取决于数据。如果一切都很关键,则设备上不允许有任何内容。用户会理解并勉强接受这一点。没有人会想要他的设备上的银行账户副本。但是,即使在离线模式下,您也应该允许访问所有不重要的内容。

于 2012-10-29T11:11:35.120 回答