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