据我所知,NSURLCredentialStorage只是一个钥匙链服务的包装器,具有更方便的应用编程接口。这就是为什么我想用它。但我也想利用keychain提供的数据保护功能kSecAttrAccessibleWhenUnlockedThisDeviceOnly。
在使用NSURLCredentialStorage存储凭据时,有没有办法设置此属性?
发布于 2012-07-10 18:41:41
事实证明答案是肯定的,算是吧。我查看了NSURLCredentialStorage创建的keychain项。它属于kSecClassInternetPassword类,并将访问密钥kSecAttrAccessible设置为"ak",即kSecAttrAccessibleWhenUnlocked。所以当设备被锁定时密码不会被解密。
唯一的缺点是,NSURLCredentialStorage没有提供一种方法来将其更改为kSecAttrAccessibleWhenUnlockedThisDeviceOnly,从而为您的备份数据提供更高级别的安全性。您只能使用较低级别的密钥链API(即SecItemUpdate)在密钥链项目上手动更改该属性。
https://stackoverflow.com/questions/11397399
复制相似问题