亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

iOS安全攻防(十八):數據保護API

2019-11-14 20:41:18
字體:
來源:轉載
供稿:網友

數據保護API

 

 

題外話


開篇先扯幾句題外話,許多朋友都問我怎么不寫防啊,我確實有點猶豫。
hackers總是想象如果自己是開發者會怎么寫,然后才能找到入手點。同理,開發者們也要想象自己是hackers會怎么做,才能采取相應的防御措施。然后,就是一場遞歸的博弈。
拿越獄檢測這件事來說,起初大家只需判斷有無安裝Cydia就好了,hackers們說好,那我就不安裝Cydia也可以動手腳。開發者們又說,那你一定得用的上MobileSubstrate,bash,ssh吧,我去檢測手機有沒有安裝這些工具??墒怯钟惺裁从媚??你判斷什么我繞過去什么。

 

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



OK,貧的有點多了,本文介紹一下防御相關的話題————iOS的數據保護API。

 

 

數據保護API


文件系統中的文件、keychain中的項,都是加密存儲的。當用戶解鎖設備后,系統通過UDID密鑰和用戶設定的密碼生成一個用于解密的密碼密鑰,存放在內存中,直到設備再次被鎖,開發者可以通過Data PRotection API 來設定文件系統中的文件、keychain中的項應該何時被解密。

1)文件保護

 

 

  1. /* 為filePath文件設置保護等級 */  
  2. NSDictionary *attributes = [NSDictionary dictionaryWithObject:NSFileProtectionComplete  
  3.                                                        forKey:NSFileProtectionKey];  
  4. [[NSFileManager defaultManager] setAttributes:attributes  
  5.                                  ofItemAtPath:filePath  
  6.                                         error:nil];  

 

 

 

  1. //文件保護等級屬性列表  
  2. NSFileProtectionNone                                    //文件未受保護,隨時可以訪問 (Default)  
  3. NSFileProtectionComplete                                //文件受到保護,而且只有在設備未被鎖定時才可訪問  
  4. NSFileProtectionCompleteUntilFirstUserAuthentication    //文件收到保護,直到設備啟動且用戶第一次輸入密碼  
  5. NSFileProtectionCompleteUnlessOpen                      //文件受到保護,而且只有在設備未被鎖定時才可打開,不過即便在設備被鎖定時,已經打開的文件還是可以繼續使用和寫入  



 

2)keychain項保護

 

  1. /* 設置keychain項保護等級 */  
  2. NSDictionary *query = @{(__bridge id)kSecClass: (__bridge id)kSecClassGenericPassWord,  
  3.                         (__bridge id)kSecAttrGeneric:@"MyItem",  
  4.                         (__bridge id)kSecAttrAccount:@"username",  
  5.                         (__bridge id)kSecValueData:@"password",  
  6.                         (__bridge id)kSecAttrService:[NSBundle mainBundle].bundleIdentifier,  
  7.                         (__bridge id)kSecAttrLabel:@"",  
  8.                         (__bridge id)kSecAttrDescription:@"",  
  9.                         (__bridge id)kSecAttraccessible:(__bridge id)kSecAttrAccessibleWhenUnlocked};    
  10.       
  11. OSStatus result = SecItemAdd((__bridge CFDictionaryRef)(query), NULL);  

 

  1. //keychain項保護等級列表  
  2. kSecAttrAccessibleWhenUnlocked                          //keychain項受到保護,只有在設備未被鎖定時才可以訪問  
  3. kSecAttrAccessibleAfterFirstUnlock                      //keychain項受到保護,直到設備啟動并且用戶第一次輸入密碼  
  4. kSecAttrAccessibleAlways                                //keychain未受保護,任何時候都可以訪問 (Default)  
  5. kSecAttrAccessibleWhenUnlockedThisDeviceOnly            //keychain項受到保護,只有在設備未被鎖定時才可以訪問,而且不可以轉移到其他設備  
  6. kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly        //keychain項受到保護,直到設備啟動并且用戶第一次輸入密碼,而且不可以轉移到其他設備  
  7. kSecAttrAccessibleAlwaysThisDeviceOnly                  //keychain未受保護,任何時候都可以訪問,但是不能轉移到其他設備  



 

 

 

應用實例


