Android 上的 SQLite 和 SharedPreferences 文件的安全性如何?
-
25-09-2019 - |
题
首先,介绍一下我的背景。我从事大型 Web 系统工作已有十多年了,Android 是我过去两个月一直在研究的东西;正如你所想象的,差距相当大:)
看看安卓的 安全和权限 和 数据存储 文档的一部分,直接与开发人员交谈,阅读书籍和教程,整个模型的工作原理非常清楚。但是,我无法找到 SQLite 和 SharedPreferences 文件是否足够安全来存储敏感的非加密信息(例如 OAuth 令牌)的答案。有人有可能以任何方式抓住它们吗?引用Android的文档:
应用程序存储的任何数据都将分配给该应用程序的用户 ID,并且其他包通常无法访问。
这是 正常情况下无法访问 部分给了我额外的白发:)
谢谢您,感谢有用的答案:)
解决方案
有人有可能以任何方式抓住它们吗?
这取决于某人。正如先生。Burov 表示,root 手机的用户可以得到他们想要的任何东西。默认情况下,普通用户和其他应用程序不能。
这是通常无法触及的部分,给我带来了额外的白发:)
默认情况下,文件是安全的。如果您选择,您可以将它们设置为全局可读或全局可写。
在这种情况下,是否可以反编译apk文件并找到加密密钥?
这取决于你要防守的是谁。如果您要防御其他应用程序,请让用户提供加密密钥。如果您正在防御用户,那么您就完蛋了,就像 DRM 的所有实现都完蛋了一样。
其他提示
好吧,市场上有很多 SharedPreferences 编辑器应用程序,所以它们肯定不安全。此外,在 root 设备上,数据库可以轻松实现,因为用户可以完全访问手机文件系统。因此,如果您希望您的应用程序完全安全,请加密您的数据。
不隶属于 StackOverflow