【问题标题】:Secure Storage of Personal User Data on iOS Device在 iOS 设备上安全存储个人用户数据
【发布时间】:2014-02-07 07:45:22
【问题描述】:

我刚刚注意到这个article 是关于一个以明文形式存储用户信息的移动应用程序。我已经注意到在服务器上存储用户密码的想法(使用 SHA-512 哈希函数),但我不清楚在设备本身存储个人信息的最佳方法。

让我明确一点,我基本上只是在谈论用户名和密码。我的应用与之交互的数据根本不敏感,而且我知道我可以对这些数据实施某种对称加密/解密。

为了方便用户,我想为用户提供一个选项来在本地存储他们的用户名和密码,这样他们就不需要在每次使用应用程序时输入。但我知道用户倾向于将相同的密码用于许多不同的目的,这意味着我需要采取预防措施来确保用户密码的安全。方便与安全之间的经典张力。

在本地存储这些信息只是一个糟糕的主意吗?还是有相对简单的方法来安全地加密它? iOS 和 Android O/S 对此有帮助吗?

不一定要寻找详尽的答案,但我非常感谢一些研究主题、文章链接、书籍等。非常感谢。如果这是一个多余的问题,请引导我查看任何给出仍然被认为是最新答案的帖子。

非常感谢!

【问题讨论】:

    标签: android ios security encryption


    【解决方案1】:

    设备上的所有数据都会在某种程度上由设备自动加密,使用设备 ID 作为密钥。这可以防止数据被设备本身以外的任何人轻松读取,或者任何具有设备 ID 的人。

    您可以使用密码进行另一层加密,称为数据保护,除非输入密码,否则数据会被读取。

    您可以通过使用 NSFileManager 访问文件并将NSFileProtectionKey 属性设置为NSFileProtectionComplete 来手动启用应用程序中的数据保护。请参阅:Implementing and Testing iOS data protection

    请注意,用户必须将其设备设置为需要密码,密码越强,数据就越安全。

    即使您没有将 NSFileManager 类与 NSFileProtectionComplete 一起使用,您也可以通过应用程序的配置文件轻松启用数据保护。见:Data Protection / NSFileProtectionComplete - successfully supported through entitlements.plist?

    我仍然不会存储密码。存储他们登录时创建的随机生成的会话密钥。至少您可以使它们过期,而不是纯文本密码。

    【讨论】:

      【解决方案2】:

      只是对一年前这篇文章的跟进。我决定做的是生成一个随机会话密钥(类似于@Marcus Adams 的建议),但将该值用作盐。然后,我将该会话密钥与用户选择的明文密码连接起来,并将这个值存储在设备上(如果用户选择存储他们的密码)。即设备存储此值:

      device_hash = sha256(device_salt || 明文)

      然后,该散列值成为我通过 HTTP 传递给服务器进行验证的字符串。在服务器端,我在那里存储了不同的盐值。当服务器接收到设备哈希值时,它有自己的盐值,它连接到该字符串,然后执行自己的哈希。最后的哈希是存储在服务器数据库中的密码。即,服务器存储此字符串:

      server_hash = sha256(server_salt || device_hash))

      我认为这是安全性和便利性之间的可行平衡,特别是因为我只是试图保护密码,而不是试图加密在应用程序的正常过程中交换的实际数据。如果用户的设备被入侵,攻击者不能使用彩虹表或类似的东西来逆向工程密码,因为它是加盐的。 SHA256 和长密码应该可以消除暴力攻击,如果有人真的有动机的话。

      想知道是否有人对这种方法有任何批评。

      【讨论】:

      • 为什么不使用 PBKDF2 而不是 sha256(device_salt || plaintext)。另外可以使用校准功能CCCalibratePBKDF 来获得轮数。此外,与仅将盐与明文和散列连接起来相比,HMAC 是一个更好的选择。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-12-23
      • 1970-01-01
      • 1970-01-01
      • 2013-12-22
      • 1970-01-01
      • 1970-01-01
      • 2017-06-03
      相关资源
      最近更新 更多