私の知る限りNSURLCredentialStorage
、より便利な API を備えたキーチェーン サービスの単なるラッパーです。だからこそ使いたい。しかし、キーチェーンが提供するデータ保護機能も活用したいと考えてkSecAttrAccessibleWhenUnlockedThisDeviceOnly
います。
NSURLCredentialStorage を使用して資格情報を保存するときに、この属性を設定する方法はありますか?
答えはイエスです。作成したキーホルダーアイテムを調べてみNSURLCredentialStorage
ました。これはクラスkSecClassInternetPassword
であり、アクセス キーkSecAttrAccessible
が「ak」に設定されています。これはkSecAttrAccessibleWhenUnlocked
. したがって、デバイスがロックされている間、パスワードは復号化されません。
唯一の欠点は、それを変更してバックアップ データのセキュリティ レベルを高めるNSURLCredentialStorage
方法がないことです。kSecAttrAccessibleWhenUnlockedThisDeviceOnly
下位レベルのキーチェーン API (つまりSecItemUpdate
) を使用して、キーチェーン アイテムでその属性を手動でのみ変更できます。