首页 > 解决方案 > 当应用程序被沙盒化时,为什么 Apple 建议在 iOS 钥匙串中存储密码、机密和密钥?

问题描述

我很难理解使用 iOS 钥匙串存储应用程序密码、机密和密钥的好处。这是“处理”这些数据的推荐方式,但从安全角度来看,我没有看到好处。

首先,苹果声称钥匙串可以防止其他应用程序访问钥匙串中的敏感数据。应用程序沙盒设计已经阻止了这种情况,所以我不明白为什么需要存储在钥匙串中。其次,苹果声称数据被“加密”存储在 iOS 钥匙串中,并且可以为每个钥匙串项目指定锁定/访问控制。如果用户“root”设备(越狱手机),则有一些工具可以访问 iOS 钥匙串中的全部数据,从而使钥匙串加密和访问控制变得无用。

在我看来,iOS 钥匙串所做的一切都是增加额外的开销,从安全角度来看,Apple 的应用程序沙盒和应用程序代码签名应该足以保护敏感的应用程序数据。我们应该能够简单地将敏感数据存储在 iOS 应用程序的文件系统或代码中,并依赖 Apple 的应用程序沙盒和代码签名。我错过了什么吗?

标签: iossandboxkeychainjailbreakmobile-security

解决方案


您错过的一件事是,即使删除了应用程序,存储的数据也会保留在 Keychain 中,因此可以在用户重新安装应用程序时检索它,这与应用程序文件系统上的数据不同,应用程序文件系统上的数据会丢失已移除。


推荐阅读