傅鏡藝,馬兆豐,黃勤龍,楊義先
(1.北京郵電大學信息安全中心,北京100876;2.北京國泰信安科技有限公司,北京100876)
基于Android的移動終端安全管理系統
傅鏡藝1,2,馬兆豐1,2,黃勤龍1,2,楊義先1
(1.北京郵電大學信息安全中心,北京100876;2.北京國泰信安科技有限公司,北京100876)
針對Android移動終端設備安全和敏感數據泄露的問題,設計并實現基于Android的移動終端安全管理系統,允許用戶遠程對移動終端設備和其存儲的數據進行安全管理。該系統采用C/S架構,客戶端允許用戶將移動終端注冊到服務端,并通過在移動終端嵌入可信平臺模塊實現基于口令、設備和SIM卡三因素的本地用戶身份識別。服務端允許用戶通過Web平臺對已注冊的移動終端進行定位、鎖定、數據加解密、數據擦除等遠程安全管理。為防止用戶的遠程操作指令受到假冒攻擊,以橢圓曲線加密和零知識證明為基礎,實現移動終端對服務端的遠程身份認證。實驗結果表明,該系統能保障移動終端設備通信安全,防止假冒攻擊。
移動終端;安全管理;可信平臺模塊;零知識證明;橢圓曲線;身份認證
隨著移動終端向著智能化方向的邁進,其所支持的功能越來越多,由于移動平臺具有的開放性和靈活性,使手機等移動終端有了更廣闊的用戶群。然而,伴隨著計算和存儲資源的不斷豐富,移動終端中存儲信息的敏感程度不斷增加,對移動終端的安全性也有了更高的要求[1]。對于個人用戶,移動終端上可能存儲了大量的個人隱私數據,比如照片、家庭電話、支付密碼等;對于企業級用戶,可能會存儲企業的商業數據,例如企業銷售人員和顧問所使用的移動終端,往往涉及銷售經營數據和機密電子郵件等極為敏感的資料。如果移動終端保管不當,短信、相冊、通訊錄和郵箱等隱私可能會被無意看到或有意竊取。更糟糕的是如果移動終端丟失,不僅會造成隱私數據的泄漏,還可能導致企業關鍵數據丟失,造成極大的經濟損失[2]。因此,如何能夠對用戶身份進行很好的識別,準確區分非法用戶和合法用戶,防止用戶敏感信息的泄露,并追蹤找回丟失的移動設備是移動終端面臨的重要安全問題。
目前針對移動終端的安全措施比較薄弱,常見的是采用基于口令的用戶身份識別和對設備中的數據簡單地進行加密[3],口令認證和數據加解密過程主要由軟件完成,雖然口令認證實現了移動設備對用戶身份的識別,卻沒有考慮移動設備和SIM卡對彼此的身份識別,可能造成合法移動設備中的個人信息傳遞給非法SIM卡,或者將SIM卡中的個人信息遞交給非法的移動終端[4]。同時,由于沒有考慮移動設備各部件的安全可信性,如果終端的操作系統、軟件、硬件或固件己染有病毒或己被惡意篡改,用戶往往會在不知情的情況下輸入口令信息,造成敏感信息泄露[5]。另外,在現有的安全措施中,傳統口令和加密密鑰一同存儲于移動終端的SQLite數據庫中,然而SQLite數據庫缺乏有效的安全機制,一旦惡意攻擊者獲得訪問數據庫的權限即可盜取口令與密鑰[6],安全性難以得到保證。因此,密鑰、口令等敏感數據應當存儲在非法用戶無法訪問,并難以獲取的安全載體上,而且應提供措施保證系統參數、用戶數據的完整性和機密性[7]。
同時,由于移動設備可能丟失,人們希望在不泄露敏感信息的基礎上盡可能找回設備。針對這一需求,目前三星、小米等移動終端廠商為用戶提供遠程管理平臺,允許用戶遠程擦除設備數據、遠程定位遺失的設備并在地圖上標出設備的位置等幫助用戶找回設備,一定程度上保護了用戶的隱私安全。然而這種通信缺乏身份認證機制,很容易被惡意攻擊者截獲并冒充遠程管理平臺對移動終端實行遠程管理,勢必造成嚴重危害。
本文將可信平臺模塊嵌入移動終端,通過可信計算的思想加固移動終端,對用戶口令、設備、SIM卡進行綁定,保證了較高的安全性,實現移動終端對用戶身份基于三因素的識別。同時,本文以橢圓曲線加密和零知識證明為基礎,實現移動終端對服務端的身份認證。
2.1 可信平臺模塊
可信平臺模塊(Trusted Platform Module,TPM)是一種可實現可信計算的安全模塊,它能夠實現對數據的加解密及安全存儲,以及對環境度量信息的簽名和報告,是數據存儲和信息報告信任的初始點[7]。TPM的實質是一個物理可信的小型片上系統(System on Chip,SoC),提供了加解密運算、安全存儲、密鑰管理、完整性管理、遠程證明等安全功能[8],因此作為一個能夠抵制攻擊的硬件安全模塊,它既保證了內部數據的安全行和可靠性,又完成了身份認證和外部數據的加解密。
2.2 橢圓曲線加密
橢圓曲線密碼體制(Elliptic Curve Cryptography, ECC)是在各種涉及有限域乘法群的公鑰密碼體制中,用有限域上橢圓曲線構成的群來類比有限域上的乘法群,從而獲得類似的公鑰密碼體制[9]。它的安全性是基于求解橢圓曲線離散對數問題的困難性。ECC加密算法同RSA算法相比,抗攻擊性更強,公私鑰處理速度和密鑰生成速度更快,并且占用存儲空間更小。在相同安全強度的情況下ECC的密鑰長度比RSA小很多[10]。因此ECC密碼體制更適合計算量、存儲量、處理速度有局限的移動終端。另外,通常在橢圓曲線密碼體制中應用的有限域是大素數域F(p)和二進制域F(2n),考慮到移動終端的局限性,本文系統采用二進制域。
2.3 零知識證明
零知識證明指的是證明者能夠在不提供任何有用的信息的情況下,使驗證者能夠確定某論斷的正確性[11]。零知識證明實質上是一種協議,即2個或2個以上的參與者為完成某項特定的任務而采取的一系列步驟[12]。例如證明者與驗證者通過通信信道連續進行信息問答,在不泄露任何有關秘密信息的前提下,向驗證者證明自己知道秘密,即使攻擊者竊聽通信信道,他也只可能獲得某一次或多次的問題或者答案[13]。由于認證過程是隨機的,因此攻擊者就難以通過獲得的信息進行欺騙。
移動終端安全管理系統(Mobile Terminal Security Management System,MTSMS)采用C/S架構,借助通信運營商提供的GPRS數據連接業務或移動WiFi網絡,實現本地用戶身份識別和遠程安全管理,解決移動設備丟失后設備安全和敏感數據泄露的問題。在該系統中,用戶使用客戶端注冊移動終端后,便可以使用注冊的賬號登錄服務端Web平臺遠程操作已注冊的移動終端。當服務端向移動終端推送用戶的遠程指令前,移動終端需要對服務端進行身份認證,確保通信安全。當身份認證成功后,移動終端執行相應的指令操作,并返回執行結果給服務端。系統總體架構如圖1所示。

