在 iVar 中临时存储敏感数据是否构成安全威胁



我的程序让用户创建一个密码,用于访问程序的数据。 在创建过程中,程序流程如下:

  1. 要求用户输入密码
  2. 要求用户重新输入密码
  3. 如果密码匹配继续,否则转到步骤1并重新开始该过程

为了比较输入的两个密码,我将密码临时存储到实例变量中。 这可能是一个潜在的安全漏洞吗? 如果是这样,为什么这是一个问题,您的解决方案是什么?也许存储它的哈希版本? 谢谢!

我认为你如果很好(将密码存储在iVar中)。

也许您需要为自己定义"安全漏洞"。当然,攻击者是否有可能从被盗的iPhone中读取存储的内存并重建密码。但数据是否合理?

您可以通过用空字节(与输入的密码相同的长度)覆盖内存,删除明文密码内存中的所有引用并仅保留输入密码的SHA256来改善安全概念。还要确保在收到 UIApplicationDidEnterBackgroundNotification 时覆盖和删除 null-bytes。

但我认为这样做不值得。

将该密码临时存储在iVar中没有任何问题。

最新更新