【问题标题】:Why does Apple recommend to store passwords, secrets, and keys in iOS Keychain when apps are sandboxed?当应用程序被沙盒化时,为什么 Apple 建议在 iOS Keychain 中存储密码、机密和密钥?
【发布时间】:2021-10-03 21:25:05
【问题描述】:

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

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

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

【问题讨论】:

  • 越狱是一种极端情况,从安全角度来看,它破坏了 Apple 提供的大多数安全措施,因为 root 访问有可能绕过某些安全检查。 Keychain 是比文件系统更安全的环境,它由 Secure Enclave 密钥加密(假设用户启用了 PIN 保护)。在谈论安全性时,使某些东西更难破解,为人们开始弄乱系统提供了更高的门槛

标签: ios sandbox keychain jailbreak mobile-security


【解决方案1】:

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

【讨论】:

  • 这是未定义的行为。在 SO 和 Apple 论坛上存在对这种意外行为有疑问的问题
【解决方案2】:

高级持续性威胁 (APT) 通常能够悄悄地突破沙盒,因此您不能依赖沙盒来保护任何敏感数据。

另一方面,钥匙串由 SEP(安全飞地处理器)加密,虽然并非绝对可靠,但它更难破解。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-04-03
    • 2010-10-27
    • 1970-01-01
    • 2017-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多