圖1 移動終端安全管理系統總體架構
客戶端主要功能模塊包括注冊模塊、身份識別模塊、遠程身份認證模塊和安全業務模塊。其中,安全業務模塊實現了設備定位、設備鎖定、數據擦除、數據加解密等功能。客戶端的主要設計思想是通過在移動終端上嵌入一個可信平臺模塊來保證現有終端的安全性,其主要手段是進行身份識別、遠程身份認證以及使用加密算法對密鑰進行存儲保護和使用完整性度量進行完整性保護。可信平臺模塊在移動終端啟動和運行過程中,對加載的軟件、硬件和固件等進行有序的完整性度量[14],若遭到惡意篡改立即調用鎖定模塊鎖定移動終端,若完整性度量正常,提示用戶輸入口令,在可信邊界內完成基于口令、設備和SIM卡三因素的用戶身份識別。在用戶使用加解密模塊對敏感信息進行加密時,可信平臺模塊還能夠利用隨機數生成引擎生成隨機數用作對稱密鑰種子,并采用物理保護的方式將最后生成的對稱密鑰存儲于可信模塊內部,這些受保護的數據必須通過相應授權數據的驗證才能被訪問,防止被惡意用戶竊取。
服務端基于J2EE架構,用戶登錄服務端Web平臺,實現對已注冊移動終端的遠程操作,防止敏感信息泄露,并盡可能找回丟失的移動設備。服務端Web平臺主要功能模塊包括遠程身份認證模塊、遠程管理模塊、基礎通信模塊等。遠程身份認證模塊負責在推送用戶的遠程操作指令前向移動終端證明身份,防止假冒攻擊。遠程管理模塊負責生成遠程定位、遠程鎖定、遠程擦除、遠程加解密等遠程操作指令,然后通過基礎通信模塊將生成的遠程操作指令推送到移動終端。
4.1 客戶端設計與實現
客戶端采用MVC模式開發,將數據表現、業務邏輯和數據訪問進行分離,可降低系統各個功能模塊的耦合度。客戶端界面使用Fragment進行設計,能夠適應各種不同的屏幕大小,同時ActivityManager類對用戶界面提供了支持,能夠帶來更好的用戶體驗。客戶端主要包括注冊模塊、身份識別模塊、遠程身份認證模塊和安全業務模塊。
4.1.1 注冊模塊
用戶注冊移動終端時首先需要將移動終端通過網絡連接服務器,然后用戶在客戶端注冊界面輸入賬號ID、密碼PW,當用戶確認輸入時注冊模塊通過調用TelephonyManager類中的getSubscriberId()方法獲取當前移動終端SIM卡的IMSI,接著把賬號ID、密碼PW、IMSI發送給 TPM。TPM中的ECC引擎將產生公私鑰對(PKU,SKU),接著生成身份令牌Y=EPKU(ID,PW,IMSI),然后把PKU和身份令牌Y發送給SIM卡存儲,并把注冊信息Z= (PKU,ID,PW)通過基礎通信模塊發送給服務端數據庫存儲,TPM中則存儲私鑰SKU以及平臺各部件的完整性度量值。移動終端的注冊過程如圖2所示。

