6.4 在設備上安全地存儲認證信息

Keychain : 在設備上安全存儲少量數據的機制, 比如密碼、密鑰、證書和身份信息等

Keychain 并不適合于通用目的的加密和數據存儲, 而是用來存儲需要保護的信息, 比如密碼與私鑰就會以加密的形式存儲起來. 諸如證書(不需要這種級別的保護)等就不會加密存儲

iOS 中, 每個應用都可以訪問它所創建的 Keychain 條目而無須請求許可
傳統的 Mac 開發, 可以訪問用戶同意的任何 Keychain 條目

從技術上來說, Keychain 數據存儲在應用沙箱之外, 這樣就可以通過應用委托事件來持久化數據了. iOS Keychain 的權限依賴于用于簽名應用的配置文件. 當應用在其版本的生命周期中不斷演進時, 你需要一直使用相同的配置文件

應用的 Keychain 可以包含任意數量的條目, 每個條目都包含待存儲的數據及屬性. 每個 Keychain 條目的屬性都依賴于在存儲過程中選擇的條目類. 條目類之間存在很多通用的條目屬性.

表 6-3 可編輯的 Keychain 條目屬性

在創建過程中, 有兩個重要的屬性需要注意(對于所有類都是一樣的), 它們是 kSecAttrAccessible 與 kSecAttrAccessGroup. 可以通過 kSecAttrAccessible 判斷應用何時能夠訪問 Keychain 條目. 你應用使用讓應用能夠滿足其目的的最嚴格的選項. 表 6-4 列出了 kSecAttrAccessible 屬性的所有可能值. 最低限度上, 你應用考慮將 kSecAttrAccessible 設為以 ThisDeviceOnly 結尾的值, 這樣就限制 Keychain 條目不能傳給新的設備. kSecAttrAccessGroup 表示 Keychain 條目屬于哪個訪問組. 應用可以屬于多個訪問組, 你在第 11 章定義的 Entitlements.plist 文件中將會看到這一點. 多個訪問組可以進一步劃分 Keychain 數據. 訪問組還可以用于在應用間共享數據. 第 11 章的示例將會詳細介紹這一點, 包括 Entitlements.plist 文件

表 6-4 kSecAttrAccessible 屬性的可能值

Generic Password 類是安全存儲非 Internet 密碼的理想位置, 比如本章的服務層使用的認證令牌等. Generic Password 類也可以用于存儲檢測應用之前是否安裝過的指示器

在 Keychain 中創建條目時, 最佳實踐是首先判斷條目是否已經存在, 然后根據結果進行添加或更新. 其余動作(檢索、更新與刪除)都接收一個查詢參數, 它是 CFDictionaryRef 的一個實例. 動作會在與查詢匹配的每個 Keychain 條目上執行. 查詢參數可以是任意數量的條目屬性(表 6-3 中介紹的屬性的一個子集)與表 6-5 中定義的搜索屬性的組合


表 6-5 預定義的 Keychain 搜索屬性

第 11 章介紹如何將 Keychain 集成到應用中, 包括如何在多個應用間共享數據

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,786評論 6 534
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,656評論 3 419
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,697評論 0 379
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,098評論 1 314
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,855評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,254評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,322評論 3 442
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,473評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,014評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,833評論 3 355
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,016評論 1 371
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,568評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,273評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,680評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,946評論 1 288
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,730評論 3 393
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,006評論 2 374

推薦閱讀更多精彩內容

  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,787評論 18 139
  • 發現 關注 消息 iOS 第三方庫、插件、知名博客總結 作者大灰狼的小綿羊哥哥關注 2017.06.26 09:4...
    肇東周閱讀 12,154評論 4 61
  • 為了進一步增強學生在遇到震險時逃生、自救能力, 2017年3月27日下午大課間時間,我校進行了常規防震逃生演練活動...
    像話讀書爻閱讀 194評論 0 1
  • [音頻版51 | 如何得到滿意的好答案?2017.08.30留言] 為什么有的人一輩子辛勤勞動,最終只能是個普通工...
    早知今日閱讀 277評論 2 2