本發(fā)明涉及可信計(jì)算技術(shù),尤其涉及一種基于可信微域的終端安全防護(hù)方法、終端。
背景技術(shù):
多域技術(shù)通常指雙域,通常用于攜帶自己的設(shè)備辦公(BYOD,Bring Your Own Device)場(chǎng)景中。參照?qǐng)D1,以三星產(chǎn)品型號(hào)為KNOX的設(shè)備為例進(jìn)行如下說(shuō)明:
工作域是設(shè)備上的一個(gè)虛擬安卓(Android)環(huán)境,工作域擁有自己獨(dú)立的界面、瀏覽器、應(yīng)用以及組件。通過(guò)使用工作域,可以消除由移動(dòng)辦公員工使用個(gè)人移動(dòng)終端工作時(shí)出現(xiàn)的數(shù)據(jù)泄露問題,同時(shí)還可以保證用于個(gè)人使用的應(yīng)用及數(shù)據(jù)的安全。通過(guò)個(gè)人域與工作域獨(dú)立的容器設(shè)置,達(dá)成了企業(yè)管理與員工隱私的雙贏局面。
可信計(jì)算(TC,Trusted Computing)是在計(jì)算和通信系統(tǒng)中廣泛使用基于硬件安全模塊支持下的可信計(jì)算平臺(tái),以提高系統(tǒng)整體的安全性。三星產(chǎn)品型號(hào)為KNOX的設(shè)備中,在架構(gòu)(framework)層為企業(yè)的用戶提供了一個(gè)安全可信的執(zhí)行環(huán)境。從而為手機(jī)中的應(yīng)用提供了一個(gè)單獨(dú)的安全的運(yùn)行環(huán)境,包括獨(dú)立的主界面、進(jìn)程空間、應(yīng)用。
多域技術(shù)目前主要用在BYOD場(chǎng)景中,保證了企業(yè)敏感數(shù)據(jù)的安全,為其數(shù)據(jù)的存儲(chǔ)提供獨(dú)立的安全存儲(chǔ)空間。將工作域與個(gè)人域分開,給員工提供安全的辦公環(huán)境;獨(dú)立的空間也防止了惡意軟件被下載到工作域。
多域技術(shù)具體實(shí)現(xiàn)方法主要分為三類:
(1)參照?qǐng)D2,獨(dú)立的雙操作系統(tǒng),兩套操作系統(tǒng)直接安裝在系統(tǒng)的不同 分區(qū),相互獨(dú)立,兩個(gè)系統(tǒng)不共享系統(tǒng)內(nèi)核,兩個(gè)系統(tǒng)不能同時(shí)運(yùn)行,需要重啟才能切換到另一個(gè)操作系統(tǒng),如Android系統(tǒng)和窗口手機(jī)系統(tǒng)(Windows Phone)。
(2)參照?qǐng)D3,硬件管理器(Hypervisor)方案的雙操作系統(tǒng),利用虛擬化技術(shù),在單個(gè)硬件平臺(tái)上運(yùn)行多個(gè)操作系統(tǒng),包括Android系統(tǒng)和非Android系統(tǒng),這兩個(gè)操作系統(tǒng)不共享內(nèi)核完全隔離,兩個(gè)系統(tǒng)同時(shí)運(yùn)行,采用軟切換模式進(jìn)行切換,不需要重啟。
(3)參照?qǐng)D4,內(nèi)核(Kernel)層隔離方案的雙操作系統(tǒng),兩個(gè)操作系統(tǒng)共享同一內(nèi)核,但是兩個(gè)操作系統(tǒng)使用不同的應(yīng)用運(yùn)行時(shí)環(huán)境,兩個(gè)操作系統(tǒng)也同時(shí)運(yùn)行,使用時(shí)無(wú)需重啟手機(jī),可一鍵實(shí)現(xiàn)兩個(gè)系統(tǒng)的無(wú)縫切換。
可信計(jì)算架構(gòu)下,終端系統(tǒng)分普通環(huán)境和安全環(huán)境;普通環(huán)境如Android操作系統(tǒng),可信環(huán)境如MobiCore可信操作系統(tǒng)。為保護(hù)普通環(huán)境中某應(yīng)用的敏感計(jì)算和存儲(chǔ),參照?qǐng)D5,可通過(guò)如下方案實(shí)現(xiàn):
1、將要保護(hù)的目標(biāo)應(yīng)用的敏感函數(shù)分離;
2、將敏感函數(shù)在可信操作系統(tǒng)上單獨(dú)實(shí)現(xiàn)為可信應(yīng)用,該實(shí)現(xiàn)依賴可信系統(tǒng)和環(huán)境,由于不具有通用性,所以成本高,門檻高;
3、通過(guò)預(yù)置或空中部署的方式,將Trustlet通過(guò)空中下載技術(shù)(OTA,Over the Air Technology)方式寫入終端可信環(huán)境中,Trustlet在可信環(huán)境中隔離存儲(chǔ),各Trustlet見互不可見,而可信環(huán)境空間小,資源緊缺。
現(xiàn)有的多域技術(shù)存在如下缺點(diǎn):
1、現(xiàn)有的多域技術(shù)粒度大,無(wú)論通過(guò)哪種方式實(shí)現(xiàn)的隔離技術(shù),都是以域的粒度進(jìn)行隔離,并將軟件進(jìn)行分類,分別裝入不同的域中,隔離粒度不夠,一旦安全域中的某應(yīng)用被惡意利用,則安全域中的其他應(yīng)用可能遭受攻擊;而如果徹底將安全域的軟件固定化,則靈活性和用戶體驗(yàn)較差,使用不方便;
2、每個(gè)域中的應(yīng)用管理方案均通過(guò)Android操作系統(tǒng)框架層進(jìn)行,無(wú)法進(jìn)行精細(xì)化管理和權(quán)限控制;
3、實(shí)現(xiàn)多域技術(shù)復(fù)雜,對(duì)Android操作系統(tǒng)框架層改動(dòng)大,需要通過(guò)出廠 前預(yù)置或刷機(jī)或系統(tǒng)升級(jí)的方式實(shí)現(xiàn)。
現(xiàn)有的可信計(jì)算技術(shù)存在如下缺點(diǎn):
1、當(dāng)前Android系統(tǒng)中,應(yīng)用的可信計(jì)算部分是由其可信計(jì)算模塊(Trustlet)完成的,而可信計(jì)算模塊需要預(yù)裝或通過(guò)OTA方式裝入可信存儲(chǔ)空間中。目前手機(jī)中可信存儲(chǔ)空間太小,無(wú)法滿足當(dāng)前眾多應(yīng)用對(duì)可信存儲(chǔ)空間和可信計(jì)算資源的需求;
2、同時(shí),應(yīng)用的可信計(jì)算部分的開發(fā)對(duì)開發(fā)環(huán)境,可信操作系統(tǒng),開發(fā)人員技術(shù)都有很高的要求,導(dǎo)致該部分的開發(fā)門檻和成本很高。
3、應(yīng)用實(shí)現(xiàn)的可信計(jì)算部分可移植性差,開發(fā)者需要針對(duì)每個(gè)可信系統(tǒng)實(shí)現(xiàn)可信計(jì)算部分,而當(dāng)前可信系統(tǒng)無(wú)標(biāo)準(zhǔn),實(shí)現(xiàn)廠家差異大。
技術(shù)實(shí)現(xiàn)要素:
為解決上述技術(shù)問題,本發(fā)明實(shí)施例提供了一種基于可信微域的終端安全防護(hù)方法、終端。
本發(fā)明實(shí)施例提供的基于可信微域的終端安全防護(hù)方法,包括:
為目標(biāo)應(yīng)用設(shè)置子微域;
通過(guò)所述子微域調(diào)用應(yīng)用程序編程接口(API,Application Programming Interface)以請(qǐng)求進(jìn)行可信計(jì)算,以及通過(guò)所述子微域調(diào)用微域核心以請(qǐng)求進(jìn)行簽名驗(yàn)證的可信計(jì)算;
當(dāng)通過(guò)所述微域核心調(diào)用API訪問微域可信計(jì)算模塊時(shí),所述微域可信計(jì)算模塊從微域可信存儲(chǔ)區(qū)域中讀取密鑰,并利用所述密鑰進(jìn)行簽名驗(yàn)證的可信計(jì)算;
所述微域可信計(jì)算模塊將計(jì)算結(jié)果發(fā)送至所述微域核心,所述微域核心將所述計(jì)算結(jié)果發(fā)送至所述子微域,所述子微域?qū)⑺鲇?jì)算結(jié)果發(fā)送至所述目標(biāo)應(yīng)用。
本發(fā)明實(shí)施例中,所述為目標(biāo)應(yīng)用設(shè)置子微域,包括:
當(dāng)安裝所述目標(biāo)應(yīng)用時(shí),利用微域核心調(diào)用微域孵化器為所述目標(biāo)應(yīng)用設(shè) 置子微域。
本發(fā)明實(shí)施例中,所述方法還包括:
當(dāng)通過(guò)所述微域核心調(diào)用API訪問微域可信計(jì)算模塊時(shí),所述微域可信計(jì)算模塊根據(jù)調(diào)用的API執(zhí)行以下功能:可信用戶交互(UI,User Interface)功能、和/或可信存儲(chǔ)功能、和/或可信計(jì)算功能。
本發(fā)明實(shí)施例中,所述方法還包括:
所述微域可信計(jì)算模塊對(duì)所述微域核心的參數(shù)進(jìn)行運(yùn)算,并將運(yùn)算結(jié)果和存儲(chǔ)在所述微域可信存儲(chǔ)區(qū)域中的數(shù)據(jù)進(jìn)行比較,以確認(rèn)所述微域核心的安全性。
本發(fā)明實(shí)施例中,所述方法還包括:
通過(guò)所述子微域?qū)λ瞿繕?biāo)應(yīng)用的請(qǐng)求指令進(jìn)行權(quán)限管理。
本發(fā)明實(shí)施例提供的終端,包括:
設(shè)置單元,用于為目標(biāo)應(yīng)用設(shè)置子微域;
第一調(diào)用單元,用于通過(guò)所述子微域調(diào)用API以請(qǐng)求進(jìn)行可信計(jì)算,以及通過(guò)所述子微域調(diào)用微域核心以請(qǐng)求進(jìn)行簽名驗(yàn)證的可信計(jì)算;
第二調(diào)用單元,用于當(dāng)通過(guò)所述微域核心調(diào)用API訪問微域可信計(jì)算模塊時(shí),所述微域可信計(jì)算模塊從微域可信存儲(chǔ)區(qū)域中讀取密鑰,并利用所述密鑰進(jìn)行簽名驗(yàn)證的可信計(jì)算;
發(fā)送單元,用于所述微域可信計(jì)算模塊將計(jì)算結(jié)果發(fā)送至所述微域核心,所述微域核心將所述計(jì)算結(jié)果發(fā)送至所述子微域,所述子微域?qū)⑺鲇?jì)算結(jié)果發(fā)送至所述目標(biāo)應(yīng)用。
本發(fā)明實(shí)施例中,所述設(shè)置單元,還用于當(dāng)安裝所述目標(biāo)應(yīng)用時(shí),利用微域核心調(diào)用微域孵化器為所述目標(biāo)應(yīng)用設(shè)置子微域。
本發(fā)明實(shí)施例中,所述終端還包括:
執(zhí)行單元,用于當(dāng)通過(guò)所述微域核心調(diào)用API訪問微域可信計(jì)算模塊時(shí),所述微域可信計(jì)算模塊根據(jù)調(diào)用的API執(zhí)行以下功能:可信用戶交互UI功能、和/或可信存儲(chǔ)功能、和/或可信計(jì)算功能。
本發(fā)明實(shí)施例中,所述終端還包括:
驗(yàn)證單元,用于通過(guò)所述微域可信計(jì)算模塊對(duì)所述微域核心的參數(shù)進(jìn)行運(yùn)算,并將運(yùn)算結(jié)果和存儲(chǔ)在所述微域可信存儲(chǔ)區(qū)域中的數(shù)據(jù)進(jìn)行比較,以確認(rèn)所述微域核心的安全性。
本發(fā)明實(shí)施例中,所述終端還包括:
管理單元,用于通過(guò)所述子微域?qū)λ瞿繕?biāo)應(yīng)用的請(qǐng)求指令進(jìn)行權(quán)限管理。
本發(fā)明實(shí)施例的技術(shù)方案中,為目標(biāo)應(yīng)用設(shè)置子微域;通過(guò)所述子微域調(diào)用API以請(qǐng)求進(jìn)行可信計(jì)算,以及通過(guò)所述子微域調(diào)用微域核心以請(qǐng)求進(jìn)行簽名驗(yàn)證的可信計(jì)算;當(dāng)通過(guò)所述微域核心調(diào)用API訪問微域可信計(jì)算模塊時(shí),所述微域可信計(jì)算模塊從微域可信存儲(chǔ)區(qū)域中讀取密鑰,并利用所述密鑰進(jìn)行簽名驗(yàn)證的可信計(jì)算;所述微域可信計(jì)算模塊將計(jì)算結(jié)果發(fā)送至所述微域核心,所述微域核心將所述計(jì)算結(jié)果發(fā)送至所述子微域,所述子微域?qū)⑺鲇?jì)算結(jié)果發(fā)送至所述目標(biāo)應(yīng)用。本發(fā)明實(shí)施例的技術(shù)方案和多域/多用戶技術(shù)方案相比:多域和多用戶技術(shù)方案通過(guò)隔離數(shù)據(jù)和域的方法實(shí)現(xiàn)。該方案下每個(gè)域或用戶空間中的應(yīng)用權(quán)限仍然是集中化管理的,雖然某些方案中能夠通過(guò)推送策略的方式進(jìn)行實(shí)現(xiàn),但的方法無(wú)法實(shí)現(xiàn)部分資源的訪問控制,粒度無(wú)法更細(xì);而通過(guò)微域核心對(duì)子微域設(shè)置訪問條件和動(dòng)態(tài)的檢查,則可實(shí)現(xiàn)細(xì)粒度的資源訪問控制。如某個(gè)應(yīng)用無(wú)法訪問通訊錄中某個(gè)人或某些分組的人的信息。其次,多域和多用戶技術(shù)需要對(duì)Android系統(tǒng)的框架層做修改才能實(shí)現(xiàn);而通過(guò)應(yīng)用實(shí)現(xiàn)的微域框架不需要對(duì)Android系統(tǒng)層做任何修改,因此實(shí)用性和普適性更廣。本發(fā)明實(shí)施例的技術(shù)方案和可信計(jì)算方案相比:手機(jī)中的可信資源非常有限,可信操作系統(tǒng),可信計(jì)算能力,可信存儲(chǔ)空間都非寶貴?,F(xiàn)有的可信計(jì)算方案中,應(yīng)用的可信部分都占有該空間的一部分,需要單獨(dú)實(shí)現(xiàn)一些通用的哈希(Hash)算法,分別實(shí)現(xiàn)可信輸入/輸出(I/O,Input/Output)等;通過(guò)微域核心代理,將微域可信計(jì)算模塊的通用計(jì)算和存儲(chǔ)能力暴露出來(lái),實(shí)現(xiàn)通用模塊,集中管理安全存儲(chǔ)能力,方便進(jìn)行存儲(chǔ)優(yōu)化,可有效改善資源有限的問題。其次,通過(guò)微域核心作代理,應(yīng)用進(jìn)行無(wú)需進(jìn)行可信計(jì)算部分的單獨(dú)開發(fā),解決 了可信計(jì)算開發(fā)門檻高,成本高的問題。同時(shí),只需實(shí)現(xiàn)同樣的接口,即可將應(yīng)用安裝到不同可信系統(tǒng)和不同硬件的手機(jī)中,通過(guò)微域方案解決差異化,增加了應(yīng)用的可移植性。
附圖說(shuō)明
圖1為雙域技術(shù)的示意圖;
圖2為獨(dú)立雙操作系統(tǒng)的示意圖;
圖3為硬件Hypervisor雙操作系統(tǒng)的示意圖;
圖4為Kernel層隔離的雙操作系統(tǒng)的示意圖;
圖5為可信計(jì)算架構(gòu)的示意圖;
圖6為本發(fā)明實(shí)施例一的基于可信微域的終端安全防護(hù)方法的流程示意圖;
圖7為本發(fā)明實(shí)施例二的基于可信微域的終端安全防護(hù)方法的流程示意圖;
圖8為本發(fā)明實(shí)施例的終端的結(jié)構(gòu)組成示意圖;
圖9為本發(fā)明實(shí)施例的終端的系統(tǒng)架構(gòu)示意圖;
圖10為本發(fā)明實(shí)施例的微域可信計(jì)算模塊的示意圖;
圖11為本發(fā)明實(shí)施例的微域核心的示意圖;
圖12為本發(fā)明實(shí)施例的子微域孵化器的示意圖;
圖13為本發(fā)明實(shí)施例的子微域的示意圖。
具體實(shí)施方式
為了能夠更加詳盡地了解本發(fā)明實(shí)施例的特點(diǎn)與技術(shù)內(nèi)容,下面結(jié)合附圖對(duì)本發(fā)明實(shí)施例的實(shí)現(xiàn)進(jìn)行詳細(xì)闡述,所附附圖僅供參考說(shuō)明之用,并非用來(lái)限定本發(fā)明實(shí)施例。
圖6為本發(fā)明實(shí)施例一的基于可信微域的終端安全防護(hù)方法的流程示意圖,如圖6所示,所述基于可信微域的終端安全防護(hù)方法包括以下步驟:
步驟601:為目標(biāo)應(yīng)用設(shè)置子微域。
本發(fā)明實(shí)施例中,當(dāng)安裝所述目標(biāo)應(yīng)用時(shí),利用微域核心調(diào)用微域孵化器為所述目標(biāo)應(yīng)用設(shè)置子微域。
步驟602:通過(guò)所述子微域調(diào)用API以請(qǐng)求進(jìn)行可信計(jì)算,以及通過(guò)所述子微域調(diào)用微域核心以請(qǐng)求進(jìn)行簽名驗(yàn)證的可信計(jì)算。
本發(fā)明實(shí)施例中,當(dāng)通過(guò)所述微域核心調(diào)用API訪問微域可信計(jì)算模塊時(shí),所述微域可信計(jì)算模塊根據(jù)調(diào)用的API執(zhí)行以下功能:可信用戶交互UI功能、和/或可信存儲(chǔ)功能、和/或可信計(jì)算功能。
本發(fā)明實(shí)施例中,所述微域可信計(jì)算模塊對(duì)所述微域核心的參數(shù)進(jìn)行運(yùn)算,并將運(yùn)算結(jié)果和存儲(chǔ)在所述微域可信存儲(chǔ)區(qū)域中的數(shù)據(jù)進(jìn)行比較,以確認(rèn)所述微域核心的安全性。
本發(fā)明實(shí)施例中,通過(guò)所述子微域?qū)λ瞿繕?biāo)應(yīng)用的請(qǐng)求指令進(jìn)行權(quán)限管理。
步驟603:當(dāng)通過(guò)所述微域核心調(diào)用API訪問微域可信計(jì)算模塊時(shí),所述微域可信計(jì)算模塊從微域可信存儲(chǔ)區(qū)域中讀取密鑰,并利用所述密鑰進(jìn)行簽名驗(yàn)證的可信計(jì)算。
步驟604:所述微域可信計(jì)算模塊將計(jì)算結(jié)果發(fā)送至所述微域核心,所述微域核心將所述計(jì)算結(jié)果發(fā)送至所述子微域,所述子微域?qū)⑺鲇?jì)算結(jié)果發(fā)送至所述目標(biāo)應(yīng)用。
本發(fā)明實(shí)施例中,微域核心和子微域孵化器在一個(gè)安裝包中,可以通過(guò)預(yù)置在普通操作系統(tǒng)(OS,Operator System)環(huán)境(如Android)中或用戶通過(guò)應(yīng)用(App)商店(如Google Play)下載主動(dòng)安裝。
本發(fā)明實(shí)施例中,微域可信計(jì)算模塊作為可信應(yīng)用,可以預(yù)置在可信OS環(huán)境中,也可以通過(guò)可信服務(wù)管理(TSM)下載。
本發(fā)明實(shí)施例中,微域可信存儲(chǔ)區(qū)域?yàn)榭尚怒h(huán)境中的一塊可信存儲(chǔ)空間。
結(jié)合上述說(shuō)明,現(xiàn)通過(guò)圖7對(duì)本發(fā)明實(shí)施例的基于可信微域的終端安全防護(hù)方法再進(jìn)行描述。
圖7為本發(fā)明實(shí)施例二的基于可信微域的終端安全防護(hù)方法的流程示意圖,如圖7所示,所述基于可信微域的終端安全防護(hù)方法包括以下步驟:
步驟701:用戶安裝應(yīng)用時(shí),選擇通過(guò)微域核心實(shí)現(xiàn)安裝。
步驟702:微域核心啟動(dòng)或調(diào)用子微域孵化器,實(shí)現(xiàn)對(duì)應(yīng)用的子微域注入。
步驟703:應(yīng)用啟動(dòng)運(yùn)行,通過(guò)子微域調(diào)用系統(tǒng)API請(qǐng)求進(jìn)行可信計(jì)算。
步驟704:子微域調(diào)用微域核心,請(qǐng)求進(jìn)行簽名驗(yàn)證的可信計(jì)算。
步驟705:微域核心調(diào)用API訪問微域可信計(jì)算模塊。
步驟706:微域可信計(jì)算模塊訪問其微域可信存儲(chǔ)區(qū)域,請(qǐng)求讀取密鑰。
步驟707:微域可信計(jì)算模塊從其微域可信存儲(chǔ)區(qū)域中讀取到計(jì)算所用密鑰。
步驟708:微域可信計(jì)算模塊進(jìn)行簽名驗(yàn)證的可信計(jì)算。
步驟709:微域可信計(jì)算模塊將計(jì)算結(jié)果返回給微域核心。
步驟710:微域核心將計(jì)算結(jié)果返回給子微域。
步驟711:子微域?qū)⒂?jì)算結(jié)果返回給應(yīng)用。
圖8為本發(fā)明實(shí)施例的終端的結(jié)構(gòu)組成示意圖,如圖8所示,所述終端包括:
設(shè)置單元81,用于為目標(biāo)應(yīng)用設(shè)置子微域;
第一調(diào)用單元82,用于通過(guò)所述子微域調(diào)用API以請(qǐng)求進(jìn)行可信計(jì)算,以及通過(guò)所述子微域調(diào)用微域核心以請(qǐng)求進(jìn)行簽名驗(yàn)證的可信計(jì)算;
第二調(diào)用單元83,用于當(dāng)通過(guò)所述微域核心調(diào)用API訪問微域可信計(jì)算模塊時(shí),所述微域可信計(jì)算模塊從微域可信存儲(chǔ)區(qū)域中讀取密鑰,并利用所述密鑰進(jìn)行簽名驗(yàn)證的可信計(jì)算;
發(fā)送單元84,用于所述微域可信計(jì)算模塊將計(jì)算結(jié)果發(fā)送至所述微域核心,所述微域核心將所述計(jì)算結(jié)果發(fā)送至所述子微域,所述子微域?qū)⑺鲇?jì)算結(jié)果發(fā)送至所述目標(biāo)應(yīng)用。
所述設(shè)置單元81,還用于當(dāng)安裝所述目標(biāo)應(yīng)用時(shí),利用微域核心調(diào)用微域孵化器為所述目標(biāo)應(yīng)用設(shè)置子微域。
所述終端還包括:
執(zhí)行單元85,用于當(dāng)通過(guò)所述微域核心調(diào)用API訪問微域可信計(jì)算模塊時(shí),所述微域可信計(jì)算模塊根據(jù)調(diào)用的API執(zhí)行以下功能:可信用戶交互UI功能、和/或可信存儲(chǔ)功能、和/或可信計(jì)算功能。
所述終端還包括:
驗(yàn)證單元86,用于通過(guò)所述微域可信計(jì)算模塊對(duì)所述微域核心的參數(shù)進(jìn)行運(yùn)算,并將運(yùn)算結(jié)果和存儲(chǔ)在所述微域可信存儲(chǔ)區(qū)域中的數(shù)據(jù)進(jìn)行比較,以確認(rèn)所述微域核心的安全性。
所述終端還包括:
管理單元87,用于通過(guò)所述子微域?qū)λ瞿繕?biāo)應(yīng)用的請(qǐng)求指令進(jìn)行權(quán)限管理。
本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,圖8所示的終端中的各單元的實(shí)現(xiàn)功能可參照前述基于可信微域的終端安全防護(hù)方法的相關(guān)描述而理解。圖8所示的終端中的各單元的功能可通過(guò)運(yùn)行于處理器上的程序而實(shí)現(xiàn),也可通過(guò)具體的邏輯電路而實(shí)現(xiàn)。
下面結(jié)合具體應(yīng)用場(chǎng)景對(duì)本發(fā)明實(shí)施例的終端中的各個(gè)單元模塊的功能進(jìn)行詳細(xì)說(shuō)明。
圖9為本發(fā)明實(shí)施例的終端的系統(tǒng)架構(gòu)示意圖,如圖9所示,終端的系統(tǒng)包括:普通的操作系統(tǒng),本發(fā)明實(shí)施例以Android系統(tǒng)為例;可信操作系統(tǒng)。
其中,Android系統(tǒng)中,安裝了多個(gè)應(yīng)用,例如,支付寶、微信、企業(yè)辦公軟件。每個(gè)應(yīng)用均對(duì)應(yīng)一個(gè)子微域。Android系統(tǒng)中具有子微域孵化器和微域核心。
可信操作系統(tǒng)中具有微域可信計(jì)算模塊和微域可信存儲(chǔ)區(qū)域。
可見,本發(fā)明實(shí)施例的微域的實(shí)現(xiàn)由4部分組成:子微域、子微域孵化器、微域核心、微域可信計(jì)算模塊(微域可信存儲(chǔ)區(qū)域)。
參照?qǐng)D10,圖10為微域可信計(jì)算模塊的示意圖,微域可信計(jì)算模塊基于可信操作系統(tǒng)開發(fā),是一個(gè)標(biāo)準(zhǔn)的Trustlet。微域可信計(jì)算模塊通過(guò)API的形式, 對(duì)外提供通用的可信UI組件功能。具體地:
①微域可信計(jì)算模塊API,由微域核心調(diào)用,以API的形式提供微域可信計(jì)算模塊的功能服務(wù),功能服務(wù)包括:可信UI功能、可信存儲(chǔ)功能、可信計(jì)算功能;
②可信界面(TUI)功能:當(dāng)微域核心需要保證UI操作安全的時(shí)候,調(diào)用組件中的API,通過(guò)通用可信UI接口接受用戶輸入(如支付密碼的輸入等操作);可信UI的編碼實(shí)現(xiàn)按照可信系統(tǒng)要求實(shí)現(xiàn)即可;
③可信計(jì)算功能具體實(shí)現(xiàn)是:實(shí)現(xiàn)通用的Hash和加解密算法,按照可信操作系統(tǒng)平臺(tái)要求進(jìn)行編碼實(shí)現(xiàn);結(jié)合可信存儲(chǔ)功能的實(shí)現(xiàn),對(duì)外提供跟敏感數(shù)據(jù)相關(guān)的通用加解密和Hash運(yùn)算。
④可信存儲(chǔ)IO功能具體實(shí)現(xiàn)是:應(yīng)用程序,如支付寶或微信,需要存儲(chǔ)和讀取用戶的手勢(shì)、用戶名和密碼、密鑰或指紋等信息。應(yīng)用程序?qū)⑦@些信息通過(guò)調(diào)用子微域的API,經(jīng)過(guò)微域核心,最終通過(guò)微域核心將這些敏感信息進(jìn)行讀取和存儲(chǔ)。要實(shí)現(xiàn)此功能,微域核心需要記錄密鑰信息,指紋信息等關(guān)鍵性敏感信息時(shí),在其所能操作的微域可信存儲(chǔ)區(qū)域內(nèi),根據(jù)請(qǐng)求所帶的應(yīng)用信息(如應(yīng)用的簽名),對(duì)關(guān)鍵性敏感信息進(jìn)行基于索引的讀取和存儲(chǔ)。其中索引是基于應(yīng)用信息建立的,應(yīng)用信息包括包名,簽名,版本等。
參照?qǐng)D11,圖11為微域核心的示意圖,微域核心有如下2個(gè)功能:①提供子微域和微域可信計(jì)算模塊間的接口,建立兩者間的調(diào)用通道;②生成和管理子微域孵化器;具體地:
①微域核心提供API供子微域調(diào)用;
②驗(yàn)證的實(shí)現(xiàn):可信組件將核心的包名,簽名,版本號(hào)等信息在可信硬件中進(jìn)行運(yùn)算,運(yùn)算可以是Hash或其他類似算法,并將結(jié)果和存儲(chǔ)在微域可信存儲(chǔ)區(qū)中的數(shù)據(jù)進(jìn)行對(duì)比,如符合預(yù)期,則確認(rèn)微域核心的安全性;
③通道接口的實(shí)現(xiàn):核心調(diào)用微域可信計(jì)算模塊提供的API,通過(guò)支持可信計(jì)算的Android手機(jī)提供的系統(tǒng)接口實(shí)現(xiàn),具體實(shí)現(xiàn)依賴于所采用的可信操作系統(tǒng);
④生成和管理子微域孵化器的實(shí)現(xiàn):孵化器由核心通過(guò)生成子進(jìn)程的方式生成。核心通過(guò)實(shí)現(xiàn)Android系統(tǒng)安裝器和應(yīng)用包APK重打包的功能,使孵化器能在應(yīng)用安裝時(shí)或進(jìn)行安全請(qǐng)求時(shí),為該應(yīng)用生成特定子微域。
安全性分析:核心經(jīng)過(guò)可信組件驗(yàn)證后,生成的子微域孵化器及由子微域孵化器生成的子微域均可保證可信性,最后通過(guò)子微域?qū)?yīng)用進(jìn)行驗(yàn)證,從而將信任鏈延伸至應(yīng)用。
參照?qǐng)D12,圖12為子微域孵化器的示意圖,子微域孵化器作為微域核心的子進(jìn)程,負(fù)責(zé)為單個(gè)應(yīng)用定制出特定的子微域。具體地:
①應(yīng)用注入和打包器具體實(shí)現(xiàn)是:當(dāng)微域核心觸發(fā)啟用的防護(hù)機(jī)制時(shí),孵化器讀取和解壓目標(biāo)應(yīng)用的安裝包,并將子微域注入到安裝包中,而后重新進(jìn)行打包。
這里,除上述通過(guò)子微域孵化器生成子微域的方法外,可采用重新打包并簽名的方法實(shí)現(xiàn)同樣的效果,有3種實(shí)現(xiàn)方法:A、通過(guò)線下打包后將包發(fā)給APK開發(fā)者簽名;B、在線發(fā)送包HASH數(shù)據(jù)給合作方,合作方簽名驗(yàn)證請(qǐng)求者的身份后,將簽名數(shù)據(jù)發(fā)回,子微域孵化器在線接收簽名數(shù)據(jù)并添加到APK的簽名位置中。C、通過(guò)和開發(fā)者合作,將HASH后簽名的數(shù)據(jù)緩存到子微域中加密存儲(chǔ)或子微域的云端,注入子微域后直接添加簽名數(shù)據(jù)。
②孵化進(jìn)程管理器:作為微域核心的子進(jìn)程,同微域核心交互,并運(yùn)行和管理應(yīng)用注入和打包器。
參照?qǐng)D13,圖13為子微域的示意圖,子微域以二進(jìn)制和字節(jié)碼的形式注入到每個(gè)應(yīng)用安裝包中,在應(yīng)用的進(jìn)程中運(yùn)行,并負(fù)責(zé)和微域核心通信。具體地:
①將I/O、設(shè)備資源申請(qǐng)、網(wǎng)絡(luò)傳輸、數(shù)據(jù)庫(kù)和內(nèi)容提供tContentProvider等相關(guān)的系統(tǒng)調(diào)用,采用Hook的方法先在子微域的調(diào)用分析和控制模塊中進(jìn)行權(quán)限和資源的審核,通過(guò)后方可進(jìn)行系統(tǒng)API的調(diào)用,否則按照規(guī)則對(duì)其進(jìn)行資源訪問限制
②系統(tǒng)調(diào)用子微域提供的可信API,可在實(shí)現(xiàn)了微域方案的任何機(jī)器上進(jìn) 行可信API的調(diào)用,從而實(shí)現(xiàn)了對(duì)可信平臺(tái)無(wú)關(guān)的特性;
③調(diào)用分析和控制模塊:微域核心對(duì)資源申請(qǐng)的合理性做分析和控制后,以決定是否在某種條件下對(duì)資源的訪問進(jìn)行某種限制;分析和控制的方法是:A、通過(guò)云端動(dòng)態(tài)分析應(yīng)用行為的惡意性及權(quán)限和行為的異常(參考?xì)⒍拒浖腁PP動(dòng)態(tài)分析方法);B、用戶開關(guān),用戶通過(guò)子微域的APP資源開關(guān)對(duì)APP進(jìn)行資源管控,C、策略分發(fā),云端推送到子微域相關(guān)權(quán)限策略文件,對(duì)子微域進(jìn)行基于策略的細(xì)粒度訪問控制。
本發(fā)明實(shí)施例所記載的技術(shù)方案之間,在不沖突的情況下,可以任意組合。
在本發(fā)明所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的方法和智能設(shè)備,可以通過(guò)其它的方式實(shí)現(xiàn)。以上所描述的設(shè)備實(shí)施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,如:多個(gè)單元或組件可以結(jié)合,或可以集成到另一個(gè)系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另外,所顯示或討論的各組成部分相互之間的耦合、或直接耦合、或通信連接可以是通過(guò)一些接口,設(shè)備或單元的間接耦合或通信連接,可以是電性的、機(jī)械的或其它形式的。
上述作為分離部件說(shuō)明的單元可以是、或也可以不是物理上分開的,作為單元顯示的部件可以是、或也可以不是物理單元,即可以位于一個(gè)地方,也可以分布到多個(gè)網(wǎng)絡(luò)單元上;可以根據(jù)實(shí)際的需要選擇其中的部分或全部單元來(lái)實(shí)現(xiàn)本實(shí)施例方案的目的。
另外,在本發(fā)明各實(shí)施例中的各功能單元可以全部集成在一個(gè)第二處理單元中,也可以是各單元分別單獨(dú)作為一個(gè)單元,也可以兩個(gè)或兩個(gè)以上單元集成在一個(gè)單元中;上述集成的單元既可以采用硬件的形式實(shí)現(xiàn),也可以采用硬件加軟件功能單元的形式實(shí)現(xiàn)。
以上所述,僅為本發(fā)明的具體實(shí)施方式,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。