iOS 安全模型淺析(三) ---- 數(shù)據(jù)保護(hù)和全盤加密

iOS提供全盤加密戴尸,還為開發(fā)者提供了數(shù)據(jù)保護(hù)的API,用于進(jìn)一步保護(hù)自己的文件讹挎。這兩個機(jī)制可以實現(xiàn)遠(yuǎn)程抹除設(shè)備數(shù)據(jù)校赤,在設(shè)備丟失的情況下保護(hù)用戶數(shù)據(jù)免于泄露。
全盤加密其實解決了一個歷史問題:用戶數(shù)據(jù)會隨設(shè)備一起被竊取筒溃。在筆記本或者臺式機(jī)的環(huán)境下马篮,如果想竊取數(shù)據(jù),要么需要將硬盤轉(zhuǎn)移到一個新機(jī)器上怜奖,要么引導(dǎo)一個操作系統(tǒng)來讀取設(shè)備中的數(shù)據(jù)。文件系統(tǒng)加密并不能防止從一個正在運行的設(shè)備上竊取數(shù)據(jù)的行為歪玲。如果一個應(yīng)用可以從磁盤中讀取任意一個文件迁央,那么文件系統(tǒng)加密其實是沒有任何作用的,因為對于系統(tǒng)內(nèi)核來說滥崩,任何嘗試讀取這些文件的進(jìn)程都是透明解密的岖圈。相比于那些讀文件的調(diào)用行為,文件系統(tǒng)加密工作在更底層钙皮。一旦攻擊者攻破了系統(tǒng)驗證蜂科,那他就能無障礙的讀取任何文件。
iOS設(shè)備通常是全天運行設(shè)計短条,他們的內(nèi)部存儲器不容易被拆卸导匣。如果一個攻擊者想要不通過驗證就從設(shè)備中讀取敏感信息,他必須把設(shè)備完全拆解茸时,然后將閃存存儲器連接到一個自定義的接口上來讀取數(shù)據(jù)贡定。不過從設(shè)備中獲取數(shù)據(jù)有更為簡單的方法,而不用拆手機(jī)(畢竟拆手機(jī)這種事情一般人也做不來):代碼執(zhí)行漏洞可都、越獄等缓待。
iOS的全盤文件系統(tǒng)加密對于安全刪除文件和遠(yuǎn)程設(shè)備擦除蚓耽。傳統(tǒng)的安全擦除文件的方法不適用于iOS設(shè)備命浴,因為iOS設(shè)備主要使用固態(tài)硬盤(SSD)作為存儲烘跺。固態(tài)硬盤的原理這里不再贅述,相信大家也都了解一些智润。SSD采用了減少磨損的機(jī)制国葬,因此覆蓋文件的操作無法保證真正覆蓋硬盤中的舊數(shù)據(jù)贤徒。但是這不意味著我們對此束手無策,解決方法是確保文件被一個安全位置上的密鑰加密汇四,這樣請求銷毀數(shù)據(jù)的時候接奈,可以直接丟棄密鑰。iOS設(shè)備中使用的加密密鑰是分層級的通孽,只需要簡單地丟棄一個加密密鑰就能徹底銷毀底層的數(shù)據(jù)序宦,甚至是銷毀整個文件系統(tǒng)(不得不說當(dāng)時設(shè)計這個規(guī)則的人是真厲害)。

加密密鑰的層級:

分層級的加密密鑰其實是說用密鑰來加密其他密鑰背苦,這樣蘋果就能更精確的控制數(shù)據(jù)什么時候可用互捌。
它們的層級關(guān)系是這樣的:
設(shè)備密鑰+用戶密碼->層級密鑰
設(shè)備密鑰->文件系統(tǒng)密鑰->層級密鑰
層級密鑰->文件密鑰
文件密鑰(File Key)針對每個文件單獨生成,存儲在文件的元數(shù)據(jù)中行剂。不同級別的文件需要使用不同強度的加密密鑰秕噪。
層級密鑰(Class Key)的作用是專門為那些特殊數(shù)據(jù)提供不同級別的保護(hù)。在早先的iOS版本中厚宰,默認(rèn)的保護(hù)等級是NSFileProtectionNone腌巾;但是從iOS5開始,默認(rèn)的保護(hù)等級變成了NSFileProtectionCompleteUntilFirstUserAuthentication铲觉。
文件系統(tǒng)密鑰(Filesystem Key)是一種全局加密密鑰澈蝙,當(dāng)元數(shù)據(jù)被層級密鑰加密后,我們使用文件系統(tǒng)密鑰來加密涉及文件安全的元數(shù)據(jù)撵幽。
設(shè)備密鑰(Device Key)通常被稱為UID密鑰灯荧,每臺設(shè)備唯一,只能通過硬件的AES引擎訪問盐杂,操作系統(tǒng)無法直接獲取逗载。這是系統(tǒng)的主密鑰,他用來加密文件系統(tǒng)密鑰和層級密鑰况褪。如果用戶啟用了用戶密碼(User Passcode),他將與設(shè)備密鑰結(jié)合起來加密層級密鑰更耻。
一旦設(shè)置了用戶密碼测垛,這個密鑰等級也允許開發(fā)者自己決定本地存儲的數(shù)據(jù)該如何被保護(hù),包括:在設(shè)備鎖定時能否被訪問秧均、數(shù)據(jù)能否備份到其它設(shè)備等食侮。

