SQLiteベースである。securittyに関してデーモンはおり、アクセスできる項目はデーモンによって決定される。
キーチェーン項目は同じデベロッパのアプリ間でのみ可能。
データ保護について
ロック解除時 kSecAttrAccessibleWhenUnlocked
ロック中 不可
初回ロック解除後 kSecAttrAccessibleAfterFirstUnlock
常時 kSecAttrAccessibleAlways
パスコードが有効なとき kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly
BGモードで利用中にアクセスが必要な項目はkSecAttrAccessibleAfterFirstUnlockを使用できる。
格納されたものはアイテムと呼んでいる。
iOSからはSecItem系のAPIでアイテムを取得する。
queryの使い方例
CFDictionaryRef
kSecClass = kSecClassGenericPassword
kSecAttrAccount = @”hogehoge” アカウント
kSecRetturnAttribute = kCFBooleanTrue // 結果を辞書型で受け取る
詳細は以下を参照
http://cocoadays.blogspot.com/2011/02/ios-keychain-services.html