專利名稱:Android智能終端運行環(huán)境可信控制方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及對Android智能終端中運行的應(yīng)用程序進行可信控制,特別涉及基于地理位置的Android智能終端運行環(huán)境可信控制方法,屬于信息安全技術(shù)領(lǐng)域。
背景技術(shù):
隨著現(xiàn)有的移動Android智能終端的普及,人們對Android智能終端的依賴性快速增強,基于終端的應(yīng)用日益多祥化同時也更加難以掌控。對于某些特定的安全敏感區(qū)域,區(qū)域內(nèi)的發(fā)生的會議、通話、周圍環(huán)境等信息的機密性需要得到充分的保證,而移動Android智能終端中惡意應(yīng)用的存在可能使這些機密信息隨時隨地迅速遭到竊取、傳播。為解決這類問題、一個有效的途徑是對移動Android智能終端上運行的應(yīng)用進行遠程監(jiān)控和管理,及時的掌握移動Android智能終端運行的應(yīng)用程序,并阻止不安全應(yīng)用的執(zhí)行。然而,該類方案面臨的ー個重要的挑戰(zhàn)是如何防止惡意軟件對上述監(jiān)控管理行為進行旁路、欺騙及篡改。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種有效的途徑對移動Android智能終端上運行的應(yīng)用進行遠程監(jiān)控,及時的掌握移動Android智能終端運行的應(yīng)用程序,井能夠有效地阻止不安全應(yīng)用的執(zhí)行。為了達到上述目的,本發(fā)明提出一種基于地理位置的Android智能終端運行環(huán)境可信控制方法及系統(tǒng)。本發(fā)明包括的基于地理位置的Android智能終端運行環(huán)境可信控制系統(tǒng)架構(gòu)可以劃分為兩個子系統(tǒng),分別為監(jiān)控中心子系統(tǒng)和Android終端運行狀態(tài)度量與報告子系統(tǒng)。本發(fā)明Android智能終端運行環(huán)境可信控制方法,其步驟為I)對Android智能終端采用Android OS安全啟動,所述Android OS安全啟動過程觸發(fā)狀態(tài)度量服務(wù);2)所述狀態(tài)度量服務(wù)對該Android智能終端上的Android初始化代碼進行度量并驗證,完成Android OS安全啟動;3)所述Android OS安全啟動完成后,在所述Android智能終端中啟動Androiddalvik 應(yīng)用;4)若所述Android智能終端存在于設(shè)定敏感區(qū)域內(nèi),貝U發(fā)送所述Android dalvik應(yīng)用完整性信息到監(jiān)控中心進行安全信息驗證;5)所述監(jiān)控中心根據(jù)安全策略驗證所述Android dalvik應(yīng)用完整性信息,并返回驗證結(jié)果到所述Android智能終端;6)所述Android智能終端在設(shè)定的時間周期內(nèi)再次發(fā)送所述Android dalvik完整性信息到監(jiān)控中心驗證,所述監(jiān)控中心切斷未通過驗證的Android智能終端網(wǎng)絡(luò)信號,對通過驗證的Android智能終端保持可信連接;
7)當所述Android智能終端離開敏感區(qū)域,結(jié)束可信控制。發(fā)送所述Android dalvik應(yīng)用完整性信息到監(jiān)控中心進行安全信息驗證的方法如下2-1)若初次檢測在敏感區(qū)域內(nèi),終端向監(jiān)控中心發(fā)送用戶名,同時終端存儲用戶輸入的服務(wù)器預(yù)分配口令于內(nèi)存中;2-2)所述監(jiān)控中心返回隨機數(shù)至終端,該終端若持續(xù)未接收到監(jiān)控中心數(shù)據(jù)則鎖定終端操作;2-3)度量值上傳模塊對隨機數(shù)及用戶預(yù)分配口令進行Sha-1運算,生成Androiddalvik應(yīng)用完整性信息的加密密鑰;2-4)終端通過度量值上傳模塊主動報告加密后的Android dalvik應(yīng)用完整性信息至監(jiān)控中心進行驗證。所述監(jiān)控中心根據(jù)安全策略驗證所述Android dalvik應(yīng)用完整性信息的方法如下3-1) Android終端完整性信息收集模塊收集終端Android dalvik應(yīng)用完整性信息,同時把安全策略管理模塊中包含不安全dalvik應(yīng)用的度量值存入黑名單中并進行實時更新;3-2)Android終端完整性信息收集模塊使用用戶名對應(yīng)的隨機數(shù)及用戶口令生成解密密鑰;3-3) Android終端完整性信息收集模塊對Android dalvik應(yīng)用完整性信息進行解密;3-4)使用Android終端完整性驗證模塊依次驗證Android dalvik應(yīng)用完整性信息中的完整性度量值流是否符合安全策略;3-5)所述Android終端完整性驗證模塊記錄PID-Unsecure不安全應(yīng)用進程ID并發(fā)送不安全應(yīng)用進程名及ID至Android終端完整性信息收集模塊;3-6)所述Android終端完整性信息收集模塊將返回不安全應(yīng)用進程ID及對應(yīng)的進程名至終端的度量值上傳模塊。在設(shè)定的時間周期內(nèi)再次發(fā)送所述Android dalvik完整性信息到監(jiān)控中心驗證的方法如下4-1)度量值上傳模塊直接關(guān)閉由監(jiān)控中心返回的不安全應(yīng)用進程ID的對應(yīng)進4-2)用戶確認后,度量值上傳模塊再次上傳所述Android dalvik應(yīng)用完整性信息至監(jiān)控中心;4-3)所述Android終端完整性驗證模塊再次驗證收到的Android dalvik應(yīng)用完整性信息中的完整性度量值流是否符合安全策略,同時驗證新上傳的Android dalvik應(yīng)用完整性信息中是否包含PID-Unsecure ;4-4)若不符合安全策略或新上傳的Android dalvik應(yīng)用完整性信息中包含PID-Unsecure則發(fā)送切斷終端網(wǎng)絡(luò)信號指令至網(wǎng)絡(luò)連接控制模塊;4-5)所述網(wǎng)絡(luò)連接控制模塊切斷終端對其安全域內(nèi)網(wǎng)絡(luò)服務(wù)的訪問能力。判斷所述Android智能終端存在于設(shè)定敏感區(qū)域內(nèi)的方法如下
5-1)在所述終端地理位置監(jiān)控模塊中設(shè)置敏感的GPS區(qū)域位置范圍;5-2)該終端實時判斷目前地理位置是否位于敏感域范圍內(nèi);5-3)若所述終端位于敏感區(qū)域則向監(jiān)控中心發(fā)送驗證信息。所述Android OS安全啟動方法如下6-1)采用所述終端的OTP存儲引導(dǎo)程序,引導(dǎo)程序度量Android Linux內(nèi)核并根據(jù)存儲于內(nèi)存中的度量值進行驗證;6-2)若驗證通過Android內(nèi)核正常啟動,使用所述Android內(nèi)核態(tài)的完整性度量模塊度量Android初始化代碼;6-3)初始完整性驗證模塊驗證輸入的Android初始化代碼度量值并輸出驗證結(jié)果;6-4)將驗證結(jié)果返回至完整性度量模塊,該模塊根據(jù)驗證結(jié)果確定Android操作系統(tǒng)初始化決策。對所述Android初始化代碼進行度量內(nèi)容包括度量的Android OS內(nèi)核模塊和Android初始化配置文件;度量守護進程和度量Dalvik虛擬機初始化進程;度量應(yīng)用層的狀態(tài)報告服務(wù)。對所述Android初始化代碼進行驗證內(nèi)容包括驗證Android OS內(nèi)核模塊的度量值并返回驗證結(jié)果;驗證Android初始化配置文件度量值并返回驗證結(jié)果;驗證守護進程的度量值并返回結(jié)果;驗證dalvik虛擬機初始化進程的度量值并返回驗證結(jié)果;驗證應(yīng)用層的狀態(tài)報告服務(wù)的度量值并返回驗證結(jié)果。所述度量應(yīng)用層的狀態(tài)報告服務(wù)的流程是9-1)操作系統(tǒng)Android OS啟動完成后自啟動狀態(tài)報告服務(wù);并通過MMAP映射狀態(tài)報告服務(wù)Apk包中的.dex文件至dalvik虛擬機內(nèi)存空間;9-2)所述操作系統(tǒng)調(diào)用內(nèi)核態(tài)的完整性度量模塊對內(nèi)存中的.dex文件進行度量生成度量值。本發(fā)明還提出ー種Android智能終端運行環(huán)境可信控制系統(tǒng),包括監(jiān)控中心子系統(tǒng)和Android終端運行狀態(tài)度量與報告子系統(tǒng),其特征在干,所述監(jiān)控中心子系統(tǒng)包括Android終端完整性信息收集模塊,用于收集Android終端發(fā)送的Androiddalvik應(yīng)用完整性信息,同時返回不安全應(yīng)用程序ID及對應(yīng)進程名至Android終端;Android終端完整性驗證模塊,對輸入Android dalvik應(yīng)用完整性信息進行驗證和記錄不安全進程ID,還用于發(fā)送不安全應(yīng)用進程ID、進程名至Android終端完整性信息終端模塊及對再次輸入的完整性信息進行驗證;安全策略管理模塊,將包含不安全dalvik應(yīng)用的度量值存入黑名單中,并更新黒名單中的dalvik應(yīng)用度量值;網(wǎng)絡(luò)連接控制模塊,用于控制基站/熱點與終端之間的信號連接,切斷終端運行不安全dalvik應(yīng)用與熱點/基站間的通信連接;所述Android終端運行狀態(tài)度量與報告子系統(tǒng)分為Android終端狀態(tài)報告服務(wù)系統(tǒng)和Android終端狀態(tài)度量服務(wù)系統(tǒng);
所述Android終端狀態(tài)報告服務(wù)系統(tǒng)包括終端地理位置監(jiān)控模塊,驗證終端位置是否位于敏感區(qū)域內(nèi),若位于敏感域內(nèi)則通過度量值上傳模塊,將生成的Android dalvik應(yīng)用完整性信息發(fā)送到監(jiān)控中心子系統(tǒng)進行驗證;度量值上傳模塊,將由內(nèi)核完整性度量模塊度量生成的Android終端完整性度量值及對應(yīng)的Android dalvik應(yīng)用進程名和當前正在運行進程ID發(fā)送至監(jiān)控中心的完整性信息收集模塊;所述Android終端狀態(tài)度量服務(wù)系統(tǒng)包括安全引導(dǎo)模塊,保證Android智能終端啟動時裝載的Linux內(nèi)核文件可信;內(nèi)核層的完整性度量模塊,負責對Android智能終端中裝載的內(nèi)核模塊、可執(zhí)行代碼和Android dalvik應(yīng)用進行度量;初始完整性驗證模塊,負責保證智能終端在啟動過程中,Android初始化代碼包括裝載的Android OS內(nèi)核模塊、Android初始化配置文件、守護進程、dalvik虛擬機初始化進程、應(yīng)用層狀態(tài)報告服務(wù)均屬于可信狀態(tài),從而形成完整的終端啟動信任鏈。本發(fā)明的有益效果本發(fā)明使用的Android dalvik應(yīng)用的完整性度量值來準確的標識應(yīng)用,通過報告Android dalvik應(yīng)用的完整性度量值至監(jiān)控中心進行驗證的方式使進入到敏感域內(nèi)的移動Android智能終端上運行的應(yīng)用程序得到了有效的遠程控制和管理,及時的掌握移動Android智能終端運行的應(yīng)用程序,并通過切斷智能終端對其安全域內(nèi)網(wǎng)絡(luò)服務(wù)的訪問能力來防止機密信息的竊取擴散,保證了敏感區(qū)域內(nèi)敏感信息的機密性。
圖1是本發(fā)明基于地理位置的Android智能終端運行環(huán)境可信控制方法系統(tǒng)示意圖;圖2是本發(fā)明基于地理位置的Android智能終端運行環(huán)境可信控制方法流程示意圖;圖3是本發(fā)Android智能終端運行環(huán)境可信控制方法一實施例中安全啟動方法示意圖;圖4是本發(fā)Android智能終端運行環(huán)境可信控制方法一實施例中Android dalvik不安全應(yīng)用遠程控制方法示意圖。
具體實施例方式下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,可以理解的是,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。如圖1所示是本發(fā)明基于地理位置的Android智能終端運行環(huán)境可信控制方法系統(tǒng)示意圖,監(jiān)控中心子系統(tǒng)包括了 Android終端完整性信息收集模塊、Android終端完整性驗證模塊、安全策略管理模塊及網(wǎng)絡(luò)連接控制模塊。監(jiān)控中心主要提供對敏感域地理范圍內(nèi)的Android智能終端的完整性度量值(具體可參見Reiner Sailer, Xiaolan/,hang, Trent Jaeger, Leendert Van Doorn, Design and Implementation of a TCb-BasedIntegrity Measurement Architecture Thomas J. Watson Research Center. YorktownHeights,NY10598)進程驗證,必要時切斷終端對其安全域內(nèi)網(wǎng)絡(luò)服務(wù)的訪問能力,及時的防止安全敏感信息的竊取或擴散。所述的敏感域地理范圍在這個環(huán)境內(nèi)的很多會議音頻,圖片,等都是保密的,所以我們就會遠程監(jiān)控這個區(qū)域內(nèi)的用戶的手機攝像頭或收音機等是否開啟,開啟的話則要求強制關(guān)閉,防止用戶拍攝機密的照片帶出保密區(qū)域外。Android終端運行狀態(tài)度量與報告子系統(tǒng)則包含了狀態(tài)度量服務(wù)和狀態(tài)報告服務(wù)。狀態(tài)度量服務(wù)由處于智能終端一次性編程區(qū)OTP(One Time Programmable)的安全引導(dǎo)模塊、處于內(nèi)核層的完整性度量模塊和初始完整性驗證模塊共同組成。安全引導(dǎo)模塊保證Android智能終端啟動時裝載的Linux內(nèi)核文件可信。完整性度量模塊負責對Android智能終端中裝載的內(nèi)核模塊、可執(zhí)行代碼和Android的dalvik應(yīng)用進行度量。最開始的完整性度量是基于Iinux的,本發(fā)明中把完整性度量搬移到了 Android操作系統(tǒng)上,從而可以度量ー些Android的應(yīng)用,因為Android應(yīng)用的運行首先都會復(fù)制Zygote進程創(chuàng)建ー個dalvik虛擬機,故稱為Android dalvik應(yīng)用,dalvik應(yīng)用的度量值和傳統(tǒng)度量值長度是ー樣的,都是32位hash值。初始完整性驗證模塊負責保證智能終端在啟動過程中,所有Android初始化代碼包括裝載的Android OS內(nèi)核模塊、Android初始化配置文件、守護進程、dalvik虛擬機初始化進程、應(yīng)用層狀態(tài)報告服務(wù)均屬于可信狀態(tài)。位于應(yīng)用層的狀態(tài)報告服務(wù)包含了終端地理位置監(jiān)控模塊和度量值上傳模塊。終端地理位置監(jiān)控模塊會實時監(jiān)控終端的地理位置,驗證終端位置是否位于敏感區(qū)域內(nèi),基站與手機之間的通信是不需要控制和保證可信的,只是在發(fā)現(xiàn)終端有不安全應(yīng)用在執(zhí)行時最后需要切斷基站與終端的信號連接,防止把機密信息發(fā)送出去。若位于敏感域內(nèi)則通過度量值上傳模塊,將生成的Android Dalvik應(yīng)用完整性信息發(fā)送到監(jiān)控中心子系統(tǒng)進行驗證。下面對在該體系架構(gòu)中,基于地理位置的Android智能終端運行環(huán)境可信控制方法進行說明,包括如下步驟Android終端運行狀態(tài)度量與報告子系統(tǒng)是在用戶端Android智能終端上的運用,監(jiān)控中心子系統(tǒng)在服務(wù)器上,在進行可信控制吋,手機Android終端先打開應(yīng)用程序(可信或不可信),即對輸入的Android dalvik應(yīng)用可信進行判斷;然后監(jiān)控系統(tǒng)根據(jù)可信與否,關(guān)閉或者對應(yīng)用程序保持監(jiān)控,監(jiān)控系統(tǒng)會對信息進行重新的安全驗證(由內(nèi)核中的系統(tǒng)定時進行驗證)。本發(fā)明中Android dalvik應(yīng)用的完整性度量涉及到內(nèi)核中的完整性度量模塊。只需要在內(nèi)核中嵌入我們的完整性度量模塊,就可以實現(xiàn)對Android應(yīng)用度量。由于Android應(yīng)用啟動時會把代碼導(dǎo)入到dalvik虛擬機,而虛擬機會將代碼使用MMAP函數(shù)映射到內(nèi)存區(qū)域,我們的完整度量模塊通過復(fù)寫Iinux的安全增強框架就能截獲MMAP的映射活動,從而可以對內(nèi)存區(qū)域的dalvik應(yīng)用代碼做度量,這里的度量其實就是對代碼做sha-1運算。本系統(tǒng)中的不安全應(yīng)用不一定就是病毒或者惡意軟件,有些如攝像機,錄音機這樣的應(yīng)用對本系統(tǒng)來講也是不安全的,因為這些應(yīng)用會在敏感區(qū)域偷拍機密信息。
子監(jiān)控系統(tǒng)Android終端完整性信息收集模塊,收集Android終端發(fā)送的Android dalvik應(yīng)用完整性信息,返回不安全應(yīng)用程序ID及對應(yīng)進程名至Android終端。Android終端完整性驗證模塊,I)輸入Android dalvik應(yīng)用完整性信息進行驗證,2)記錄不安全進程ID,3)發(fā)送不安全應(yīng)用進程ID、進程名至Android終端完整性信息手機模塊;4)對再次輸入的完整性信息進行驗證;安全策略管理模塊,將包含不安全dalvik應(yīng)用的度量值存入黑名單中,及時更新黑名單中的dalvik應(yīng)用度量值。網(wǎng)絡(luò)連接控制模塊,用來控制基站/熱點與終端之間的信號連接,一旦發(fā)現(xiàn)終端運行著不安全dalvik應(yīng)用則切斷熱點/基站與終端之間的通信連接。Android終端狀態(tài)報告服務(wù)終端地理位置監(jiān)控模塊,會實時監(jiān)控終端的地理位置,驗證終端位置是否位于敏感區(qū)域內(nèi),若位于敏感域內(nèi)則通過度量值上傳模塊,將生成的Android dalvik應(yīng)用完整性信息發(fā)送到監(jiān)控中心子系統(tǒng)進行驗證。度量值上傳模塊,將由內(nèi)核完整性度量模塊度量生成的Android終端完整性度量值及對應(yīng)的Android dalvik應(yīng)用進程名和當前正在運行進程ID發(fā)送至監(jiān)控中心的完整性信息收集模塊。Android終端狀態(tài)度量服務(wù)安全引導(dǎo)模塊,保證Android智能終端啟動時裝載的Linux內(nèi)核文件可信;內(nèi)核層的完整性度量模塊,負責對Android智能終端中裝載的內(nèi)核模塊、可執(zhí)行代碼和Android dalvik應(yīng)用進行度量;初始完整性驗證I旲塊,負責保證智能終端在啟動過程中,所有Android初始化代碼包括裝載的Android OS內(nèi)核模塊、Android初始化配置文件、守護進程、dalvik虛擬機初始化進程、應(yīng)用層狀態(tài)報告服務(wù)均屬于可信狀態(tài),從而形成完整的終端啟動信任鏈。如圖2所示是本發(fā)明基于地理位置的Android智能終端運行環(huán)境可信控制方法流程示意圖,基于上述系統(tǒng),本發(fā)明提出了基于地理位置的Android智能終端運行環(huán)境控制方法如下I)通過位于智能終端OTP中的安全引導(dǎo)模塊安全啟動Android OS,在Android OS安全啟動過程中會啟用狀態(tài)度量服務(wù)。狀態(tài)度量服務(wù)將對Android的初始化代碼進行度量并驗證。所述狀態(tài)度量服務(wù)相當于在內(nèi)核中添加了一些安全模塊,手機出廠時就內(nèi)嵌于Iinux內(nèi)核當中的,也就是說手機啟動時狀態(tài)度量服務(wù)就會啟動,同時,狀態(tài)報告服務(wù)也會啟動,狀態(tài)度量服務(wù)我們已經(jīng)可以實現(xiàn)。2) Android OS安全啟動完畢后,Android dalvik應(yīng)用將進行可信啟動,Android終端實時監(jiān)測終端所處地理位置是否位于預(yù)設(shè)定的敏感區(qū)域內(nèi)。3)Android終端報告Android dalvik應(yīng)用完整性信息至監(jiān)控中心,監(jiān)控中心依據(jù)安全策略管理模塊的安全策略依次驗證Android dalvik應(yīng)用完整性信息,并通過Android終端完整性信息收集模塊返回驗證結(jié)果至終端。終端依據(jù)驗證結(jié)果實施相應(yīng)操作后再次驗證Android dalvik應(yīng)用完整性信息是否安全。如圖3是本發(fā)Android智能終端運行環(huán)境可信控制方法一實施例中安全啟動方法示意圖。其所述安全啟動的流程是A、采用OTP存儲引導(dǎo)程序,該區(qū)域作為系統(tǒng)的度量信任根的存儲區(qū)域;B、引導(dǎo)程序度量Android Linux內(nèi)核,根據(jù)存儲于內(nèi)存中的度量值進行驗證C、驗證通過,Android內(nèi)核正常啟動;D、使用內(nèi)核態(tài)的完整性度量模塊度量Android初始化代碼;E、使用初始完整性驗證模塊驗證輸入的Android初始化代碼度量值并輸出驗證結(jié)果;F、將驗證結(jié)果返回至完整性度量模塊,該模塊根據(jù)驗證結(jié)果確定系統(tǒng)初始化決策。其所述的度量Android初始化代碼,在開機就會完成是嵌入到Android Iinux內(nèi)核中,具體的流程是A、度量的Android OS內(nèi)核模塊;B、度量Android初始化配置文件;C、度量守護進程;D、度量dalvik虛擬機初始化進程;E、度量應(yīng)用層的狀態(tài)報告服務(wù)。其所述度量應(yīng)用層的狀態(tài)報告服務(wù)的流程是a、f呆作系統(tǒng)啟動完成后,自啟動狀態(tài)報告服務(wù);b、操作系統(tǒng)通過MMAP映射狀態(tài)報告服務(wù)Apk包中的.dex文件至dalvik虛擬機內(nèi)存空間;C、操作系統(tǒng)調(diào)用內(nèi)核態(tài)的完整性度量模塊對內(nèi)存中的.dex文件進行度量。d、操作系統(tǒng)生成度量值。其所述驗證輸入的Android初始化代碼度量值流程是a、驗證Android OS內(nèi)核模塊的度量值并返回驗證結(jié)果;b、驗證Android初始化配置文件度量值并返回驗證結(jié)果;C、驗證守護進程的度量值并返回結(jié)果;d、驗證dalvik虛擬機初始化進程的度量值并返回驗證結(jié)果;e、驗證應(yīng)用層的狀態(tài)報告服務(wù)的度量值并返回驗證結(jié)果;其所述驗證結(jié)果特征是分為驗證通過、驗證不通過、初始完整性驗證通過三種。其所述系統(tǒng)初始化決策的特征是分為繼續(xù)執(zhí)行Android初始化代碼度量、禁止系統(tǒng)啟動兩種。其所述實時監(jiān)測終端所處地理位置是否位于預(yù)設(shè)定的敏感區(qū)域內(nèi)流程在于A、在終端地理位置監(jiān)控模塊中設(shè)置敏感的GPS區(qū)域位置范圍;B、終端實時判斷目前地理位置是否位于敏感域范圍內(nèi);C、位于敏感區(qū)域則向監(jiān)控中心發(fā)送挑戰(zhàn)信息。其所述可信啟動的流程是A、智能終端上的內(nèi)核中操作系統(tǒng)通過MMAP映射Android Apk包中的.dex文件至dalvik虛擬機內(nèi)存空間;
B、內(nèi)核態(tài)完整性度量模塊對內(nèi)存中的.dex文件進行度量。C、生成度量值。其所述報告Android dalvik完整性信息的流程是A、若初次檢測在敏感區(qū)域內(nèi),終端向監(jiān)控中心發(fā)送用戶名,同時終端存儲用戶輸入的服務(wù)器預(yù)分配口令于內(nèi)存中;B、監(jiān)控中心返回隨機數(shù)至終端;C、終端若持續(xù)未接收到監(jiān)控中心數(shù)據(jù)則鎖定終端操作;D、度量值上傳模塊對隨機數(shù)及用戶預(yù)分配口令進行Sha-1運算,生成Androiddalvik應(yīng)用完整性信息的加密密鑰;E、客戶端通過度量值上傳模塊主動報告加密后的Android dalvik應(yīng)用完整性信息至監(jiān)控中心進行驗證;F、報告內(nèi)容包括Android dalvik應(yīng)用完整性度量值、Android dalvik應(yīng)用進程名及當前正在運行進程ID三種屬性。其所述驗證Android dalvik應(yīng)用完整性信息的流程是A、及時更新安全策略管理模塊中的安全策略;B、Android終端完整性信息收集模塊收集終端Android dalvik應(yīng)用完整性信息;C.Android終端完整性信息收集模塊使用用戶名對應(yīng)的隨機數(shù)及用戶口令生成解密密鑰;D、Android終端完整性信息收集模塊對Android dalvik應(yīng)用完整性信息進行解密;E、使用Android終端完整性驗證模塊依次驗證Android dalvik應(yīng)用完整性信息中的完整性度量值流是否符合安全策略;F、Android終端完整性驗證模塊記錄不安全應(yīng)用進程ID (PID-Unsecure);G、Android終端完整性驗證模塊發(fā)送不安全應(yīng)用進程名及ID至Android終端完整性信息收集模塊;H、Android終端完整性信息收集模塊將返回不安全應(yīng)用進程ID及對應(yīng)的進程名至終端的度量值上傳模塊;其所述再次驗證Android dalvik應(yīng)用完整性信息是否安全的流程是A、度量值上傳模塊直接關(guān)閉由監(jiān)控中心返回的不安全應(yīng)用進程ID的對應(yīng)進程;B、用戶確認后,度量值上傳模塊再次上傳Android dalvik應(yīng)用完整性信息至監(jiān)控中心;C、Android終端完整性驗證模塊再次驗證收到的Android dalvik應(yīng)用完整性信息中的完整性度量值流是否符合安全策略,同時驗證新上傳的Android dalvik應(yīng)用完整性信息中是否包含PID-Unsecure ;D、若不符合安全策略或新上傳的Android dalvik應(yīng)用完整性信息中包含PID-Unsecure則發(fā)送切斷終端網(wǎng)絡(luò)信號指令至網(wǎng)絡(luò)連接控制模塊;E、網(wǎng)絡(luò)連接控制模塊切斷終端對其安全域內(nèi)網(wǎng)絡(luò)服務(wù)的訪問能力;其所述切斷終端對其安全域內(nèi)網(wǎng)絡(luò)服務(wù)的訪問能力的特征是屏蔽敏感域內(nèi)的其他干擾信號。
本發(fā)明的方法是由終端平臺上的Android完整性度量子系統(tǒng)和監(jiān)控中心子系統(tǒng)架構(gòu)組成。本方法采用信任鏈的構(gòu)建傳遞來防止惡意軟件對本系統(tǒng)進行旁路、欺騙及篡改。終端中的安全引導(dǎo)模塊保證Android智能終端啟動時裝載的Linux內(nèi)核文件可信,它構(gòu)成了終端安全啟動的信任根。在智能終端在啟動過程中,初始完整性驗證模塊會驗證所有裝載的Android初始化配置文件、Android操作系統(tǒng)內(nèi)核模塊、dalvik虛擬機初始化進程、應(yīng)用層狀態(tài)報告服務(wù)所生成的度量值,保證操作系統(tǒng)以及本方法中的應(yīng)用層服務(wù)安全啟動。在系統(tǒng)安全啟動后,系統(tǒng)將進入可信啟動狀態(tài),完成對系統(tǒng)運行過程中所有被運行應(yīng)用的度量。位于應(yīng)用層的狀態(tài)報告服務(wù)的終端地理位置監(jiān)控模塊會實時對終端的地理位置進程監(jiān)控,驗證終端位置是否位于安全敏感區(qū)域內(nèi),若位于敏感域內(nèi)則通過度量值上傳模塊,將生成的Android dalvik應(yīng)用完整性信息發(fā)送到監(jiān)控中心子系統(tǒng)進行驗證。如圖4所示是本發(fā)Android智能終端運行環(huán)境可信控制方法一實施例中Androiddalvik不安全應(yīng)用遠程控制方法示意圖。本發(fā)明的基于地理位置的Android智能終端運行環(huán)境可信控制方法包括如下步驟I)通過位于智能終端OTP中的安全引導(dǎo)模塊安全啟動Android OS,在Android OS安全啟動過程中會啟用狀態(tài)度量服務(wù)。狀態(tài)度量服務(wù)將對Android的初始化代碼進行度量并驗證。A、安全引導(dǎo)Android Linux內(nèi)核,加載內(nèi)核中的完整性度量模塊;B、Android操作系統(tǒng)內(nèi)核模塊調(diào)用完整性度量模塊生成度量值并輸出;C、將輸出的Android操作系統(tǒng)內(nèi)核模塊度量值輸入初始完整性驗證模塊中進行驗證;D、返回驗證結(jié)果給完整性度量模塊;E、完整性度量模塊根據(jù)返回的驗證結(jié)果不同選擇相應(yīng)的系統(tǒng)初始化決策;a)驗證通過系統(tǒng)繼續(xù)執(zhí)行Android操作系統(tǒng)內(nèi)核;b)驗證不通過禁止系統(tǒng)啟動;c)初始完整性驗證成功繼續(xù)執(zhí)行狀態(tài)報告服務(wù)。F、驗證通過后繼續(xù)執(zhí)行Android操作系統(tǒng)內(nèi)核,啟動Android初始化配置文件;G、Android初始化配置文件調(diào)用完整性度量模塊生成度量值并輸出;H、將輸出度量值輸入初始完整性驗證模塊中進行驗證并返回驗證結(jié)果給完整性度量模塊;1、驗證結(jié)果通過則繼續(xù)執(zhí)行Android初始化配置,并調(diào)用守護進程及dalvik虛擬機初始化模塊;J、守護進程及dalvik虛擬機初始化進程調(diào)用完整性度量模塊生成度量值,并將度量值輸入初始完整性驗證模塊進行驗證,返回驗證結(jié)果給完整性度量模塊;K、驗證通過則繼續(xù)執(zhí)行守護進程及dalvik虛擬機初始化進程,并最終啟動應(yīng)用層狀態(tài)報告服務(wù);L、應(yīng)用層狀態(tài)報告服務(wù)啟動并調(diào)用完整性度量模塊生成度量值,具體的度量流程是a)操作系統(tǒng)通過MMAP映射狀態(tài)報告服務(wù)Apk包中的.dex文件至dalvik虛擬機內(nèi)存空間;b)操作系統(tǒng)調(diào)用完整性度量模塊對內(nèi)存中的.dex文件進行度量;c)生成度量值。M、將輸出度量值輸入初始完整性驗證模塊中進行驗證,并返回驗證結(jié)果給完整性度量模塊;N、初始完整性驗證成功,繼續(xù)啟動應(yīng)用層狀態(tài)報告服務(wù);O、Android系統(tǒng)安全啟動完畢。2) Android OS安全啟動完畢后,Android dalvik應(yīng)用將進行可信啟動,終端實時監(jiān)測終端所處地理位置是否位于預(yù)設(shè)定的敏感區(qū)域內(nèi)。A、在終端地理位置監(jiān)控模塊中設(shè)置敏感的GPS區(qū)域位置范圍;B、終端實時判斷目前地理位置是否位于敏感域范圍內(nèi);C、地理位置監(jiān)控模塊檢測到終端位于敏感區(qū)域;D、若初次檢測在敏感區(qū)域內(nèi),終端向監(jiān)控中心發(fā)送用戶名,同時終端存儲用戶輸入的服務(wù)器預(yù)分配口令于內(nèi)存中;E、監(jiān)控中心返回隨機數(shù)至終端;F、終端若持續(xù)未接收到監(jiān)控中心數(shù)據(jù)則鎖定終端操作;G、終端對用戶預(yù)設(shè)定口令及隨機數(shù)做Sha-1運算生成加密密鑰;H、啟動的Android dalvik應(yīng)用通過MMAP映射其Apk包中的.dex文件至dalvik虛擬機內(nèi)存空間;1、內(nèi)核層完整性度量模塊對內(nèi)存中的.dex文件進行度量。J、獲取Android dalvik應(yīng)用完整性信息包括a) Android dalvik應(yīng)用完整性度量值;b) Android dalvik 應(yīng)用進程名;c)當前正在運行進程ID。K、使用內(nèi)存中的加密密鑰對Android dalvik應(yīng)用完整性信息進行加密。3)終端報告Android dalvik應(yīng)用完整性信息至監(jiān)控中心,監(jiān)控中心依據(jù)安全策略管理模塊的安全策略依次驗證Android dalvik應(yīng)用完整性信息,并通過Android終端完整性信息收集模塊返回提示操作至終端。終端操作完成后再次驗證Android dalvik應(yīng)用完整性信息是否安全。A、Android終端完整性信息收集模塊存儲收集到的終端Android dalvik應(yīng)用完整性信息;B、使用用戶名對應(yīng)的用戶口令及隨機數(shù)做運算生成解密密鑰;C、解密Android dalvik應(yīng)用完整性信息;DjfAndroid dalvik應(yīng)用完整性度量值發(fā)送到Android終端完整性驗證模塊,根據(jù)安全策略管理模塊中的安全策略對度量值進行驗證;E、記錄不安全應(yīng)用進程ID (PIDs-Unsecure);F、發(fā)送不安全應(yīng)用進程ID、進程名至Android終端完整性信息收集模塊;G、Android終端完整性信息收集模塊將返回不安全應(yīng)用進程ID及對應(yīng)的進程名至終端的度量值上傳模塊;
H、度量值上傳模塊直接關(guān)閉由監(jiān)控中心返回的不安全應(yīng)用進程;1、用戶確認后度量值上傳模塊再次上傳Android dalvik應(yīng)用完整性信息至監(jiān)控中心進行驗證;J、Android終端完整性驗證模塊再次驗證收到的Android dalvik應(yīng)用完整性信息中的完整性度量值流是否符合安全策略,同時驗證新上傳的Android dalvik應(yīng)用完整性信息中是否包含PID-Unsecure ;K、若不符合安全策略或新上傳的Android dalvik應(yīng)用完整性信息中包含PID-Unsecure則發(fā)送切斷終端網(wǎng)絡(luò)信號指令至網(wǎng)絡(luò)連接控制模塊;L、網(wǎng)絡(luò)連接控制模塊切斷終端對其安全域內(nèi)網(wǎng)絡(luò)服務(wù)的訪問能力。
權(quán)利要求
1.一種Android智能終端運行環(huán)境可信控制方法,其步驟為1)對Android智能終端采用AndroidOS安全啟動,所述Android OS安全啟動過程觸發(fā)狀態(tài)度量服務(wù);2)所述狀態(tài)度量服務(wù)對該Android智能終端上的Android初始化代碼進行度量并驗證,完成Android OS安全啟動;3)所述AndroidOS安全啟動完成后,在所述Android智能終端中啟動Android dalvik 應(yīng)用;4)若所述Android智能終端存在于設(shè)定敏感區(qū)域內(nèi),則發(fā)送所述Androiddalvik應(yīng)用完整性信息到監(jiān)控中心進行安全信息驗證;5)所述監(jiān)控中心根據(jù)安全策略驗證所述Androiddalvik應(yīng)用完整性信息,并返回驗證結(jié)果到所述Android智能終端;6)所述Android智能終端在設(shè)定的時間周期內(nèi)再次發(fā)送所述Androiddalvik完整性信息到監(jiān)控中心驗證,所述監(jiān)控中心切斷未通過驗證的Android智能終端網(wǎng)絡(luò)信號,對通過驗證的Android智能終端保持可信連接;7)當所述Android智能終端離開敏感區(qū)域,結(jié)束可信控制。
2.如權(quán)利要求1所述的Android智能終端運行環(huán)境可信控制方法,其特征在于,發(fā)送所述Android dalvik應(yīng)用完整性信息到監(jiān)控中心進行安全信息驗證的方法如下2-1)若初次檢測在敏感區(qū)域內(nèi),終端向監(jiān)控中心發(fā)送用戶名,同時終端存儲用戶輸入的服務(wù)器預(yù)分配口令于內(nèi)存中;2-2)所述監(jiān)控中心返回隨機數(shù)至終端,該終端若持續(xù)未接收到監(jiān)控中心數(shù)據(jù)則鎖定終端操作;2-3)度量值上傳模塊對隨機數(shù)及用戶預(yù)分配口令進行Sha-1運算,生成Android dalvik應(yīng)用完整性信息的加密密鑰;2-4)終端通過度量值上傳模塊主動報告加密后的Androiddalvik應(yīng)用完整性信息至監(jiān)控中心進行驗證。
3.如權(quán)利要求1所述的Android智能終端運行環(huán)境可信控制方法,其特征在于,所述監(jiān)控中心根據(jù)安全策略驗證所述Android dalvik應(yīng)用完整性信息的方法如下3-1)Android終端完整性信息收集模塊收集終端Android dalvik應(yīng)用完整性信息, 同時把安全策略管理模塊中包含不安全dalvik應(yīng)用的度量值存入黑名單中并進行實時更新;3-2)Android終端完整性信息收集模塊使用用戶名對應(yīng)的隨機數(shù)及用戶口令生成解密密鑰;3-3)Android終端完整性信息收集模塊對Android dalvik應(yīng)用完整性信息進行解密;3-4)使用Android終端完整性驗證模塊依次驗證Android dalvik應(yīng)用完整性信息中的完整性度量值流是否符合安全策略;3-5)所述Android終端完整性驗證模塊記錄PID-Unsecure不安全應(yīng)用進程ID并發(fā)送不安全應(yīng)用進程名及ID至Android終端完整性信息收集模塊;3-6)所述Android終端完整性信息收集模塊將返回不安全應(yīng)用進程ID及對應(yīng)的進程名至終端的度量值上傳模塊。
4.如權(quán)利要求1所述的Android智能終端運行環(huán)境可信控制方法,其特征在于,在設(shè)定的時間周期內(nèi)再次發(fā)送所述Android dalvik完整性信息到監(jiān)控中心驗證的方法如下4-1)度量值上傳模塊直接關(guān)閉由監(jiān)控中心返回的不安全應(yīng)用進程ID的對應(yīng)進程; 4-2)用戶確認后,度量值上傳模塊再次上傳所述Android dalvik應(yīng)用完整性信息至監(jiān)控中心;4-3)所述Android終端完整性驗證模塊再次驗證收到的Android dalvik應(yīng)用完整性信息中的完整性度量值流是否符合安全策略,同時驗證新上傳的Android dalvik應(yīng)用完整性信息中是否包含PID-Unsecure ;4-4)若不符合安全策略或新上傳的Android dalvik應(yīng)用完整性信息中包含 PID-Unsecure則發(fā)送切斷終端網(wǎng)絡(luò)信號指令至網(wǎng)絡(luò)連接控制模塊;4-5)所述網(wǎng)絡(luò)連接控制模塊切斷終端對其安全域內(nèi)網(wǎng)絡(luò)服務(wù)的訪問能力。
5.如權(quán)利要求1所述的Android智能終端運行環(huán)境可信控制方法,其特征在于,判斷所述Android智能終端存在于設(shè)定敏感區(qū)域內(nèi)的方法如下5-1)在所述終端地理位置監(jiān)控模塊中設(shè)置敏感的GPS區(qū)域位置范圍;5-2)該終端實時判斷目前地理位置是否位于敏感域范圍內(nèi);5-3)若所述終端位于敏感區(qū)域則向監(jiān)控中心發(fā)送驗證信息。
6.如權(quán)利要求1所述的Android智能終端運行環(huán)境可信控制方法,其特征在于,所述 Android OS安全啟動方法如下6-1)采用所述終端的OTP存儲引導(dǎo)程序,引導(dǎo)程序度量AndroidLinux內(nèi)核并根據(jù)存儲于內(nèi)存中的度量值進行驗證;6-2)若驗證通過Android內(nèi)核正常啟動,使用所述Android內(nèi)核態(tài)的完整性度量模塊度量Android初始化代碼;6-3)初始完整性驗證模塊驗證輸入的Android初始化代碼度量值并輸出驗證結(jié)果; 6-4)將驗證結(jié)果返回至完整性度量模塊,該模塊根據(jù)驗證結(jié)果確定Android操作系統(tǒng)初始化決策。
7.如權(quán)利要求1所述的Android智能終端運行環(huán)境可信控制方法,其特征在于, 對所述Android初始化代碼進行度量內(nèi)容包括度量的Android OS內(nèi)核模塊和Android初始化配置文件;度量守護進程和度量Dalvik虛擬機初始化進程;度量應(yīng)用層的狀態(tài)報告服務(wù)。
8.如權(quán)利要求1所述的Android智能終端運行環(huán)境可信控制方法,其特征在于, 對所述Android初始化代碼進行驗證內(nèi)容包括驗證Android OS內(nèi)核模塊的度量值并返回驗證結(jié)果;驗證Android初始化配置文件度量值并返回驗證結(jié)果;驗證守護進程的度量值并返回結(jié)果;驗證dalvik虛擬機初始化進程的度量值并返回驗證結(jié)果;驗證應(yīng)用層的狀態(tài)報告服務(wù)的度量值并返回驗證結(jié)果。
9.如權(quán)利要求7所述的Android智能終端運行環(huán)境可信控制方法,其特征在于, 所述度量應(yīng)用層的狀態(tài)報告服務(wù)的流程是9-1)操作系統(tǒng)Android OS啟動完成后自啟動狀態(tài)報告服務(wù);并通過MMAP映射狀態(tài)報告服務(wù)Apk包中的.dex文件至dalvik虛擬機內(nèi)存空間;9-2)所述操作系統(tǒng)調(diào)用內(nèi)核態(tài)的完整性度量模塊對內(nèi)存中的.dex文件進行度量生成度量值。
10.一種Android智能終端運行環(huán)境可信控制系統(tǒng),包括監(jiān)控中心子系統(tǒng)和Android終端運行狀態(tài)度量與報告子系統(tǒng),其特征在于,所述監(jiān)控中心子系統(tǒng)包括Android終端完整性信息收集模塊,用于收集Android終端發(fā)送的Android dalvik應(yīng)用完整性信息,同時返回不安全應(yīng)用程序ID及對應(yīng)進程名至Android終端;Android終端完整性驗證模塊,對輸入Android dalvik應(yīng)用完整性信息進行驗證和記錄不安全進程ID,還用于發(fā)送不安全應(yīng)用進程ID、進程名至Android終端完整性信息終端模塊及對再次輸入的完整性信息進行驗證;安全策略管理模塊,將包含不安全dalvik應(yīng)用的度量值存入黑名單中,并更新黑名單中的dalvik應(yīng)用度量值;網(wǎng)絡(luò)連接控制模塊,用于控制基站/熱點與終端之間的信號連接,切斷終端運行不安全dalvik應(yīng)用與熱點/基站間的通信連接;所述Android終端運行狀態(tài)度量與報告子系統(tǒng)分為Android終端狀態(tài)報告服務(wù)系統(tǒng)和 Android終端狀態(tài)度量服務(wù)系統(tǒng);所述Android終端狀態(tài)報告服務(wù)系統(tǒng)包括終端地理位置監(jiān)控模塊,驗證終端位置是否位于敏感區(qū)域內(nèi),若位于敏感域內(nèi)則通過度量值上傳模塊,將生成的Android dalvik應(yīng)用完整性信息發(fā)送到監(jiān)控中心子系統(tǒng)進行驗證;度量值上傳模塊,將由內(nèi)核完整性度量模塊度量生成的Android終端完整性度量值及對應(yīng)的Android dalvik應(yīng)用進程名和當前正在運行進程ID發(fā)送至監(jiān)控中心的完整性信息收集模塊;所述Android終端狀態(tài)度量服務(wù)系統(tǒng)包括安全引導(dǎo)模塊,保證Android智能終端啟動時裝載的Linux內(nèi)核文件可信;內(nèi)核層的完整性度量模塊,負責對Android智能終端中裝載的內(nèi)核模塊、可執(zhí)行代碼和Android dalvik應(yīng)用進行度量;初始完整性驗證模塊,負責保證智能終端在啟動過程中,Android初始化代碼包括裝載的Android OS內(nèi)核模塊、Android初始化配置文件、守護進程、dalvik虛擬機初始化進程、 應(yīng)用層狀態(tài)報告服務(wù)均屬于可信狀態(tài),從而形成完整的終端啟動信任鏈。
全文摘要
本發(fā)明涉及Android智能手機運行環(huán)境可信控制方法及系統(tǒng),Android終端的Android OS安全啟動完畢后,Android Dalvik應(yīng)用將進行可信啟動,Android終端實時監(jiān)測終端所處地理位置是否位于預(yù)設(shè)定的敏感區(qū)域內(nèi),Android終端報告Android Dalvik應(yīng)用完整性信息至監(jiān)控中心,監(jiān)控中心依據(jù)安全策略管理模塊的安全策略依次驗證應(yīng)用完整性信息,并通過Android終端完整性信息收集模塊返回驗證結(jié)果至終端,終端依據(jù)驗證結(jié)果實施相應(yīng)操作后再次驗證應(yīng)用完整性信息是否安全。本發(fā)明對敏感域內(nèi)的移動終端進行遠程控制和應(yīng)用程序管理,通過切斷終端訪問能力來防止機密信息的竊取擴散。
文檔編號G06F21/57GK103020531SQ20121052147
公開日2013年4月3日 申請日期2012年12月6日 優(yōu)先權(quán)日2012年12月6日
發(fā)明者于愛民, 晏敏, 敖贏戈, 吳曉昕, 楊文思 申請人:中國科學院信息工程研究所, 華為技術(shù)有限公司