5

我需要在 iPhone 应用程序中存储信用卡号。如何安全地存储数据。我看过钥匙扣。除此之外,还有什么我可以使用的。

4

4 回答 4

4

如上所述,您应该首先调查其合法性,尤其是在 Apple 对应用商店中的内容进行限制的情况下。

也就是说,我之前不得不加密敏感信息,并决定使用 AES-256 加密。由于用户名、密码和个人数据是通过网络发送的,因此这是必要的。我为此使用了 FBEncrypt——它是 CCCrypt 的一个很好的包装器。

https://github.com/dev5tec/FBEncryptor

这将允许您进行 base-64 编码和 AES-256 编码等,非常方便。如果您真的需要它,请检查它!

于 2012-05-30T16:55:11.760 回答
1

如前所述,这个问题很难回答。由需求的作者决定所需的安全级别。他们可能希望就泄露数据可能产生的责任(如果有的话)获得一些法律建议。

一旦您了解了适当的保护级别,您就可以开始评估解决方案。钥匙串很好,但有很多可用的加密选项。

除了如何存储号码之外,您可能希望得到答案的问题包括:

  • 公开号码需要什么身份验证?
  • 公开号码的预期生命周期是什么?
    • 号码可以暴露多久?
    • 如何从内存中清除该号码?
  • 暴露的号码怎么用?
    • 号码可以显示给用户吗?
    • 您是否允许将号码复制到剪贴板?

如果你想认真保护信息(任何信息),你需要做一些认真的设计工作。

于 2012-05-30T16:14:31.890 回答
0

您需要对此进行非常认真的研究,并且在未经您彻底研究和确认的情况下,不一定接受本网站上的人所说的话。

存储诸如信用卡信息之类的信息不是您应该仅根据本网站 IMO 上的响应来实施的事情。

如果你是认真的,你需要阅读、理解和应用“黑客和保护 iOS 应用程序”一书中的材料,以了解危险是什么以及如何减轻它们,以及人们所说的安全技术实际上是如何不安全的就像您认为的那样安全。

于 2012-05-30T18:26:56.460 回答
0

对于这种情况,加密和 SSL/HTTPS 的使用似乎已经足够了。如果您不熟悉主题,这里有很好的一般指南:移动应用程序开发技巧:如何确保数据安全

有很多实现,例如你可以使用上面提到的 AES256 算法:

  1. 当应用第一次保存信用卡号时,会生成一个随机的 masterKey 和初始化向量 (IV)。稍后使用它们进行加密。
  2. masterSalt 在本地生成并保存。
  3. 使用plainPassword 和masterSalt,计算哈希(PBKDF2)。
  4. 使用 AES256 算法,计算的哈希用于加密 MasterKey 和 IV。
  5. 加密的 MasterKey 和 IV 保存在本地。
  6. 使用 plainPassword 和 masterSalt 哈希 (PBKDF2) 解密 MasterKey 和 IV。
  7. 现在,使用 AES256 算法使用 MasterKey 和 IV 加密数据。
于 2013-12-12T10:24:31.537 回答