ios - 用户可以访问 iOS 上的钥匙串(keychain)吗?

标签 ios keychain

我们正在考虑在我们的应用程序中存储一些我们不希望用户能够干预的信息(比如用户名、密码等)。一种(不好的)方法是将它们放在应用程序文件夹中某处的加密文件中,但如果我们这样做,用户将能够使用任何 iOS 文件系统探索工具并编辑或替换该文件,我们不会这样做'想要。

如果我们将详细信息存储在钥匙串(keychain)中,用户是否可以通过任何方式读取或写入这些详细信息,例如通过运行相当于文件系统探索工具的钥匙串(keychain)?或者,如果不运行该应用程序,就无法在钥匙串(keychain)中获取该应用程序的信息吗?

显然,如果用户破解了我们的应用程序,或者拥有越狱设备,或者以某种方式将信息发送到设备的中间人连接等,他们就可以访问钥匙串(keychain)项目。我并不担心这个 - 只是担心拥有普通的、未被黑客入侵的设备并且上面没有奇怪的应用程序的用户是否可以访问钥匙串(keychain)中的数据。

感谢您的帮助。

最佳答案

根据 Apple docs :

Whereas in OS X any application can access any keychain item provided the user gives permission, in iOS an application can access only its own keychain items.

Note: On iPhone, Keychain rights depend on the provisioning profile used to sign your application. Be sure to consistently use the same provisioning profile across different versions of your application.

因此,如果您假设您的设备未越狱并且钥匙串(keychain)子系统正常工作,则只有您的应用(通过其配置文件识别)可以访问其自己的钥匙串(keychain)项。如果您有不同的应用程序共享相同的配置文件,那么它们都可以访问相同的钥匙串(keychain)项目。

关于ios - 用户可以访问 iOS 上的钥匙串(keychain)吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20847993/

相关文章:

c - OpenSSL 和 Apple Keychain 集成

macos - 从 Swift 使用 SecKeychainCreate

ios - KeychainWrapper 保存数据并在同一函数中检索数据不起作用

ios - 如何明智地将 FirebaseFirestoreSwift 与 Carthage 结合使用?

iphone - 变换后获取帧值的最佳方法?

javascript - 带小数点分隔符的 HTML 数字输入问题

ios - ios UIBarButtonItem与UIBarButtonSystemItemCompose显示红色按钮

iphone - 清除 iPhone key 扣

android - 如何删除Facebook "Currently Ineligible for Submission"?

ios kSecClassCertificate 产量 -25303