2012-07-09 26 views
2

據我所知,NSURLCredentialStorage只是一個更方便的API的鑰匙串服務的包裝。這就是爲什麼我想要使用它。但我也想利用鑰匙串提供的數據保護功能kSecAttrAccessibleWhenUnlockedThisDeviceOnly我可以在數據保護中使用NSURLCredentialStorage嗎?

當使用NSURLCredentialStorage存儲憑證時,有沒有一種方法來設置此屬性?

回答

2

原來的答案是肯定的。我查看NSURLCredentialStorage創建的鑰匙串項目。它的類別爲kSecClassInternetPassword,並將訪問密鑰kSecAttrAccessible設置爲「ak」,即kSecAttrAccessibleWhenUnlocked。所以當設備被鎖定時密碼不會被解密。

唯一的缺點是NSURLCredentialStorage不提供一種方法將其更改爲kSecAttrAccessibleWhenUnlockedThisDeviceOnly以獲得備份數據的額外安全級別。您只能使用較低級鑰匙串API(即SecItemUpdate)在鑰匙串項目上手動更改該屬性。

相關問題