我们正在考虑在我们的应用中存储一些我们不希望用户能够干预的信息(相当于用户名,密码等)。一个(坏)方法是将它们放在应用程序文件夹中的某个加密文件中,但如果我们这样做,用户就可以使用任何iOS文件系统探索工具并编辑或替换该文件,我们不知道不想要。
如果我们将详细信息存储在钥匙串中,用户是否可以读取或写入这些详细信息,例如通过运行等效于文件系统探索工具的钥匙串?或者,如果没有运行该应用程序,是否无法获取钥匙串中的应用程序信息?
显然,如果用户攻击我们的应用程序,或拥有越狱设备,或以某种方式将中间信息发送到设备等的连接,他们就可以访问钥匙串项目。我并不担心这个问题 - 只是一个普通的,不受干扰的设备和没有奇怪的应用程序的用户是否可以访问钥匙串中的数据。
感谢您的帮助。
答案 0 :(得分:11)
根据Apple docs:
在OS X中,任何应用程序都可以访问任何用户授予权限的钥匙串项目,而在iOS中,应用程序只能访问自己的钥匙串项目。
注意:在iPhone上,Keychain权限取决于用于签署应用程序的配置文件。请确保在不同版本的应用程序中始终使用相同的配置文件。
因此,如果您认为您的设备未被越狱并且钥匙串子系统正常工作,则只有您的应用(通过其配置文件识别)才能访问自己的钥匙串项目。如果您有不同的应用程序共享相同的配置文件,那么他们都可以访问相同的钥匙串项目。
答案 1 :(得分:0)
如 https://stackoverflow.com/a/20848094/248062 中所述,无法在 iOS 设备上访问应用程序外部。
但是,用户现在可以在 macOS 上安装该应用程序,这将提供常规的 macOS 访问权限来查看和操作钥匙串数据。