高強(qiáng)
摘要:隨著智能手機(jī)的應(yīng)用程序開發(fā)越來越普及,對(duì)應(yīng)用程序的安全也提出了新的要求,iOS作為智能設(shè)備的一種常見的操作系統(tǒng),應(yīng)用程序的開發(fā)過程中也面臨著數(shù)據(jù)加密的問題,通過對(duì)iOS開發(fā)中常見的問題進(jìn)行分析,并對(duì)iOS應(yīng)用開發(fā)中數(shù)據(jù)安全的影響因素進(jìn)行分析,探討了iOS系統(tǒng)開發(fā)中常用的數(shù)據(jù)加密技術(shù)。
關(guān)鍵詞:iOS;應(yīng)用程序;加密技術(shù)
中圖分類號(hào):TP393? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2021)10-0051-03
iOS智能手機(jī)的應(yīng)用為用戶提供了全新的體驗(yàn),在為用戶提供便利的同時(shí),手機(jī)的信息安全問題也成為人們關(guān)注的熱點(diǎn)問題,作為日常生活和工作的重要數(shù)據(jù)載體,數(shù)據(jù)安全的保護(hù)成為人們關(guān)注的重點(diǎn),iOS數(shù)據(jù)的安全問題日前顯得非常突出,在桌面操作系統(tǒng)的背景下,文件透明加密技術(shù)在Windows平臺(tái)環(huán)境中已經(jīng)得到了廣泛的應(yīng)用,在市場應(yīng)用下,也出現(xiàn)iOS手機(jī)加密技術(shù),但是這些加密技術(shù)要求用戶在使用這些常用的加密程序或者查看加密文件時(shí)都需要驗(yàn)證,不僅降低程序的加密效率,還在一定的程度上造成用戶的信息泄露,影響用戶對(duì)iOS手機(jī)的使用體驗(yàn)。
1 iOS系統(tǒng)常用應(yīng)用分析
在iPhone、iPad等移動(dòng)終端上,采用iOS系統(tǒng)作為設(shè)備運(yùn)行基礎(chǔ),iOS App常用的應(yīng)用開發(fā)一般采用Xcode,通過利用不同模擬器將不同的iOS版本集成在一起,這種開發(fā)應(yīng)用將iPhone、iPad等蘋果公司產(chǎn)品的應(yīng)用集成在一起,在具體的應(yīng)用上具有很強(qiáng)的靈活性與適用性,iOS系統(tǒng)在應(yīng)用中具有如下的優(yōu)勢:
1.1 IOS系統(tǒng)有獨(dú)特的任務(wù)管理機(jī)制
iOS系統(tǒng)的常見應(yīng)用只在運(yùn)行時(shí)占用系統(tǒng)內(nèi)存,當(dāng)應(yīng)用程序不在前臺(tái)運(yùn)行時(shí),就不會(huì)占用系統(tǒng)的內(nèi)存,一般情況下,除了部分應(yīng)用服務(wù),需要必須執(zhí)行外,App的其他應(yīng)用都會(huì)在10分鐘內(nèi)被掛起,當(dāng)然被掛起的程序在正常情況是不會(huì)被執(zhí)行的,只是運(yùn)行的數(shù)據(jù)駐留在系統(tǒng)的內(nèi)存中,這種任務(wù)管理機(jī)制保證了用戶在收到相關(guān)信息時(shí),能夠及時(shí)推送給用戶,方便用戶查看。
1.2 內(nèi)存管理機(jī)制
iOS在執(zhí)行任何一個(gè)具體應(yīng)用時(shí),系統(tǒng)會(huì)根據(jù)執(zhí)行程序的大小申請(qǐng)內(nèi)存空間,以調(diào)用相關(guān)的程序,來執(zhí)行應(yīng)用操作。如果應(yīng)用在使用的過程中,出現(xiàn)內(nèi)存不足不夠用時(shí),就會(huì)不斷地申請(qǐng)應(yīng)用內(nèi)存,以滿足應(yīng)用的要求,如果應(yīng)用超過了系統(tǒng)限定的內(nèi)存區(qū)間,這樣手機(jī)就會(huì)警報(bào),系統(tǒng)就不會(huì)執(zhí)行命令,出現(xiàn)死機(jī)的現(xiàn)象。同樣,如果iOS應(yīng)用程序向系統(tǒng)申請(qǐng)內(nèi)存時(shí),系統(tǒng)就會(huì)根據(jù)程序運(yùn)行的情況,自動(dòng)結(jié)束一些運(yùn)行的程序,釋放內(nèi)存空間資源,以滿足系統(tǒng)應(yīng)用程序的需求。
1.3 偽多任務(wù)機(jī)制
在iOS應(yīng)用程序中,在一些程序沒有運(yùn)行時(shí),在用戶收到信息時(shí),還需要推送給用戶,方便用戶及時(shí)查看信息。例如,微信,退出后不在后臺(tái)運(yùn)行,往往會(huì)收到一些信息,這都是系統(tǒng)的自動(dòng)推送服務(wù)功能。在iOS常見的應(yīng)用中,不管用戶是否運(yùn)行應(yīng)用程序,iOS系統(tǒng)會(huì)根據(jù)應(yīng)用程序的實(shí)際情況,在后臺(tái)維護(hù)中提供多種維度任務(wù),所有應(yīng)用程序共用這一服務(wù),及時(shí)將信息推送給用戶。
2 影響iOS系統(tǒng)的安全因素
2.1 移動(dòng)網(wǎng)絡(luò)安全問題
移動(dòng)通信網(wǎng)絡(luò)的安全是保證移動(dòng)通信有效運(yùn)行的前提條件,也是保證用戶信息不被泄露的前提,同時(shí)也能有效保證移動(dòng)設(shè)備不受侵害、損壞。移動(dòng)通信網(wǎng)絡(luò)的安全是保證iOS應(yīng)用開發(fā)程序安全有效使用的前提,不僅能提高iOS程序使用的效率,還能提高用戶獲取的效率與體驗(yàn)。iOS應(yīng)用程序的使用過程中,主要影響因素是信息安全,由于病毒數(shù)據(jù)很容易通過網(wǎng)絡(luò)協(xié)議的漏洞入侵到用戶的移動(dòng)通信設(shè)備中,在破壞系統(tǒng)數(shù)據(jù)的同時(shí),還會(huì)通過一步步的破解iOS用戶的加密口令與密碼,來獲取用戶的通信信息,導(dǎo)致iOS的應(yīng)用程序不能正常的使用。
2.2 手機(jī)操作系統(tǒng)存在的問題
iOS操作系統(tǒng)也是一個(gè)不斷完善的過程,在日常使用的過程中,往往需要更新補(bǔ)丁,才能提高操作系統(tǒng)的安全性。如果iOS操作系統(tǒng)在受到病毒攻擊時(shí),應(yīng)用程序就會(huì)受到影響,造成系統(tǒng)的一些功能不能正常使用,并導(dǎo)致手機(jī)運(yùn)行速度變慢,病毒占用移動(dòng)通信設(shè)備的內(nèi)存,導(dǎo)致用戶不能正常的使用iOS的應(yīng)用程序,而且病毒的入侵往往會(huì)導(dǎo)致用戶的賬號(hào)、密碼、信息等資源,給用戶造成損失,同時(shí)病毒還會(huì)對(duì)iOS的應(yīng)用程序造成破壞,盜取用戶保存在iOS應(yīng)用程序的信息,造成用戶對(duì)iOS應(yīng)用程序的安全性產(chǎn)生懷疑。而造成移動(dòng)設(shè)備操作系統(tǒng)安全的問題,一般情況下都是用戶在手機(jī)上安裝了一些病毒軟件,缺乏手機(jī)病毒防范意識(shí),導(dǎo)致操作系統(tǒng)不能正常使用,同時(shí)也會(huì)影響著iOS應(yīng)用程序的使用。
2.3 數(shù)據(jù)使用的影響因素
iOS設(shè)備中的數(shù)據(jù)都存儲(chǔ)在系統(tǒng)的存儲(chǔ)器中,在iOS應(yīng)用程序開發(fā)的過程中,為了保證應(yīng)用程序使用的流暢性,都會(huì)將程序保存在本地,也方便用戶的日常使用及尋找,數(shù)據(jù)在應(yīng)用的過程中,往往會(huì)產(chǎn)生一些臨時(shí)數(shù)據(jù),也會(huì)保存在系統(tǒng)的內(nèi)存中,iOS系統(tǒng)數(shù)據(jù)的保存具有多種方式與管理方式,在數(shù)據(jù)調(diào)用的過程中需要對(duì)其進(jìn)行解壓,這種數(shù)據(jù)管理方式也會(huì)給病毒帶來了可乘之機(jī),會(huì)破壞應(yīng)用程序的使用,進(jìn)而導(dǎo)致應(yīng)用程序中的用戶信息被泄露,影響用戶對(duì)iOS應(yīng)用程序的使用。
3 iOS開發(fā)過程中常用的加密技術(shù)分析
針對(duì)iOS應(yīng)用程序開發(fā)的過程中,往往需要一些數(shù)據(jù)加密技術(shù),才能保證用戶的安全,通過采用的一定的安全組合策略,可以提高iOS應(yīng)用程序的安全性,也能提高用戶對(duì)iOS移動(dòng)終端的體驗(yàn)。
3.1 透明加密技術(shù)
透明加密在iOS應(yīng)用程序開發(fā)中常用的加密技術(shù),是一種被動(dòng)的強(qiáng)制加密技術(shù),它的加密與解密過程是不改變用戶操作習(xí)慣的環(huán)境下完成的,這個(gè)過程是在用戶不知道的情況下完成的。當(dāng)用戶在打開或者編輯指定文件時(shí),iOS系統(tǒng)會(huì)自動(dòng)的結(jié)合實(shí)際情況對(duì)文件進(jìn)行加密與解密處理,并對(duì)已經(jīng)加密的文件進(jìn)行自動(dòng)解密,如果離開iOS系統(tǒng)環(huán)境,已經(jīng)加密的文件就不能自動(dòng)解密,進(jìn)而能夠起到對(duì)應(yīng)用程序的保護(hù)作用。透明加密技術(shù)根據(jù)加密位置不同,有以下兩種加密方法。
3.1.1 鉤子透明加密技術(shù)
鉤子透明加密技術(shù)主要工作在應(yīng)用層,采用的是用戶位置動(dòng)態(tài)加密方法,在系統(tǒng)的應(yīng)用層完成數(shù)據(jù)的讀取,鉤子透明加密技術(shù)的原理如圖1所示。當(dāng)用戶打開文件時(shí),iOS系統(tǒng)需要對(duì)加密的文件進(jìn)行解密,利用內(nèi)存的數(shù)據(jù)寫入,保證應(yīng)用程序調(diào)用的數(shù)據(jù)是明文,從而方便用戶獲取相應(yīng)的信息;在保存文件時(shí),iOS系統(tǒng)需要先將內(nèi)存中的明文數(shù)據(jù)進(jìn)行加密,完成數(shù)據(jù)的調(diào)用,例如,將NSData類型對(duì)象data寫入文件,主要是運(yùn)用data writeToFile:FileName atomically:YES命令來完成文件的存儲(chǔ),加密模塊一般采用對(duì)稱加密AES算法,采用的密鑰長度可以是128位、192位或者256,對(duì)文件數(shù)據(jù)進(jìn)行保護(hù)。在iOS系統(tǒng)中,可以利用 HOOKER API對(duì)用戶打開和關(guān)閉文件,并完成相應(yīng)的數(shù)據(jù)安全處理,從而實(shí)現(xiàn)對(duì)文件的加密技術(shù)。目前,iOS系統(tǒng)平臺(tái)下常用的透明數(shù)據(jù)加密技術(shù)主要采用的工具有 Xposed、HOOK 框架等,運(yùn)用透明加密技術(shù)主要是文件的打開與關(guān)閉功能進(jìn)行靜態(tài)的加密與備份,并對(duì)文件中存在的危險(xiǎn)數(shù)據(jù)進(jìn)行攔截,透明加密技術(shù)可以在不修改手機(jī)APK的情況下,實(shí)施HOOK 服務(wù),可以實(shí)現(xiàn)對(duì)整個(gè)文件進(jìn)行加密,但是,這種加密技術(shù)的速度較慢,實(shí)施的技術(shù)比較簡單。
3.1.2 文件過濾驅(qū)動(dòng)透明加密技術(shù)
該技術(shù)主要是通過內(nèi)核態(tài)層實(shí)現(xiàn)的,過濾驅(qū)動(dòng)加密技術(shù)主要是采用Windows 的文件系統(tǒng)過濾驅(qū)動(dòng)(IFS)技術(shù),對(duì)iOS系統(tǒng)的應(yīng)用程序在讀取相應(yīng)的文件進(jìn)行檢測與攔截,將加密過程與解密過程工作在iOS的內(nèi)核層內(nèi)完成。文件過濾驅(qū)動(dòng)透明加密技術(shù)在不影響上層和下層接口的情況下,在iOS的驅(qū)動(dòng)層完成文件的解密過程,它能夠截獲所有的應(yīng)用程序的文件系統(tǒng)請(qǐng)求,結(jié)合應(yīng)用程序的運(yùn)行情況,從而不需要修改iOS系統(tǒng)的上層的軟件或下層的驅(qū)動(dòng)程序,使得應(yīng)用程序能夠快速的讀取或者寫入數(shù)據(jù),可以快速地加入應(yīng)用程序的新功能,例如在利用NSData、NSString、NSNumber、NSDate、NSArray、NSDictionary命令寫入數(shù)據(jù)時(shí),都可以采用文件過濾驅(qū)動(dòng)透明加密技術(shù),可以快速的完成數(shù)據(jù)寫入。文件過濾驅(qū)動(dòng)透明加密技術(shù)原理如圖2所示。它的特點(diǎn)是加密效率高、安全性強(qiáng),對(duì)文件數(shù)據(jù)的加密與解密過程比較快,從應(yīng)用程序的關(guān)聯(lián)度來說,該技術(shù)能夠?qū)⑺羞\(yùn)行的應(yīng)用程序進(jìn)行歸類,形成應(yīng)用程序列表,采用文件過濾驅(qū)動(dòng)透明加密技術(shù)與應(yīng)用程序的工作方式無關(guān),只需要采用監(jiān)控應(yīng)用程序列表,實(shí)時(shí)對(duì)iOS系統(tǒng)的應(yīng)用程序運(yùn)行狀態(tài)進(jìn)行監(jiān)控。但是,它的技術(shù)門檻較高,安全性比較強(qiáng),需要深入理解Windows與iOS系統(tǒng)內(nèi)核,且開發(fā)難度大,對(duì)硬件的配置要求也比較高。在數(shù)據(jù)處理時(shí),首先,讀取iOS應(yīng)用程序終端的mac地址,并進(jìn)行相應(yīng)的操作與變換,然后采用AES算法對(duì)文件進(jìn)行加密,生成相應(yīng)密鑰,進(jìn)而完成數(shù)據(jù)的加密。其中,iOS終端在獲取設(shè)備的mac地址時(shí),需要運(yùn)用/sys/class/net/wlan0 下的 address的命令調(diào)取設(shè)備的mac地址,進(jìn)而能有效地保證系統(tǒng)的安全。
3.2 DES 數(shù)據(jù)加密算法
DES算法是一種最通用的對(duì)稱密鑰算法,具有破譯比較困難的特點(diǎn),安全性比較高,在iOS系統(tǒng)中作為保護(hù)應(yīng)用程序數(shù)據(jù)安全的一種重要措施,DES算法主要是通過置換與迭代的方式實(shí)現(xiàn)對(duì)數(shù)據(jù)的加密保護(hù),DES算法由64位密鑰產(chǎn)生16輪的48位子秘鑰,通過每一輪的迭代,數(shù)據(jù)經(jīng)過循環(huán)移動(dòng),產(chǎn)生下一輪的置換數(shù)據(jù),通過置換與迭代實(shí)現(xiàn)對(duì)數(shù)據(jù)的加密,生成不同的子密鑰。在iOS系統(tǒng)平臺(tái)的應(yīng)用程序開發(fā)中,DES算法實(shí)現(xiàn)如下的數(shù)據(jù)保護(hù)應(yīng)用。
3.2.1 DES算法的改進(jìn)
在iOS系統(tǒng)平臺(tái)中,為了進(jìn)一步提高DES加密算法能夠滿足iOS平臺(tái)與服務(wù)器的數(shù)據(jù)加密,需要對(duì)設(shè)計(jì)一個(gè)初始化向量,對(duì)DES算法進(jìn)行改進(jìn),以滿足DES算法的需要。設(shè)計(jì)的初始化向量為8個(gè)字節(jié)長度的數(shù)組,使得服務(wù)器端與iOS客戶端應(yīng)用程序開發(fā)的字節(jié)數(shù)保持一致,這樣就能夠消除DES數(shù)據(jù)加密在不同使用環(huán)境中的影響,也提高iOS系統(tǒng)平臺(tái)數(shù)據(jù)加密的有效性,這種初始化向量具有264種數(shù)據(jù)組合的方式,采用這種復(fù)雜的數(shù)據(jù)組合方式,能夠保證DES數(shù)據(jù)加密算法在iOS平臺(tái)上的安全性,達(dá)到應(yīng)用程序開發(fā)數(shù)據(jù)保護(hù)的目的,在iOS平臺(tái)上運(yùn)用DES加密算法主要包括:加密算法的構(gòu)建、數(shù)據(jù)加密與解密的工作模式、加密對(duì)象(數(shù)據(jù))的填充模式,加密對(duì)象cipher是DES加密算法的核心。
3.2.2 構(gòu)造加密的實(shí)例化,對(duì)加密對(duì)象設(shè)置加密的參數(shù)
在iOS平臺(tái)上應(yīng)用DES 數(shù)據(jù)加密算法時(shí),首先需要構(gòu)造 cipher 的具體操作,實(shí)現(xiàn)加密對(duì)象(數(shù)據(jù))的填充,采用的具體命令如下:Cipher cipher = Cipher.getInstance (“DES/CBC/PKCS5Pad-ding”),其中,DES/CBC/PKCS5Pad-ding是cipher的核心內(nèi)容,它明確的定義了分組塊的大小是8位。而對(duì)cipher的初始化操作為Cipher.init (ENCRYPT_MODE/key/iv),完成算法的加密模式、密鑰的生成、向量初始化等幾個(gè)內(nèi)容,然后借助Base64算法完成DES算法的加密與解密。
3.2.3 隨機(jī)產(chǎn)生密鑰
在數(shù)據(jù)迭代與置換的過程中,需要隨機(jī)產(chǎn)生密鑰,在服務(wù)器端與iOS客戶端通信過程中,對(duì)應(yīng)用程序數(shù)據(jù)的加密,采用DES算法不需要使用固定的密鑰,通過采用改進(jìn)后的DES算法,可以快速實(shí)現(xiàn)每一次的數(shù)據(jù)傳輸,并采用相同長度的密鑰,加大數(shù)據(jù)迭代算法的處理時(shí)間,雖然占用一定的計(jì)算資源,但是使得DES數(shù)據(jù)加密算法的安全性得到了進(jìn)一步提升,也能夠進(jìn)一步保障iOS應(yīng)用程序使用的安全性。
3.3 逐層控制策略
為了提高iOS平臺(tái)上應(yīng)用程序數(shù)據(jù)的安全性,iOS系統(tǒng)在多處采用逐層加密技術(shù),將硬件保密策略與軟件策略結(jié)合在一起,以增加文件的安全性。在系統(tǒng)調(diào)用相應(yīng)的應(yīng)用程序時(shí),采用逐層加密的方法對(duì)數(shù)據(jù)進(jìn)行保護(hù),有效地防止了病毒對(duì)系統(tǒng)應(yīng)用程序的入侵,逐層控制策略的原理如圖3所示。在系統(tǒng)調(diào)用文件時(shí),數(shù)據(jù)保護(hù)(data protection)為應(yīng)用程序生成的文件提供256位的密鑰,以完成系統(tǒng)數(shù)據(jù)的加密工作,該密鑰稱為Per-File密鑰,然后通過密碼引擎進(jìn)行迭代與置換,實(shí)現(xiàn)AES-XTS模式下的第一層加密;第二,是根據(jù)選擇的加密數(shù)據(jù),對(duì)加密的數(shù)據(jù)進(jìn)行封裝,形成(wrap)Per-File密鑰技術(shù),并對(duì)調(diào)用數(shù)據(jù)的元數(shù)據(jù)(file meta-data)進(jìn)行加密處理,實(shí)現(xiàn)iOS系統(tǒng)數(shù)據(jù)的第二層加密;第三,采用文件系統(tǒng)密鑰(file sys-temkey)技術(shù)對(duì)調(diào)用的元數(shù)據(jù)進(jìn)行加密處理,實(shí)現(xiàn)系統(tǒng)數(shù)據(jù)的第三層加密,從而實(shí)現(xiàn)iOS系統(tǒng)數(shù)據(jù)的整體加密。在打開iOS應(yīng)用程序文件時(shí),對(duì)文件的解密過程,主要是執(zhí)行上述操作的逆過程。
硬件加密采用密鑰鏈(keychain)技術(shù)也是一種常用的數(shù)據(jù)加密技術(shù),它的功能與逐層加密技術(shù)相似。主要是采用密鑰包(keybag)技術(shù)對(duì)iOS平臺(tái)中的數(shù)據(jù)進(jìn)行加密處理,并生成相應(yīng)的保護(hù)類密鑰,在具體的數(shù)據(jù)加密過程中,主要包括:用戶(us-erkeybag)的數(shù)據(jù)、設(shè)備(device keybag)數(shù)據(jù)、備份(backupkeybag)數(shù)據(jù)、第三方托管(escrow keybag)數(shù)據(jù)、iCloud數(shù)據(jù)備份(icloud backup keybag)5個(gè)加密數(shù)據(jù)密鑰包,在iOS系統(tǒng)中,采用硬件加密技術(shù)主要包括類密鑰由硬件密鑰和口令密鑰加密,存儲(chǔ)在用戶密鑰包完成數(shù)據(jù)的第一層封裝與加密,利用密鑰來實(shí)現(xiàn)對(duì)數(shù)據(jù)進(jìn)行第二層加密,在數(shù)據(jù)寫入存儲(chǔ)文件系統(tǒng)時(shí),采用密鑰包完成數(shù)據(jù)的第三層加密。
4 結(jié)束語
通過分析可以看出,在iOS平臺(tái)上應(yīng)用程序的開發(fā)需要具備完善的數(shù)據(jù)安全保護(hù)技術(shù),能保證用戶的信息數(shù)據(jù)不會(huì)被泄露,通過對(duì)ISO系統(tǒng)的數(shù)據(jù)加密技術(shù)進(jìn)行分析,涉及分層加密安全策略、DES加密算法的應(yīng)用、數(shù)據(jù)透明加密技術(shù)進(jìn)行分析,結(jié)合影響iOS平臺(tái)應(yīng)用程序使用的安全問題,分析了iOS開發(fā)設(shè)計(jì)中常用的數(shù)據(jù)加密技術(shù),在具體的應(yīng)用中,需要結(jié)合具體的應(yīng)用程序需要,選擇合適的數(shù)據(jù)加密技術(shù)。
參考文獻(xiàn):
[1] 李林濤,朱珊虹.基于Android系統(tǒng)的手機(jī)游戲黑白棋的設(shè)計(jì)與實(shí)現(xiàn)[J].新鄉(xiāng)學(xué)院學(xué)報(bào)(自然科學(xué)版),2011,28(3):254-255.
[2] 宋杰,黨李成,郭振朝,等.Android OS手機(jī)平臺(tái)的安全機(jī)制分析和應(yīng)用研究[J].計(jì)算機(jī)技術(shù)與發(fā)展,2010,20(6):152-155.
[3] 朱天楠,施勇,薛質(zhì).基于Xposed的Android透明文件加密系統(tǒng)的研究[J].計(jì)算機(jī)技術(shù)與發(fā)展,2017,27(2):64-68.
[4] 趙銘偉,毛銳,江榮安.基于過濾驅(qū)動(dòng)的透明加密文件系統(tǒng)模型[J].計(jì)算機(jī)工程,2009,35(1):150-152.
【通聯(lián)編輯:唐一東】