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