可以选择Keychain Access
允许所有应用程序无限制地访问钥匙串项.
我不知道如何以编程方式设置它.我试图用空ACL创建和设置新的SecAccessRef,并没有真正改变任何东西(使用SecItemUpdate
更新kSecAttrAccess
).我还尝试获取项目的所有授权标记的所有ACL列表,并将ACL内容设置为该ACL /标记组合的空数组.我能够清除允许的应用列表,但这不允许所有应用程序无限制地访问项目.我没有看到使用keychain api设置它的方法.
所以我的问题是如何操纵Access对象或其ACL以允许不受限制地访问钥匙串项或至少不受限制的读取?
根据我的经验,安全 API 中大多数最新的“便捷”方法都将项目存储到钥匙串中:
SecKeychainAddGenericPassword()
SecKeychainAddInternetPassword()
SecKeyGeneratePair()
在密码、私钥上添加change_acl
授权 ACL 条目,并使用空的受信任应用程序数组 - 这意味着没有用户提示,任何应用程序都无法随后修改 ACL。
因此,一般来说,如果没有用户提示,您似乎无法修改大多数现有钥匙串项目上的 ACL。
但是,如果您使用较旧的 Security API 方法将项目添加到钥匙串(您可以向其提供SecAccessRef
您自己创建的项目):
SecKeychainItemCreateFromContent()
SecKeyCreatePair()
(在 OS X 10.7 中已弃用,但仍然有效)那么您可以有效地将这些项目设置为“允许所有应用程序访问此项目”,这可能很有用,具体取决于您的应用程序。
也就是说,对于这些旧函数,您可以:
SecAccessRef
使用SecAccessCreate()
或SecAccessCreateWithOwnerAndACL()
SecAccessRef
授权Any
、无提示行为 ( SecKeychainPromptSelector = 0
) 和受信任的应用程序列表NULL
SecACLCreateWithSimpleContents()
SecAccessRef
,以实现“允许所有应用程序访问该项” 归档时间: |
|
查看次数: |
2732 次 |
最近记录: |