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

时间:2012-04-10 17:56:53

标签: objective-c ios security

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

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

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

2 个答案:

答案 0 :(得分:1)

我认为你接近罚款(在iVar中存储密码)。

也许你需要为自己定义“安全漏洞”。当然,攻击者可能会从被盗的iPhone中读取存储内存并重建密码。 但这些数据是否明智?

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

但我不认为这样做是值得的。

答案 1 :(得分:0)

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