【问题标题】:How the SharedPreferences works and is it safeSharedPreferences 的工作原理和安全性
【发布时间】:2014-10-11 22:44:07
【问题描述】:

我将使用 SharedPreferences Keys 来存储我的应用程序信息,因此当我在 onDestroy 后再次打开应用程序时,信息仍然相同。

我只是想知道使用 SharePreferences 是否安全?我的意思是有没有办法破解或从 SharePreferences 获取密钥?
所有 Android 平台都有 SharePreferences 吗?

谢谢。

【问题讨论】:

标签: android


【解决方案1】:

sharedPreferences 不安全.. sharedPreferences 应该只存储未加密的配置/设置数据..

如果您想存储关键数据 - 您必须将其加密写入数据库/sharedPrefs

顺便说一句..http://android-developers.blogspot.de/2013/02/using-cryptography-to-store-credentials.html

【讨论】:

  • 这是一个很好的观点,但您也可以在技术上加密您的数据并将其存储为共享首选项。
  • 如果我加密我的应用程序的私人数据然后将其存储在 sharePref 中可以吗?抱歉,到目前为止我只知道这个 sharedPref,我觉得它是存储数据的最简单方法
  • 引用您的链接:“这实际上混淆了密钥,因此攻击者不容易看到它。但是,熟练的攻击者将能够轻松地看到这个策略。我们不推荐它。事实上,Android 现有的安全模型已经为此类数据提供了很多保护。用户凭据应该与设置的 MODE_PRIVATE 标志一起存储”。这基本上说以纯文本形式保存密钥并不比这更糟糕。
  • 共享首选项足够安全。只是不要认为它们是理所当然的。避免保存敏感数据,如果您的服务确实需要像银行账户一样安全,请增加用户远程放弃会话、使您的令牌无效或根本不保存会话的可能性。
【解决方案2】:

您不应在 SharedPreferences 中存储任何未加密的有价值信息(密码、私人用户信息等)。 SharedPreferences 只是内部存储应用程序目录中的纯 XML 文件。 如果您需要将 smth 存储为私有 - 您肯定需要先对其进行加密。

【讨论】:

  • 加密数据不是那么安全,绝对不是防故障的。具有 root 访问权限的实体可以看到加密数据。如果加密密钥存储在应用程序中,或者用它编译,恶意实体也可以找出来。
猜你喜欢
  • 2018-09-15
  • 2018-09-14
  • 2011-06-09
  • 1970-01-01
  • 2011-04-06
  • 2021-10-31
  • 2012-10-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多