一種基于處理器安全擴(kuò)展的智能終端隔離系統(tǒng)及方法
【專利摘要】一種基于處理器安全擴(kuò)展的智能終端隔離系統(tǒng)及方法,包括安全啟動(dòng)模塊、事務(wù)委托模塊、通信代理模塊、安全擴(kuò)展抽象層、安全操作系統(tǒng)、安全中間件、可信應(yīng)用模塊、普通應(yīng)用模塊。安全啟動(dòng)模塊對(duì)智能終端硬件環(huán)境進(jìn)行簡(jiǎn)單初始化,并認(rèn)證和引導(dǎo)安全操作系統(tǒng)。通信代理模塊負(fù)責(zé)可信應(yīng)用模塊和普通應(yīng)用模塊的底層數(shù)據(jù)封裝與通信。安全擴(kuò)展抽象層將為安全操作系統(tǒng)提供統(tǒng)一的調(diào)用接口。安全操作系統(tǒng)將為整個(gè)安全域內(nèi)可信應(yīng)用模塊提供相互獨(dú)立的運(yùn)行空間,并管理安全域內(nèi)所有軟硬件資源。安全中間件實(shí)現(xiàn)安全功能、事務(wù)委托相關(guān)的核心庫(kù),并為可信應(yīng)用提供相關(guān)的功能接口。本發(fā)明目的在于為智能終端提供完整的安全隔離機(jī)制,提高軟件運(yùn)行環(huán)境的安全性。
【專利說(shuō)明】一種基于處理器安全擴(kuò)展的智能終端隔離系統(tǒng)及方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種基于處理器安全擴(kuò)展的智能終端隔離系統(tǒng)及方法,屬于智能終端的安全領(lǐng)域。
【背景技術(shù)】
[0002]當(dāng)前,整個(gè)信息產(chǎn)業(yè)經(jīng)歷從傳統(tǒng)的互聯(lián)網(wǎng)到移動(dòng)互聯(lián)網(wǎng)的轉(zhuǎn)變,智能終端的功能和形態(tài)更加多樣化,智能終端所實(shí)現(xiàn)的功能不僅是普羅大眾的通信、社交以及娛樂(lè)方向,更加希望能夠?qū)崿F(xiàn)傳統(tǒng)PC所擁有的企業(yè)辦公、支付等高安全、高敏感業(yè)務(wù)需求的功能。
[0003]在智能終端實(shí)現(xiàn)高安全、高敏感業(yè)務(wù)場(chǎng)景時(shí)(如辦公、支付),在終端運(yùn)行環(huán)境方面有以下幾個(gè)主要問(wèn)題:(I)智能終端普通操作系統(tǒng)容易受到攻擊,智能終端整體運(yùn)行環(huán)境無(wú)法達(dá)到足夠的安全等級(jí)?,F(xiàn)在市場(chǎng)上流行的安卓系統(tǒng),由于系統(tǒng)的開放性、系統(tǒng)自身設(shè)計(jì)的特點(diǎn),再加上各個(gè)廠家的定制,導(dǎo)致操作系統(tǒng)版本的碎片化。無(wú)法在智能終端操作系統(tǒng)層面進(jìn)行統(tǒng)一的安全機(jī)制和策略的管理。此外,對(duì)中國(guó)大陸市場(chǎng)而言,應(yīng)用生命周期管理的也是極其混亂的,導(dǎo)致終端用戶意外安裝惡意木馬與病毒的幾率大大提升。智能終端整體運(yùn)行環(huán)境以其中運(yùn)行的應(yīng)用程序,都可能遭受非法監(jiān)聽(tīng)與竊取,安全性得不到有效保障。
(2)由于上述問(wèn)題的存在,導(dǎo)致展開企業(yè)辦公、支付等業(yè)務(wù)的基本安全條件無(wú)法得到滿足。
[0004]在辦公、支付等高敏感業(yè)務(wù)場(chǎng)景下,基本安全條件涉及以下幾個(gè)關(guān)鍵技術(shù)點(diǎn):
[0005](I)安全顯示與安全輸入
[0006]高安全、高敏感業(yè)務(wù)發(fā)起、執(zhí)行、結(jié)束過(guò)程中,存在著許多與用戶交互的場(chǎng)景。例如,終端用戶輸入登錄賬戶信息、個(gè)人密碼,智能終端需要顯示相關(guān)敏感業(yè)務(wù)與數(shù)據(jù)的Π界面等。
[0007]這些基本需求在技術(shù)層面,要求智能終端有能力提供諸如顯示屏安全鎖定,顯示數(shù)據(jù)安全緩存,輸入事件安全響應(yīng)等。由于問(wèn)題一的存在,這些基本底層安全機(jī)制將無(wú)法得到保障,導(dǎo)致高敏感業(yè)務(wù)從發(fā)起階段就已經(jīng)失去了安全性。
[0008](2)關(guān)鍵邏輯處理單元的高安全運(yùn)行環(huán)境
[0009]高安全、高敏感業(yè)務(wù)的關(guān)鍵邏輯處理單元往往需要進(jìn)行諸如關(guān)鍵數(shù)據(jù)與信息核對(duì),關(guān)鍵認(rèn)證以及關(guān)鍵數(shù)據(jù)結(jié)果運(yùn)算等操作。關(guān)鍵邏輯處理單元可以按照進(jìn)程的方式存在及運(yùn)行,由于問(wèn)題一的存在,智能終端的普通操作系統(tǒng)無(wú)法提供可靠的運(yùn)行環(huán)境,防止邏輯業(yè)務(wù)與數(shù)據(jù)被監(jiān)聽(tīng)和篡改。
[0010](3)敏感數(shù)據(jù)的安全存儲(chǔ)
[0011]敏感數(shù)據(jù)包括用戶的賬戶信息、個(gè)人隱私信息以及業(yè)務(wù)計(jì)算結(jié)果等。通常的方式是通過(guò)存儲(chǔ)秘鑰加密相關(guān)數(shù)據(jù),并將加密數(shù)據(jù)保存在普通文件系統(tǒng)介質(zhì)中。然而,由于問(wèn)題一的存在,對(duì)于存儲(chǔ)密碼進(jìn)行相關(guān)軟件的防護(hù)往往達(dá)不到應(yīng)有的安全等級(jí)。這將導(dǎo)致敏感數(shù)據(jù)存在竊取的風(fēng)險(xiǎn)。此外,將敏感數(shù)據(jù)存儲(chǔ)與普通文件系統(tǒng)介質(zhì)中也存在遭受非法破壞的風(fēng)險(xiǎn)。
[0012]綜上,現(xiàn)在市場(chǎng)上大多數(shù)智能終端開展高敏感業(yè)務(wù)時(shí),缺乏一個(gè)可信計(jì)算基作為技術(shù)支撐。
【發(fā)明內(nèi)容】
[0013]本發(fā)明的技術(shù)解決問(wèn)題:克服現(xiàn)有技術(shù)的不足,提供一種基于處理器安全擴(kuò)展的智能終端隔離系統(tǒng)及方法,能夠在不影響用戶體驗(yàn)的前提下,保證對(duì)普通操作系統(tǒng)最小修改的情況下,為高敏感應(yīng)用程序提供高安全級(jí)別的軟件運(yùn)行環(huán)境,促使應(yīng)用程序的數(shù)據(jù)輸入、處理以及輸出處于一個(gè)隔離運(yùn)行環(huán)境中,有效防止惡意軟件的攻擊。
[0014]本發(fā)明技術(shù)解決方案:一種基于處理器安全擴(kuò)展的智能終端隔離系統(tǒng),包括安全啟動(dòng)模塊、事務(wù)委托模塊、通信代理模塊、安全擴(kuò)展抽象層、安全操作系統(tǒng)、安全中間件、可信應(yīng)用模塊、普通應(yīng)用模塊;
[0015]安全啟動(dòng)模塊對(duì)智能終端硬件環(huán)境進(jìn)行簡(jiǎn)單初始化,并認(rèn)證、引導(dǎo)安全操作系統(tǒng)。通信代理模塊負(fù)責(zé)可信應(yīng)用模塊和普通應(yīng)用模塊的底層數(shù)據(jù)封裝與通信。安全擴(kuò)展抽象層將為安全操作系統(tǒng)提供統(tǒng)一的調(diào)用接口,隔離各個(gè)處理器安全擴(kuò)展的具體差異。安全操作系統(tǒng)將為整個(gè)安全域內(nèi)可信應(yīng)用模塊提供相互獨(dú)立的運(yùn)行空間、任務(wù)調(diào)度與管理、內(nèi)存管理、安全設(shè)備管理、安全中斷管理。安全中間件實(shí)現(xiàn)安全功能、事務(wù)委托相關(guān)的核心庫(kù),并為可信應(yīng)用提供相關(guān)的功能接口。普通應(yīng)用模塊完成不同應(yīng)用程序的常規(guī)交互功能,并通過(guò)通信代理模塊向可信應(yīng)用模塊發(fā)起安全請(qǐng)求。可信應(yīng)用模塊接受安全操作系統(tǒng)的調(diào)度,并處理相關(guān)的安全請(qǐng)求。
[0016]安全擴(kuò)展所述處理器安全擴(kuò)展是一種芯片級(jí)的安全支撐技術(shù),該安全擴(kuò)展包括的功能有:(1)支持處理器運(yùn)行在安全和非安全運(yùn)行狀態(tài),兩種運(yùn)行環(huán)境相互獨(dú)立、物理上隔離,關(guān)鍵寄存器在安全與非安全狀態(tài)能夠進(jìn)行硬件級(jí)自動(dòng)備份,安全狀態(tài)下執(zhí)行的代碼、訪問(wèn)的數(shù)據(jù)和設(shè)備稱為安全域,非安全狀態(tài)下執(zhí)行的代碼、訪問(wèn)的數(shù)據(jù)和設(shè)備稱為非安全域。
(2)支持處理器地址空間的安全與非安全劃分,當(dāng)處理器處于安全狀態(tài)時(shí),能夠訪問(wèn)所有的地址空間,當(dāng)處理器處于非安全狀態(tài)時(shí),只能訪問(wèn)非安全地址空間。(3)當(dāng)發(fā)生異常時(shí),處理器可以根據(jù)當(dāng)前運(yùn)行狀態(tài),跳轉(zhuǎn)到相應(yīng)的(安全、非安全、守護(hù)態(tài)的)異常向量表執(zhí)行異常處理代碼。(4)支持處理器的守護(hù)狀態(tài)(屬于一種特殊的安全狀態(tài)),該狀態(tài)下的處理器可以同時(shí)訪問(wèn)安全、非安全狀態(tài)下的各個(gè)寄存器值、存儲(chǔ)空間以及外部設(shè)備。(5) IRQ以及FIQ可以進(jìn)行安全、非安全的中斷類型設(shè)置?,F(xiàn)有技術(shù)中,如Trustzone技術(shù)即滿足以上要求。
[0017]所述安全啟動(dòng)模塊則由多級(jí)安全引導(dǎo)模塊組成,包括上電初始化模塊、認(rèn)證模塊、安全操作系統(tǒng)引導(dǎo)模塊。智能終端上電后,首先運(yùn)行的是上電初始化模塊,該模塊將負(fù)責(zé)硬件的簡(jiǎn)單初始化,如時(shí)鐘初始化、異常向量表設(shè)置以及處理器安全擴(kuò)展模塊初始化等。認(rèn)證模塊提供基礎(chǔ)的加密、解密、認(rèn)證功能,初始化模塊通過(guò)調(diào)用認(rèn)證模塊,確保安全操作系統(tǒng)引導(dǎo)模塊的完整性、合法性。當(dāng)安全操作系統(tǒng)引導(dǎo)模塊通過(guò)認(rèn)證后,上電初始化模塊將安全操作系統(tǒng)引導(dǎo)模塊加載到指定安全存儲(chǔ)區(qū)運(yùn)行。安全操作系統(tǒng)引導(dǎo)模塊將調(diào)用認(rèn)證模塊對(duì)安全操作系統(tǒng)的完整性、合法性進(jìn)行認(rèn)證。如果通過(guò)認(rèn)證,則安全啟動(dòng)過(guò)程完成,安全操作系統(tǒng)引導(dǎo)模塊將會(huì)引導(dǎo)、加載安全操作系統(tǒng),處理器執(zhí)行權(quán)將交給安全操作系統(tǒng)進(jìn)行進(jìn)一步初始化工作。如果未通過(guò)認(rèn)證,則系統(tǒng)掛起,安全啟動(dòng)失敗。
[0018]所述通信代理模塊包括普通應(yīng)用通信模塊、可信應(yīng)用通信模塊組成。普通應(yīng)用通信代理模塊接收來(lái)自普通應(yīng)用模塊的數(shù)據(jù),進(jìn)行格式化封裝后,傳遞數(shù)據(jù)給可信應(yīng)用通信模塊??尚艖?yīng)用通信模塊將接收的數(shù)據(jù)進(jìn)行解析,傳遞給安全操作系統(tǒng)的安全守護(hù)模塊進(jìn)行進(jìn)一步處理。普通應(yīng)用通信模塊和可信應(yīng)用通信模塊分別運(yùn)行在非安全和安全域。通信代理模塊將作為普通應(yīng)用模塊和可信應(yīng)用模塊的底層通信機(jī)制。
[0019]所述安全操作系統(tǒng)將作為整個(gè)隔離系統(tǒng)的管理者,由內(nèi)存管理模塊、加密文件系統(tǒng)、安全調(diào)度器、可信應(yīng)用加載模塊、系統(tǒng)調(diào)用模塊、安全設(shè)備與驅(qū)動(dòng)管理模塊、安全守護(hù)模塊、安全中斷管理模塊、各類安全設(shè)備驅(qū)動(dòng)程序組成。內(nèi)存管理模塊為安全設(shè)備與驅(qū)動(dòng)管理模塊、安全守護(hù)模塊、可信應(yīng)用加載模塊、安全中斷管理模塊、進(jìn)程調(diào)度模塊的運(yùn)行提供底層的內(nèi)存分配與釋放機(jī)制,并負(fù)責(zé)設(shè)置普通操作系統(tǒng)以及安全操作系統(tǒng)各自的物理內(nèi)存區(qū)域,負(fù)責(zé)操作系統(tǒng)之間共享內(nèi)存塊的分配與撤銷。通過(guò)安全設(shè)備與驅(qū)動(dòng)管理模塊,加密文件系統(tǒng)可以方便的操作各類存儲(chǔ)設(shè)備,對(duì)文件進(jìn)行讀取和寫回操作。安全中斷管理模塊為安全設(shè)備與驅(qū)動(dòng)管理模塊提供底層的中斷響應(yīng)機(jī)制。安全設(shè)備與驅(qū)動(dòng)管理模塊負(fù)責(zé)管理各類安全設(shè)備,如觸摸屏、顯示屏、特殊安全元件以及非易失性存儲(chǔ)器(如Flash)等。各類安全設(shè)備驅(qū)動(dòng)通過(guò)安全設(shè)備與驅(qū)動(dòng)管理模塊完成對(duì)安全設(shè)備的初始化以及各類請(qǐng)求響應(yīng)。由于安全操作系統(tǒng)運(yùn)行在內(nèi)核態(tài),為了滿足可信應(yīng)用和安全操作系統(tǒng)的交互需求,系統(tǒng)調(diào)用模塊提供一系列接口函數(shù)幫助用戶態(tài)的可信應(yīng)用獲得安全操作系統(tǒng)的功能支持。當(dāng)可信應(yīng)用模塊需要運(yùn)行時(shí),由可信應(yīng)用加載模塊進(jìn)行認(rèn)證,確保可信應(yīng)用的完整性、合法性,隨后通過(guò)認(rèn)證的可信應(yīng)用模塊將被加載到內(nèi)存。安全調(diào)度器作為所有可信應(yīng)用的調(diào)度器,負(fù)責(zé)從運(yùn)行隊(duì)列中挑選出合適的應(yīng)用程序占有處理器,獲得執(zhí)行機(jī)會(huì)。
[0020]安全操作系統(tǒng)各個(gè)模塊之間啟動(dòng)及初始化過(guò)程如下所述:當(dāng)安全操作系統(tǒng)被引導(dǎo)到內(nèi)存中運(yùn)行后,內(nèi)存管理模塊通過(guò)調(diào)用安全擴(kuò)展抽象層完成自身的初始化,并負(fù)責(zé)分配安全隔離的物理內(nèi)存以及普通操作系統(tǒng)所占用的物理內(nèi)存,通過(guò)調(diào)用安全擴(kuò)展抽象層,將安全操作系統(tǒng)的物理內(nèi)存設(shè)置為安全域,普通操作系統(tǒng)的物理內(nèi)存設(shè)置為非安全域。然后完成安全守護(hù)模塊的初始化,該過(guò)程將設(shè)自自身的狀態(tài)為守護(hù)態(tài),初始化安全域以及守護(hù)態(tài)的異常向量表,并設(shè)置普通操作系統(tǒng)初始化的執(zhí)行點(diǎn)。然后通信代理模塊中的可信應(yīng)用通信模塊也將被初始化。然后,安全中斷管理模塊以及加密文件系統(tǒng)將會(huì)進(jìn)行自身的初始化,將通過(guò)安全擴(kuò)展抽象層設(shè)置處理器的安全中斷與非安全中斷??尚艖?yīng)用加載模塊被初始化。隨后安全設(shè)備與驅(qū)動(dòng)管理模塊將進(jìn)行初始化,通過(guò)調(diào)用安全中斷管理模塊的相關(guān)功能完成各類安全設(shè)備驅(qū)動(dòng)程序的初始化。隨后,可信應(yīng)用加載模塊載入O號(hào)可信應(yīng)用模塊,作為安全操作系統(tǒng)的守護(hù)進(jìn)程,通過(guò)安全調(diào)度器獲得處理器執(zhí)行權(quán)。最后,該進(jìn)程通過(guò)安全守護(hù)模塊將處理器執(zhí)行權(quán)交給普通操作系統(tǒng),完成非安全域的相關(guān)初始化工作。事務(wù)委托模塊將會(huì)隨著普通操作系統(tǒng)的初始化而掛載運(yùn)行起來(lái)。
[0021]與傳統(tǒng)操作系統(tǒng)以及微內(nèi)核的不同之處,也是本發(fā)明的重要方面在于:安全操作系統(tǒng)中加入了安全守護(hù)模塊。安全守護(hù)模塊運(yùn)行在處理器守護(hù)態(tài),功能主要包括:(I)負(fù)責(zé)安全操作系統(tǒng)以及普通操作系統(tǒng)之間的上下文切換與恢復(fù);(2)負(fù)責(zé)普通應(yīng)用模塊與安全應(yīng)用模塊通信數(shù)據(jù)的安全性檢查;(3)負(fù)責(zé)設(shè)備在安全與非安全運(yùn)行狀態(tài)切換下,設(shè)備上下文切換與恢復(fù),數(shù)據(jù)切換與恢復(fù)(如果需要);(4)當(dāng)中斷發(fā)生時(shí),負(fù)責(zé)捕獲中斷,并根據(jù)中斷類型、中斷策略,決定中斷的響應(yīng)機(jī)制。
[0022]安全擴(kuò)展本發(fā)明一個(gè)重要方面在于,發(fā)明事務(wù)委托模塊增強(qiáng)安全操作系統(tǒng)本身的功能性。安全操作系統(tǒng)本身因?yàn)殛P(guān)注安全方面,所以系統(tǒng)代碼必須受到限制,導(dǎo)致功能性方面不如普通操作系統(tǒng)豐富。通過(guò)事務(wù)委托模塊,安全操作系統(tǒng)可以將低安全性的功能需求委托給普通操作系統(tǒng)進(jìn)行處理。
[0023]所述事務(wù)委托模塊包括客戶端服務(wù)接口層、可信應(yīng)用事務(wù)委托接口層以及事務(wù)委托處理模塊組成。該模塊負(fù)責(zé)為普通應(yīng)用模塊提供安全請(qǐng)求接口,為可信應(yīng)用提供事務(wù)委托接口,并負(fù)責(zé)安全操作系統(tǒng)委托的相關(guān)事務(wù)的處理,如將加密后的文件回寫普通文件系統(tǒng)等。普通應(yīng)用模塊通過(guò)客戶端服務(wù)接口層提供的接口發(fā)起安全請(qǐng)求,該請(qǐng)求將會(huì)被事務(wù)委托處理模塊捕獲,并通過(guò)通信代理模塊轉(zhuǎn)發(fā)給可信應(yīng)用模塊做進(jìn)一步處理。當(dāng)可信應(yīng)用程序需要進(jìn)行耗時(shí)、低安全性操作時(shí),通過(guò)調(diào)用可信應(yīng)用事務(wù)委托接口層發(fā)起事務(wù)委托請(qǐng)求,通過(guò)通信代理模塊轉(zhuǎn)發(fā)給事務(wù)委托處理模塊并由事務(wù)委托處理模塊進(jìn)行請(qǐng)求處理。
[0024]本發(fā)明另一個(gè)重要方面在于,使用安全守護(hù)模塊和安全設(shè)備與驅(qū)動(dòng)管理模塊共同管理各類安全設(shè)備。本發(fā)明所述的各類設(shè)備可以是智能終端產(chǎn)品中各種外設(shè),如麥克風(fēng)、揚(yáng)聲器、顯示屏等,也可以是SoC(片上系統(tǒng))內(nèi)聯(lián)各種設(shè)備,如DMA(直接存儲(chǔ)器存儲(chǔ))。當(dāng)這些設(shè)備處于安全域運(yùn)行時(shí),則稱為安全設(shè)備;當(dāng)處于非安全域運(yùn)行時(shí),則稱為非安全設(shè)備。如果處理器安全擴(kuò)展模塊支持動(dòng)態(tài)改變?cè)O(shè)備運(yùn)行狀態(tài)(如將設(shè)備從安全狀態(tài)轉(zhuǎn)化為非安全狀態(tài),或者將設(shè)備從非安全狀態(tài)轉(zhuǎn)化為安全狀態(tài),這意味著同一個(gè)設(shè)備可以被安全域和非安全域所共享)。為了確保設(shè)備數(shù)據(jù)的隔離,安全守護(hù)模塊將負(fù)責(zé)設(shè)備上下文的切換以及數(shù)據(jù)的切換與恢復(fù)。隨后,調(diào)用安全設(shè)備與驅(qū)動(dòng)管理模塊轉(zhuǎn)向各類安全設(shè)備驅(qū)動(dòng)程序。如果處理器安全擴(kuò)展模塊不支持動(dòng)態(tài)改變?cè)O(shè)備運(yùn)行狀態(tài),則由安全設(shè)備與驅(qū)動(dòng)管理模塊初始化時(shí)直接設(shè)定各類設(shè)備是否屬于安全域。
[0025]此外,本發(fā)明一個(gè)重要方面在于,使用安全守護(hù)模塊和安全中斷管理模塊共同管理中斷信號(hào)(包括異步和同步)。在智能終端設(shè)備上,異步中斷信號(hào)可能隨時(shí)發(fā)生,例如處理器正處在安全域,此時(shí)發(fā)生了一個(gè)安全中斷信號(hào),或者處理器運(yùn)行在安全域,此時(shí)發(fā)生了一個(gè)非安全中斷信號(hào)。為了防止非安全中斷信號(hào)頻繁打斷安全域內(nèi)運(yùn)行的代碼,本發(fā)明使用安全守護(hù)模塊作為安全域內(nèi)中斷的入口,當(dāng)中斷發(fā)生時(shí),負(fù)責(zé)捕獲中斷,并根據(jù)中斷類型、中斷策略,決定中斷的響應(yīng)機(jī)制。如果該中斷是安全中斷,則執(zhí)行權(quán)直接交給安全中斷管理模塊;如果該中斷是非安全中斷,則判斷當(dāng)前是否允許該中斷,如果不允許則直接返回被打斷的程序,否則給事務(wù)委托模塊發(fā)送中斷相關(guān)信息,然后返回。
[0026]所述安全中間件包括密碼算法庫(kù)、安全圖形界面庫(kù)、安全C語(yǔ)言庫(kù)、事務(wù)委托庫(kù)以及算法構(gòu)建庫(kù)等。各類庫(kù)共同為可信應(yīng)用的開發(fā)提供底層功能支持(包括密碼處理、安全界面等),并且運(yùn)行在用戶態(tài)。各類庫(kù)的實(shí)現(xiàn)則依賴于安全操作系統(tǒng)的系統(tǒng)調(diào)用模塊以及安全設(shè)備與驅(qū)動(dòng)管理模塊提供的基礎(chǔ)功能支持。密碼算法庫(kù)為可信應(yīng)用提供常用的對(duì)稱、非對(duì)稱密碼算法、摘要算法(如SHA256、RSA算法等)。安全圖形界面庫(kù)為可信應(yīng)用提供界面構(gòu)建需要的基本接口。安全C語(yǔ)言庫(kù)則為可信應(yīng)用的開發(fā)提供必要的功能,如字符串操作、數(shù)據(jù)拷貝等。事務(wù)委托庫(kù)提供可信應(yīng)用模塊發(fā)起事務(wù)委托的必要功能接口。算法構(gòu)建庫(kù)提供了大數(shù)的表示與運(yùn)算的基本接口,用于可信應(yīng)用構(gòu)建自身特殊的密碼算法需求。
[0027]本發(fā)明所述的可信應(yīng)用模塊(或者可信應(yīng)用程序)是經(jīng)過(guò)授權(quán)中心簽名的,符合安全操作系統(tǒng)特殊格式定義的、由安全操作系統(tǒng)進(jìn)行認(rèn)證并載入的應(yīng)用程序。可信應(yīng)用模塊運(yùn)行在安全域中,可以通過(guò)安全操作系統(tǒng)與普通操普通應(yīng)用模塊進(jìn)行數(shù)據(jù)通信。開發(fā)者可以使用可信應(yīng)用模塊的方式將高敏感業(yè)務(wù)實(shí)現(xiàn)出來(lái),保證自身業(yè)務(wù)邏輯的高安全性??尚艖?yīng)用相關(guān)功能性需求可以調(diào)用安全中間件來(lái)完成。
[0028]本發(fā)明所述的普通應(yīng)用模塊(或者非可信應(yīng)用程序)是普通操作系統(tǒng)中的應(yīng)用程序,運(yùn)行在非安全域中,符合普通操作系統(tǒng)的相關(guān)規(guī)定,配合隔離系統(tǒng)的通信代理模塊可以與可信應(yīng)用模塊進(jìn)行通信,完成高敏感業(yè)務(wù)的相關(guān)操作。
[0029]本發(fā)明所述的安全請(qǐng)求是普通應(yīng)用向可信應(yīng)用發(fā)起的遠(yuǎn)程調(diào)用,普通應(yīng)用可以將高敏感業(yè)務(wù)封裝在可信應(yīng)用中,實(shí)現(xiàn)安全隔離。
[0030]當(dāng)處理器模塊處于安全狀態(tài)時(shí),可能處于下列三種運(yùn)行態(tài):
[0031](I)處于可信應(yīng)用的用戶態(tài),此時(shí)處理器能夠訪問(wèn)的線性地址空間為該可信應(yīng)用的線性地址空間,所能訪問(wèn)的物理地址空間受安全操作系統(tǒng)控制。
[0032](2)處于安全操作系統(tǒng)的內(nèi)核態(tài),能夠訪問(wèn)智能終端所有的線性地址空間與物理地址空間,包括普通操作系統(tǒng)所占用的物理地址空間。
[0033](3)處于守護(hù)態(tài),該運(yùn)行態(tài)表明,處理器正在進(jìn)行運(yùn)行模式的切換,產(chǎn)生原因可能是普通應(yīng)用模塊發(fā)起了一個(gè)安全請(qǐng)求,也可能是可信應(yīng)用模塊處理結(jié)束需要返回結(jié)果。
[0034]當(dāng)處理器模塊處于非安全狀態(tài)時(shí),處理器模塊只能訪問(wèn)安全操作系統(tǒng)為其配置的物理地址空間。
[0035]優(yōu)選地,安全啟動(dòng)模塊對(duì)于多級(jí)安全引導(dǎo)模塊使用數(shù)字證書進(jìn)行認(rèn)證,各級(jí)引導(dǎo)模塊的數(shù)字證書將有獨(dú)立的授權(quán)中心進(jìn)行簽發(fā)。
[0036]優(yōu)選地,所述上電初始化模塊由處理器安全擴(kuò)展模塊支持,固化存儲(chǔ)在特定的安全區(qū)域,只有特定權(quán)限的代碼才能進(jìn)行調(diào)用訪問(wèn)。
[0037]優(yōu)選地,所述認(rèn)證模塊的存儲(chǔ)由處理器安全擴(kuò)展模塊支持,固化存儲(chǔ)在特定的安全區(qū)域,只有特定權(quán)限的代碼才能進(jìn)行調(diào)用訪問(wèn)。
[0038]優(yōu)選地,認(rèn)證模塊將支持常用的對(duì)稱密碼算法(如AES算法)、摘要算法(如SHA256)以及非對(duì)稱密碼算法(如RSA算法),并且這些算法由處理器安全擴(kuò)展模塊提供基礎(chǔ)的密碼算法硬件引擎。
[0039]優(yōu)選地,安全操作系統(tǒng)引導(dǎo)模塊經(jīng)過(guò)加密,并存儲(chǔ)在非易失性存儲(chǔ)區(qū)域(如Flash存儲(chǔ)器)。
[0040]優(yōu)選地,客戶端服務(wù)接口層(客戶端服務(wù)接口層屬于事務(wù)委托模塊的一個(gè)部分)按照Linux共享庫(kù)方式實(shí)現(xiàn),事務(wù)委托處理模塊按照Linux進(jìn)程方式實(shí)現(xiàn)。
[0041]一種基于處理器安全擴(kuò)展的智能終端隔離方法,其特點(diǎn)在于實(shí)現(xiàn)步驟如下;
[0042](I)智能終端上電后運(yùn)行上電初始化模塊,該模塊對(duì)智能終端硬件環(huán)境進(jìn)行初始化,包括時(shí)鐘、安全擴(kuò)展等;
[0043](2)上電初始化模塊調(diào)用認(rèn)證模塊,對(duì)安全操作系統(tǒng)引導(dǎo)模塊進(jìn)行解密、認(rèn)證;
[0044](3)通過(guò)認(rèn)證后,上電初始化模塊引導(dǎo)、加載安全操作系統(tǒng)引導(dǎo)模塊;
[0045](4)安全操作系統(tǒng)引導(dǎo)模塊調(diào)用認(rèn)證模塊,對(duì)安全操作系統(tǒng)進(jìn)行解密、認(rèn)證;
[0046](5)通過(guò)認(rèn)證后,安全操作系統(tǒng)引導(dǎo)模塊引導(dǎo)、加載安全操作系統(tǒng);
[0047](6)安全操作系統(tǒng)開始初始化過(guò)程,首先初始化內(nèi)存管理模塊,然后初始化安全守護(hù)模塊,可信應(yīng)用代理模塊,然后初始化安全中斷管理模塊、加密文件系統(tǒng),隨后初始化可信應(yīng)用加載模塊、安全設(shè)備與驅(qū)動(dòng)管理模塊,并初始化設(shè)備驅(qū)動(dòng)程序;
[0048](7)初始化完成后,調(diào)用安全守護(hù)模塊返回普通操作系統(tǒng),進(jìn)一步完成非安全域的初始化;
[0049](8)事務(wù)委托模塊、普通應(yīng)用通信模塊將會(huì)隨著普通操作系統(tǒng)的啟動(dòng)而掛載運(yùn)行起來(lái);
[0050](9)普通應(yīng)用模塊通過(guò)調(diào)用客戶端服務(wù)接口層發(fā)起安全請(qǐng)求;
[0051](10)事務(wù)委托處理模塊捕獲該請(qǐng)求,并調(diào)用普通應(yīng)用通信模塊轉(zhuǎn)發(fā)該請(qǐng)求;
[0052](11)可信應(yīng)用通信模塊接受該請(qǐng)求,并轉(zhuǎn)發(fā)給安全守護(hù)模塊;
[0053](12)安全守護(hù)模塊經(jīng)過(guò)安全檢查,將處理器狀態(tài)進(jìn)行切換,保存相關(guān)數(shù)據(jù),利用安全調(diào)度器,將其轉(zhuǎn)發(fā)給可信應(yīng)用模塊;
[0054](13)可信應(yīng)用模塊通過(guò)安全中間件提供的相關(guān)功能,處理響應(yīng)的安全請(qǐng)求。
[0055]本發(fā)明與現(xiàn)有技術(shù)相比的優(yōu)點(diǎn)在于:
[0056](I)基于處理器安全擴(kuò)展,本發(fā)明可以將普通操作系統(tǒng)和安全操作系統(tǒng)的運(yùn)行環(huán)境安全隔離開來(lái),即使普通操作系統(tǒng)遭受攻擊,仍然可以保證安全操作系統(tǒng)的安全性。
[0057](2)本發(fā)明對(duì)智能終端設(shè)備及相關(guān)中斷進(jìn)行嚴(yán)格管理,保證運(yùn)行在安全域的可信應(yīng)用模塊對(duì)于數(shù)據(jù)的輸入、處理以及輸出得到完整保護(hù),可以滿足高敏感業(yè)務(wù)對(duì)于安全性的需求。
[0058](3)本發(fā)明安全啟動(dòng)模塊通過(guò)逐級(jí)認(rèn)證,有效抵抗啟動(dòng)階段的攻擊行為。
[0059](4)本發(fā)明保持對(duì)普通操作系統(tǒng)的最小修改,具有良好的可移植性,同時(shí)保證良好的用戶體驗(yàn)。
【專利附圖】
【附圖說(shuō)明】
[0060]圖1為本發(fā)明的整體實(shí)施例示意圖;
[0061]圖2為本發(fā)明的安全啟動(dòng)流程圖;
[0062]圖3為本發(fā)明的安全操作系統(tǒng)初始化流程圖;
[0063]圖4為本發(fā)明的普通應(yīng)用模塊發(fā)起安全請(qǐng)求的實(shí)施例原理圖;
[0064]圖5為本發(fā)明的可信應(yīng)用模塊發(fā)起事務(wù)委托的實(shí)施例原理圖;
[0065]圖6為本發(fā)明的安全設(shè)備與驅(qū)動(dòng)管理實(shí)施例原理圖;
[0066]圖7為本發(fā)明的安全中斷管理實(shí)施例的流程圖。
【具體實(shí)施方式】
[0067]下面通過(guò)實(shí)施例對(duì)本發(fā)明進(jìn)行進(jìn)一步的說(shuō)明與解釋。
[0068]本發(fā)明將使用安卓系統(tǒng)作為普通操作系統(tǒng)102,結(jié)合Trustzone技術(shù)作為處理器安全擴(kuò)展模塊108,在智能手機(jī)上來(lái)描述【具體實(shí)施方式】。但是本發(fā)明的其他實(shí)施方式仍然可以使用到現(xiàn)有或者將來(lái)的普通操作系統(tǒng)或內(nèi)核上,也可以使用其他處理器安全擴(kuò)展技術(shù)。此外,下文的特定實(shí)例中所描述的實(shí)施例中通過(guò)智能手機(jī)來(lái)實(shí)現(xiàn),但是該發(fā)明的隔離系統(tǒng)可以全部或者部分使用到諸如平板、數(shù)字電視機(jī)頂盒、智能電視等智能終端上。
[0069]參見(jiàn)圖1,圖中展示出了本發(fā)明各個(gè)組件之間的關(guān)系。Trustzone為一種處理器安全擴(kuò)展模塊108的實(shí)施例,處理器安全擴(kuò)展模塊108可以使得處理器運(yùn)行在安全狀態(tài)和非安全狀態(tài),相應(yīng)的,各類軟硬件將運(yùn)行在安全域和非安全域。安全擴(kuò)展抽象層107則用于處理器安全擴(kuò)展模塊108的底層軟件和上層功能模塊的解耦。安卓系統(tǒng)作為開放的、容易遭受攻擊的普通操作系102統(tǒng)運(yùn)行在非安全域,事務(wù)委托模塊104作為安卓系統(tǒng)的一部分,也運(yùn)行在非安全域。通信代理模塊105作為普通應(yīng)用模塊100和可信應(yīng)用模塊101的底層通信機(jī)制,其中普通應(yīng)用通信模塊100運(yùn)行在非安全域,可信應(yīng)用通信模塊101運(yùn)行在安全域。安全操作系統(tǒng)103作為整個(gè)隔離系統(tǒng)的管理者,運(yùn)行在安全域內(nèi)。安全啟動(dòng)模塊106負(fù)責(zé)系統(tǒng)的上電初始化工作,運(yùn)行在安全域內(nèi)。安全中間件109負(fù)責(zé)為可信應(yīng)用模塊101提供功能調(diào)用,運(yùn)行在安全域內(nèi)。
[0070]參見(jiàn)圖2,展示了隔離系統(tǒng)安全啟動(dòng)的流程圖。系統(tǒng)上電,Trustzone處理器安全擴(kuò)展模塊108控制處理器進(jìn)入安全狀態(tài)運(yùn)行200。首先執(zhí)行的是上電初始化模塊201,該模塊通過(guò)調(diào)用認(rèn)證模塊,解密安全操作系統(tǒng)引導(dǎo)模塊202,并認(rèn)證該模塊,確保安全操作系統(tǒng)引導(dǎo)模塊的完整性、合法性;如果通過(guò)認(rèn)證203,則加載運(yùn)行安全操作系統(tǒng)引導(dǎo)模塊204,該模塊將會(huì)同樣調(diào)用認(rèn)證模塊,對(duì)安全操作系統(tǒng)103的完整性、合法性進(jìn)行認(rèn)證。如果通過(guò)認(rèn)證,則完成安全啟動(dòng)過(guò)程,將引導(dǎo)安全操作系統(tǒng)103到內(nèi)存,并將處理器模塊110執(zhí)行權(quán)交給安全操作系統(tǒng)103。上述任何一步認(rèn)證失敗,將導(dǎo)致安全啟動(dòng)失敗208,智能手機(jī)也將掛起。
[0071]參見(jiàn)圖3,展示了本發(fā)明中安全操作系統(tǒng)103的初始化過(guò)程。安全操作系統(tǒng)103被加載到內(nèi)存后300,將負(fù)責(zé)整個(gè)隔離系統(tǒng)的進(jìn)一步初始化過(guò)程。首先初始化的是內(nèi)存管理模塊301,該模塊將為后續(xù)各個(gè)模塊的載入以及使用的數(shù)據(jù)結(jié)構(gòu)分配內(nèi)存空間。另一重要方面在于,內(nèi)存管理模塊將負(fù)責(zé)安全操作系統(tǒng)103以及安卓系統(tǒng)各自使用的物理內(nèi)存進(jìn)行劃分302,使得兩個(gè)操作系統(tǒng)在運(yùn)行時(shí)不會(huì)出現(xiàn)相互干擾的現(xiàn)象,且調(diào)用安全擴(kuò)展抽象層107,進(jìn)而調(diào)用Trustzone技術(shù)中的TZASC(地址空間控制器),將安卓系統(tǒng)的物理內(nèi)存設(shè)置為非安全域,將安全操作系統(tǒng)103的物理內(nèi)存設(shè)置為安全域。此外,當(dāng)兩個(gè)系統(tǒng)的應(yīng)用程序(即普通應(yīng)用模塊100和可信應(yīng)用模塊101)需要通過(guò)共享內(nèi)存交換數(shù)據(jù)時(shí),內(nèi)存管理模塊將負(fù)責(zé)該物理內(nèi)存的分配。
[0072]當(dāng)內(nèi)存管理模塊404初始化完成后,安全守護(hù)模塊407以及可信應(yīng)用通信模塊101將完成初始化303。安全守護(hù)模塊407需要設(shè)置自身的狀態(tài)為Trustzone Monitor (以下稱為監(jiān)控模式)作為本發(fā)明的守護(hù)態(tài),并且負(fù)責(zé)初始化守護(hù)態(tài)、安全域的異常向量表,并且設(shè)置安卓系統(tǒng)的初始化執(zhí)行點(diǎn)。隨后,可信應(yīng)用通信模塊101將會(huì)進(jìn)行初始化。然后,安全中斷管理模塊、加密文件系統(tǒng)將完成初始化。在安全中斷管理模塊初始化中,將通過(guò)安全擴(kuò)展抽象層107調(diào)用Trustzone技術(shù)設(shè)置各類中斷的安全類型,如將IRQ設(shè)置為非安全中斷,將FIQ設(shè)置為安全中斷等。加密文件系統(tǒng)將調(diào)用內(nèi)存管理模塊,完成自身管理數(shù)據(jù)的初始化等工作。隨后安全設(shè)備與驅(qū)動(dòng)管理模塊601將會(huì)進(jìn)行初始化。該模塊會(huì)調(diào)用安全中斷管理模塊,設(shè)置各類驅(qū)動(dòng)程序?qū)τ谥袛嗟呐渲们闆r。接著,可信應(yīng)用加載模塊將被初始化,并加載、運(yùn)行可信應(yīng)用模塊101。該模塊將作為安全操作系統(tǒng)103的守護(hù)進(jìn)程。此后,該守護(hù)進(jìn)程通過(guò)調(diào)用安全守護(hù)模塊相關(guān)功能返回安卓系統(tǒng),完成安卓系統(tǒng)的初始化過(guò)程。
[0073]在本實(shí)施例中,安卓系統(tǒng)400的普通應(yīng)用模塊100 (以下稱為安卓Java程序)運(yùn)行在非安全域。與之對(duì)應(yīng)的可信應(yīng)用模塊101負(fù)責(zé)該程序的高敏感業(yè)務(wù)邏輯部分,運(yùn)行在安全域。非安全域的代碼無(wú)法訪問(wèn)安全域,只能通過(guò)發(fā)起安全請(qǐng)求,將相關(guān)高敏感業(yè)務(wù)邏輯在隔離環(huán)境中由對(duì)應(yīng)可信程序進(jìn)行處理。在本實(shí)施例中,事務(wù)委托模塊104中客戶端服務(wù)接口 404可以通過(guò)Linux共享庫(kù)方式實(shí)現(xiàn),事務(wù)委托處理模塊403則可以通過(guò)Linux進(jìn)程方式實(shí)現(xiàn),普通應(yīng)用通信模塊404則可以通過(guò)Linux驅(qū)動(dòng)方式實(shí)現(xiàn)。
[0074]參見(jiàn)圖4,展示了本發(fā)明的普通應(yīng)用模塊100發(fā)起安全請(qǐng)求的實(shí)施例原理圖。下面將結(jié)合該圖詳細(xì)說(shuō)明兩者的交互過(guò)程以及涉及本發(fā)明的實(shí)施例中各個(gè)模塊如何配合完成該過(guò)程。當(dāng)安卓Java程序需要處理敏感數(shù)據(jù)和業(yè)務(wù)時(shí)(如輸入用戶名、密碼),安卓Java程序通過(guò)JNI (Java本地接口)調(diào)用客戶端服務(wù)接口 402,從而發(fā)起安全請(qǐng)求(如打開安全輸入界面,調(diào)出安全輸入虛擬鍵盤等具體安全請(qǐng)求)。該請(qǐng)求將會(huì)被正在運(yùn)行的事務(wù)委托處理模塊403捕獲,事務(wù)委托處理模塊403通過(guò)調(diào)用普通應(yīng)用通信模塊404。普通應(yīng)用通信模塊404將對(duì)該請(qǐng)求進(jìn)行數(shù)據(jù)格式化,并將該安全請(qǐng)求轉(zhuǎn)發(fā)給可信應(yīng)用通信模塊405。這樣的通信轉(zhuǎn)發(fā)將是跨越非安全域和安全域的,這樣的跨越需要調(diào)用安全擴(kuò)展抽象層107得以完成。在本實(shí)施例中,Trustzone技術(shù)提供了 SMC指令(安全監(jiān)控指令)實(shí)現(xiàn)從非安全域陷入安全域的監(jiān)控模式。
[0075]當(dāng)可信應(yīng)用通信模塊404接受到該安全請(qǐng)求后,將解析相關(guān)的數(shù)據(jù),并轉(zhuǎn)發(fā)給安全守護(hù)模塊407。安全守護(hù)模塊407對(duì)該請(qǐng)求進(jìn)行安全檢查,若通過(guò)檢查,則負(fù)責(zé)安卓系統(tǒng)400和安全操作系統(tǒng)103的上下文切換,并將該請(qǐng)求通過(guò)安全調(diào)度器408轉(zhuǎn)發(fā)給對(duì)應(yīng)可信程序101,由該程序作進(jìn)一步處理。(如調(diào)用安全中間件109,打開安全輸入界面,等待用戶輸入用戶名、密碼等)交互過(guò)程中安全操作系統(tǒng)103內(nèi)使用到的各類數(shù)據(jù)結(jié)構(gòu)和內(nèi)存將由內(nèi)存管理模塊404統(tǒng)一分配和管理。此外,當(dāng)安卓Java程序400和對(duì)應(yīng)可信程序101需要進(jìn)行較大數(shù)據(jù)傳遞時(shí),可以通過(guò)內(nèi)存管理模塊404為兩者分配共享內(nèi)存407。
[0076]參見(jiàn)圖5,展示了本發(fā)明的可信應(yīng)用模塊101發(fā)起事務(wù)委托的實(shí)施例原理圖。下面將結(jié)合該圖詳細(xì)說(shuō)明兩者的交互過(guò)程以及涉及本發(fā)明的實(shí)施例中各個(gè)模塊如何配合完成該過(guò)程。當(dāng)對(duì)應(yīng)可信程序101需要完成更加豐富的功能且該處理并非敏感操作時(shí),可以進(jìn)行事務(wù)委托交由事務(wù)委托處理模塊403 (事務(wù)委托處理模塊403是事務(wù)委托模塊104的一個(gè)組成部分)進(jìn)行處理。對(duì)應(yīng)可信模塊101通過(guò)調(diào)用安全中間件109的事務(wù)委托接口,觸發(fā)系統(tǒng)調(diào)用模塊501事務(wù)委托相關(guān)接口。由于該交互涉及跨越安全域和非安全域,需要調(diào)用安全擴(kuò)展抽象層107完成。在本實(shí)施例中,Trustzone技術(shù)提供了 SMC指令(安全監(jiān)控指令)實(shí)現(xiàn)從安全域陷入安全域的監(jiān)控模式。安全守護(hù)模塊407捕獲該調(diào)用,完成安卓系統(tǒng)400和安全操作系統(tǒng)103的上下文切換,并將相關(guān)事務(wù)委托經(jīng)過(guò)可信應(yīng)用通信模塊405封裝,轉(zhuǎn)發(fā)給普通應(yīng)用通信模塊404。事務(wù)委托處理模塊403將通過(guò)普通應(yīng)用通信模塊404接受該事務(wù)請(qǐng)求。隨后,事務(wù)委托處理模塊403可以調(diào)用安卓功能組件500完成該事務(wù)(如文件讀與等)。
[0077]參見(jiàn)圖6,展示了本發(fā)明的安全設(shè)備與驅(qū)動(dòng)管理實(shí)施例原理圖。下面結(jié)合該圖詳細(xì)說(shuō)明實(shí)施例中各個(gè)模塊的協(xié)同工作。在本實(shí)施例中,各類安全設(shè)備可能是獨(dú)占的(即只被安全域內(nèi)代碼所控制、訪問(wèn),下文稱為安全組件),也可能是共享的(即Trustzone技術(shù)可以動(dòng)態(tài)改變?cè)O(shè)備運(yùn)行狀態(tài),該設(shè)備可能被安全域內(nèi)代碼訪問(wèn),也可能被非安全域內(nèi)代碼訪問(wèn),下文稱為共享組件)。當(dāng)對(duì)應(yīng)可信程序101需要操作安全設(shè)備時(shí)(如顯示屏),通過(guò)調(diào)用系統(tǒng)調(diào)用模塊501將向安全設(shè)備與驅(qū)動(dòng)管理模塊601發(fā)起請(qǐng)求,安全設(shè)備與驅(qū)動(dòng)管理模塊601判斷該設(shè)備的類型(安全組件或者共享組件)。如果是安全組件,則直接轉(zhuǎn)發(fā)該請(qǐng)求,由各類安全設(shè)備驅(qū)動(dòng)程序600中的對(duì)應(yīng)程序進(jìn)行處理;如果是共享組件,則調(diào)用安全守護(hù)模塊407進(jìn)行上下文切換和數(shù)據(jù)切換,隨后轉(zhuǎn)入各類安全設(shè)備驅(qū)動(dòng)程序600中的對(duì)應(yīng)程序進(jìn)行處理。
[0078]通常的做法是將IRQ中斷作為非安全中斷、FIQ作為安全中斷。安全操作系統(tǒng)103只對(duì)安全中斷進(jìn)行響應(yīng)。該方案的主要問(wèn)題在于缺乏靈活性,例如,當(dāng)系統(tǒng)運(yùn)行在安全狀態(tài)時(shí),由于屏蔽了 IRQ中斷,接聽(tīng)電話這樣的中斷將被丟失。
[0079]參見(jiàn)圖7,展示了本發(fā)明的安全中斷管理實(shí)施例的流程圖。安全中斷管理模塊將中斷分為安全中斷和非安全中斷。為了保證系統(tǒng)的功能性同時(shí)兼顧安全性,本實(shí)施例使用安全守護(hù)模塊作為安全域內(nèi)中斷的入口。步驟701,當(dāng)中斷發(fā)生時(shí),通過(guò)Trustzone技術(shù)提供的中斷機(jī)制首先進(jìn)入安全守護(hù)模塊407。步驟702,安全守護(hù)模塊407將根據(jù)中斷類型、中斷策略,決定中斷的響應(yīng)機(jī)制。步驟703,如果該中斷是安全中斷,則執(zhí)行權(quán)直接交給安全中斷管理模塊。步驟704,進(jìn)入安全操作系統(tǒng)中斷處理程序;步驟705,如果該中斷是非安全中斷,則判斷當(dāng)前是否允許該中斷。步驟708,如果不允許則恢復(fù)上下文,返回被打斷的程序。步驟706,否則給事務(wù)委托模塊104發(fā)送中斷相關(guān)信息。步驟707,然恢復(fù)上下文。最后,步驟709,退出中斷處理,返回被打斷的程序。
[0080]提供以上實(shí)施例僅僅是為了描述本發(fā)明的目的,而并非要限制本發(fā)明的范圍。本發(fā)明的范圍由所附權(quán)利要求限定。不脫離本發(fā)明的精神和原理而做出的各種等同替換和修改,均應(yīng)涵蓋在本發(fā)明的范圍之內(nèi)。
【權(quán)利要求】
1.一種基于處理器安全擴(kuò)展的智能終端隔離系統(tǒng),其特征在于包括:啟動(dòng)模塊(106)、通信代理模塊(105)、安全擴(kuò)展抽象層(107)、安全操作系統(tǒng)(103)、安全中間件(109)、普通操作系統(tǒng)(102)、可信應(yīng)用模塊(101)、普通應(yīng)用模塊(100)和各個(gè)處理器安全擴(kuò)展模塊(108);事務(wù)委托模塊(104)、其中普通應(yīng)用模塊(100)、普通操作系統(tǒng)(102)和事務(wù)委托模塊(104)運(yùn)行在非安全域;可信應(yīng)用模塊(101)、安全中間件(109)、安全操作系統(tǒng)(103)和啟動(dòng)模塊(106)運(yùn)行在安全域;所述安全域是指安全狀態(tài)下執(zhí)行的代碼、訪問(wèn)的數(shù)據(jù)和設(shè)備;所述非安全域是指非安全狀態(tài)下執(zhí)行的代碼、訪問(wèn)的數(shù)據(jù)和設(shè)備;其中: 安全啟動(dòng)模塊(106),對(duì)智能終端硬件環(huán)境進(jìn)行簡(jiǎn)單初始化,并認(rèn)證、引導(dǎo)安全操作系統(tǒng)(103); 通信代理模塊(105),負(fù)責(zé)可信應(yīng)用模塊和普通應(yīng)用模塊的底層數(shù)據(jù)封裝與通信; 安全擴(kuò)展抽象層(107),為安全操作系統(tǒng)(103)提供統(tǒng)一的調(diào)用接口,隔離各個(gè)處理器安全擴(kuò)展模塊(108)的具體差異,即具體各個(gè)處理器安全擴(kuò)展模塊(108)的底層軟件、硬件和上層功能模塊的解耦; 安全操作系統(tǒng)(103),為整個(gè)安全域內(nèi)可信應(yīng)用模塊(101)提供相互獨(dú)立的運(yùn)行空間、任務(wù)調(diào)度與管理、內(nèi)存管理、安全設(shè)備管理、安全中斷管理; 安全中間件(109),實(shí)現(xiàn)安全功能、事務(wù)委托相關(guān)的核心庫(kù),并為可信應(yīng)用模塊(101)提供相關(guān)的功能接口; 普通應(yīng)用模塊(100),完成不同應(yīng)用程序的常規(guī)交互功能,并通過(guò)通信代理模(105)向可信應(yīng)用模塊(101)發(fā)起安全請(qǐng)求;所述的安全請(qǐng)求是普通應(yīng)用模塊(100)向可信應(yīng)用模塊(101)發(fā)起的遠(yuǎn)程調(diào)用,普通應(yīng)用模塊(100)將高敏感業(yè)務(wù)封裝在可信應(yīng)用模塊101中,實(shí)現(xiàn)安全隔離; 可信應(yīng)用模塊(101),接受安全操作系(103)的調(diào)度,并處理普通應(yīng)用模塊(100)的安全請(qǐng)求;可信應(yīng)用模塊(101)功能通過(guò)調(diào)用安全中間件109來(lái)完成; 普通操作系統(tǒng)(102),將實(shí)現(xiàn)智能終端設(shè)備常規(guī)操作系統(tǒng)的任務(wù),負(fù)責(zé)提供終端用戶日常生活中低安全性要求的功能服務(wù),安全操作系統(tǒng)(103)與普通操作系統(tǒng)(102)處于物理上相互隔離的系統(tǒng),通過(guò)通信代理模塊(105)進(jìn)行相互間的數(shù)據(jù)通信; 處理器安全擴(kuò)展模塊108是芯片級(jí)的安全支撐模塊,包括的功能:(I)支持處理器運(yùn)行在安全和非安全運(yùn)行狀態(tài),兩種運(yùn)行環(huán)境相互獨(dú)立、物理上隔離,關(guān)鍵寄存器在安全與非安全運(yùn)行狀態(tài)能夠進(jìn)行硬件級(jí)自動(dòng)備份;(2)支持處理器地址空間的安全與非安全劃分,當(dāng)處理器處于安全狀態(tài)時(shí),能夠訪問(wèn)所有的地址空間,當(dāng)處理器處于非安全狀態(tài)時(shí),只能訪問(wèn)非安全地址空間;(3)當(dāng)發(fā)生異常時(shí),處理器根據(jù)當(dāng)前運(yùn)行狀態(tài),跳轉(zhuǎn)到相應(yīng)的安全、非安全或守護(hù)狀態(tài)的異常向量表執(zhí)行異常處理代碼;(4)支持處理器的守護(hù)狀態(tài),所述守護(hù)狀態(tài)屬于一種特殊的安全狀態(tài),該狀態(tài)下的處理器能夠同時(shí)訪問(wèn)安全、非安全狀態(tài)下的各個(gè)寄存器值、存儲(chǔ)空間以及外部設(shè)備;(5) IRQ以及FIQ能夠進(jìn)行安全、非安全的中斷類型設(shè)置; 事務(wù)委托模塊(104),安全操作系統(tǒng)(103)通過(guò)該事務(wù)委托模塊(104)能夠?qū)⒌桶踩缘墓δ苄枨笪薪o普通操作系統(tǒng)(102)進(jìn)行處理。
2.根據(jù)權(quán)利要求1所述的一種基于處理器安全擴(kuò)展的智能終端隔離系統(tǒng),其特征在于:所述安全啟動(dòng)模塊(106)由多級(jí)安全引導(dǎo)模塊組成,具體包括上電初始化模塊、認(rèn)證模塊和安全操作系統(tǒng)引導(dǎo)模塊;智能終端上電后,首先運(yùn)行的是上電初始化模塊,上電初始化模塊將負(fù)責(zé)硬件的簡(jiǎn)單初始化,包括時(shí)鐘初始化、異常向量表設(shè)置以及處理器安全擴(kuò)展模塊初始化;認(rèn)證模塊提供基礎(chǔ)的加密、解密和認(rèn)證功能,上電初始化模塊通過(guò)調(diào)用認(rèn)證模塊,確保安全操作系統(tǒng)引導(dǎo)模塊的完整性、合法性;當(dāng)安全操作系統(tǒng)引導(dǎo)模塊通過(guò)認(rèn)證后,上電初始化模塊將安全操作系統(tǒng)引導(dǎo)模塊加載到指定安全存儲(chǔ)區(qū)運(yùn)行;安全操作系統(tǒng)引導(dǎo)模塊將調(diào)用認(rèn)證模塊對(duì)安全操作系統(tǒng)的完整性、合法性進(jìn)行認(rèn)證;如果通過(guò)認(rèn)證,則安全啟動(dòng)過(guò)程完成,安全操作系統(tǒng)引導(dǎo)模塊將會(huì)引導(dǎo)、加載安全操作系統(tǒng),處理器執(zhí)行權(quán)將交給安全操作系統(tǒng)進(jìn)行進(jìn)一步初始化工作;如果未通過(guò)認(rèn)證,則系統(tǒng)掛起,安全啟動(dòng)失敗。
3.根據(jù)權(quán)利要求1所述的一種基于處理器安全擴(kuò)展的智能終端隔離系統(tǒng),其特征在于:所述通信代理模塊包括普通應(yīng)用通信模塊、可信應(yīng)用通信模塊;普通應(yīng)用通信代理模塊接收來(lái)自普通應(yīng)用模塊的數(shù)據(jù),進(jìn)行格式化封裝后,傳遞數(shù)據(jù)給可信應(yīng)用通信模塊;可信應(yīng)用通信模塊將接收的數(shù)據(jù)進(jìn)行解析,傳遞給安全操作系統(tǒng)的安全守護(hù)模塊進(jìn)行進(jìn)一步處理;普通應(yīng)用通信模塊和可信應(yīng)用通信模塊分別運(yùn)行在非安全和安全域;通信代理模塊將作為普通應(yīng)用模塊和可信應(yīng)用模塊的底層通信機(jī)制。
4.根據(jù)權(quán)利要求1所述的一種基于處理器安全擴(kuò)展的智能終端隔離系統(tǒng),其特征在于:所述安全操作系統(tǒng)將作為整個(gè)隔離系統(tǒng)的管理者,由內(nèi)存管理模塊、加密文件系統(tǒng)、安全調(diào)度器、可信應(yīng)用加載模塊、系統(tǒng)調(diào)用模塊、安全設(shè)備與驅(qū)動(dòng)管理模塊、安全守護(hù)模塊、安全中斷管理模塊、各類安全設(shè)備驅(qū)動(dòng)程序組成;內(nèi)存管理模塊為安全設(shè)備與驅(qū)動(dòng)管理模塊、安全守護(hù)模塊、可信應(yīng)用加載模塊、安全中斷管理模塊、進(jìn)程調(diào)度模塊的運(yùn)行提供底層的內(nèi)存分配與釋放機(jī)制,并負(fù)責(zé)設(shè)置普通操作系統(tǒng)以及安全操作系統(tǒng)各自的物理內(nèi)存區(qū)域,負(fù)責(zé)操作系統(tǒng)之間共享內(nèi)存塊的分配與撤銷,通過(guò)安全設(shè)備與驅(qū)動(dòng)管理模塊,加密文件系統(tǒng)可以方便的操作各類存儲(chǔ)設(shè)備,對(duì)文件進(jìn)行讀取和寫回操作;安全中斷管理模塊為安全設(shè)備與驅(qū)動(dòng)管理模塊提供底層的中斷響應(yīng)機(jī)制;安全設(shè)備與驅(qū)動(dòng)管理模塊負(fù)責(zé)管理各類安全設(shè)備;各類安全設(shè)備驅(qū)動(dòng)通過(guò)安全設(shè)備與驅(qū)動(dòng)管理模塊完成對(duì)安全設(shè)備的初始化以及各類請(qǐng)求響應(yīng),由于安全操作系統(tǒng)運(yùn)行在內(nèi)核態(tài),為了滿足可信應(yīng)用和安全操作系統(tǒng)的交互需求,系統(tǒng)調(diào)用模塊提供一系列接口函數(shù)幫助用戶態(tài)的可信應(yīng)用獲得安全操作系統(tǒng)的功能支持;當(dāng)可信應(yīng)用模塊需要運(yùn)行時(shí),由可信應(yīng)用加載模塊進(jìn)行認(rèn)證,確??尚艖?yīng)用的完整性、合法性,隨后通過(guò)認(rèn)證的可信應(yīng)用模塊將被加載到內(nèi)存;安全調(diào)度器作為所有可信應(yīng)用的調(diào)度器,負(fù)責(zé)從運(yùn)行隊(duì)列中挑選出合適的應(yīng)用程序占有處理器,獲得執(zhí)行機(jī)會(huì);安全守護(hù)模塊運(yùn)行在處理器守護(hù)態(tài),功能包括:(I)負(fù)責(zé)安全操作系統(tǒng)以及普通操作系統(tǒng)之間的上下文切換與恢復(fù);(2)負(fù)責(zé)普通應(yīng)用模塊與安全應(yīng)用模塊通信數(shù)據(jù)的安全性檢查;(3)和安全設(shè)備與驅(qū)動(dòng)管理模塊一起負(fù)責(zé)設(shè)備在安全與非安全運(yùn)行狀態(tài)切換下,設(shè)備上下文切換與恢復(fù),數(shù)據(jù)切換與恢復(fù);(4)和安全中斷管理模塊共同管理中斷信號(hào),所述中斷信號(hào)類型包括異步和同步;當(dāng)中斷發(fā)生時(shí),負(fù)責(zé)捕獲中斷,并根據(jù)中斷類型、中斷策略,決定中斷的響應(yīng)機(jī)制。
5.根據(jù)權(quán)利要求1所述的一種基于處理器安全擴(kuò)展的智能終端隔離系統(tǒng),其特征在于:所述事務(wù)委托模塊包括客戶端服務(wù)接口層、可信應(yīng)用事務(wù)委托接口層及事務(wù)委托處理模塊;事務(wù)委托模塊負(fù)責(zé)為普通應(yīng)用模塊提供安全請(qǐng)求接口,為可信應(yīng)用提供事務(wù)委托接口,并負(fù)責(zé)安全操作系統(tǒng)委托的相關(guān)事務(wù)的處理,如將加密后的文件回寫普通文件系統(tǒng)等;普通應(yīng)用模塊通過(guò)客戶端服務(wù)接口層提供的接口發(fā)起安全請(qǐng)求,該請(qǐng)求將會(huì)被事務(wù)委托處理模塊捕獲,并通過(guò)通信代理模塊轉(zhuǎn)發(fā)給可信應(yīng)用模塊做進(jìn)一步處理;當(dāng)可信應(yīng)用程序需要進(jìn)行耗時(shí)、低安全性操作時(shí),通過(guò)調(diào)用可信應(yīng)用事務(wù)委托接口層發(fā)起事務(wù)委托請(qǐng)求,通過(guò)通信代理模塊轉(zhuǎn)發(fā)給事務(wù)委托處理模塊并由事務(wù)委托處理模塊進(jìn)行請(qǐng)求處理。
6.根據(jù)權(quán)利要求4所述的一種基于處理器安全擴(kuò)展的智能終端隔離系統(tǒng),其特征在于:所述安全守護(hù)模塊中的和安全設(shè)備與驅(qū)動(dòng)管理模塊一起負(fù)責(zé)設(shè)備在安全與非安全運(yùn)行狀態(tài)切換下,設(shè)備上下文切換與恢復(fù),數(shù)據(jù)切換與恢復(fù)具體實(shí)現(xiàn)為:當(dāng)設(shè)備處于安全域運(yùn)行時(shí),則稱為安全設(shè)備;當(dāng)處于非安全域運(yùn)行時(shí),則稱為非安全設(shè)備;如果處理器安全擴(kuò)展模塊支持動(dòng)態(tài)改變?cè)O(shè)備運(yùn)行狀態(tài),即將設(shè)備從安全狀態(tài)轉(zhuǎn)化為非安全狀態(tài),或者將設(shè)備從非安全狀態(tài)轉(zhuǎn)化為安全狀態(tài),這意味著同一個(gè)設(shè)備被安全域和非安全域所共享;為了確保設(shè)備數(shù)據(jù)的隔離,安全守護(hù)模塊將負(fù)責(zé)設(shè)備上下文的切換以及數(shù)據(jù)的切換與恢復(fù);隨后調(diào)用安全設(shè)備與驅(qū)動(dòng)管理模塊轉(zhuǎn)向各類安全設(shè)備驅(qū)動(dòng)程序;如果處理器安全擴(kuò)展模塊不支持動(dòng)態(tài)改變?cè)O(shè)備運(yùn)行狀態(tài),則由安全設(shè)備與驅(qū)動(dòng)管理模塊初始化時(shí)直接設(shè)定各類設(shè)備是否屬于安全域。
7.根據(jù)權(quán)利要求1所述的一種基于處理器安全擴(kuò)展的智能終端隔離系統(tǒng),其特征在于:所述安全守護(hù)模塊和安全中斷管理模塊共同管理中斷信號(hào)實(shí)現(xiàn)為:在智能終端設(shè)備上,異步中斷信號(hào)可能隨時(shí)發(fā)生,包括處理器正處在安全域,此時(shí)發(fā)生了一個(gè)安全中斷信號(hào),或者處理器運(yùn)行在安全域,此時(shí)發(fā)生了一個(gè)非安全中斷信號(hào);為了防止非安全中斷信號(hào)頻繁打斷安全域內(nèi)運(yùn)行的代碼,安全守護(hù)模塊作為安全域內(nèi)中斷的入口,當(dāng)中斷發(fā)生時(shí),負(fù)責(zé)捕獲中斷,并根據(jù)中斷類型、中斷策略,決定中斷的響應(yīng)機(jī)制;如果該中斷是安全中斷,則執(zhí)行權(quán)直接交給安全中斷管理模塊;如果該中斷是非安全中斷,則判斷當(dāng)前是否允許該中斷,如果不允許則直接返回被打斷的程序,否則給事務(wù)委托模塊發(fā)送中斷相關(guān)信息,然后返回。
8.根據(jù)權(quán)利要求1所述的一種基于處理器安全擴(kuò)展的智能終端隔離系統(tǒng),其特征在于:所述安全中間件包括密碼算法庫(kù)、安全圖形界面庫(kù)、安全C語(yǔ)言庫(kù)、事務(wù)委托庫(kù)以及算法構(gòu)建庫(kù);上述各類庫(kù)共同為可信應(yīng)用的開發(fā)提供底層功能支持,包括密碼處理、安全界面,并且運(yùn)行在用戶態(tài),上述各類庫(kù)的實(shí)現(xiàn)則依賴于安全操作系統(tǒng)的系統(tǒng)調(diào)用模塊以及安全設(shè)備與驅(qū)動(dòng)管理模塊提供的基礎(chǔ)功能支持;密碼算法庫(kù)為可信應(yīng)用提供常用的對(duì)稱、非對(duì)稱密碼算法、摘要算法;所述安全圖形界面庫(kù)為可信應(yīng)用提供界面構(gòu)建需要的基本接口 ;所述安全C語(yǔ)言庫(kù)則為可信應(yīng)用的開發(fā)提供必要的功能,包括字符串操作、數(shù)據(jù)拷貝;所述事務(wù)委托庫(kù)提供可信應(yīng)用模塊發(fā)起事務(wù)委托的必要功能接口 ;所述算法構(gòu)建庫(kù)提供了大數(shù)的表示與運(yùn)算的基本接口,用于可信應(yīng)用構(gòu)建自身特殊的密碼算法需求。
9.一種基于處理器安全擴(kuò)展的智能終端隔離方法,其特征在于實(shí)現(xiàn)步驟如下; (1)智能終端上電后運(yùn)行上電初始化模塊,該模塊對(duì)智能終端硬件環(huán)境進(jìn)行初始化,包括時(shí)鐘、安全擴(kuò)展; (2)上電初始化模塊調(diào)用認(rèn)證模塊,對(duì)安全操作系統(tǒng)引導(dǎo)模塊進(jìn)行解密、認(rèn)證; (3)通過(guò)認(rèn)證后,上電初始化模塊引導(dǎo)、加載安全操作系統(tǒng)引導(dǎo)模塊; (4)安全操作系統(tǒng)引導(dǎo)模塊調(diào)用認(rèn)證模塊,對(duì)安全操作系統(tǒng)進(jìn)行解密、認(rèn)證; (5)通過(guò)認(rèn)證后,安全操作系統(tǒng)引導(dǎo)模塊引導(dǎo)、加載安全操作系統(tǒng); (6)安全操作系統(tǒng)開始初始化過(guò)程,首先初始化內(nèi)存管理模塊,然后初始化安全守護(hù)模塊,可信應(yīng)用代理模塊,然后初始化安全中斷管理模塊、加密文件系統(tǒng),隨后初始化可信應(yīng)用加載模塊、安全設(shè)備與驅(qū)動(dòng)管理模塊,并初始化設(shè)備驅(qū)動(dòng)程序; (7)初始化完成后,調(diào)用安全守護(hù)模塊返回普通操作系統(tǒng),進(jìn)一步完成非安全域的初始化; (8)事務(wù)委托模塊、普通應(yīng)用通信模塊將會(huì)隨著普通操作系統(tǒng)的啟動(dòng)而掛載運(yùn)行起來(lái); (9)普通應(yīng)用模塊通過(guò)調(diào)用客戶端服務(wù)接口層發(fā)起安全請(qǐng)求; (10)事務(wù)委托處理模塊捕獲該請(qǐng)求,并調(diào)用普通應(yīng)用通信模塊轉(zhuǎn)發(fā)該請(qǐng)求; (11)可信應(yīng)用通信模塊接受該請(qǐng)求,并轉(zhuǎn)發(fā)給安全守護(hù)模塊; (12)安全守護(hù)模塊經(jīng)過(guò)安全檢查,將處理器狀態(tài)進(jìn)行切換,保存相關(guān)數(shù)據(jù),利用安全調(diào)度器,將其轉(zhuǎn)發(fā)給可信應(yīng)用模塊; (13)可信應(yīng)用模塊通過(guò)安全中間件提供的相關(guān)功能,處理響應(yīng)的安全請(qǐng)求。
【文檔編號(hào)】G06F21/74GK104318182SQ201410596688
【公開日】2015年1月28日 申請(qǐng)日期:2014年10月29日 優(yōu)先權(quán)日:2014年10月29日
【發(fā)明者】王雅哲, 徐震, 田琛, 王瑜 申請(qǐng)人:中國(guó)科學(xué)院信息工程研究所