据我所知,NSURLCredentialStorage
只是具有更方便API的钥匙串服务的包装。这就是为什么我想使用它。但我也想利用钥匙串提供的数据保护功能kSecAttrAccessibleWhenUnlockedThisDeviceOnly
。
使用NSURLCredentialStorage存储凭据时,是否可以设置此属性?
最佳答案
原来答案是肯定的。我调查了NSURLCredentialStorage
创建的钥匙串项目。它属于kSecClassInternetPassword
类,访问键kSecAttrAccessible
设置为“ak”,即kSecAttrAccessibleWhenUnlocked
。因此,锁定设备时不会解密密码。
唯一的缺点是NSURLCredentialStorage
没有提供将其更改为kSecAttrAccessibleWhenUnlockedThisDeviceOnly
的方法,从而为备份的数据提供了更高的安全级别。您只能使用较低级别的钥匙串API(即SecItemUpdate
)在钥匙串项上手动更改该属性。