36

首先,介绍一下我的背景。我已经在大型 Web 系统上工作了十多年,过去两个月我一直在研究 Android;可以想象,差距非常大:)

查看 Android 的安全性和权限以及文档中的数据存储部分,直接与开发人员交谈,阅读书籍和教程,很清楚整个模型是如何工作的。但是,我无法找到 SQLite 和 SharedPreferences 文件是否足够安全以存储微妙的非加密信息(例如,OAuth 令牌)的答案。有人可以以任何方式抓住它们吗?引用 Android 的文档:

应用程序存储的任何数据都将分配给该应用程序的用户 ID,并且通常不能被其他包访问。

这是通常无法访问的部分,让我有额外的白发:)

谢谢,感谢您提供有用的答案:)

4

2 回答 2

41

有人可以以任何方式抓住它们吗?

这取决于某人。正如 Burov 先生所说,root 手机的用户可以随心所欲。默认情况下,普通用户和其他应用程序不能。

这是通常无法访问的部分,让我有额外的白发:)

默认情况下,文件是安全的。如果您愿意,您可以使它们成为世界可读或可写的。

在这种情况下是否可以反编译apk文件并找到加密密钥?

这取决于你要防御的是谁。如果您要防御其他应用程序,请让用户提供加密密钥。如果您要防御用户,那您就完蛋了,就像 DRM 的所有实现都完蛋一样。

于 2010-08-31T13:01:55.917 回答
1

好吧,市场上有一堆 SharedPreferences 编辑器应用程序,所以它们绝对不安全。由于用户可以完全访问手机文件系统,因此在有根设备上的数据库也可以轻松完成。因此,如果您希望您的应用程序完全安全,请加密您的数据。

于 2010-08-31T12:27:24.380 回答