(前回)Cocoaの日々: Keychain Services 調査 (4) ドキュメントを読む #2 - ACL
ACL続き。残りの ACL Entries について。
Mac Dev Center: Keychain Services Programming Guide: Keychain Services Concepts
ACL Entries
- access object の作成には、SecAccessCreate を使う
- 1つの access object につき、3つの ACLエントリが作成される
- 1つ目は owner access で、access object それ自身への変更権限を表す。デフォルトでは、owner access に対しては信頼されたアプリは設定されない。
- 2つ目は安全と見なされる操作(例えば、data の暗号化)。これはすべてのアプリに適用される。
- 3つ目は制限される操作(例えば、復号化や署名、鍵情報の取得やエクスポートなど)。このエントリは、SecAccessCreate関数で指定された信頼されたアプリに対して適用される。
- これらの ACLエントリは、作成後に変更や追加が行える。
- ACLエントリ毎に下記を定義することができる。
1. trusted applications(信頼されたアプリ)
2. the item descriptor string
3. a list of authorization tags
4. a prompt selector bit - prompt selector bit を有効にした場合、信頼されないアプリから Keychain item へアクセスがあった場合には、アクセス確認ダイアログが表示されるまでは通常と同じだが、さらに keychain パスワードの入力を求められる。デフォルトでは無効になっている。
- 例外) "the secret of a keychain item" を表示する場合は、信頼されたアプリであってもパスワード入力が求められる。