首先,介绍一下我的背景。我从事大型 Web 系统工作已有十多年了,Android 是我过去两个月一直在研究的东西;正如你所想象的,差距相当大:)

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

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

这是 正常情况下无法访问 部分给了我额外的白发:)

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

有帮助吗?

解决方案

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

这取决于某人。正如先生。Burov 表示,root 手机的用户可以得到他们想要的任何东西。默认情况下,普通用户和其他应用程序不能。

这是通常无法触及的部分,给我带来了额外的白发:)

默认情况下,文件是安全的。如果您选择,您可以将它们设置为全局可读或全局可写。

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

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

其他提示

好吧,市场上有很多 SharedPreferences 编辑器应用程序,所以它们肯定不安全。此外,在 root 设备上,数据库可以轻松实现,因为用户可以完全访问手机文件系统。因此,如果您希望您的应用程序完全安全,请加密您的数据。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top