我正在努力理解使用iOS密钥链存储应用程序密码、密钥和密钥的好处。这是“处理”这些数据的推荐方式,但从安全的角度来看,我看不到它的好处。
首先,苹果声称密钥链可以防止其他应用程序访问密钥链中的敏感数据。应用程序沙箱的设计已经阻止了这一点,所以我不明白为什么要存储在keychain中。其次,苹果声称这些数据是加密存储在iOS钥匙链中的,只需一次就可以为每个钥匙链项目指定锁定/访问控制。如果用户对设备进行“寻根”(越狱),就会有工具可以访问iOS密钥链中的全部数据,从而使密钥链加密和访问控制变得无用。
在我看来,iOS密钥链所做的一切只是增加了额外的开销,从安全的角度来看,苹果的应用程序沙箱和应用程序代码签名应该足以保护敏感的应用程序数据。我们应该能够简单地将敏感数据存储在iOS应用程序的文件系统或代码中,并依赖于苹果应用程序的沙箱和代码签名。我是不是遗漏了什么?
发布于 2021-07-28 15:09:42
你忽略的一件事是,即使应用程序被删除,存储的数据仍将保留在Keychain中,因此可以在用户重新安装应用程序的情况下检索这些数据,而不是应用程序的文件系统上的数据将在应用程序被删除时丢失。
发布于 2021-09-30 19:46:48
高级持续威胁( Advanced Persistent Threat,APT)通常能够悄悄地突破沙箱,因此您不能依赖sandbox来保护任何敏感数据。
另一方面,钥匙链是由SEP (Secure Enclave Processor)加密的,虽然不是万无一失,但很难破解。
https://stackoverflow.com/questions/68555274
复制相似问题