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