鑰匙串API

iOS提供了鑰匙串API來存儲少量機(jī)密信息号涯。開發(fā)者可以用來存儲密碼、機(jī)密密鑰以及那些不能被其他應(yīng)用訪問的敏感信息锯七。調(diào)用鑰匙串API主要通過securityd守護(hù)進(jìn)程來完成链快,即從SQLite數(shù)據(jù)庫中提取數(shù)據(jù)。開發(fā)者可以指定在什么情況下允許應(yīng)用讀取密鑰眉尸,這和數(shù)據(jù)保護(hù)的API類似域蜗。

數(shù)據(jù)保護(hù)API

數(shù)據(jù)保護(hù)API利用文件系統(tǒng)加密、鑰匙串和用戶密碼噪猾,提供了一個額外的針對文件的保護(hù)層霉祸,開發(fā)者可以根據(jù)需求調(diào)用。這限制了某些進(jìn)程在系統(tǒng)層面讀取文件袱蜡。這個API最常用的場景就是當(dāng)設(shè)備鎖定時確保數(shù)據(jù)不可用丝蹭。
數(shù)據(jù)保護(hù)的強度在很大程度上取決于iOS的版本。隨著版本更新坪蚁,默認(rèn)的數(shù)據(jù)保護(hù)等級會發(fā)生變化奔穿。在新創(chuàng)建的iOS應(yīng)用程序中,數(shù)據(jù)保護(hù)默認(rèn)對所有應(yīng)用程序開啟敏晤,這種狀態(tài)在啟動設(shè)備后的第一次解鎖前都生效贱田。你可以在項目的Capabilities里找到Data Protection這個選項。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末茵典,一起剝皮案震驚了整個濱河市湘换,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌统阿,老刑警劉巖彩倚,帶你破解...
    沈念sama閱讀 217,734評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異扶平,居然都是意外死亡帆离,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,931評論 3 394
  • 文/潘曉璐 我一進(jìn)店門结澄,熙熙樓的掌柜王于貴愁眉苦臉地迎上來哥谷,“玉大人,你說我怎么就攤上這事麻献∶峭祝” “怎么了?”我有些...
    開封第一講書人閱讀 164,133評論 0 354
  • 文/不壞的土叔 我叫張陵勉吻,是天一觀的道長监婶。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么惑惶? 我笑而不...
    開封第一講書人閱讀 58,532評論 1 293
  • 正文 為了忘掉前任煮盼,我火速辦了婚禮,結(jié)果婚禮上带污,老公的妹妹穿的比我還像新娘僵控。我一直安慰自己,他們只是感情好鱼冀,可當(dāng)我...
    茶點故事閱讀 67,585評論 6 392
  • 文/花漫 我一把揭開白布报破。 她就那樣靜靜地躺著,像睡著了一般雷绢。 火紅的嫁衣襯著肌膚如雪泛烙。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,462評論 1 302
  • 那天翘紊,我揣著相機(jī)與錄音蔽氨,去河邊找鬼。 笑死帆疟,一個胖子當(dāng)著我的面吹牛鹉究,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播踪宠,決...
    沈念sama閱讀 40,262評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼自赔,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了柳琢?” 一聲冷哼從身側(cè)響起绍妨,我...
    開封第一講書人閱讀 39,153評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎柬脸,沒想到半個月后他去,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,587評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡倒堕,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,792評論 3 336
  • 正文 我和宋清朗相戀三年灾测,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片垦巴。...
    茶點故事閱讀 39,919評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡媳搪,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出骤宣,到底是詐尸還是另有隱情秦爆,我是刑警寧澤,帶...
    沈念sama閱讀 35,635評論 5 345
  • 正文 年R本政府宣布憔披,位于F島的核電站等限,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜精刷,卻給世界環(huán)境...
    茶點故事閱讀 41,237評論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望蔗候。 院中可真熱鬧怒允,春花似錦、人聲如沸锈遥。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,855評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽所灸。三九已至丽惶,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間爬立,已是汗流浹背钾唬。 一陣腳步聲響...
    開封第一講書人閱讀 32,983評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留侠驯,地道東北人抡秆。 一個月前我還...
    沈念sama閱讀 48,048評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像吟策,于是被迫代替她去往敵國和親儒士。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,864評論 2 354

推薦閱讀更多精彩內(nèi)容