一種通用的外置式智能終端安全運(yùn)行環(huán)境構(gòu)建方法
【專利摘要】本發(fā)明公開了一種通用的外置式智能終端安全運(yùn)行環(huán)境構(gòu)建方法。本方法為:1)應(yīng)用發(fā)布方為目標(biāo)應(yīng)用建立一包括ramdisk文件和內(nèi)核鏡像的應(yīng)用安全策略包;在該Android系統(tǒng)設(shè)置一系統(tǒng)安全控制模塊后對系統(tǒng)進(jìn)行編譯生成所述內(nèi)核鏡像;系統(tǒng)安全控制模塊包括一安全策略文件;2)設(shè)置一可信執(zhí)行模塊TEM,發(fā)送命令信息給該智能終端,使其從該TEM端下載該應(yīng)用安全策略包,并在該智能終端上啟動系統(tǒng);3)系統(tǒng)安全控制模塊監(jiān)控系統(tǒng)運(yùn)行過程中映射入內(nèi)存的所有文件,檢查其是否屬于安全策略文件中的文件,如果是則該系統(tǒng)安全控制模塊對本次映射操作予以放行,否則拒絕本次映射操作。本方法無需對智能終端原有軟硬件進(jìn)行更改,易于推行。
【專利說明】 一種通用的外置式智能終端安全運(yùn)行環(huán)境構(gòu)建方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種基于ARM與Android的智能終端構(gòu)建可信運(yùn)行環(huán)境的方法,側(cè)重于在不影響智能終端原有軟硬件結(jié)構(gòu)的基礎(chǔ)上實(shí)現(xiàn)為目標(biāo)Android應(yīng)用程序建立可信運(yùn)行環(huán)境的目的,適用于安全敏感的應(yīng)用領(lǐng)域,如電子支付業(yè)務(wù)、安全通信等,屬于信息系統(tǒng)安全范疇。
【背景技術(shù)】
[0002]以智能手機(jī)、平板電腦為代表的智能終端擁有功能完善的操作系統(tǒng)、強(qiáng)大的應(yīng)用處理器(CPU)和內(nèi)存以及優(yōu)秀的人機(jī)交互界面,用戶可以根據(jù)個人需要實(shí)時擴(kuò)展機(jī)器功能,可以安裝更多的應(yīng)用程序,實(shí)現(xiàn)了軟件市場同步的人性化功能。智能終端已經(jīng)發(fā)展成為一個功能強(qiáng)大,集通話、短信、影視娛樂、網(wǎng)絡(luò)接入為一體的綜合性個人手持終端設(shè)備。智能終端的以上特點(diǎn)使得它可以隨時隨地的滿足用戶的多種需求。然而,隨著智能終端的廣泛應(yīng)用,越來越多的安全問題也隨之出現(xiàn),諸多非法流氓應(yīng)用程序、惡意軟件以及未知病毒程序入侵帶來的用戶信息安全問題日趨嚴(yán)重,使得用戶的個人信息包括通訊錄、日程、位置信息、短信、照片和語音備忘錄等個人隱私以及電子賬戶財產(chǎn)安全都存在嚴(yán)重的安全隱患。
[0003]可信計算相關(guān)技術(shù)是解決終端安全問題的一個有效手段,傳統(tǒng)以TPM(可信平臺模塊)為代表的可信計算技術(shù)最初應(yīng)用于解決PC終端存在的安全問題,技術(shù)路線主要是在計算機(jī)原有軟硬件系統(tǒng)的基礎(chǔ)上,通過在各個層次增加安全組件,以B1S為信任根,根據(jù)啟動順序,每個組件負(fù)責(zé)對啟動過程中的下一個組件進(jìn)行完整性度量與驗(yàn)證,從而為計算機(jī)應(yīng)用構(gòu)建一個安全可信的運(yùn)行環(huán)境。在可信計算發(fā)展過程中,研究者還提出了移動TPM的概念,其思想主要借鑒U-Key的技術(shù)路線,實(shí)現(xiàn)了 TPM芯片中可信存儲、密鑰管理等功能的移動化,然而,對于為應(yīng)用構(gòu)建可信運(yùn)行環(huán)境這一目的,移動TPM仍然采用了以引導(dǎo)程序?yàn)樾湃胃姆椒ǎ枰獙鹘y(tǒng)計算機(jī)引導(dǎo)程序進(jìn)行定制修改,從而實(shí)現(xiàn)可信運(yùn)行環(huán)境的建立。此外,研究者還提出了 TPCM (可信平臺控制模塊)方案,通過在PC終端中植入TPCM安全芯片,通過改變傳統(tǒng)計算機(jī)的加電啟動順序,從而實(shí)現(xiàn)可信根的轉(zhuǎn)移以及可信運(yùn)行環(huán)境的建立。
[0004]隨著智能終端的發(fā)展,為智能終端建立可信運(yùn)行環(huán)境的需求越來越大。該類技術(shù)的典型代表包括ARM的TrustZone技術(shù)、TCG的MTM(移動可信模塊)技術(shù)等。其中TrustZone技術(shù)是在ARM V7體系架構(gòu)中提出的方法,因此該方法需要終端采用支持ARM V7架構(gòu)的CPU。MTM技術(shù)是TPM技術(shù)在智能終端的研伸,基于其構(gòu)建可信運(yùn)行環(huán)境的方法類似于TPM。
[0005]分析上述方法,可以看出,傳統(tǒng)可信計算技術(shù)伴隨而來的一個問題是技術(shù)方案的實(shí)施需要終端產(chǎn)商、芯片產(chǎn)商或者系統(tǒng)軟件產(chǎn)商的深度參與,而這樣做一方面會使得方案無法直接為已銷售的終端用戶提供安全保障,另一方面終端產(chǎn)商考慮到產(chǎn)品穩(wěn)定性與成熟度等問題,也會對采納該類方案存在疑慮。因此設(shè)計一個與智能終端原有軟硬件結(jié)構(gòu)無關(guān)的、同時又具有傳統(tǒng)可信計算具有的軟硬件聯(lián)動的安全保障優(yōu)點(diǎn)的可信運(yùn)行環(huán)境構(gòu)建方法顯得十分必要。而通過調(diào)研,目前還未有人提出具有上述特點(diǎn)的面向智能終端的可信運(yùn)行環(huán)境構(gòu)建方法。
【發(fā)明內(nèi)容】
[0006]針對現(xiàn)有技術(shù)存在的技術(shù)問題,本發(fā)明的目的在于提供一種采用外置式硬件裝置實(shí)現(xiàn)在智能終端中為一個或多個完整應(yīng)用軟件,而非一個或多個特定模塊,構(gòu)建安全運(yùn)行環(huán)境的方法。外置式硬件裝置與智能終端采用目前智能手機(jī)普遍支持的MicroUSB接口相連,無須對原有智能終端進(jìn)行任何軟硬件配置的更改。應(yīng)用發(fā)布方可利用本方法為目標(biāo)應(yīng)用定制其期望的運(yùn)行時軟件棧環(huán)境。當(dāng)目標(biāo)應(yīng)用運(yùn)行在新環(huán)境中時,智能終端中已安裝的其他應(yīng)用不會導(dǎo)致目標(biāo)應(yīng)用的運(yùn)行時軟件棧環(huán)境與發(fā)布方期望值不相符合。通過本方法建立的運(yùn)行環(huán)境,其計算資源仍然采用原有智能終端的硬件資源,因此目標(biāo)應(yīng)用的運(yùn)行效率與外置式硬件裝置本身配置無關(guān)。
[0007]如圖1所示,本發(fā)明設(shè)計的系統(tǒng)架構(gòu)如下:
[0008]系統(tǒng)將引入一個通過智能手機(jī)的MicroUSB硬件接口與智能手機(jī)進(jìn)行連接的硬件裝置,稱為可信執(zhí)行模塊(TEM)。基于TEM可在普通智能手機(jī)平臺中為可信應(yīng)用動態(tài)建立可信運(yùn)行環(huán)境。TEM主要利用智能手機(jī)已有的計算能力、顯示能力以及網(wǎng)絡(luò)互聯(lián)能力等支持應(yīng)用運(yùn)行,TEM本身將只負(fù)責(zé)建立可信運(yùn)行環(huán)境過程中必要的核心安全功能,因此TEM只需要內(nèi)置低成本處理器及小容量RAM與Flash,支持外接SD卡等存儲卡,從而保證了 TEM的低成本。
[0009]預(yù)期系統(tǒng)運(yùn)行主要包括兩個流程:
[0010]第一個流程是應(yīng)用安全策略定制流程,通過該流程銀行等應(yīng)用發(fā)布方可為被保護(hù)應(yīng)用(例如電子錢包等)制作安全策略包。安全策略包可以由應(yīng)用發(fā)布方以存儲有安全策略包的存儲卡形式發(fā)布,也可由用戶從指定位置下載安全策略包至個人SD卡等通用存儲卡中。
[0011]第二個流程是用戶使用流程。當(dāng)用戶需要運(yùn)行該應(yīng)用時,首先將存儲有安全策略包的存儲卡連接至TEM,并將TEM連接至智能手機(jī)。然后用戶按下TEM上的“運(yùn)行”按鈕,TEM將為目標(biāo)應(yīng)用軟件包建立可信運(yùn)行環(huán)境,并通過TEM中的用戶指示燈向用戶提供可視性的可信運(yùn)行狀態(tài)信息。
[0012]在應(yīng)用安全策略定制流程中,本發(fā)明提出了一種安全策略包制作方法。該方法描述如下:
[0013]I)應(yīng)用發(fā)布方根據(jù)目標(biāo)應(yīng)用需要支持運(yùn)行的智能終端設(shè)備型號,確定該型號設(shè)備所采用的Android系統(tǒng)版本,并生成該設(shè)備中的內(nèi)核鏡像文件副本,即boot, img。通過匯總該設(shè)備已有內(nèi)核鏡像文件的副本,得到ramdisk文件。
[0014]2)根據(jù)第一步確定的系統(tǒng)版本,下載安卓源代碼,并在其內(nèi)核部分加入系統(tǒng)安全控制模塊,編譯生成內(nèi)核鏡像。
[0015]3)釋放第一步的boot, img鏡像中的ramdisk。
[0016]4)利用步驟2)生成的內(nèi)核鏡像與步驟3)提取的ramdisk文件生成boot, img,該新的boot, img文件即作為本方法的應(yīng)用安全策略包存在。
[0017]應(yīng)用安全策略定制流程中增加的系統(tǒng)安全控制模塊負(fù)責(zé)在Android系統(tǒng)內(nèi)核加載后對系統(tǒng)中運(yùn)行的應(yīng)用軟件根據(jù)安全策略進(jìn)行控制,其流程如下:
[0018]I)系統(tǒng)安全控制模塊內(nèi)置允許運(yùn)行的應(yīng)用程序APK包中dex文件的哈希值列表。該列表即為安全策略,dex文件是android下dalvik虛擬機(jī)應(yīng)用程序通用的文件后綴。
[0019]2)系統(tǒng)安全控制模塊在內(nèi)核態(tài)監(jiān)控系統(tǒng)運(yùn)行過程中映射入內(nèi)存的所有文件,對于每個文件,首先檢查其后綴名,如果為dex文件,則對其執(zhí)行哈希操作,將操作結(jié)果與第一步內(nèi)置的哈希列表中的哈希值進(jìn)行比較,如屬于該哈希列表,系統(tǒng)安全控制模塊對本次映射操作予以放行,否則拒絕本次映射操作,Dex對應(yīng)的應(yīng)用APP啟動失敗。
[0020]在用戶使用流程中,本發(fā)明提出了利用TEM構(gòu)建安全運(yùn)行環(huán)境的方法,方法如下:
[0021]I) TEM端向智能終端發(fā)送adb命令:adb reboot bootloaer,使終端重啟進(jìn)入bootloader 模式;
[0022]2) TEM 端向智能終端發(fā)送 fastboot 命令:fastboot boot boot, img,此處 boot.1mg為上文描述的應(yīng)用安全策略包。
[0023]與現(xiàn)有技術(shù)相比,本發(fā)明的積極效果為:
[0024]1、傳統(tǒng)TPM等安全運(yùn)行環(huán)境建立方法通常需要對原有終端軟硬件進(jìn)行定制修改,然而,對于智能終端,由于其產(chǎn)業(yè)結(jié)構(gòu)存在CPU產(chǎn)家各自為政,終端產(chǎn)商定制化特點(diǎn)明顯,傳統(tǒng)安全運(yùn)行環(huán)境建立方法在實(shí)際部署時很難推行。本方法提出的基于MicroUSB接口的通用外置式智能終端可信運(yùn)行環(huán)境建立方法,無需對智能終端原有軟硬件配置進(jìn)行更改,因此具有易推行的優(yōu)點(diǎn)。
[0025]2、相比較U-Key等外置式技術(shù),該類技術(shù)通常只能為密碼學(xué)運(yùn)算提供一個安全運(yùn)行環(huán)境,而本方法提出的外置式技術(shù),可以為一個完整應(yīng)用建立安全運(yùn)行環(huán)境。
[0026]3、采用本方法,應(yīng)用發(fā)布方可以自行定義目標(biāo)應(yīng)用的預(yù)期運(yùn)行環(huán)境,使得其擺脫了對其他安全方案提供商的依賴,實(shí)現(xiàn)了對自身關(guān)注內(nèi)容的安全保護(hù)能力自定義。
【專利附圖】
【附圖說明】
[0027]圖1為發(fā)明方法的系統(tǒng)架構(gòu)圖;
[0028]圖2為TEM構(gòu)建可信運(yùn)行環(huán)境工作流程圖。
【具體實(shí)施方式】
[0029]1、在應(yīng)用安全策略定制流程中,本發(fā)明提出了一種安全策略包制作方法。具體實(shí)施方法描述如下:
[0030]I)應(yīng)用發(fā)布方根據(jù)受保護(hù)應(yīng)用需要支持運(yùn)行的智能終端設(shè)備型號,確定該型號設(shè)備所采用的Android系統(tǒng)版本,并生成該設(shè)備中的內(nèi)核鏡像文件副本,即boot, img。
[0031]2)根據(jù)第一步確定的系統(tǒng)版本,下載安卓源代碼,并在其內(nèi)核部分加入系統(tǒng)安全控制模塊,系統(tǒng)安全控制模塊為一個基于Linux LSM (Linux安全模塊)框架實(shí)現(xiàn)的一組代碼,將該代碼包放置在Linux源代碼內(nèi)核中,然后根據(jù)通用的Android源代碼編譯方法,生成內(nèi)核鏡像。
[0032]3)釋放第一步的boot, img鏡像中的ramdisk。方法如下:
[0033]利用unpack-bootimg.pi 即可對 boot, img 解包得到 boot, img-ramdisk.gz。命令為:unpack-bootimg.pi boot, img。
[0034]4)利用mkbootimg,將第二步的內(nèi)核鏡像與第三步的ramdisk生成一個boot, img,該boot, img即作為應(yīng)用安全策略包存在。命令如下:
[0035]mkbootimg boot, img-kernel boot, img-ramdisk.gz~o boot, img
[0036]2、應(yīng)用安全策略定制流程中增加的系統(tǒng)安全控制模塊負(fù)責(zé)在Android系統(tǒng)內(nèi)核加載后對系統(tǒng)中運(yùn)行的應(yīng)用軟件進(jìn)行控制,其主要利用Linux LSM框架中對于內(nèi)存映射文件的系統(tǒng)調(diào)用進(jìn)行截獲與判斷,其判斷邏輯如下:
[0037]I)系統(tǒng)安全控制模塊在其代碼中內(nèi)置允許運(yùn)行的應(yīng)用程序APK包中包含dex文件的哈希值列表。該列表可采用如下方法實(shí)現(xiàn):
[0038]A.使用APK解包工具對允許運(yùn)行的應(yīng)用程序APK包進(jìn)行解包得到dex文件;
[0039]B.對dex文件做SHAl運(yùn)算;
[0040]C.將SHAl運(yùn)算得到的HASH值以數(shù)組形式預(yù)置到安全控制模塊代碼中。
[0041]2)系統(tǒng)安全控制模塊在內(nèi)核態(tài)監(jiān)控系統(tǒng)運(yùn)行過程中映射入內(nèi)存的所有文件,對于每個文件,首先檢查其后綴名,如果為dex文件,則對其執(zhí)行哈希操作,將操作結(jié)果與第一步內(nèi)置的哈希列表進(jìn)行比較,如屬于該哈希列表,系統(tǒng)安全控制模塊對本次映射操作予以放行,否則拒絕本次映射操作。
[0042]3、如圖2所示,本發(fā)明的TEM構(gòu)建可信運(yùn)行環(huán)境的工作流程如下:
[0043]I)用戶按下TEM上的“運(yùn)行鍵”,以下步驟由TEM自動執(zhí)行;
[0044]2) TEM端向智能終端發(fā)送adb命令:adb devices,如果設(shè)備與TEM處于正常連接狀態(tài),設(shè)備端會向TEM端返回設(shè)備信息;
[0045]3) TEM端檢測設(shè)備信息:若沒有檢測到設(shè)備信息,檢查設(shè)備連接以及驅(qū)動文件是否正常,確認(rèn)無誤后返回2)重新執(zhí)行;若檢測到設(shè)備信息則繼續(xù)向下執(zhí)行4);
[0046]4) TEM端向智能終端發(fā)送adb命令:adb reboot bootloaer,使手機(jī)重啟進(jìn)入bootloader 模式;
[0047]5) TEM端檢測4)中命令的返回結(jié)果:若返回錯誤(error:device not found)檢查設(shè)備連接,返回2)繼續(xù)執(zhí)行;若沒有返回錯誤則等待5秒使手機(jī)有充分的時間進(jìn)入bootloader模式然后繼續(xù)向下執(zhí)行6);
[0048]6) TEM端向智能終端發(fā)送fastboot命令:fastboot devices,用來檢測設(shè)備是否已進(jìn)入bootloader模式;
[0049]7)TEM端檢測設(shè)備信息:若沒有檢測到設(shè)備信息,檢查設(shè)備連接是否正常,返回6)重新執(zhí)行;若檢測到設(shè)備信息則繼續(xù)向下執(zhí)行8);
[0050]8) TEM端向智能終端發(fā)送fastboot命令:fastboot boot boot, img,使智能終端設(shè)備從TEM端下載boot, img并利用該img文件重啟進(jìn)入可信運(yùn)行環(huán)境;
[0051 ] 9 )判斷命令8 )是否執(zhí)行成功,若執(zhí)行成功則流程結(jié)束,若執(zhí)行失敗,則檢查boot,img文件的位置及命名是否正確,檢查并修改無誤后返回8)執(zhí)行。
【權(quán)利要求】
1.一種通用的外置式智能終端安全運(yùn)行環(huán)境構(gòu)建方法,其步驟為: 1)應(yīng)用發(fā)布方為目標(biāo)應(yīng)用建立一應(yīng)用安全策略包,其包括一ramdisk文件和一內(nèi)核鏡像;所述ramdisk文件為支持運(yùn)行該目標(biāo)應(yīng)用的智能終端所采用的Android系統(tǒng)中的ramdisk文件,在該An droid系統(tǒng)的內(nèi)核部分設(shè)置一系統(tǒng)安全控制模塊后對該An droid系統(tǒng)進(jìn)行編譯生成所述內(nèi)核鏡像;所述系統(tǒng)安全控制模塊包括一安全策略文件; 2)設(shè)置一可信執(zhí)行模塊TEM,將存儲有該應(yīng)用安全策略包的設(shè)備與該TEM數(shù)據(jù)連接,將該TEM與支持運(yùn)行該目標(biāo)應(yīng)用的智能終端數(shù)據(jù)連接; 3)該TEM發(fā)送命令信息給該智能終端,使其從該TEM端下載該應(yīng)用安全策略包,并在該智遺終纟而上啟動Android系統(tǒng); 4)該系統(tǒng)安全控制模塊在內(nèi)核態(tài)監(jiān)控該Android系統(tǒng)運(yùn)行過程中映射入內(nèi)存的所有文件,對于每個文件,檢查其是否屬于該安全策略文件中的文件,如果是則該系統(tǒng)安全控制模塊對本次映射操作予以放行,否則拒絕本次映射操作。
2.如權(quán)利要求1所述的方法,其特征在于所述安全策略文件包括一組允許運(yùn)行的文件信息。
3.如權(quán)利要求2所述的方法,其特征在于所述安全策略文件包括一允許運(yùn)行的應(yīng)用程序APK包中dex文件的哈希值列表。
4.如權(quán)利要求3所述的方法,其特征在于所述哈希列表的生成方法為:首先使用APK解包工具對允許運(yùn)行的應(yīng)用程序APK包進(jìn)行解包得到dex文件;然后對dex文件做SHAl運(yùn)算;然后將SHAl運(yùn)算得到的HASH值以數(shù)組形式預(yù)置到該系統(tǒng)安全控制模塊中。
5.如權(quán)利要求3所述的方法,其特征在于該系統(tǒng)安全控制模塊首先檢查每個映射如內(nèi)存的文件后綴名,如果為dex文件,則對其執(zhí)行哈希操作,將操作結(jié)果與該哈希列表中的哈希值進(jìn)行比較,如果有對應(yīng)的哈希值,則系統(tǒng)安全控制模塊對本次映射操作予以放行,否則拒絕本次映射操作。
6.如權(quán)利要求1?5任一所述的方法,其特征在于所述應(yīng)用安全策略包的制備方法為: 61)應(yīng)用發(fā)布方根據(jù)支持運(yùn)行目標(biāo)應(yīng)用所需的智能終端設(shè)備型號,確定該型號智能終端所采用的Android系統(tǒng)版本,并生成該型號智能終端的內(nèi)核鏡像文件副本boot, img ; 62)在該版本Android系統(tǒng)的內(nèi)核部分設(shè)置該系統(tǒng)安全控制模塊,編譯生成該內(nèi)核鏡像; 63)釋放該boot,img中的ramdisk文件; 64)將該內(nèi)核鏡像與該ramdisk文件生成一內(nèi)核鏡像文件副本boot,img,將該內(nèi)核鏡像文件副本boot, img作為所述應(yīng)用安全策略包。
7.如權(quán)利要求6所述的方法,其特征在于通過應(yīng)用發(fā)布方發(fā)布存儲有該安全策略包的存儲卡的方式獲取所述存儲有該應(yīng)用安全策略包的設(shè)備或通過從指定位置下載該安全策略包至存儲卡的方式獲取所述存儲有該應(yīng)用安全策略包的設(shè)備。
8.如權(quán)利要求1所述的方法,其特征在于,可信執(zhí)行模塊TEM利用智能終端已有的計算能力、顯示能力以及網(wǎng)絡(luò)互聯(lián)能力支持目標(biāo)應(yīng)用運(yùn)行。
9.如權(quán)利要求1所述的方法,其特征在于可信執(zhí)行模塊TEM與智能終端連接后,首先向智能終端發(fā)送adb命令:adb reboot bootloaer,使終端重啟進(jìn)入bootloader模式;然后向智能終端發(fā)送fastboot命令:fastboot boot boot, img,此處boot, img為所述應(yīng)用安全策略包。
10.如權(quán)利要求9所述的方法,其特征在于可信執(zhí)行模塊TEM上設(shè)有用戶指示燈,通過用戶指示燈向用戶提供可視性的可信運(yùn)行狀態(tài)信息。
【文檔編號】G06F21/57GK104346572SQ201310317084
【公開日】2015年2月11日 申請日期:2013年7月25日 優(yōu)先權(quán)日:2013年7月25日
【發(fā)明者】于愛民, 陳路, 楊文思 申請人:中國科學(xué)院信息工程研究所