圖2 移動終端注冊過程
身份識別模塊以可信平臺模塊為基礎,基于口令、設備和SIM卡三因素實現了對用戶的身份識別,具體工作流程如圖3所示,其中,H(x)和Sy(x)分別表示x的哈希值和y對x的簽名。
基于口令、設備和SIM卡的本地身份識別具體如下:
(1)TPM可信啟動后,SIM卡通過Naptune基帶處理器將平臺驗證請求Q1、隨機數r1、SIM卡標識IMSI及哈希值H1發送給 TPM:H1=H(Q1,r1,IMSI)。
(2)TPM收到請求后,重構H1驗證數據的完整性,保存當前r1和IMSI,然后啟動完整性度量機制,對平臺內的各部件進行完整性度量,如果度量失敗向SIM卡發送度量結果D并返回Measure_Fail命令到鎖定模塊,鎖定模塊將鎖定移動終端。如果各部件可信,TPM向SIM卡發送度量結果D、身份令牌請求Q2、隨機數r1及簽名S1:S1=SSKU(D,Q2,r1)。
(3)SIM卡用其存儲的TPM的公鑰PKU驗證簽名S1,并驗證r1與最初發送給TPM的隨機數是否一致,若驗證通過,SIM卡將其存儲的身份令牌Y返回給TPM。
(4)用戶通過系統界面輸入注冊的賬戶ID和密碼PW,TPM在可信邊界內用PKU加密接收的ID,PW,IMSI并同身份令牌Y比對,若一致,則表示身份驗證通過,用戶可以正常使用移動終端。若不一致,則返回Verify_Fail命令到鎖定模塊,自動鎖定移動終端,防止非法訪問導致的敏感信息泄露。

