钥匙串密码陷阱

问题描述:

存在任何已知的陷阱,以避免在Keychain存储用户密码时?我打算让用户能够要求输入密码才能访问我的iPad应用程序。我有一个基本的读写钥匙串工作的字符串。我只是想确保我不会让他们陷入他们自己无过错的情况下。例如:钥匙串密码陷阱

  • 请问键盘允许他们进入不能被储存或钥匙扣
  • 读取特殊字符有没有对字符串长度的限制

感谢任何见解你可以分享。

保存密码。读回来。确保它的工作。如果不是,告诉用户它失败并且让他们输入不同的密码。

并非所有键盘可以输入的所有字符。 3.1.2左右的手机锁键盘(不知道他们是否修好了)有一个错误,它会限制你使用“支持ASCII的”键盘(例如非希伯来语),但不会限制可能存在的字符进入;启用某些键盘会增加额外的重音符号,并且某些键盘还有其他符号。然后,您可以禁用某些键盘,锁定手机,并完全无法解锁它。 (我这个测试之前创建的备份。)

在你的情况,你不阻止键盘用户,所以这是不成问题的。

注意,你从错误的方向接近这样的:密码解锁内容。您正试图保持内容的安全。您不需要随时随地保存密码(您可以使用它来加密内容)。

文件也将出现在(非加密)的备份加密。在3.1.2中,你可以备份一个密码锁定的电话(不知道他们是否将它固定在3.2);这意味着在没有备份密码的设备上,您可以通过将其附加到笔记本电脑并按下“备份”来窃取所有内容。

有效地实施加密自己超出了这个答案的范围。

+0

加密可能需要在您的特定管辖备案CCATS文件,这可能会产生非零的法律费用。这是一个很好的理由,不要将它用于不真正安全的应用程序,例如对于游戏角色或高分的“孩子 - 姐妹”密码锁定。 – hotpaw2 2010-09-12 05:03:25

+0

我只是不喜欢添加更多*表面安全*的想法比实际的安全性,但我不会建议抹灰“注意,这不是100%安全”无论任何地方—很难与用户沟通“级别”的安全性而且他们很难理解它。但是,如果你存储用户的密码,绝对将它们放在钥匙链—用户重用密码。 – 2010-09-12 13:11:53

+0

感谢您的回复。只是为了澄清,我不打算加密内容(例如应用中的文档),我打算在启动时捕获该应用并要求密码继续。我试图解决的问题是:我与其他人分享我的iPad。我不希望他们看到我在这个特定的应用程序中要做什么。我想我可以尝试对特定文件进行加密,以防止它们在应用程序启动后被读取,但我认为这可能超出了用户的要求。 – DenVog 2010-09-12 14:33:29

关于字符串长度:

有在iOS钥匙扣的最大可存储的字符串长度和一个字符串的最大可能长度之间没有差别。一个人很可能不会产生很长的字符串,更不用说记住它了。

有必要提一下,对于存储在钥匙串中的大值存在性能问题,因为它必须被加密/解密才能被写入和读取。

相关文章:

decoding a HUGE NSString, running out of memory

NSString stringWithFormat is slow