簡(jiǎn)單的數(shù)據(jù),對(duì)安全性要求不高的數(shù)據(jù)可以使用 NSUserDefaults (本質(zhì)上是一個(gè)plist)來(lái)存儲(chǔ)相對(duì)復(fù)雜點(diǎn)的數(shù)據(jù),可以使用coredata (本質(zhì)上是使用sqlite 來(lái)存儲(chǔ))對(duì)安全性要求較高的數(shù)據(jù),可以使用keychain 來(lái)存儲(chǔ)。同樣調(diào)用NSCoder子類(lèi)NSKeyedArchiver的方法unarchiveRootObject:toFile: 即可 。
站在用戶的角度思考問(wèn)題,與客戶深入溝通,找到惠民網(wǎng)站設(shè)計(jì)與惠民網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類(lèi)型包括:網(wǎng)站制作、做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、空間域名、網(wǎng)頁(yè)空間、企業(yè)郵箱。業(yè)務(wù)覆蓋惠民地區(qū)。
缺點(diǎn):歸檔的形式來(lái)保存數(shù)據(jù),只能一次性歸檔保存以及一次性解壓。所以只能針對(duì)小量數(shù)據(jù),而且對(duì)數(shù)據(jù)操作比較笨拙,即如果想改動(dòng)數(shù)據(jù)的某一小部分,還是需要解壓整個(gè)數(shù)據(jù)或者歸檔整個(gè)數(shù)據(jù)。
iOS應(yīng)用安全風(fēng)險(xiǎn)
1
內(nèi)購(gòu)破解
iOS應(yīng)用需防反編譯風(fēng)險(xiǎn)之一:插件法(僅越獄)、iTools工具替換文件法(常見(jiàn)為存檔破解)、八門(mén)神器修改
2
網(wǎng)絡(luò)安全風(fēng)險(xiǎn)
iOS應(yīng)用需防反編譯風(fēng)險(xiǎn)之二:截獲網(wǎng)絡(luò)請(qǐng)求,破解通信協(xié)議并模擬客戶端登錄,偽造用戶行為,對(duì)用戶數(shù)據(jù)造成危害
3
應(yīng)用程序函數(shù)PATCH破解
iOS應(yīng)用需防反編譯風(fēng)險(xiǎn)之三:利用FLEX 補(bǔ)丁軟件通過(guò)派遣返回值來(lái)對(duì)應(yīng)用進(jìn)行patch破解
4
源代碼安全風(fēng)險(xiǎn)
iOS應(yīng)用需防反編譯風(fēng)險(xiǎn)之四:通過(guò)使用ida等反匯編工具對(duì)ipa進(jìn)行逆向匯編代碼,導(dǎo)致核心代碼邏輯泄漏與被修改,影響應(yīng)用安全
5
面對(duì)這些iOS應(yīng)用存在的風(fēng)險(xiǎn),iOS應(yīng)用如何防止被反編譯,下面看下iOS應(yīng)用加密技術(shù)
END
iOS應(yīng)用加密防反編譯技術(shù)
本地?cái)?shù)據(jù)加密
iOS應(yīng)用防反編譯加密技術(shù)之一:對(duì)NSUserDefaults,sqlite存儲(chǔ)文件數(shù)據(jù)加密,保護(hù)帳號(hào)和關(guān)鍵信息
URL編碼加密
iOS應(yīng)用防反編譯加密技術(shù)之二:對(duì)程序中出現(xiàn)的URL進(jìn)行編碼加密,防止URL被靜態(tài)分析
網(wǎng)絡(luò)傳輸數(shù)據(jù)加密
iOS應(yīng)用防反編譯加密技術(shù)之三:對(duì)客戶端傳輸數(shù)據(jù)提供加密方案,有效防止通過(guò)網(wǎng)絡(luò)接口的攔截獲取數(shù)據(jù)
方法體,方法名高級(jí)混淆
iOS應(yīng)用防反編譯加密技術(shù)之四:對(duì)應(yīng)用程序的方法名和方法體進(jìn)行混淆,保證源碼被逆向后無(wú)法解析代碼
程序結(jié)構(gòu)混排加密
iOS應(yīng)用防反編譯加密技術(shù)之五:對(duì)應(yīng)用程序邏輯結(jié)構(gòu)進(jìn)行打亂混排,保證源碼可讀性降到最低
下面是iOS應(yīng)用加密防反編譯前后對(duì)比
END
iOS應(yīng)用防反編譯總結(jié)
1
通過(guò)以上研究,iOS應(yīng)用開(kāi)發(fā)者必須要注意iOS應(yīng)用反編譯技術(shù)研究了,不要讓iOS應(yīng)用重蹈Android應(yīng)用的覆轍,iOS應(yīng)用防反編譯!
1.什么是藍(lán)牙4.0,藍(lán)牙其它標(biāo)準(zhǔn)又是什么?
詳細(xì)描述:低功耗藍(lán)牙(Low Energy; LE),又視為Bluetooth Smart或藍(lán)牙核心規(guī)格4.0版本。其特點(diǎn)具備節(jié)能、便于采用,是藍(lán)牙技術(shù)專(zhuān)為物聯(lián)網(wǎng)(Internet of Things; IOT)開(kāi)發(fā)的技術(shù)版本。所以它最主要的特點(diǎn)是低功耗,普及率高?,F(xiàn)在所說(shuō)的藍(lán)牙設(shè)備,大部分都是在說(shuō)4.0設(shè)備,ble也特指4.0設(shè)備。 在4.0之前重要的版本有 2.1版本-基本速率/增強(qiáng)數(shù)據(jù)率(BR/EDR) 和 3.0 高速藍(lán)牙 版本,這些統(tǒng)稱(chēng)為經(jīng)典藍(lán)牙。4.0還有4.1和4.2的小版本,其中4.2版本對(duì)傳輸速率做了進(jìn)一步他提升,提高了2.5倍,蘋(píng)果從iphone6開(kāi)始使用4.2,最新的藍(lán)牙標(biāo)準(zhǔn)為藍(lán)牙5.0,其中最大的特點(diǎn)連接范圍擴(kuò)大了4倍,速度又提高了2倍,無(wú)連接數(shù)據(jù)廣播能力提高了8倍,增加了藍(lán)牙組網(wǎng)的能力。
2.藍(lán)牙開(kāi)發(fā)必須知道的概念。
2.1.1 central和peripheral:
藍(lán)牙應(yīng)用開(kāi)發(fā)中,存在兩種角色,分別是central和peripheral(p?’r?f?r?l) ,中文就是中心和外設(shè)。比如手機(jī)去連接智能設(shè)備,那手機(jī)就是central,智能設(shè)備就是peripheral。大多時(shí)候都是central去連接peripheral的場(chǎng)景。
2.1.2 廣播和連接:
peripheral會(huì)發(fā)出廣播,central掃描到廣播后,可以對(duì)設(shè)備進(jìn)行連接,發(fā)出connect請(qǐng)求,peripheral接收到請(qǐng)求后,同意連接后,central和peripheral就建立了連接。
2.1.3?連接后的操作:
write,read,notify,indecate, response or not …
indecate和notify的區(qū)別就在于,indecate是一定會(huì)收到數(shù)據(jù),notify有可能會(huì)丟失數(shù)據(jù)(不會(huì)有central收到數(shù)據(jù)的回應(yīng)),write也分為response和noresponse,如果是response,那么write成功回收到peripheral的確認(rèn)消息,但是會(huì)降低寫(xiě)入的速率。
2.1.4 協(xié)議:
每個(gè)具體的智能設(shè)備,都約定了一組數(shù)據(jù)格式,這個(gè)就是數(shù)據(jù)協(xié)議,例如手環(huán)中獲取到數(shù)據(jù)0X001023,其中第2位到第5位表示步數(shù),那么就2310就是步數(shù)的16進(jìn)制的數(shù)據(jù),轉(zhuǎn)換成10進(jìn)制就是8976步,需要注意的是,設(shè)備端都是小端模式,所以取4位時(shí)候,高字節(jié)在前低字節(jié)在后。
3. iOS藍(lán)牙應(yīng)用的一般開(kāi)發(fā)流程。
4. 藍(lán)牙的數(shù)據(jù)交互。
write,read,notify,indecate, response or not … 都是容易理解的,indecate和notify對(duì)應(yīng)的是長(zhǎng)連接,建立indecate后,peripheral可以隨時(shí)往central發(fā)送數(shù)據(jù)。
indecate和notify的區(qū)別就在于,indecate是一定會(huì)收到數(shù)據(jù),notify有可能會(huì)丟失數(shù)據(jù)(不會(huì)有central收到數(shù)據(jù)的回應(yīng)),write也分為response和noresponse,如果是response,那么write成功回收到peripheral的確認(rèn)消息,但是會(huì)降低寫(xiě)入的速率。
對(duì)于一個(gè)charateristic,他的讀寫(xiě)訂閱的權(quán)限是peripheral決定的,熟悉可以被同時(shí)設(shè)置,一般會(huì)根據(jù)外設(shè)的功能來(lái)決定。
5.藍(lán)牙ota DFU。
藍(lán)牙ota,DFU(Device Firmware Update)指的是藍(lán)牙設(shè)備的固件升級(jí),其實(shí)是一整套流程,不同的藍(lán)牙芯片,ota的流程有不同之處,我這里用ti的芯片舉例。步驟為:切系統(tǒng)(bootloader mode),重啟,傳輸數(shù)據(jù),驗(yàn)證數(shù)據(jù),切系統(tǒng),重啟,完成。
其中數(shù)據(jù)傳輸也會(huì)分成很多節(jié)去發(fā)送,沒(méi)法送一段數(shù)據(jù),做一次數(shù)據(jù)校驗(yàn)。
6.ota存在的問(wèn)題。
每個(gè)智能設(shè)備的速率,功耗,存儲(chǔ)都會(huì)有很多限制,導(dǎo)致很多設(shè)備會(huì)自己去實(shí)現(xiàn)ota的功能,自定義流程和數(shù)據(jù)傳輸方式,導(dǎo)致許多設(shè)備都是有自己私有的ota模式和協(xié)議,所以在做開(kāi)發(fā)的時(shí)候,要仔細(xì)閱讀設(shè)備協(xié)議中對(duì)ota的描述。
7.如何做自動(dòng)重連。
只需要在設(shè)備斷開(kāi)連接的委托方法中,重新調(diào)用gatt.connet或者是centralManager.connet方法就可以了,無(wú)論當(dāng)時(shí)設(shè)備是否有點(diǎn),是否在周?chē)?dāng)設(shè)備再次開(kāi)會(huì)或者連接到可連接范圍內(nèi),都會(huì)自動(dòng)被連上。
8.連接失敗處理。
分兩個(gè)平臺(tái)來(lái)說(shuō),iOS端也有連接失敗的委托,但是好像幾乎不會(huì)發(fā)生這種情況,而對(duì)于同款設(shè)備,android常常會(huì)出現(xiàn)連接失敗的情況,status != BluetoothGatt.GATT_SUCCESS,android端開(kāi)發(fā)請(qǐng)不要把連接失敗和斷開(kāi)連接放在一塊處理,因?yàn)閿嚅_(kāi)連接可以直接嘗試重新連接,而連接失敗后嘗試重新連接,需要加一些延時(shí),并且需要gatt.close,清空一下?tīng)顟B(tài),否則會(huì)把gatt阻塞導(dǎo)致手機(jī)不重啟藍(lán)牙就再也無(wú)法連接任何設(shè)備的情況 。
9.后臺(tái)運(yùn)行。
iOS后來(lái)運(yùn)行,需要設(shè)備中info.Plist權(quán)限,key:Required background modes ,value: bluetooth-central(手機(jī)作為central) , bluetooth-peripheral。
10.同時(shí)連接多個(gè)設(shè)備。
使用同一個(gè)CBCentralManager,通過(guò)進(jìn)入委托的peripheral的identifier區(qū)分不同的設(shè)備,進(jìn)行不同的操作和處理。
11.掃描廣播包。
所有外設(shè),只有在發(fā)出廣播包的情況下,才能被central發(fā)現(xiàn),絕大多數(shù)情況下,外設(shè)被連接后就不會(huì)發(fā)出廣播(也有例外),很多人遇到無(wú)法找到設(shè)備的問(wèn)題,大多屬于這種情況。
12.提高藍(lán)牙連接速度。
無(wú)論是iOS,還是android,都可以通過(guò)已綁定的設(shè)備,在不開(kāi)啟掃描的情況下進(jìn)行快速連接,iOS需要的參數(shù)是peripheral的identifier,android需要mac地址。但android和iOS還是有一些區(qū)別的,比如iOS不能拿到已綁定的設(shè)備list,但是可以通過(guò)UUID去拿到peripheral的實(shí)例。而android可以拿到已綁定的設(shè)備list。android綁定過(guò)程需要手動(dòng)調(diào)用createBond的方法,而iOS在連接成功一次后會(huì)自動(dòng)綁定。 android在處理createBond時(shí),常常會(huì)應(yīng)為不同手機(jī)平臺(tái),不同設(shè)備,會(huì)產(chǎn)生兼容性的問(wèn)題,這點(diǎn)需要注意。
13.定向掃描。
在掃描時(shí)候可以傳入serviceUUID,這樣可以掃描到特定條件的設(shè)備,提高掃描的速度,排除干擾。
14.如何獲取mac地址。
而iOS出于蘋(píng)果的安全策略問(wèn)題,無(wú)法直接獲得mac地址,只能得到一個(gè)mac地址換算出來(lái)的identifier。
網(wǎng)站欄目:ios安全開(kāi)發(fā)指南,ios安全設(shè)置
標(biāo)題來(lái)源:http://www.rwnh.cn/article36/dsdjssg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站、定制網(wǎng)站、企業(yè)建站、搜索引擎優(yōu)化、網(wǎng)站制作、手機(jī)網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)