保护用户在本地保存的数据以及如何测试安全级别的最佳方法是什么?

Imr*_*ran 4 security keychain nsuserdefaults user-data ios

在最近对App Store的攻击之后,我想是在app中为用户数据安全实现的安全措施是否足够?我知道没有保证可以防止攻击你的应用程序的数据和逻辑,但我们仍然可以通过实现某种安全性来挫败攻击者.我正在寻找以下问题的答案.

  1. NSUserDefault是安全的吗?
  2. Keychain Access是安全的吗?
  3. NSUserDefault或Keychain Access或其他任何推荐的更好的方法是哪种?
  4. 实施后有什么方法可以通过攻击我的应用程序进行测试吗?

que*_*ish 6

  1. 存储用于访问远程服务的凭据NSURLCredentialStorage.当持久性类型为NSURLCredentialPersistencePermanent或时,它使用钥匙串NSURLCredentialPersistenceSynchronizable.

  2. 直接使用钥匙串存储不符合上述或其他框架的凭证类型或个人信息(即账户或HealthKit)

  3. 不要存储敏感信息NSUserDefaults.

  4. 将Data Protection API用于所有其他本地数据.这是可以做到"应用广泛"使用权利,或单个文件和目录(使用NSFileManager,NSData等等.

  5. 要非常警惕第三方框架和库.其中许多捕获敏感信息,如用户的位置,并不安全地发送它.

您当然可以尝试攻击您的应用程序或聘请公司为您执行此操作.有很多书籍和资源可供指导如何操作,其中一个更好的是移动应用程序黑客手册