据我所知,NSURLCredentialStorage
只是钥匙串(keychain)服务的包装器,具有更方便的 API。这就是我想使用它的原因。但我还想利用钥匙串(keychain)提供的数据保护功能 kSecAttrAccessibleWhenUnlockedThisDeviceOnly
。
使用 NSURLCredentialStorage 存储凭据时是否可以设置此属性?
最佳答案
事实证明答案是肯定的。我查看了 NSURLCredentialStorage
创建的钥匙串(keychain)项。它属于 kSecClassInternetPassword
类,并且访问 key kSecAttrAccessible
设置为“ak”,即 kSecAttrAccessibleWhenUnlocked
。因此,当设备锁定时,密码不会被解密。
唯一的缺点是 NSURLCredentialStorage
没有提供将其更改为 kSecAttrAccessibleWhenUnlockedThisDeviceOnly
的方法来为备份数据获得额外的安全级别。您只能使用较低级别的钥匙串(keychain) API(即 SecItemUpdate
)在钥匙串(keychain)项上手动更改该属性。
关于iphone - 我可以将 NSURLCredentialStorage 与数据保护结合使用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11397399/