圖3 基于口令、設備和SIM卡的本地身份識別
4.1.3 遠程身份認證模塊
張小波,女,現年13歲,身高1.59米,齊耳短發,圓臉,身穿藍白相間的校服,于兩年前的一天中午不知去向。有知其下落者或提供線索者,請與我聯系,我有重謝,酬金3.5萬元。
遠程身份認證模塊負責在接收Web平臺推送的遠程操作指令前對服務端進行身份驗證,防止用戶的遠程操作指令被假冒。具體的工作流程如圖4所示,其中,r2,r3為二進制域F(2n)中的隨機數;P表示橢圓曲線的基點;PKS和SKS分別表示服務端的公私鑰,并且滿足PKS=P·SKS。
(1)服務端向移動終端推送遠程操作指令前,先推送指令預備通知。當客戶端基礎通信模塊接收到服務端的推送指令預備通知,則向服務端發出身份認證請求Q3和身份簽名S2:S2=SSKU(Q3)。
(2)服務端用PKU驗證移動終端身份簽名S2,若身份驗證通過,則在二進制域F(2n)中隨機選取r2,計算V并發送給移動終端:V=P·r2。
(3)移動終端在二進制域F(2n)中隨機選取r3發送給服務端,服務端接收到r3后計算A并發送給移動終端:A=r3·SKS+r2。
(4)移動終端驗證A·P是否等于r3·PKS+V,若相等,則接收服務端推送的遠程操作指令并解析執行,若不相等,則拒絕接收服務端推送的指令,最后向服務端返回身份驗證結果。

圖4 遠程身份認證流程
4.1.4 輔助功能模塊
客戶端的安全業務模塊主要包括指令解析、設備定位、數據加解密、設備鎖定、數據擦除和基礎通信功能。另外,這些功能的實現都需在 Android Manifest.xml文件中加入相應數據的讀寫等權限聲明。
(1)指令解析功能的實現基于Android broadcast機制,該功能模塊繼承BroadcastReceiver類并重寫其中的onReceive()函數,當服務端推送的用戶遠程指令到達客戶端后,對遠程指令進行解析。
(2)設備定位功能的實現是基于百度地圖提供的API[15],調用Location類中getLongitude()方法和getLatitude()方法可以分別獲取移動終端當前的經緯度,然后通過基礎通信功能模塊把獲得的經緯度發送給服務端進行定位顯示。
(3)數據加解密功能負責對通訊錄、通話記錄、相冊等隱私數據進行加解密。數據加密時,數據加解密功能模塊把可信平臺模塊中隨機數生成引擎生成的隨機數用作對稱密鑰種子,生成對稱密鑰并存儲于可信模塊內部,接著使用生成的對稱密鑰加密數據。解密時,讀取存儲于可信模塊內部的對稱密鑰解密數據。
(4)設備鎖定功能負責鎖定移動終端直到用戶輸入的賬號和密碼通過身份識別。該功能模塊主要設計思路是重寫Activity中的onBackPressed()方法和onAttachedToWindow()方法屏蔽返回鍵和Home鍵,全屏顯示自定義的鎖定界面,只有輸入正確的賬號和密碼才能訪問移動終端。
(5)數據擦除功能負責擦除通信錄、通話記錄、相冊等隱私數據。以擦除通信錄中聯系人為例,首先通過ContentResolver類的Query()方法獲取聯系人信息,然后通過ContentResolver類的Delete()方法執行刪除。
(6)基礎通信功能的實現是基于Java的開源XMPP協議包 asmack[16],利用 asmack中提供的XMPPConnection類與服務端建立持久連接,通過這個連接接收服務端推送的通知。另外,該功能模塊通過HTTP協議,向服務端傳遞數據。
4.2 服務端設計與實現
服務端Web平臺的實現基于J2EE架構,采用MySQL作為后臺數據庫。系統主要包括遠程功能模塊、遠程身份認證模塊以及基礎通信模塊三大模塊。
(1)遠程功能模塊實現用戶對移動終端的遠程安全管理功能。用戶使用在客戶端注冊時使用的賬號ID、密碼PW登錄服務端Web平臺,能夠通過該平臺向已注冊的移動終端發送遠程操作指令,包括遠程鎖定、遠程定位、遠程數據擦除、遠程數據加解密等。系統采用三級指令格式:第一級指令表示遠程操作的類型;第二級表示操作的對象;第三級表示操作的范圍。每級指令間用“|”間隔(即:一級|二級|三級),例如“DEL|CONTACT|ALL”表示擦除所有聯系人。各級指令含義如表1所示。

