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

注:原文---念茜的博客

題外話

開篇先扯幾句題外話,許多朋友都問我怎么不寫防啊,我確實有點猶豫。

hackers總是想象如果自己是開發(fā)者會怎么寫,然后才能找到入手點。同理,開發(fā)者們也要想象自己是hackers會怎么做,才能采取相應(yīng)的防御措施。然后,就是一場遞歸的博弈。

拿越獄檢測這件事來說,起初大家只需判斷有無安裝Cydia就好了,hackers們說好,那我就不安裝Cydia也可以動手腳。開發(fā)者們又說,那你一定得用的上MobileSubstrate,bash,ssh吧,我去檢測手機有沒有安裝這些工具。可是又有什么用呢?你判斷什么我繞過去什么。

當(dāng)class-dump大肆流行,函數(shù)符號都被暴露,開發(fā)者想盡辦法藏起自己的敏感函數(shù)代碼。hackers們也知道class-dump的死穴在哪里,于是新的檢索辦法油然而生。也就說,當(dāng)一個防御手段成為流行,它就不會再是個讓hackers大罵“真特么費勁”的防御手段了。比如之前介紹的一個小技巧:內(nèi)存數(shù)據(jù)擦除,hackers知道開發(fā)者都去擦數(shù)據(jù)了,那我hook memset在你擦之前去讀就好了。開發(fā)者說:我直接寫硬盤上然后刪除!hackers說:難道你沒聽說過文件恢復(fù)?

OK,貧的有點多了,本文介紹一下防御相關(guān)的話題----iOS的數(shù)據(jù)保護(hù)API。

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

文件系統(tǒng)中的文件、keychain中的項,都是加密存儲的。當(dāng)用戶解鎖設(shè)備后,系統(tǒng)通過UDID密鑰和用戶設(shè)定的密碼生成一個用于解密的密碼密鑰,存放在內(nèi)存中,直到設(shè)備再次被鎖,開發(fā)者可以通過Data

Protection API 來設(shè)定文件系統(tǒng)中的文件、keychain中的項應(yīng)該何時被解密。

1)文件保護(hù)

2)keychain項保護(hù)

應(yīng)用實例

把一段信息infoStrng字符串寫進(jìn)文件,然后通過Data Protection API設(shè)置保護(hù)。

設(shè)備鎖屏(帶密碼保護(hù))后,即使是越獄機,在root權(quán)限下cat讀取那個文件信息也會被拒絕。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 本文首發(fā)個人博客:聊聊 iOS 數(shù)據(jù)保護(hù) 文件系統(tǒng)中的文件、keychain中的項,都是加密存儲的。當(dāng)用戶解鎖設(shè)備...
    Chars閱讀 3,312評論 0 5
  • 通過看一些文檔發(fā)現(xiàn)越獄有風(fēng)險,但是風(fēng)險還是在可控范圍內(nèi)的,所以touchid用于交易還是可行的。 一越獄存在的問題...
    濼莫繁華閱讀 4,024評論 0 0
  • 文件系統(tǒng)中的文件、keychain 中的項,都是加密存儲的。當(dāng)用戶解鎖設(shè)備后,系統(tǒng)通過 UDID 密鑰和用戶設(shè)定的...
    無灃閱讀 740評論 0 0
  • 如果你看完書中的所有例子,你很可能已經(jīng)做完你的實驗和在已經(jīng)越獄的iPhone上的研究。因為和許多人一樣,幾乎所有的...
    fishmai0閱讀 17,344評論 2 42
  • 顧溪小宇宙閱讀 263評論 0 2

友情鏈接更多精彩內(nèi)容