傅鏡藝,馬兆豐,黃勤龍,楊義先
(1.北京郵電大學(xué)信息安全中心,北京100876;2.北京國(guó)泰信安科技有限公司,北京100876)
基于Android的移動(dòng)終端安全管理系統(tǒng)
傅鏡藝1,2,馬兆豐1,2,黃勤龍1,2,楊義先1
(1.北京郵電大學(xué)信息安全中心,北京100876;2.北京國(guó)泰信安科技有限公司,北京100876)
針對(duì)Android移動(dòng)終端設(shè)備安全和敏感數(shù)據(jù)泄露的問(wèn)題,設(shè)計(jì)并實(shí)現(xiàn)基于Android的移動(dòng)終端安全管理系統(tǒng),允許用戶(hù)遠(yuǎn)程對(duì)移動(dòng)終端設(shè)備和其存儲(chǔ)的數(shù)據(jù)進(jìn)行安全管理。該系統(tǒng)采用C/S架構(gòu),客戶(hù)端允許用戶(hù)將移動(dòng)終端注冊(cè)到服務(wù)端,并通過(guò)在移動(dòng)終端嵌入可信平臺(tái)模塊實(shí)現(xiàn)基于口令、設(shè)備和SIM卡三因素的本地用戶(hù)身份識(shí)別。服務(wù)端允許用戶(hù)通過(guò)Web平臺(tái)對(duì)已注冊(cè)的移動(dòng)終端進(jìn)行定位、鎖定、數(shù)據(jù)加解密、數(shù)據(jù)擦除等遠(yuǎn)程安全管理。為防止用戶(hù)的遠(yuǎn)程操作指令受到假冒攻擊,以橢圓曲線(xiàn)加密和零知識(shí)證明為基礎(chǔ),實(shí)現(xiàn)移動(dòng)終端對(duì)服務(wù)端的遠(yuǎn)程身份認(rèn)證。實(shí)驗(yàn)結(jié)果表明,該系統(tǒng)能保障移動(dòng)終端設(shè)備通信安全,防止假冒攻擊。
移動(dòng)終端;安全管理;可信平臺(tái)模塊;零知識(shí)證明;橢圓曲線(xiàn);身份認(rèn)證
隨著移動(dòng)終端向著智能化方向的邁進(jìn),其所支持的功能越來(lái)越多,由于移動(dòng)平臺(tái)具有的開(kāi)放性和靈活性,使手機(jī)等移動(dòng)終端有了更廣闊的用戶(hù)群。然而,伴隨著計(jì)算和存儲(chǔ)資源的不斷豐富,移動(dòng)終端中存儲(chǔ)信息的敏感程度不斷增加,對(duì)移動(dòng)終端的安全性也有了更高的要求[1]。對(duì)于個(gè)人用戶(hù),移動(dòng)終端上可能存儲(chǔ)了大量的個(gè)人隱私數(shù)據(jù),比如照片、家庭電話(huà)、支付密碼等;對(duì)于企業(yè)級(jí)用戶(hù),可能會(huì)存儲(chǔ)企業(yè)的商業(yè)數(shù)據(jù),例如企業(yè)銷(xiāo)售人員和顧問(wèn)所使用的移動(dòng)終端,往往涉及銷(xiāo)售經(jīng)營(yíng)數(shù)據(jù)和機(jī)密電子郵件等極為敏感的資料。如果移動(dòng)終端保管不當(dāng),短信、相冊(cè)、通訊錄和郵箱等隱私可能會(huì)被無(wú)意看到或有意竊取。更糟糕的是如果移動(dòng)終端丟失,不僅會(huì)造成隱私數(shù)據(jù)的泄漏,還可能導(dǎo)致企業(yè)關(guān)鍵數(shù)據(jù)丟失,造成極大的經(jīng)濟(jì)損失[2]。因此,如何能夠?qū)τ脩?hù)身份進(jìn)行很好的識(shí)別,準(zhǔn)確區(qū)分非法用戶(hù)和合法用戶(hù),防止用戶(hù)敏感信息的泄露,并追蹤找回丟失的移動(dòng)設(shè)備是移動(dòng)終端面臨的重要安全問(wèn)題。
目前針對(duì)移動(dòng)終端的安全措施比較薄弱,常見(jiàn)的是采用基于口令的用戶(hù)身份識(shí)別和對(duì)設(shè)備中的數(shù)據(jù)簡(jiǎn)單地進(jìn)行加密[3],口令認(rèn)證和數(shù)據(jù)加解密過(guò)程主要由軟件完成,雖然口令認(rèn)證實(shí)現(xiàn)了移動(dòng)設(shè)備對(duì)用戶(hù)身份的識(shí)別,卻沒(méi)有考慮移動(dòng)設(shè)備和SIM卡對(duì)彼此的身份識(shí)別,可能造成合法移動(dòng)設(shè)備中的個(gè)人信息傳遞給非法SIM卡,或者將SIM卡中的個(gè)人信息遞交給非法的移動(dòng)終端[4]。同時(shí),由于沒(méi)有考慮移動(dòng)設(shè)備各部件的安全可信性,如果終端的操作系統(tǒng)、軟件、硬件或固件己染有病毒或己被惡意篡改,用戶(hù)往往會(huì)在不知情的情況下輸入口令信息,造成敏感信息泄露[5]。另外,在現(xiàn)有的安全措施中,傳統(tǒng)口令和加密密鑰一同存儲(chǔ)于移動(dòng)終端的SQLite數(shù)據(jù)庫(kù)中,然而SQLite數(shù)據(jù)庫(kù)缺乏有效的安全機(jī)制,一旦惡意攻擊者獲得訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)的權(quán)限即可盜取口令與密鑰[6],安全性難以得到保證。因此,密鑰、口令等敏感數(shù)據(jù)應(yīng)當(dāng)存儲(chǔ)在非法用戶(hù)無(wú)法訪(fǎng)問(wèn),并難以獲取的安全載體上,而且應(yīng)提供措施保證系統(tǒng)參數(shù)、用戶(hù)數(shù)據(jù)的完整性和機(jī)密性[7]。
同時(shí),由于移動(dòng)設(shè)備可能丟失,人們希望在不泄露敏感信息的基礎(chǔ)上盡可能找回設(shè)備。針對(duì)這一需求,目前三星、小米等移動(dòng)終端廠(chǎng)商為用戶(hù)提供遠(yuǎn)程管理平臺(tái),允許用戶(hù)遠(yuǎn)程擦除設(shè)備數(shù)據(jù)、遠(yuǎn)程定位遺失的設(shè)備并在地圖上標(biāo)出設(shè)備的位置等幫助用戶(hù)找回設(shè)備,一定程度上保護(hù)了用戶(hù)的隱私安全。然而這種通信缺乏身份認(rèn)證機(jī)制,很容易被惡意攻擊者截獲并冒充遠(yuǎn)程管理平臺(tái)對(duì)移動(dòng)終端實(shí)行遠(yuǎn)程管理,勢(shì)必造成嚴(yán)重危害。
本文將可信平臺(tái)模塊嵌入移動(dòng)終端,通過(guò)可信計(jì)算的思想加固移動(dòng)終端,對(duì)用戶(hù)口令、設(shè)備、SIM卡進(jìn)行綁定,保證了較高的安全性,實(shí)現(xiàn)移動(dòng)終端對(duì)用戶(hù)身份基于三因素的識(shí)別。同時(shí),本文以橢圓曲線(xiàn)加密和零知識(shí)證明為基礎(chǔ),實(shí)現(xiàn)移動(dòng)終端對(duì)服務(wù)端的身份認(rèn)證。
2.1 可信平臺(tái)模塊
可信平臺(tái)模塊(Trusted Platform Module,TPM)是一種可實(shí)現(xiàn)可信計(jì)算的安全模塊,它能夠?qū)崿F(xiàn)對(duì)數(shù)據(jù)的加解密及安全存儲(chǔ),以及對(duì)環(huán)境度量信息的簽名和報(bào)告,是數(shù)據(jù)存儲(chǔ)和信息報(bào)告信任的初始點(diǎn)[7]。TPM的實(shí)質(zhì)是一個(gè)物理可信的小型片上系統(tǒng)(System on Chip,SoC),提供了加解密運(yùn)算、安全存儲(chǔ)、密鑰管理、完整性管理、遠(yuǎn)程證明等安全功能[8],因此作為一個(gè)能夠抵制攻擊的硬件安全模塊,它既保證了內(nèi)部數(shù)據(jù)的安全行和可靠性,又完成了身份認(rèn)證和外部數(shù)據(jù)的加解密。
2.2 橢圓曲線(xiàn)加密
橢圓曲線(xiàn)密碼體制(Elliptic Curve Cryptography, ECC)是在各種涉及有限域乘法群的公鑰密碼體制中,用有限域上橢圓曲線(xiàn)構(gòu)成的群來(lái)類(lèi)比有限域上的乘法群,從而獲得類(lèi)似的公鑰密碼體制[9]。它的安全性是基于求解橢圓曲線(xiàn)離散對(duì)數(shù)問(wèn)題的困難性。ECC加密算法同RSA算法相比,抗攻擊性更強(qiáng),公私鑰處理速度和密鑰生成速度更快,并且占用存儲(chǔ)空間更小。在相同安全強(qiáng)度的情況下ECC的密鑰長(zhǎng)度比RSA小很多[10]。因此ECC密碼體制更適合計(jì)算量、存儲(chǔ)量、處理速度有局限的移動(dòng)終端。另外,通常在橢圓曲線(xiàn)密碼體制中應(yīng)用的有限域是大素?cái)?shù)域F(p)和二進(jìn)制域F(2n),考慮到移動(dòng)終端的局限性,本文系統(tǒng)采用二進(jìn)制域。
2.3 零知識(shí)證明
零知識(shí)證明指的是證明者能夠在不提供任何有用的信息的情況下,使驗(yàn)證者能夠確定某論斷的正確性[11]。零知識(shí)證明實(shí)質(zhì)上是一種協(xié)議,即2個(gè)或2個(gè)以上的參與者為完成某項(xiàng)特定的任務(wù)而采取的一系列步驟[12]。例如證明者與驗(yàn)證者通過(guò)通信信道連續(xù)進(jìn)行信息問(wèn)答,在不泄露任何有關(guān)秘密信息的前提下,向驗(yàn)證者證明自己知道秘密,即使攻擊者竊聽(tīng)通信信道,他也只可能獲得某一次或多次的問(wèn)題或者答案[13]。由于認(rèn)證過(guò)程是隨機(jī)的,因此攻擊者就難以通過(guò)獲得的信息進(jìn)行欺騙。
移動(dòng)終端安全管理系統(tǒng)(Mobile Terminal Security Management System,MTSMS)采用C/S架構(gòu),借助通信運(yùn)營(yíng)商提供的GPRS數(shù)據(jù)連接業(yè)務(wù)或移動(dòng)WiFi網(wǎng)絡(luò),實(shí)現(xiàn)本地用戶(hù)身份識(shí)別和遠(yuǎn)程安全管理,解決移動(dòng)設(shè)備丟失后設(shè)備安全和敏感數(shù)據(jù)泄露的問(wèn)題。在該系統(tǒng)中,用戶(hù)使用客戶(hù)端注冊(cè)移動(dòng)終端后,便可以使用注冊(cè)的賬號(hào)登錄服務(wù)端Web平臺(tái)遠(yuǎn)程操作已注冊(cè)的移動(dòng)終端。當(dāng)服務(wù)端向移動(dòng)終端推送用戶(hù)的遠(yuǎn)程指令前,移動(dòng)終端需要對(duì)服務(wù)端進(jìn)行身份認(rèn)證,確保通信安全。當(dāng)身份認(rèn)證成功后,移動(dòng)終端執(zhí)行相應(yīng)的指令操作,并返回執(zhí)行結(jié)果給服務(wù)端。系統(tǒng)總體架構(gòu)如圖1所示。
圖1 移動(dòng)終端安全管理系統(tǒng)總體架構(gòu)
客戶(hù)端主要功能模塊包括注冊(cè)模塊、身份識(shí)別模塊、遠(yuǎn)程身份認(rèn)證模塊和安全業(yè)務(wù)模塊。其中,安全業(yè)務(wù)模塊實(shí)現(xiàn)了設(shè)備定位、設(shè)備鎖定、數(shù)據(jù)擦除、數(shù)據(jù)加解密等功能??蛻?hù)端的主要設(shè)計(jì)思想是通過(guò)在移動(dòng)終端上嵌入一個(gè)可信平臺(tái)模塊來(lái)保證現(xiàn)有終端的安全性,其主要手段是進(jìn)行身份識(shí)別、遠(yuǎn)程身份認(rèn)證以及使用加密算法對(duì)密鑰進(jìn)行存儲(chǔ)保護(hù)和使用完整性度量進(jìn)行完整性保護(hù)??尚牌脚_(tái)模塊在移動(dòng)終端啟動(dòng)和運(yùn)行過(guò)程中,對(duì)加載的軟件、硬件和固件等進(jìn)行有序的完整性度量[14],若遭到惡意篡改立即調(diào)用鎖定模塊鎖定移動(dòng)終端,若完整性度量正常,提示用戶(hù)輸入口令,在可信邊界內(nèi)完成基于口令、設(shè)備和SIM卡三因素的用戶(hù)身份識(shí)別。在用戶(hù)使用加解密模塊對(duì)敏感信息進(jìn)行加密時(shí),可信平臺(tái)模塊還能夠利用隨機(jī)數(shù)生成引擎生成隨機(jī)數(shù)用作對(duì)稱(chēng)密鑰種子,并采用物理保護(hù)的方式將最后生成的對(duì)稱(chēng)密鑰存儲(chǔ)于可信模塊內(nèi)部,這些受保護(hù)的數(shù)據(jù)必須通過(guò)相應(yīng)授權(quán)數(shù)據(jù)的驗(yàn)證才能被訪(fǎng)問(wèn),防止被惡意用戶(hù)竊取。
服務(wù)端基于J2EE架構(gòu),用戶(hù)登錄服務(wù)端Web平臺(tái),實(shí)現(xiàn)對(duì)已注冊(cè)移動(dòng)終端的遠(yuǎn)程操作,防止敏感信息泄露,并盡可能找回丟失的移動(dòng)設(shè)備。服務(wù)端Web平臺(tái)主要功能模塊包括遠(yuǎn)程身份認(rèn)證模塊、遠(yuǎn)程管理模塊、基礎(chǔ)通信模塊等。遠(yuǎn)程身份認(rèn)證模塊負(fù)責(zé)在推送用戶(hù)的遠(yuǎn)程操作指令前向移動(dòng)終端證明身份,防止假冒攻擊。遠(yuǎn)程管理模塊負(fù)責(zé)生成遠(yuǎn)程定位、遠(yuǎn)程鎖定、遠(yuǎn)程擦除、遠(yuǎn)程加解密等遠(yuǎn)程操作指令,然后通過(guò)基礎(chǔ)通信模塊將生成的遠(yuǎn)程操作指令推送到移動(dòng)終端。
4.1 客戶(hù)端設(shè)計(jì)與實(shí)現(xiàn)
客戶(hù)端采用MVC模式開(kāi)發(fā),將數(shù)據(jù)表現(xiàn)、業(yè)務(wù)邏輯和數(shù)據(jù)訪(fǎng)問(wèn)進(jìn)行分離,可降低系統(tǒng)各個(gè)功能模塊的耦合度??蛻?hù)端界面使用Fragment進(jìn)行設(shè)計(jì),能夠適應(yīng)各種不同的屏幕大小,同時(shí)ActivityManager類(lèi)對(duì)用戶(hù)界面提供了支持,能夠帶來(lái)更好的用戶(hù)體驗(yàn)??蛻?hù)端主要包括注冊(cè)模塊、身份識(shí)別模塊、遠(yuǎn)程身份認(rèn)證模塊和安全業(yè)務(wù)模塊。
4.1.1 注冊(cè)模塊
用戶(hù)注冊(cè)移動(dòng)終端時(shí)首先需要將移動(dòng)終端通過(guò)網(wǎng)絡(luò)連接服務(wù)器,然后用戶(hù)在客戶(hù)端注冊(cè)界面輸入賬號(hào)ID、密碼PW,當(dāng)用戶(hù)確認(rèn)輸入時(shí)注冊(cè)模塊通過(guò)調(diào)用TelephonyManager類(lèi)中的getSubscriberId()方法獲取當(dāng)前移動(dòng)終端SIM卡的IMSI,接著把賬號(hào)ID、密碼PW、IMSI發(fā)送給 TPM。TPM中的ECC引擎將產(chǎn)生公私鑰對(duì)(PKU,SKU),接著生成身份令牌Y=EPKU(ID,PW,IMSI),然后把PKU和身份令牌Y發(fā)送給SIM卡存儲(chǔ),并把注冊(cè)信息Z= (PKU,ID,PW)通過(guò)基礎(chǔ)通信模塊發(fā)送給服務(wù)端數(shù)據(jù)庫(kù)存儲(chǔ),TPM中則存儲(chǔ)私鑰SKU以及平臺(tái)各部件的完整性度量值。移動(dòng)終端的注冊(cè)過(guò)程如圖2所示。
圖2 移動(dòng)終端注冊(cè)過(guò)程
身份識(shí)別模塊以可信平臺(tái)模塊為基礎(chǔ),基于口令、設(shè)備和SIM卡三因素實(shí)現(xiàn)了對(duì)用戶(hù)的身份識(shí)別,具體工作流程如圖3所示,其中,H(x)和Sy(x)分別表示x的哈希值和y對(duì)x的簽名。
基于口令、設(shè)備和SIM卡的本地身份識(shí)別具體如下:
(1)TPM可信啟動(dòng)后,SIM卡通過(guò)Naptune基帶處理器將平臺(tái)驗(yàn)證請(qǐng)求Q1、隨機(jī)數(shù)r1、SIM卡標(biāo)識(shí)IMSI及哈希值H1發(fā)送給 TPM:H1=H(Q1,r1,IMSI)。
(2)TPM收到請(qǐng)求后,重構(gòu)H1驗(yàn)證數(shù)據(jù)的完整性,保存當(dāng)前r1和IMSI,然后啟動(dòng)完整性度量機(jī)制,對(duì)平臺(tái)內(nèi)的各部件進(jìn)行完整性度量,如果度量失敗向SIM卡發(fā)送度量結(jié)果D并返回Measure_Fail命令到鎖定模塊,鎖定模塊將鎖定移動(dòng)終端。如果各部件可信,TPM向SIM卡發(fā)送度量結(jié)果D、身份令牌請(qǐng)求Q2、隨機(jī)數(shù)r1及簽名S1:S1=SSKU(D,Q2,r1)。
(3)SIM卡用其存儲(chǔ)的TPM的公鑰PKU驗(yàn)證簽名S1,并驗(yàn)證r1與最初發(fā)送給TPM的隨機(jī)數(shù)是否一致,若驗(yàn)證通過(guò),SIM卡將其存儲(chǔ)的身份令牌Y返回給TPM。
(4)用戶(hù)通過(guò)系統(tǒng)界面輸入注冊(cè)的賬戶(hù)ID和密碼PW,TPM在可信邊界內(nèi)用PKU加密接收的ID,PW,IMSI并同身份令牌Y比對(duì),若一致,則表示身份驗(yàn)證通過(guò),用戶(hù)可以正常使用移動(dòng)終端。若不一致,則返回Verify_Fail命令到鎖定模塊,自動(dòng)鎖定移動(dòng)終端,防止非法訪(fǎng)問(wèn)導(dǎo)致的敏感信息泄露。
圖3 基于口令、設(shè)備和SIM卡的本地身份識(shí)別
4.1.3 遠(yuǎn)程身份認(rèn)證模塊
張小波,女,現(xiàn)年13歲,身高1.59米,齊耳短發(fā),圓臉,身穿藍(lán)白相間的校服,于兩年前的一天中午不知去向。有知其下落者或提供線(xiàn)索者,請(qǐng)與我聯(lián)系,我有重謝,酬金3.5萬(wàn)元。
遠(yuǎn)程身份認(rèn)證模塊負(fù)責(zé)在接收Web平臺(tái)推送的遠(yuǎn)程操作指令前對(duì)服務(wù)端進(jìn)行身份驗(yàn)證,防止用戶(hù)的遠(yuǎn)程操作指令被假冒。具體的工作流程如圖4所示,其中,r2,r3為二進(jìn)制域F(2n)中的隨機(jī)數(shù);P表示橢圓曲線(xiàn)的基點(diǎn);PKS和SKS分別表示服務(wù)端的公私鑰,并且滿(mǎn)足PKS=P·SKS。
(1)服務(wù)端向移動(dòng)終端推送遠(yuǎn)程操作指令前,先推送指令預(yù)備通知。當(dāng)客戶(hù)端基礎(chǔ)通信模塊接收到服務(wù)端的推送指令預(yù)備通知,則向服務(wù)端發(fā)出身份認(rèn)證請(qǐng)求Q3和身份簽名S2:S2=SSKU(Q3)。
(2)服務(wù)端用PKU驗(yàn)證移動(dòng)終端身份簽名S2,若身份驗(yàn)證通過(guò),則在二進(jìn)制域F(2n)中隨機(jī)選取r2,計(jì)算V并發(fā)送給移動(dòng)終端:V=P·r2。
(3)移動(dòng)終端在二進(jìn)制域F(2n)中隨機(jī)選取r3發(fā)送給服務(wù)端,服務(wù)端接收到r3后計(jì)算A并發(fā)送給移動(dòng)終端:A=r3·SKS+r2。
(4)移動(dòng)終端驗(yàn)證A·P是否等于r3·PKS+V,若相等,則接收服務(wù)端推送的遠(yuǎn)程操作指令并解析執(zhí)行,若不相等,則拒絕接收服務(wù)端推送的指令,最后向服務(wù)端返回身份驗(yàn)證結(jié)果。
圖4 遠(yuǎn)程身份認(rèn)證流程
4.1.4 輔助功能模塊
客戶(hù)端的安全業(yè)務(wù)模塊主要包括指令解析、設(shè)備定位、數(shù)據(jù)加解密、設(shè)備鎖定、數(shù)據(jù)擦除和基礎(chǔ)通信功能。另外,這些功能的實(shí)現(xiàn)都需在 Android Manifest.xml文件中加入相應(yīng)數(shù)據(jù)的讀寫(xiě)等權(quán)限聲明。
(1)指令解析功能的實(shí)現(xiàn)基于Android broadcast機(jī)制,該功能模塊繼承BroadcastReceiver類(lèi)并重寫(xiě)其中的onReceive()函數(shù),當(dāng)服務(wù)端推送的用戶(hù)遠(yuǎn)程指令到達(dá)客戶(hù)端后,對(duì)遠(yuǎn)程指令進(jìn)行解析。
(2)設(shè)備定位功能的實(shí)現(xiàn)是基于百度地圖提供的API[15],調(diào)用Location類(lèi)中g(shù)etLongitude()方法和getLatitude()方法可以分別獲取移動(dòng)終端當(dāng)前的經(jīng)緯度,然后通過(guò)基礎(chǔ)通信功能模塊把獲得的經(jīng)緯度發(fā)送給服務(wù)端進(jìn)行定位顯示。
(3)數(shù)據(jù)加解密功能負(fù)責(zé)對(duì)通訊錄、通話(huà)記錄、相冊(cè)等隱私數(shù)據(jù)進(jìn)行加解密。數(shù)據(jù)加密時(shí),數(shù)據(jù)加解密功能模塊把可信平臺(tái)模塊中隨機(jī)數(shù)生成引擎生成的隨機(jī)數(shù)用作對(duì)稱(chēng)密鑰種子,生成對(duì)稱(chēng)密鑰并存儲(chǔ)于可信模塊內(nèi)部,接著使用生成的對(duì)稱(chēng)密鑰加密數(shù)據(jù)。解密時(shí),讀取存儲(chǔ)于可信模塊內(nèi)部的對(duì)稱(chēng)密鑰解密數(shù)據(jù)。
(4)設(shè)備鎖定功能負(fù)責(zé)鎖定移動(dòng)終端直到用戶(hù)輸入的賬號(hào)和密碼通過(guò)身份識(shí)別。該功能模塊主要設(shè)計(jì)思路是重寫(xiě)Activity中的onBackPressed()方法和onAttachedToWindow()方法屏蔽返回鍵和Home鍵,全屏顯示自定義的鎖定界面,只有輸入正確的賬號(hào)和密碼才能訪(fǎng)問(wèn)移動(dòng)終端。
(5)數(shù)據(jù)擦除功能負(fù)責(zé)擦除通信錄、通話(huà)記錄、相冊(cè)等隱私數(shù)據(jù)。以擦除通信錄中聯(lián)系人為例,首先通過(guò)ContentResolver類(lèi)的Query()方法獲取聯(lián)系人信息,然后通過(guò)ContentResolver類(lèi)的Delete()方法執(zhí)行刪除。
(6)基礎(chǔ)通信功能的實(shí)現(xiàn)是基于Java的開(kāi)源XMPP協(xié)議包 asmack[16],利用 asmack中提供的XMPPConnection類(lèi)與服務(wù)端建立持久連接,通過(guò)這個(gè)連接接收服務(wù)端推送的通知。另外,該功能模塊通過(guò)HTTP協(xié)議,向服務(wù)端傳遞數(shù)據(jù)。
4.2 服務(wù)端設(shè)計(jì)與實(shí)現(xiàn)
服務(wù)端Web平臺(tái)的實(shí)現(xiàn)基于J2EE架構(gòu),采用MySQL作為后臺(tái)數(shù)據(jù)庫(kù)。系統(tǒng)主要包括遠(yuǎn)程功能模塊、遠(yuǎn)程身份認(rèn)證模塊以及基礎(chǔ)通信模塊三大模塊。
(1)遠(yuǎn)程功能模塊實(shí)現(xiàn)用戶(hù)對(duì)移動(dòng)終端的遠(yuǎn)程安全管理功能。用戶(hù)使用在客戶(hù)端注冊(cè)時(shí)使用的賬號(hào)ID、密碼PW登錄服務(wù)端Web平臺(tái),能夠通過(guò)該平臺(tái)向已注冊(cè)的移動(dòng)終端發(fā)送遠(yuǎn)程操作指令,包括遠(yuǎn)程鎖定、遠(yuǎn)程定位、遠(yuǎn)程數(shù)據(jù)擦除、遠(yuǎn)程數(shù)據(jù)加解密等。系統(tǒng)采用三級(jí)指令格式:第一級(jí)指令表示遠(yuǎn)程操作的類(lèi)型;第二級(jí)表示操作的對(duì)象;第三級(jí)表示操作的范圍。每級(jí)指令間用“|”間隔(即:一級(jí)|二級(jí)|三級(jí)),例如“DEL|CONTACT|ALL”表示擦除所有聯(lián)系人。各級(jí)指令含義如表1所示。
表1 各級(jí)指令含義
(2)遠(yuǎn)程身份認(rèn)證模塊負(fù)責(zé)實(shí)現(xiàn)身份認(rèn)證,由于遠(yuǎn)程操作需要服務(wù)端和移動(dòng)終端建立連接并推送遠(yuǎn)程操作指令,如果用戶(hù)的遠(yuǎn)程操作指令被假冒將造成嚴(yán)重的后果,因此每次服務(wù)端推送遠(yuǎn)程指令前需要向移動(dòng)終端證明身份。
(3)基礎(chǔ)通信模塊實(shí)時(shí)監(jiān)聽(tīng)服務(wù)端端口上的XMPP服務(wù),負(fù)責(zé)與客戶(hù)端的XMPPConnection類(lèi)進(jìn)行通信,發(fā)送推送通知。另外,負(fù)責(zé)接收移動(dòng)終端通過(guò)HTTP協(xié)議發(fā)送的數(shù)據(jù)。
客戶(hù)端和服務(wù)端均采用 Java語(yǔ)言并以MyEclipse10為開(kāi)發(fā)工具??蛻?hù)端采用Android 3.0版本的SDK,測(cè)試平臺(tái)為Android手機(jī),搭載主頻為1.5 GHz,高通MSM8260雙核處理器,Android 3.1操作系統(tǒng)??尚牌脚_(tái)模塊采用軟件與硬件相結(jié)合的方式,移動(dòng)終端通過(guò)USB OTG模式,外接可信芯片實(shí)現(xiàn)可信平臺(tái)模塊[17]。服務(wù)端為部署了Tomcat的Web服務(wù)器。測(cè)試網(wǎng)絡(luò)為無(wú)線(xiàn)路由器建立的局域網(wǎng)絡(luò)。
在運(yùn)行客戶(hù)端后,進(jìn)入系統(tǒng)主界面,若是首次使用該系統(tǒng),需要用戶(hù)先對(duì)移動(dòng)終端進(jìn)行注冊(cè),如圖5(a)、圖5(b)所示。
圖5 移動(dòng)終端注冊(cè)
當(dāng)移動(dòng)終端啟動(dòng)或者SIM卡熱插拔時(shí),用戶(hù)需要輸入注冊(cè)的賬號(hào)和密碼進(jìn)行身份識(shí)別,如圖6所示。另外,用戶(hù)可以登錄服務(wù)端Web平臺(tái)對(duì)已注冊(cè)的移動(dòng)終端進(jìn)行遠(yuǎn)程安全管理,如設(shè)備鎖定、數(shù)據(jù)擦除、數(shù)據(jù)加解密等,如圖7所示。同時(shí),用戶(hù)可以通過(guò)服務(wù)端Web平臺(tái)對(duì)丟失的移動(dòng)設(shè)備進(jìn)行遠(yuǎn)程定位,盡可能找回移動(dòng)設(shè)備,防止隱私數(shù)據(jù)泄露,如圖8所示。
圖6 身份識(shí)別
圖7 服務(wù)端Web平臺(tái)
圖8 移動(dòng)設(shè)備遠(yuǎn)程定位
本文提出基于Android的移動(dòng)終端安全管理系統(tǒng),實(shí)現(xiàn)了用戶(hù)對(duì)移動(dòng)終端的遠(yuǎn)程安全管理。系統(tǒng)采用C/S架構(gòu),包括客戶(hù)端和服務(wù)端。客戶(hù)端基于可信平臺(tái)模塊實(shí)現(xiàn)對(duì)用戶(hù)身份的三因素識(shí)別;服務(wù)端能夠幫助用戶(hù)對(duì)移動(dòng)終端進(jìn)行遠(yuǎn)程管理,保障了移動(dòng)終端設(shè)備安全和數(shù)據(jù)安全。另外,以橢圓曲線(xiàn)加密和零知識(shí)證明為基礎(chǔ),實(shí)現(xiàn)了移動(dòng)終端對(duì)服務(wù)端的身份認(rèn)證,防止用戶(hù)遠(yuǎn)程操作指令被假冒。實(shí)驗(yàn)結(jié)果表明,該系統(tǒng)能保障移動(dòng)終端設(shè)備通信安全。下一步研究工作的重點(diǎn)是通過(guò)短信實(shí)現(xiàn)用戶(hù)對(duì)移動(dòng)終端的遠(yuǎn)程操作。
[1] 楊廣亮,龔曉銳,姚 剛.一個(gè)面向Android的隱私泄露檢測(cè)系統(tǒng)[J].計(jì)算機(jī)工程,2012,38(23):1-6.
[2] 凡里偉.Android平臺(tái)手機(jī)防盜系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].大連:大連理工大學(xué),2012.
[3] Luo J,Kang M.Application Lockbox for Mobile Device Security[C]//Proceedings of the 11th International Conference on Information Technology.Las Vegas, USA:IEEE Press,2011:336-341.
[4] 潘軍莉.可信移動(dòng)終端的用戶(hù)身份認(rèn)證方案的研究[D].鄭州:解放軍信息工程大學(xué),2008.
[5] 方明偉.基于可信計(jì)算的移動(dòng)智能終端安全技術(shù)研究[D].武漢:華中科技大學(xué),2012.
[6] 吳一民,何嘉榮.基于遠(yuǎn)程服務(wù)的 Android平臺(tái)下SQLite數(shù)據(jù)庫(kù)安全機(jī)制的研究與實(shí)現(xiàn)[J].廣東工業(yè)大學(xué)學(xué)報(bào),2013,30(3):49-52.
[7] 曹基宏.基于可信計(jì)算的安全移動(dòng)終端研究與設(shè)計(jì)[D].長(zhǎng)沙:湖南大學(xué),2011.
[8] 宗 濤.基于可信計(jì)算的結(jié)構(gòu)性安全模型設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程,2012,38(20):89-92.
[9] 祝躍飛,張亞娟.橢圓曲線(xiàn)公鑰密碼導(dǎo)引[M].北京:科學(xué)出版社,2006.
[10] 侯整風(fēng),李 嵐.橢圓曲線(xiàn)密碼系統(tǒng)(ECC)整體算法設(shè)計(jì)及優(yōu)化研究[J].電子學(xué)報(bào),2004,32(11): 1904-1906.
[11] 張引兵.零知識(shí)證明及其應(yīng)用研究[D].淮北:淮北師范大學(xué),2011.
[12] 李興健.T-DAA協(xié)議在可信平臺(tái)中的應(yīng)用[D].沈陽(yáng):東北大學(xué),2009.
[13] 王笑梅,張秋劍.基于橢圓曲線(xiàn)零知識(shí)的RFID雙向身份認(rèn)證[J].計(jì)算機(jī)工程與應(yīng)用,2013,49(15):97-100.
[14] 聶 靜.基于可信移動(dòng)平臺(tái)的DRM系統(tǒng)研究[D].沈陽(yáng):東北大學(xué),2009.
[15] Baidu.Development Guide(Version4.1)[EB/OL].(2013-08-26).http://api.map.baidu.com/lbsapi/cloud/geosdkandroid-developv4.1.htm.
[16] Asmack[EB/OL].(2010-03-17).http://code.google.com/p/asmack/.
[17] 劉蔚然,劉建偉.Android操作系統(tǒng)可信計(jì)算平臺(tái)架構(gòu)[J].武漢大學(xué)學(xué)報(bào):理學(xué)版,2013,59(2):159-164.
編輯 陸燕菲
Mobile Terminal Security Management System Based on Android
FU Jingyi1,2,MA Zhaofeng1,2,HUANG Qinlong1,2,YANG Yixian1
(1.Information Security Center,Beijing University of Posts and Telecommunications,Beijing 100876,China;
2.Beijing National Security Science and Technology Co.,Ltd.,Beijing 100876,China)
To solve the problems of equipment safety and sensitive data leakage in mobile terminal,this paper proposes a Mobile Terminal Security Management System(MTSMS)based on Android,which allows the users to remotely manage the mobile terminal.MTSMS adopts C/S architecture,the client-side of MTSMS permits users to register mobile terminal on the server,and also achieves local user identification of three factors based on Trusted Platform Module (TMP)in mobile terminal.The server-side of MTSMS permits users to login Web platform to remotely encrypt and decrypt data in registered mobile terminal,locate and lock the registered mobile terminal.Further,to prevent users' remote order from being faked,MTSMS achieves server-side authentication based on elliptic curve cryptography and zero knowledge proof.Experimental result shows that the system can ensure the security of mobile terminal devices,and prevent the fake of remote user instructions.
mobile terminal;security management;Trusted Platform Module(TPM);zero knowledge proof;elliptic curve;identity authentication
1000-3428(2014)11-0077-06
A
TP309
10.3969/j.issn.1000-3428.2014.11.015
國(guó)家自然科學(xué)基金資助項(xiàng)目(61272519)。
傅鏡藝(1990-),女,碩士研究生,主研方向:移動(dòng)通信安全,云計(jì)算;馬兆豐,講師、博士;黃勤龍,博士研究生;楊義先,教授。
2014-02-27
2014-04-07E-mail:fujingyi@bupt.edu.cn
中文引用格式:傅鏡藝,馬兆豐,黃勤龍,等.基于Android的移動(dòng)終端安全管理系統(tǒng)[J].計(jì)算機(jī)工程,2014,40(11): 77-82.
英文引用格式:Fu Jingyi,Ma Zhaofeng,Huang Qinlong,et al.Mobile Terminal Security Management System Based on Android[J].Computer Engineering,2014,40(11):77-82.