張人上,邱久睿
(1.山西財經(jīng)大學(xué)信息學(xué)院,太原 030006;2.山西財經(jīng)大學(xué)經(jīng)貿(mào)外語學(xué)院,太原 030006)
在當(dāng)前網(wǎng)絡(luò)經(jīng)濟共享環(huán)境下,移動智能終端在傳統(tǒng)互聯(lián)網(wǎng)體系中的作用逐漸明顯,移動智能操作在互聯(lián)網(wǎng)應(yīng)用體系中已經(jīng)成為互聯(lián)網(wǎng)業(yè)務(wù)的重要運行平臺,電子商務(wù)、信息服務(wù)平臺、流媒體業(yè)務(wù),以及相關(guān)媒體資源都需要通過移動互聯(lián)網(wǎng)的參與實現(xiàn)數(shù)據(jù)信息的交流[1]。當(dāng)前移動終端的運行環(huán)境由于惡意軟件泛濫、操作系統(tǒng)碎片化,對用戶的個人隱私及信息安全性造成了嚴(yán)重的威脅,也讓企業(yè)中信息安全管理人員在對用戶數(shù)據(jù)管理時面臨著安全風(fēng)險。移動終端的數(shù)據(jù)泄露主要分為使用過程中的泄密、存儲狀態(tài)下的泄密以及傳輸過程中的泄密。雖然傳統(tǒng)的電腦終端數(shù)據(jù)防泄露技術(shù)可以很好地解決企業(yè)數(shù)據(jù)的泄露問題,但基于移動終端的電腦端與辦公模式的差距較大,在數(shù)據(jù)防泄露方面,移動終端數(shù)據(jù)防泄露技術(shù)并不完善。對此,本文將多層結(jié)構(gòu)應(yīng)用于系統(tǒng)軟件設(shè)計中,提出一種移動終端數(shù)據(jù)防泄露系統(tǒng)。
采用軟件系統(tǒng)設(shè)計思路中的多層結(jié)構(gòu)對其進行設(shè)計,將系統(tǒng)整體劃分為用戶安全認(rèn)證層、邏輯層、應(yīng)用層以及系統(tǒng)層4 個不同層次結(jié)構(gòu)。圖1 為本文系統(tǒng)整體框架結(jié)構(gòu)示意圖。
圖1 本文系統(tǒng)整體框架結(jié)構(gòu)示意圖
用戶安全認(rèn)證層負(fù)責(zé)對移動終端用戶身份的合法性及安全性進行認(rèn)證,實現(xiàn)服務(wù)器與移動終端之間的雙向保護認(rèn)證;邏輯層用于完成在實際合法終端上,針對數(shù)據(jù)泄露問題對系統(tǒng)開發(fā)進行部署;應(yīng)用層用于邏輯層與系統(tǒng)層之間的無縫連接,為邏輯層提供服務(wù)接口,將邏輯層中的相關(guān)數(shù)據(jù)信息、安全指令等傳輸?shù)较到y(tǒng)層中,并負(fù)責(zé)對移動終端數(shù)據(jù)的安全檢測[2]。系統(tǒng)層為安全核心層,用于實現(xiàn)對移動終端數(shù)據(jù)的防泄露問題,該層中包括對移動終端數(shù)據(jù)的預(yù)解密透明加密、移動終端數(shù)據(jù)區(qū)域隔離和移動虛擬遠(yuǎn)程桌面構(gòu)建。下面將根據(jù)設(shè)計思路,詳細(xì)分析系統(tǒng)的移動終端數(shù)據(jù)安全檢測、數(shù)據(jù)預(yù)解密透明加密,以及移動虛擬遠(yuǎn)程桌面構(gòu)建等軟件結(jié)構(gòu)設(shè)計說明。
本文系統(tǒng)中的移動終端數(shù)據(jù)安全檢測具體流程為:1)對獲取的數(shù)據(jù)信息進行必要的預(yù)處理;2)對相應(yīng)的應(yīng)用程序特征值進行提?。?)判斷特征值是否符合匹配要求,若不符合,則重新對應(yīng)用程序特征值進行提??;若符合,則將其中的惡意代碼查殺。
應(yīng)用程序特征值的選取是整個安全檢測過程中最重要的環(huán)節(jié),在移動終端數(shù)據(jù)中查找一個可以有效代表改程序的唯一特征值[3]。由于移動終端中各個程序都具有簽名機制要求,因此,程序的簽名可以代表該程序的源代碼特征標(biāo)簽,并將其簽名信息作為本文系統(tǒng)用于標(biāo)記該程序是否為惡意程序的樣本信息。
預(yù)處理是對本文系統(tǒng)的初始化,以及程序版本及數(shù)據(jù)庫版本的實時更新檢測。首先在類SplashActivity 中實現(xiàn)對系統(tǒng)的初始化設(shè)置,利用相關(guān)函數(shù)實現(xiàn)對系統(tǒng)主界面的加載,通過new Intent建立全新的意圖用于打開主類MainActivity。對于程序版本及數(shù)據(jù)庫版本的實時更新檢測,可通過在類SplashActivity 中建立一個子線程實現(xiàn)。待檢測完畢后,若程序版本較低,則自動更新最新的版本,若版本為最新版本,則完成新版本的安裝工作[4-6]。
程序的數(shù)據(jù)安全檢測是通過實現(xiàn)移動終端上的惡意代碼實施掃描的過程,采用惡意代碼靜態(tài)檢測方法,從本文系統(tǒng)匯總安裝的程序中提取其特征值,并將其與系統(tǒng)數(shù)據(jù)庫中的惡意代碼存儲方式進行比對,得到最終的檢測結(jié)果。
在系統(tǒng)中對數(shù)據(jù)預(yù)解密透明加密的相關(guān)算法概念進行定義,將其劃分為3 個集合,分別為強密文集合、預(yù)解密臨時文件集合以及明文集合。強密文集合為A,A={A1,A2,A3,…,An},表示為包含n 個強密文的項集,稱為n 強密文集合。預(yù)解密臨時文件集合為B,B={B1,B2,B3,…,Bn},表示為包含n 個預(yù)解密臨時文件的項集,稱為nn 預(yù)解密臨時文件集。明文集為C,C={C1,C2,C3,…,Cn},表示為包含n個明文的項集,稱為n 明文集。
本文系統(tǒng)中的數(shù)據(jù)預(yù)解密透明加密,是基于Hook 技術(shù)對系統(tǒng)中的文件進行透明加解密操作,通過覆蓋原生程序,對程序進行擴展,并控制程序的進程,使得程序在啟動過程中會加載出相應(yīng)的jar格式包,完成對程序虛擬機的劫持[7-9]。在移動終端啟動過程中,將所有需要替換的類函數(shù)通過原生方法轉(zhuǎn)入到對應(yīng)的集合中,使移動終端在運行的狀態(tài)下,完成對所有類函數(shù)的劫持,并在原函數(shù)的基礎(chǔ)上執(zhí)行數(shù)據(jù)預(yù)解密透明加密處理。數(shù)據(jù)預(yù)解密透明加密具體算法步驟為:
第1 步:初始化移動終端程序框架,加載文件系統(tǒng)的Hook;
第2 步:系統(tǒng)自動對文件標(biāo)識符沿某一搜索路線搜索,并判斷n 是否屬于強密文集合A;
第3 步:系統(tǒng)再自動對預(yù)解密臨時文件集合B沿某一搜索路線搜索,并判斷n 是否屬于預(yù)解密臨時文件集合;
第4 步:系統(tǒng)預(yù)解密子集n 并實時更新預(yù)解密臨時文件集合B;
第5 步:進行第2 次解密預(yù)解密臨時文件子集,并對應(yīng)生成明文對象的賦值n,同步更新明文集合C;
第6 步:遍歷移動終端中的所有文件標(biāo)識符,并將明文子集進行2 次加密,使其成為強密文,再對強密文集合A 和預(yù)解密臨時文件集合B 更新,不斷重復(fù)上述操作,完成對數(shù)據(jù)預(yù)解密透明加密處理。
本文系統(tǒng)與移動終端是通過遠(yuǎn)程桌面協(xié)議構(gòu)建的移動虛擬遠(yuǎn)程桌面連接的,圖2 為本文系統(tǒng)移動虛擬遠(yuǎn)程桌面結(jié)構(gòu)示意圖。
圖2 本文系統(tǒng)移動虛擬遠(yuǎn)程桌面結(jié)構(gòu)示意圖
本文系統(tǒng)中的移動虛擬遠(yuǎn)程桌面設(shè)計通過遠(yuǎn)程桌面協(xié)議實現(xiàn)連接,首先鼠標(biāo)事件、鍵盤事件以及位圖更新,都是通過創(chuàng)建的各個虛擬通信信道將數(shù)據(jù)傳輸和更新。當(dāng)初始連接完成后,在對具體數(shù)據(jù)傳輸前,首先需要各自建立準(zhǔn)確且穩(wěn)定的通信連接[10]。首先,由系統(tǒng)用戶在客戶端發(fā)出一個建立數(shù)據(jù)通信交換的指令,并將指令發(fā)送到移動終端由服務(wù)器連接綁定請求,當(dāng)服務(wù)器確認(rèn)正確連接后,用戶可通過系統(tǒng)綁定請求并完成對數(shù)據(jù)信息的存儲,在這一過程中還包含實施需要申請的虛擬通道,待完成所有操作后,對終端申請?zhí)摂M通道進行合法移動。當(dāng)申請指令通過系統(tǒng)驗證后,系統(tǒng)初始化并完成初始狀態(tài)連接,對數(shù)據(jù)進行通信交換。
系統(tǒng)硬件設(shè)計與傳統(tǒng)的系統(tǒng)設(shè)計相似,硬件環(huán)境選擇2C/4G MEM 的服務(wù)器,選用Windows Server+SQL Server 數(shù)據(jù)庫作為服務(wù)器,以Intel X86 為運行平臺,并設(shè)置Windows 8.1 xp 為操作平臺,以Java語言在Eclipse 環(huán)境下進行開發(fā),數(shù)據(jù)防泄漏系統(tǒng)中4 個結(jié)構(gòu)層,用戶安全認(rèn)證層GDB V7.8、GCC4.8.1、Idconfig,邏輯層Linux Kernel4.4.0-96,應(yīng)用層HT Editor 2.1.0、IDA Pro 6.6.140625、Snowman Decompiler,系統(tǒng)層Net Driver4965AGN。系統(tǒng)硬件以強大的數(shù)據(jù)庫以及緊密的系統(tǒng)結(jié)構(gòu),實現(xiàn)數(shù)據(jù)防泄漏系統(tǒng)的有效運行,增加系統(tǒng)的實時性、穩(wěn)定性和可維護性。
為了進一步驗證本文提出的移動終端數(shù)據(jù)防泄露系統(tǒng)的有效性,將本文系統(tǒng)與傳統(tǒng)系統(tǒng)共同部署在Android v6.0 的移動終端設(shè)備上,并搭建仿真對比實驗環(huán)境,其中操作系統(tǒng)選用Debian Linux 8,Linux 內(nèi)核為4.3.0.5-6-AMD32,Apache 版本為Apache 3.3.35。分別利用本文系統(tǒng)和傳統(tǒng)系統(tǒng)對移動終端的數(shù)據(jù)進行加密處理,并設(shè)置本文系統(tǒng)為實驗組,傳統(tǒng)系統(tǒng)為對照組,比較實驗組與對照組之間對移動終端數(shù)據(jù)加解密時間與數(shù)據(jù)容量之間的關(guān)系。
根據(jù)上述實驗準(zhǔn)備,完成仿真對比實驗,并將實驗過程中產(chǎn)生的相關(guān)數(shù)據(jù)進行記錄,重點記錄實驗組與對照組的運行時間以及數(shù)據(jù)容量的變化情況,將實驗結(jié)果繪制成如圖3 所示的實驗結(jié)果對比圖。
圖3 實驗結(jié)果對比圖
通過圖3 中的實驗結(jié)果可以看出,在對移動終端不同數(shù)據(jù)容量的文件進行加解密時,實驗組加解密時間明顯比對照組加解密時間短。通過實驗得出,造成該實驗結(jié)果的原因可能在于實驗組的系統(tǒng)采用的是兩次加密的預(yù)解密透明加密方法,避免了高性能的損耗,簡化解密操作,當(dāng)在用戶合法移動終端上打開加密文件時,只需要進行兩次簡單的解密操作即可。因此,通過對比實驗證明,本文提出的移動終端數(shù)據(jù)防泄露系統(tǒng),可以有效縮短系統(tǒng)對移動終端數(shù)據(jù)的加解密時間,并在一定程度上解決加解密過程中引發(fā)的性能耗損問題,使整個系統(tǒng)的運行更加穩(wěn)定。
為解決移動終端數(shù)據(jù)泄露問題,提出基于多層結(jié)構(gòu)的移動終端數(shù)據(jù)防泄露系統(tǒng)設(shè)計。將設(shè)計的重點落在系統(tǒng)軟件設(shè)計部分,利用多層結(jié)構(gòu),突出系統(tǒng)層的數(shù)據(jù)檢測、數(shù)據(jù)加密等部分,利用Hook 技術(shù)解決數(shù)據(jù)透明加解密問題,最后通過實驗證明了本文系統(tǒng)具備完善的數(shù)據(jù)防泄露能力,與傳統(tǒng)系統(tǒng)相比,其各項性能都得到了明顯的提高。在后續(xù)的研究中,還將對減輕遠(yuǎn)程桌面協(xié)議通信負(fù)擔(dān)問題進行更加深入的研究,進一步提高系統(tǒng)運行的穩(wěn)定性。