表1 各級指令含義
(2)遠程身份認證模塊負責實現身份認證,由于遠程操作需要服務端和移動終端建立連接并推送遠程操作指令,如果用戶的遠程操作指令被假冒將造成嚴重的后果,因此每次服務端推送遠程指令前需要向移動終端證明身份。
(3)基礎通信模塊實時監聽服務端端口上的XMPP服務,負責與客戶端的XMPPConnection類進行通信,發送推送通知。另外,負責接收移動終端通過HTTP協議發送的數據。
客戶端和服務端均采用 Java語言并以MyEclipse10為開發工具。客戶端采用Android 3.0版本的SDK,測試平臺為Android手機,搭載主頻為1.5 GHz,高通MSM8260雙核處理器,Android 3.1操作系統。可信平臺模塊采用軟件與硬件相結合的方式,移動終端通過USB OTG模式,外接可信芯片實現可信平臺模塊[17]。服務端為部署了Tomcat的Web服務器。測試網絡為無線路由器建立的局域網絡。
在運行客戶端后,進入系統主界面,若是首次使用該系統,需要用戶先對移動終端進行注冊,如圖5(a)、圖5(b)所示。

圖5 移動終端注冊
當移動終端啟動或者SIM卡熱插拔時,用戶需要輸入注冊的賬號和密碼進行身份識別,如圖6所示。另外,用戶可以登錄服務端Web平臺對已注冊的移動終端進行遠程安全管理,如設備鎖定、數據擦除、數據加解密等,如圖7所示。同時,用戶可以通過服務端Web平臺對丟失的移動設備進行遠程定位,盡可能找回移動設備,防止隱私數據泄露,如圖8所示。

圖6 身份識別

圖7 服務端Web平臺

圖8 移動設備遠程定位
本文提出基于Android的移動終端安全管理系統,實現了用戶對移動終端的遠程安全管理。系統采用C/S架構,包括客戶端和服務端。客戶端基于可信平臺模塊實現對用戶身份的三因素識別;服務端能夠幫助用戶對移動終端進行遠程管理,保障了移動終端設備安全和數據安全。另外,以橢圓曲線加密和零知識證明為基礎,實現了移動終端對服務端的身份認證,防止用戶遠程操作指令被假冒。實驗結果表明,該系統能保障移動終端設備通信安全。下一步研究工作的重點是通過短信實現用戶對移動終端的遠程操作。
[1] 楊廣亮,龔曉銳,姚 剛.一個面向Android的隱私泄露檢測系統[J].計算機工程,2012,38(23):1-6.
[2] 凡里偉.Android平臺手機防盜系統的設計與實現[D].大連:大連理工大學,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].鄭州:解放軍信息工程大學,2008.
[5] 方明偉.基于可信計算的移動智能終端安全技術研究[D].武漢:華中科技大學,2012.
[6] 吳一民,何嘉榮.基于遠程服務的 Android平臺下SQLite數據庫安全機制的研究與實現[J].廣東工業大學學報,2013,30(3):49-52.
[7] 曹基宏.基于可信計算的安全移動終端研究與設計[D].長沙:湖南大學,2011.
[8] 宗 濤.基于可信計算的結構性安全模型設計與實現[J].計算機工程,2012,38(20):89-92.
[9] 祝躍飛,張亞娟.橢圓曲線公鑰密碼導引[M].北京:科學出版社,2006.
[10] 侯整風,李 嵐.橢圓曲線密碼系統(ECC)整體算法設計及優化研究[J].電子學報,2004,32(11): 1904-1906.
[11] 張引兵.零知識證明及其應用研究[D].淮北:淮北師范大學,2011.
[12] 李興健.T-DAA協議在可信平臺中的應用[D].沈陽:東北大學,2009.
[13] 王笑梅,張秋劍.基于橢圓曲線零知識的RFID雙向身份認證[J].計算機工程與應用,2013,49(15):97-100.
[14] 聶 靜.基于可信移動平臺的DRM系統研究[D].沈陽:東北大學,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操作系統可信計算平臺架構[J].武漢大學學報:理學版,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
國家自然科學基金資助項目(61272519)。
傅鏡藝(1990-),女,碩士研究生,主研方向:移動通信安全,云計算;馬兆豐,講師、博士;黃勤龍,博士研究生;楊義先,教授。
2014-02-27
2014-04-07E-mail:fujingyi@bupt.edu.cn
中文引用格式:傅鏡藝,馬兆豐,黃勤龍,等.基于Android的移動終端安全管理系統[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.