把一段信息infoStrng字符串寫進文件,然后通過Data Protection API設置保護。

 

 

  1. NSString *documentsPath =[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject];  
  2. NSString *filePath = [documentsPath stringByAppendingPathComponent:@"DataProtect"];  
  3. [infoString writeToFile:filePath  
  4.              atomically:YES   
  5.                encoding:NSUTF8StringEncoding  
  6.                   error:nil];  
  7. NSDictionary *attributes = [NSDictionary dictionaryWithObject:NSFileProtectionComplete  
  8.                                                        forKey:NSFileProtectionKey];  
  9. [[NSFileManager defaultManager] setAttributes:attributes  
  10.                                  ofItemAtPath:filePath  
  11.                                         error:nil];  


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

 

 

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩精品视频观看| 久久伊人精品天天| 欧美国产日韩视频| 久久人人97超碰精品888| 成人精品久久久| 91精品久久久久久久久久久久久久| 日韩成人在线观看| 欧美精品在线网站| 国色天香2019中文字幕在线观看| 欧美日韩一区免费| 欧美日韩免费观看中文| 日韩欧美成人区| 俺也去精品视频在线观看| 欧美一级成年大片在线观看| 7777kkkk成人观看| 亚州欧美日韩中文视频| 91a在线视频| 668精品在线视频| 欧美性猛交xxxxx免费看| 国产一区玩具在线观看| 亚洲va国产va天堂va久久| 亚洲国产天堂久久综合网| 国产亚洲精品美女| 成人黄色免费在线观看| 日韩av在线电影网| 亚洲精品视频二区| 国产999在线| 久久精品国产亚洲7777| 日韩视频免费在线观看| 亚洲va国产va天堂va久久| 亚洲精品福利资源站| 川上优av一区二区线观看| 欧美性受xxxx黑人猛交| 欧美日韩免费观看中文| 亚洲视频一区二区| 国产亚洲欧洲在线| 亚洲999一在线观看www| 国产精品影院在线观看| 亚洲一区www| 一本一本久久a久久精品综合小说| 伊人久久久久久久久久久| 亚洲精品自在久久| 日韩激情视频在线播放| 欧美日韩在线观看视频小说| 91香蕉嫩草影院入口| 欧美影院成年免费版| 久久精品国产成人| 国产欧洲精品视频| 日韩国产在线播放| 国产精品久久久久久久天堂| 日本亚洲欧洲色α| 国内精品久久久久| 国产中文欧美精品| 91po在线观看91精品国产性色| 欧美成人午夜剧场免费观看| 亲子乱一区二区三区电影| 欧美日韩亚洲视频一区| 国产欧美日韩专区发布| 国产成人中文字幕| 国产精品女主播| 久久综合伊人77777| 亚洲精品中文字幕有码专区| 日韩视频第一页| 在线亚洲国产精品网| 成人做爽爽免费视频| 两个人的视频www国产精品| 亚洲成人精品视频在线观看| 久久精品国产欧美亚洲人人爽| 日韩激情第一页| 97热精品视频官网| 亚洲欧美另类中文字幕| 日韩av在线影院| 欧美高清自拍一区| 精品丝袜一区二区三区| 久久6免费高清热精品| 国产精品r级在线| 国产一区二区黄| 欧美日韩精品国产| 亚洲成成品网站| 18一19gay欧美视频网站| 国产精品jvid在线观看蜜臀| 中文字幕久热精品视频在线| 久99久在线视频| 久久韩剧网电视剧| 中文字幕v亚洲ⅴv天堂| 成人写真福利网| 亚洲第一中文字幕| www.日韩.com| 亚洲国产精品久久久久| 日韩三级成人av网| 精品中文字幕视频| 国产精品美女主播| 91精品国产高清久久久久久| 国产欧美在线观看| 尤物九九久久国产精品的分类| 九九九久久国产免费| 亚洲天堂免费观看| 色综合视频一区中文字幕| 国产+成+人+亚洲欧洲| 欧美性黄网官网| 久久精品小视频| 亚洲综合小说区| 久久这里只有精品99| 国产精品91在线观看| 久久综合国产精品台湾中文娱乐网| 欧美成年人在线观看| 亚洲欧洲xxxx| 亚洲欧洲第一视频| 欧美日韩国产精品一区二区不卡中文| 亚洲三级av在线| 97碰碰碰免费色视频| 精品夜色国产国偷在线| 一区二区三区www| 日韩国产激情在线| 久久久91精品国产一区不卡| 国产成人亚洲综合| 亚洲综合自拍一区| 欧洲成人性视频| 亚洲最大成人在线| 国产精品高清在线观看| 亚洲欧美三级在线| 国产精品国产三级国产专播精品人| 97视频国产在线| 日韩一二三在线视频播| 亚洲欧美精品中文字幕在线| 69视频在线播放| 国产z一区二区三区| 日韩在线视频网| 色妞久久福利网| 国产精品亚发布| 国产欧美日韩综合精品| 亚洲欧美中文日韩v在线观看| 在线观看久久av| 欧美性xxxxhd| 久久福利视频网| 亚洲国产成人久久| 亚洲精品美女在线观看| 成人午夜两性视频| 亚洲成**性毛茸茸| 久久免费在线观看| 久久精品成人欧美大片| 久久综合久久八八| 九九热精品视频| 国外成人在线视频| 国产精品高精视频免费| 91欧美激情另类亚洲| 国产精品678| 久久香蕉国产线看观看av| 国产成人极品视频| 亚洲伊人第一页| 久久精品久久精品亚洲人| 日韩大陆欧美高清视频区| 91丝袜美腿美女视频网站| 亚洲欧美国产va在线影院| 日本一欧美一欧美一亚洲视频| 国产日韩欧美黄色| 粉嫩av一区二区三区免费野| 在线亚洲男人天堂| 精品亚洲精品福利线在观看| 国产综合在线观看视频| 亚洲人成啪啪网站| 久久香蕉频线观| 亚洲一区二区中文字幕| 91精品久久久久久久久久入口|