本發(fā)明的實(shí)施例總體上涉及一種用于提供全球平臺兼容可信執(zhí)行環(huán)境(tee)的系統(tǒng)和方法。
背景技術(shù):
全球平臺(gp)是發(fā)布對應(yīng)用的安全部署和管理的規(guī)范的行業(yè)廣泛的協(xié)會??尚艌?zhí)行環(huán)境(tee)是由gp限定的提供用于存儲和處理敏感信息的安全環(huán)境的規(guī)范。tee規(guī)范幫助原始設(shè)備制造商(oem)和獨(dú)立軟件開發(fā)商(isv)創(chuàng)建和部署敏感應(yīng)用,如安全交易、數(shù)字版權(quán)管理、近場通信(nfc)支付等。
為了在平臺上提供gptee支持,兩種當(dāng)前方法包括:(i)基于虛擬存儲器管理器(vmm)的方法和(ii)對完全在安全處理器內(nèi)的tee的實(shí)現(xiàn)。由于整個vmm都包括在可信代碼基(tcb)中,并且可信應(yīng)用不具有隔離,因此第一種方法具有創(chuàng)建更大攻擊表面供利用的缺點(diǎn)。第二種方法受資源限制,從而使得其具有受限的可擴(kuò)展性的缺點(diǎn)。
附圖說明
以示例的方式而不是以受限于附圖中的圖的方式展示了本發(fā)明的實(shí)施例,其中在附圖中相同的參考標(biāo)記指示類似的要素。應(yīng)該注意的是,在本公開中對本發(fā)明的“實(shí)施例”或“一個實(shí)施例”的引用不一定是指相同的實(shí)施例,并且它們表示至少一個。在附圖中:
圖1展示了根據(jù)本發(fā)明的一個實(shí)施例的用于提供gp兼容tee的系統(tǒng)的框圖。
圖2展示了根據(jù)本發(fā)明的一個實(shí)施例的用于提供圖1中的gp兼容tee的系統(tǒng)的細(xì)節(jié)的框圖。
圖3展示了根據(jù)本發(fā)明的實(shí)施例的用于提供gp兼容tee的示例方法的流程圖。
圖4a至圖4b展示了根據(jù)本發(fā)明的實(shí)施例的用于執(zhí)行圖3中的框310中的ta飛地中的命令的方法的流程圖。
圖5展示了適用于實(shí)現(xiàn)本公開的實(shí)施例的計算機(jī)系統(tǒng)。
具體實(shí)施方式
在下列描述中,陳述了眾多具體細(xì)節(jié)。然而,應(yīng)理解本發(fā)明的實(shí)施例可以在沒有這些具體的細(xì)節(jié)的情況下實(shí)踐。在其他實(shí)例中,公知的電路、結(jié)構(gòu)和技術(shù)沒有說明以避免模糊對本發(fā)明的理解。
圖1展示了根據(jù)本發(fā)明的一個實(shí)施例的用于提供gp兼容tee的系統(tǒng)10的框圖。系統(tǒng)10可以是移動電話通信設(shè)備或智能電話。然而,系統(tǒng)10還可以是例如臺式計算機(jī)、膝上型計算機(jī)、平板計算機(jī)、筆記本計算機(jī)或可穿戴計算機(jī)。系統(tǒng)10還可以包括通信接口,所述通信接口包括具有通信電路系統(tǒng)(如射頻(rf)收發(fā)器電路系統(tǒng)等)的無線通信設(shè)備。在一個實(shí)施例中,包括在系統(tǒng)10中的麥克風(fēng)端口和揚(yáng)聲器端口可以耦合至通信電路系統(tǒng)以便使用戶能夠參與無線電話或視頻通話。在無線通信設(shè)備中可以支持多種不同的無線通信網(wǎng)絡(luò)和協(xié)議。這些包括:蜂窩移動電話網(wǎng)絡(luò)(例如,全球移動通信系統(tǒng)(gsm)網(wǎng)絡(luò)),包括目前2g、3g和4g網(wǎng)絡(luò)以及它們相關(guān)聯(lián)的通話和數(shù)據(jù)協(xié)議;以及ieee802.11數(shù)據(jù)網(wǎng)絡(luò)(wifi或無線局域網(wǎng),wlan),所述網(wǎng)絡(luò)還可以支持互聯(lián)網(wǎng)協(xié)議上的語音(voip)呼叫。
如圖1中所示出的,系統(tǒng)10包括主處理器100、存儲器設(shè)備200和安全處理器600。主處理器100可以包括如微處理器、微控制器、數(shù)字信號處理器或中央處理單元等處理器以及其他需要的集成電路(如膠合邏輯)。術(shù)語“處理器”可以指具有兩個或更多個處理單元或元件的設(shè)備,例如具有多個處理核的cpu。主處理器100可以用于通過執(zhí)行存儲在存儲器設(shè)備200中的軟件指令或代碼來控制系統(tǒng)10的操作。存儲器200可以包括一種或多種不同類型的存儲設(shè)備,如硬盤驅(qū)動器存儲設(shè)備、非易失性存儲器和易失性存儲器(如動態(tài)隨機(jī)存取存儲器)。在一些情況下,如以下所描述的特定功能可以被實(shí)現(xiàn)為存儲器200中由主處理器100的不同硬件單元執(zhí)行的兩個或多個軟件塊。在一個實(shí)施例中,主處理器100耦合至存儲器設(shè)備200以便執(zhí)行存儲在存儲器設(shè)備200中的應(yīng)用。所述應(yīng)用包括客戶端應(yīng)用(ca)和可信應(yīng)用(ta)。在一個實(shí)施例中,當(dāng)主處理器100執(zhí)行應(yīng)用時,主處理器100在客戶端進(jìn)程300中運(yùn)行ca并且在tee主機(jī)進(jìn)程400中運(yùn)行ta。主處理器100還可以耦合至存儲器設(shè)備200以便運(yùn)行體系結(jié)構(gòu)飛地服務(wù)(aes)進(jìn)程500。如圖2中所示出的,客戶端進(jìn)程300、tee主機(jī)進(jìn)程400和aes進(jìn)程500可以分開。
ca是調(diào)用ta的軟件應(yīng)用。ca不包括需要保護(hù)的任何敏感代碼和數(shù)據(jù)。例如,ca可以是調(diào)用可信服務(wù)的isv應(yīng)用。相比而言,ta是包括必須保護(hù)的敏感代碼和數(shù)據(jù)的軟件應(yīng)用。當(dāng)ca調(diào)用ta時,ta被實(shí)例化。在此體系結(jié)構(gòu)中,ta與tee內(nèi)運(yùn)行的系統(tǒng)的剩余部分隔離開。隔離的類型可以由主處理器100(例如,cpu)的模式切換提供。在一個實(shí)施例中,實(shí)現(xiàn)gptee的方法使用主處理器100和安全處理器600(例如,
圖2展示了根據(jù)本發(fā)明一個實(shí)施例的系統(tǒng)10的細(xì)節(jié)的框圖。如圖2中所示出的,主處理器100通過在客戶端進(jìn)程300中運(yùn)行ca并且在tee主機(jī)進(jìn)程400中運(yùn)行ta來執(zhí)行應(yīng)用??蛻舳诉M(jìn)程300是托管不包括任何安全需求的ca的進(jìn)程。如圖2中所示出的,客戶端處理器300包括ca、gp客戶端應(yīng)用編程接口(api)和客戶端通信代理301。gp客戶端api是可以修改成與tee主機(jī)進(jìn)程400進(jìn)行通信的gp限定的客戶端api。在一個實(shí)施例中,gp客戶端api可以包括tee客戶端api,所述tee客戶端api是由ca用來建立與相應(yīng)ta進(jìn)行通信并且調(diào)用ta內(nèi)的安全操作的編程接口集??蛻舳送ㄐ糯?01可以支持與tee主機(jī)進(jìn)程400的進(jìn)程間通信。
參照圖2,tee主機(jī)進(jìn)程400是與托管ta和其他可信服務(wù)的客戶端進(jìn)程300分開的進(jìn)程。ta中的每一個以及其他可信服務(wù)在分開的飛地中運(yùn)行。tee主機(jī)進(jìn)程400還向具有其他組件(如os、ca和體系結(jié)構(gòu)飛地(ae)(如平臺服務(wù)飛地(pse)))的接口提供通信方法。tee主機(jī)進(jìn)程400包括多個ta飛地4011-401n(n>1)、gptee服務(wù)飛地402、os服務(wù)403以及tee通信代理404。ta飛地4011-401n和gptee服務(wù)飛地402包括在tee中。
每個ta應(yīng)用在分開的ta飛地4011-401n中運(yùn)行。當(dāng)ca調(diào)用ta時,tee主機(jī)進(jìn)程400發(fā)起被調(diào)用的ta飛地。gptee服務(wù)飛地402(例如,gp可信服務(wù)飛地)為ta提可信服務(wù),包括例如ta飛地的調(diào)用和生命周期管理、ta到ta的通信安全、以及簿記各個ta信息(如安全存儲管理)。如以上所討論的,可以使用提供安全執(zhí)行環(huán)境(例如,sgx)的主處理器100的特征來實(shí)現(xiàn)對ta飛地4011-401n的隔離。每個ta飛地4011-401n可以包括gp內(nèi)部api、gp可信運(yùn)行時間系統(tǒng)(rts)和本地可信rts。gp內(nèi)部api可以包括tee內(nèi)部api,所述tee內(nèi)部api是由ta用來使gp規(guī)范中限定的服務(wù)安全的編程接口集。tee內(nèi)部api包括例如用于訪問密碼、時間、算法、存儲設(shè)備和用戶接口(ui)服務(wù)的api。gp可信rts是靜態(tài)庫,所述靜態(tài)庫提供對用于可信應(yīng)用的內(nèi)部api的實(shí)現(xiàn)。例如,gp可信rts可以包括用于訪問密碼、存儲器管理器和存儲設(shè)備的可信庫。本地可信rts可以是例如本地sgx可信rts。在此實(shí)施例中,由于:(i)每個ta在其自己的ta飛地4011-401n內(nèi)運(yùn)行,所述ta飛地具有基于主處理器的保護(hù);(ii)可信服務(wù)也是在ta飛地4011-401n內(nèi)封裝或者從安全處理器600中得出;以及(iii)在可信代碼基(tcb)內(nèi)部不存在os或內(nèi)核服務(wù),這減小了攻擊表面,因此,實(shí)現(xiàn)了更高的安全級別。
os服務(wù)403不受保護(hù)并且提供支持庫和服務(wù)。os服務(wù)403可以包括不可信基礎(chǔ)設(shè)施服務(wù),所述不可信基礎(chǔ)設(shè)施服務(wù)包括交織、同步、命令隊列處理和gp不可信運(yùn)行時間系統(tǒng)(rts)。os服務(wù)403還可以包括如本地sgx不可信rts等本地不可信rts。
tee通信代理404支持與ca進(jìn)程300的進(jìn)程間通信。如圖3中所示出的,客戶端通信代理301和tee通信代理404可以經(jīng)由進(jìn)程間通信(ipc)信道201進(jìn)行通信。因此,ipc信道201提供了客戶端進(jìn)程300與tee主機(jī)進(jìn)程400之間的通信信道。
類似地,ipc信道202提供了tee主機(jī)進(jìn)程400與aes進(jìn)程500之間的通信信道。aes進(jìn)程500包括如提供安全服務(wù)(如時間)的pse等多個體系結(jié)構(gòu)飛地(ae)5011-501m(m>1)、單調(diào)計數(shù)器、以及可信輸入-輸出(i/o),以便在ta飛地4011-401n中實(shí)現(xiàn)gp內(nèi)部api。體系結(jié)構(gòu)飛地5011-501m可以使用如安全處理器600等基礎(chǔ)硬件。在一個實(shí)施例中,pse和體系結(jié)構(gòu)飛地5011-501m向ta提供安全服務(wù)。
在一些實(shí)施例中,安全處理器600可以是安全協(xié)處理器,如使用硬件隔離提供可信服務(wù)的cse??尚欧?wù)的示例包括可信時間和可信用戶接口(tui)。在一些實(shí)施例中,其他安全平臺組件(如nfc)可以用于向tee主機(jī)進(jìn)程400提供可信服務(wù)。
關(guān)于效益,由于提供安全執(zhí)行環(huán)境(例如,sgx)的主處理器100特征可以向脫離平臺實(shí)體提供飛地軟件的基于硬件的證明,因此系統(tǒng)10提供了強(qiáng)烈的遠(yuǎn)程證明能力。由于gptee在主處理器100上運(yùn)行并且如此tee主機(jī)進(jìn)程400已經(jīng)訪問了所有平臺資源,因此系統(tǒng)10也是可擴(kuò)展的。由于系統(tǒng)10不需要固件升級,因此系統(tǒng)10還為oem和isv提供成本效益以便部署新的ta。進(jìn)一步,由于不存在卸載安全操作的協(xié)處理器從而使得減少了系統(tǒng)的等待時間,因此系統(tǒng)10提供了改善的系統(tǒng)響應(yīng)性。
此外,本發(fā)明的以下實(shí)施方式可以描述為過程,其通常由流程圖、流圖、結(jié)構(gòu)圖或者框圖來描繪。盡管流程圖可以將操作描述成了順序的過程,但很多操作可以并行地或同時地進(jìn)行。另外,可以重新安排操作的順序。當(dāng)一個處理的操作完成時,該處理終止。過程可以對應(yīng)于方法、流程等。
圖3展示了根據(jù)本發(fā)明的實(shí)施例的用于提供gp兼容tee的示例方法300的流程圖。方法300開始于主處理器100執(zhí)行存儲在存儲器設(shè)備200中的應(yīng)用(框301)。所述應(yīng)用包括客戶端應(yīng)用(ca)和可信應(yīng)用(ta)。執(zhí)行所述應(yīng)用包括在客戶端進(jìn)程300中運(yùn)行所述ca并且在tee主機(jī)進(jìn)程400中運(yùn)行所述ta??蛻舳诉M(jìn)程300與tee主機(jī)進(jìn)程400分開。在框302處,客戶端進(jìn)程300使用客戶端api來在tee主機(jī)進(jìn)程400中初始化tee。在框303處,客戶端進(jìn)程300將用于開啟會話的請求傳輸至tee主機(jī)進(jìn)程400。所述請求可以包括特定ta的標(biāo)識符。在一些實(shí)施例中,標(biāo)識符是ta的唯一通用標(biāo)識符(uuid)??梢越?jīng)由ipc機(jī)制發(fā)送請求。在框304處,gp可信服務(wù)飛地402接收請求并確定與標(biāo)識符相關(guān)聯(lián)的ta飛地。gp可信服務(wù)飛地402包括在tee主機(jī)進(jìn)程400中。在框305處,gp可信服務(wù)飛地402在tee主機(jī)進(jìn)程400中加載與標(biāo)識符相關(guān)聯(lián)的ta飛地401n以便建立會話。在一個實(shí)施例中,當(dāng)預(yù)先加載了與標(biāo)識符相關(guān)聯(lián)的ta飛地401n時,gp可信服務(wù)飛地402選擇與標(biāo)識符相關(guān)聯(lián)的ta飛地401n。在框306處,一旦建立了會話,客戶端進(jìn)程300就向tee主機(jī)進(jìn)程400傳輸將在ta飛地401n中調(diào)用的命令以及命令所需要的參數(shù)集。可以經(jīng)由ipc信道(例如,ipc信道201)傳輸命令和參數(shù)集。在框307處,包括在tee主機(jī)進(jìn)程400中的os服務(wù)403對命令進(jìn)行排隊,并且在框308處,gp可信服務(wù)飛地402驗(yàn)證參數(shù)。在一個實(shí)施例中,參數(shù)是不可信的。在驗(yàn)證后,在框309處,依次將命令從os服務(wù)403調(diào)度到與標(biāo)識符相關(guān)聯(lián)的ta飛地401n。
在框310處,使用gp內(nèi)部api在與標(biāo)識符相關(guān)聯(lián)的ta飛地401n中執(zhí)行命令。參照圖4a至圖4b,根據(jù)本發(fā)明的實(shí)施例的用于執(zhí)行圖3中的框310中的ta飛地401n中的命令的方法的流程圖。在圖4a中,在ta飛地401n中執(zhí)行命令包括使用gp可信rts以及包括在ta飛地401n中的本地可信rts實(shí)現(xiàn)gp內(nèi)部api(框411)。例如,對使用sgx運(yùn)行時間系統(tǒng)內(nèi)部地提供的服務(wù)(例如,加密、安全存儲、存儲器管理服務(wù))而言,想要利用加密操作的ta飛地401n例如調(diào)用在tee規(guī)范中限定的gp內(nèi)部加密api,并且gp可信rts反過來利用如sgxrts中的aes等現(xiàn)有加密能力。
在一個實(shí)施例中,主處理器100進(jìn)一步運(yùn)行aes進(jìn)程,所述aes進(jìn)程包括分別提供安全服務(wù)的多個ae。例如,提供的服務(wù)如訪問安全時間、使用單調(diào)計數(shù)器重放保護(hù)等。aes進(jìn)程與客戶端進(jìn)程和tee主機(jī)進(jìn)程分開。在圖4b中的實(shí)施例中,在ta飛地401n中執(zhí)行命令包括在tee主機(jī)進(jìn)程400與包括在aes進(jìn)程500中的ae501m中的一個ae之間建立安全信道(例如,ipc信道202)(框421)。在框422處,tee主機(jī)進(jìn)程400將包括命令中的至少一個命令的請求傳輸至ae501m中的所述一個ae,并且在框423處,在ae501m中的所述一個ae與安全處理器600之間建立安全信道。例如,想要利用安全時間的ta將調(diào)用在tee規(guī)范中限定的內(nèi)部時間api。由于安全時間服務(wù)由內(nèi)部體系結(jié)構(gòu)飛地501m提供,因此sgxrts首先建立安全信道以便將請求引導(dǎo)到tee主機(jī)進(jìn)程400外部。在通過安全信道(例如,ipc信道202)連接之后,ae501m確認(rèn)請求并提供安全時間服務(wù)。ae501m反過來建立具有安全處理器600(例如,cse)的安全信道以便利用硬件時鐘提供安全時間。
在框311處,當(dāng)完成執(zhí)行命令時,客戶端進(jìn)程300將請求傳輸至gp可信服務(wù)飛地402以便關(guān)閉會話,并且在框312處,gp可信服務(wù)飛地402處理與會話有關(guān)的信息并卸載與標(biāo)識符相關(guān)聯(lián)的ta飛地401n。在一個實(shí)施例中,gp可信服務(wù)飛地402處理與會話有關(guān)的信息包括定位并移除所有會話特定信息。
在圖3中的實(shí)施例中,方法300是符合可擴(kuò)展的gptee規(guī)范的多進(jìn)程方法。ca和ta運(yùn)行它們自己的進(jìn)程,并且通過標(biāo)準(zhǔn)os提供的ipc機(jī)制相互通信。通過在分開的進(jìn)程中運(yùn)行ca和ta使能夠符合如tee規(guī)范中所描述的ta實(shí)例化的所有場景。
圖5展示了計算系統(tǒng)700(如系統(tǒng)10)的示意表示。計算系統(tǒng)700包括總線705(或者例如,用于傳遞信息的鏈路、互連、或另一類型的通信設(shè)備或接口)以及可處理信息的、耦合至總線705的處理器710。盡管計算系統(tǒng)700展示有單個處理器,但是電子系統(tǒng)700可包括多個處理器和/或協(xié)處理器,如一個或多個中央處理器、圖形處理器和物理處理器等。計算系統(tǒng)700可以進(jìn)一步包括耦合至總線705的隨機(jī)存取存儲器(ram)或其他動態(tài)存儲設(shè)備720(被稱為主存儲器),并且可以存儲可由處理器710執(zhí)行的信息和指令。主存儲器720也可以用于在處理器510執(zhí)行指令期間存儲臨時變量或其他中間信息。
計算系統(tǒng)700還可以包括耦合至總線705的可以存儲用于處理器710的靜態(tài)信息和指令的只讀存儲器(rom)和/或其他存儲設(shè)備730。數(shù)據(jù)存儲設(shè)備740可耦合至總線705以存儲信息和指令。如磁盤或光盤等數(shù)據(jù)存儲設(shè)備740和相應(yīng)的驅(qū)動器可耦合至計算系統(tǒng)700。
計算系統(tǒng)700也可以經(jīng)由總線705耦合至顯示設(shè)備750(如陰極射線管(crt)、液晶顯示器(lcd)或有機(jī)發(fā)光二極管(oled)陣列)以向用戶顯示信息。包括字母數(shù)字及其他鍵的用戶輸入設(shè)備760可以耦合至總線705以便將信息和命令選擇傳送至處理器710。另一類型的用戶輸入設(shè)備760是用于將方向信息和命令選擇傳遞至處理器710并控制顯示器750上的光標(biāo)移動的光標(biāo)控制裝置770(如鼠標(biāo)、軌跡球、觸摸屏、觸摸板或光標(biāo)方向鍵)。計算機(jī)系統(tǒng)700的相機(jī)和麥克風(fēng)陣列790可以耦合至總線705以便觀察手勢、記錄音頻和視頻并接收和發(fā)射視頻和音頻命令。
計算系統(tǒng)700可進(jìn)一步包括(多個)網(wǎng)絡(luò)接口780以提供對網(wǎng)絡(luò)的訪問,如,局域網(wǎng)(lan)、廣域網(wǎng)(wan)、城域網(wǎng)(man)、個域網(wǎng)(pan)、藍(lán)牙、云網(wǎng)絡(luò)、移動網(wǎng)絡(luò)(例如,第3代(3g)等)、內(nèi)聯(lián)網(wǎng)、因特網(wǎng)等。(多個)網(wǎng)絡(luò)接口580可以包括,例如,具有可以表示一個或多個天線的天線785的無線網(wǎng)絡(luò)接口。(多個)網(wǎng)絡(luò)接口780也可以包括,例如,經(jīng)由網(wǎng)絡(luò)電纜787與遠(yuǎn)程設(shè)備通信的有線網(wǎng)絡(luò)接口,所述網(wǎng)絡(luò)電纜可以是例如以太網(wǎng)電纜、同軸電纜、光纜、串行電纜或并行電纜。
(多個)網(wǎng)絡(luò)接口780可例如通過遵循ieee802.11b和/或ieee802.11g標(biāo)準(zhǔn)來提供對lan的訪問,并且/或者無線網(wǎng)絡(luò)接口可以例如通過遵循藍(lán)牙標(biāo)準(zhǔn)來提供對個域網(wǎng)的訪問。也可以支持其他無線網(wǎng)絡(luò)接口和/或協(xié)議(包括先前和后續(xù)版本的標(biāo)準(zhǔn))。
附加于或替代于經(jīng)由無線lan標(biāo)準(zhǔn)通信,(多個)網(wǎng)絡(luò)接口780可以使用例如以下協(xié)議來提供無線通信:時分多址(tdma)協(xié)議、全球移動通信系統(tǒng)(gsm)協(xié)議、碼分多址(cdma)協(xié)議和/或任何其他類型的無線通信協(xié)議。
(多個)網(wǎng)絡(luò)接口780可以包括一個或多個通信接口,如調(diào)制解調(diào)器、網(wǎng)絡(luò)接口卡或其他眾所周知的接口設(shè)備,如用于為了提供通信鏈路以支持例如lan或wan而耦合至以太網(wǎng)、令牌環(huán)或其他類型的物理有線或無線附連的那些通信接口。以這種方式,計算機(jī)系統(tǒng)也可以經(jīng)由常規(guī)的網(wǎng)絡(luò)基礎(chǔ)設(shè)施(例如,包括內(nèi)聯(lián)網(wǎng)或因特網(wǎng))而耦合至多個外圍設(shè)備、客戶機(jī)、控制面、控制臺或服務(wù)器。
將領(lǐng)會,對于某些實(shí)現(xiàn),比以上所描述的示例更少或更多地配備的系統(tǒng)可以是優(yōu)選的。因此,取決于眾多因素(如價格約束、性能要求、技術(shù)改進(jìn)或其他情況)計算系統(tǒng)700的配置可以因?qū)崿F(xiàn)不同而改變。電子設(shè)備或計算機(jī)系統(tǒng)500的示例可以包括但不限于:移動設(shè)備、個人數(shù)字助理、移動計算設(shè)備、智能電話、蜂窩式電話、手持設(shè)備、單向?qū)ず魴C(jī)、雙向?qū)ず魴C(jī)、消息收發(fā)設(shè)備、計算機(jī)、個人計算機(jī)(pc)、臺式計算機(jī)、膝上型計算機(jī)、筆記本計算機(jī)、手持式計算機(jī)、平板計算機(jī)、服務(wù)器、服務(wù)器陣列或服務(wù)器場、web服務(wù)器、網(wǎng)絡(luò)服務(wù)器、因特網(wǎng)服務(wù)器、工作站、小型計算機(jī)、大型計算機(jī)、超級計算機(jī)、網(wǎng)絡(luò)設(shè)備、web設(shè)備、分布式計算系統(tǒng)、多處理器系統(tǒng)、基于處理器的系統(tǒng)、消費(fèi)電子設(shè)備、可編程消費(fèi)電子設(shè)備、電視、數(shù)字電視、機(jī)頂盒、無線接入點(diǎn)、基站、訂戶站、移動訂戶中心、無線電網(wǎng)絡(luò)控制器、路由器、集線器、網(wǎng)關(guān)、橋接器、交換機(jī)、機(jī)器或上述各項的組合。
實(shí)施例可以實(shí)現(xiàn)為以下各項中的任何一項或組合:使用母板互連的一個或多個微芯片或集成電路、硬連線邏輯、由存儲器設(shè)備存儲且由微處理器執(zhí)行的軟件、固件、專用集成電路(asic)和/或現(xiàn)場可編程門陣列(fpga)。以示例的方式,術(shù)語“邏輯”可以包括軟件或硬件以及/或者軟件和硬件的組合。
可以將實(shí)施例作為例如計算機(jī)程序產(chǎn)品來提供,所述計算機(jī)程序產(chǎn)品可以包括其上存儲有機(jī)器可執(zhí)行指令的一種或多種機(jī)器可讀介質(zhì),當(dāng)由一個或多個機(jī)器(如計算機(jī)、計算機(jī)的網(wǎng)絡(luò)或其他電子設(shè)備)執(zhí)行這些機(jī)器可執(zhí)行指令時,這些機(jī)器可執(zhí)行指令可以使一個或多個機(jī)器執(zhí)行根據(jù)本文中所描述的實(shí)施例的操作。機(jī)器可讀介質(zhì)可以包括但不限于:軟盤、光盤、cd-rom(cd盤只讀存儲器)以及磁光盤、rom、ram、eprom(可擦除可編程只讀存儲器)、eeprom(電可擦除可編程只讀存儲器)、磁卡或光卡、閃存、或者適用于存儲機(jī)器可執(zhí)行指令的其他類型的介質(zhì)/機(jī)器可讀介質(zhì)。
實(shí)施例可以實(shí)現(xiàn)為以下各項中的任何一項或組合:使用母板互連的一個或多個微芯片或集成電路、硬連線邏輯、由存儲器設(shè)備存儲且由微處理器執(zhí)行的軟件、固件、專用集成電路(asic)和/或現(xiàn)場可編程門陣列(fpga)。以示例的方式,術(shù)語“邏輯”可以包括軟件或硬件以及/或者軟件和硬件的組合。
此外,實(shí)施例可以作為計算機(jī)程序產(chǎn)品被下載,其中,可以經(jīng)由通信鏈路(例如,調(diào)制解調(diào)器和/或網(wǎng)絡(luò)連接),借助于在載波或其他傳播介質(zhì)中具體化和/或由載波或其他傳播介質(zhì)調(diào)制的一個或多個數(shù)據(jù)信號來將程序從遠(yuǎn)程計算機(jī)(例如,服務(wù)器)傳輸至請求計算機(jī)(例如,客戶機(jī))。
對“一個實(shí)施例(oneembodiment)”、“實(shí)施例(anembodiment)”、“示例實(shí)施例(exampleembodiment)”、“各種實(shí)施例(variousembodiments)”等的引用指示:如此描述的(多個)實(shí)施例可以包括特定的特征、結(jié)構(gòu)或特性,但并非每一個實(shí)施例必定包括這些特定的特征、結(jié)構(gòu)或特性。進(jìn)一步,一些實(shí)施例可具有針對其他實(shí)施例所描述的特征的一部分、全部、或不具有任何所述特征。
在以下說明書和權(quán)利要求書中,可以使用術(shù)語“耦合”及其衍生詞?!榜詈稀庇糜谥甘緝蓚€或更多個元件彼此協(xié)作或相互作用,但是它們之間可以具有或不具有中間物理或電學(xué)組件。
如權(quán)利要求書中所使用的,除非另有說明,否則使用序數(shù)形容詞“第一”、“第二”、“第三”等來描述公共元件,僅指示類似元件的不同實(shí)例被提及,并不意圖暗示如此描述的元素必須在給定的序列,無論是時間、空間、等級或以任何其他方式。
在說明書中,某些術(shù)語用于描述本發(fā)明的特征。例如,在某些情況下,術(shù)語“組件”、“單元”、“模塊”和“邏輯”表示被配置成用于執(zhí)行一個或多個功能的硬件和/或軟件。例如,“硬件”的示例包括但不限于或不受限于如處理器(例如,數(shù)字信號處理器、微處理器、專用集成電路、微控制器等)等集成電路。當(dāng)然,硬件可以替代性地實(shí)現(xiàn)為有限狀態(tài)機(jī)或甚至組合邏輯。“軟件”的示例包括采用應(yīng)用、支程序、例程或甚至一系列指令的形式的可執(zhí)行代碼。軟件可以存儲在任何類型的機(jī)器可讀介質(zhì)中。
雖然已經(jīng)根據(jù)多個實(shí)施例描述了本發(fā)明,但是本領(lǐng)域技術(shù)人員應(yīng)當(dāng)認(rèn)識到本發(fā)明并不局限于所描述的實(shí)施例,而是可以用在附加的權(quán)利要求的精神和范圍之內(nèi)的修改和變化來實(shí)現(xiàn)。描述因此應(yīng)被視為例證性的而不是限制性的。對以上所描述的發(fā)明的不同方面有很多其他改變,這些都由于簡明目的而沒有詳細(xì)提供。因此,其他實(shí)施例在權(quán)利要求的范圍內(nèi)。
下列條款和/或示例涉及進(jìn)一步的實(shí)施例或示例。可在一個或多個實(shí)施例中的任何地方使用在示例中的細(xì)節(jié)。能以不同方式將不同的實(shí)施例或示例的各種特征與所包括的一些特征以及被排除的其他特征組合以適應(yīng)各種不同的應(yīng)用。示例可以包括主題,如,方法;用于執(zhí)行方法的動作的裝置;包括指令的至少一種機(jī)器可讀介質(zhì),所述指令當(dāng)由機(jī)器執(zhí)行時使機(jī)器執(zhí)行方法或裝置的動作;或用于促進(jìn)根據(jù)本文中所述的實(shí)施例和示例的混合式通信的系統(tǒng)。
一些實(shí)施例涉及示例1,示例1包括一種計算機(jī)可讀存儲介質(zhì),具有存儲在其中的指令,所述指令當(dāng)由處理器執(zhí)行時使所述處理器執(zhí)行一種提供全球平臺(gp)兼容可信執(zhí)行環(huán)境(tee)的方法,所述方法包括:執(zhí)行存儲在存儲器設(shè)備中的應(yīng)用,所述應(yīng)用包括客戶端應(yīng)用(ca)和可信應(yīng)用(ta),其中,執(zhí)行所述應(yīng)用包括在客戶端進(jìn)程中運(yùn)行所述ca并且在tee主機(jī)進(jìn)程中運(yùn)行所述ta,所述客戶端進(jìn)程與所述tee主機(jī)進(jìn)程分開;使用所述tee主機(jī)進(jìn)程從所述客戶端進(jìn)程接收用于開啟會話的請求,其中,所述請求包括所述ta的標(biāo)識符;使用包括在所述tee主機(jī)進(jìn)程中的gp可信服務(wù)飛地來確定與所述標(biāo)識符相關(guān)聯(lián)的ta飛地;在所述tee主機(jī)進(jìn)程中加載與所述標(biāo)識符相關(guān)聯(lián)的所述ta飛地,以便使用所述gp可信服務(wù)飛地建立所述會話;使用所述tee主機(jī)進(jìn)程接收將在所述ta飛地中調(diào)用的命令以及所述命令需要的參數(shù)集,其中,所述命令和所述參數(shù)集來自所述客戶端進(jìn)程;以及使用gp內(nèi)部api在與所述標(biāo)識符相關(guān)聯(lián)的所述ta飛地中執(zhí)行所述命令。
示例2包括如示例1所述的主題,其中,使用gp內(nèi)部api在與所述標(biāo)識符相關(guān)聯(lián)的所述ta飛地中執(zhí)行所述命令進(jìn)一步包括:使用gp可信運(yùn)行時間系統(tǒng)(rts)以及包括在所述ta飛地中的本地可信rts來實(shí)現(xiàn)所述gp內(nèi)部api。
示例3包括如示例1所述的主題,進(jìn)一步包括:運(yùn)行體系結(jié)構(gòu)飛地服務(wù)(aes)進(jìn)程,所述體系結(jié)構(gòu)飛地服務(wù)進(jìn)程包括分別提供安全服務(wù)的多個體系結(jié)構(gòu)飛地(ae),其中,所述aes進(jìn)程與所述客戶端進(jìn)程和所述tee主機(jī)進(jìn)程分開。
示例4包括如示例1所述的主題,其中,使用gp內(nèi)部api在與所述標(biāo)識符相關(guān)聯(lián)的所述ta飛地中執(zhí)行所述命令進(jìn)一步包括:在所述tee主機(jī)進(jìn)程與包括在所述aes進(jìn)程中的所述ae中的一個ae之間建立安全信道;將包括所述命令中的至少一個命令的請求傳輸至所述ae中的所述一個ae;以及在所述ae中的所述一個ae與安全處理器之間建立安全信道。
示例5包括如示例1所述的主題,進(jìn)一步包括:由所述客戶端進(jìn)程使用客戶端應(yīng)用編程接口(api)在所述tee主機(jī)進(jìn)程中初始化所述tee。
示例6包括如示例1所述的主題,進(jìn)一步包括:使用包括在所述tee主機(jī)進(jìn)程中的操作系統(tǒng)服務(wù)組件對所述命令進(jìn)行排隊;使用所述gp可信服務(wù)飛地驗(yàn)證所述參數(shù);以及依次將所述命令調(diào)度到與所述標(biāo)識符相關(guān)聯(lián)的所述ta飛地。
示例7包括如示例1所述的主題,進(jìn)一步包括:當(dāng)完成執(zhí)行命令時,將用于關(guān)閉所述會話的請求從所述客戶端進(jìn)程傳輸至所述gp可信服務(wù)飛地;以及處理與所述會話有關(guān)的信息,并且使用所述gp可信服務(wù)飛地卸載與所述標(biāo)識符相關(guān)聯(lián)的所述ta飛地,以便關(guān)閉所述會話。
示例8包括如示例1所述的主題,其中,所述ta的所述標(biāo)識符是唯一通用標(biāo)識符(uuid)。
示例9包括如示例1所述的主題,其中,經(jīng)由進(jìn)程間通信(ipc)信道來傳輸用于開啟所述會話的所述請求、進(jìn)程命令和所述參數(shù)集。
示例10包括如示例1所述的主題,進(jìn)一步包括:當(dāng)預(yù)先加載了與所述標(biāo)識符相關(guān)聯(lián)的所述ta飛地時,使用所述gp可信服務(wù)飛地選擇與所述標(biāo)識符相關(guān)聯(lián)的所述ta飛地。
示例11包括如示例1所述的主題,其中,所述tee主機(jī)進(jìn)程包括所述tee,其中,所述tee包括多個ta飛地和所述gp可信服務(wù)飛地,所述多個ta飛地包括與所述標(biāo)識符相關(guān)聯(lián)的所述ta飛地。
一些實(shí)施例涉及示例12,示例12涉及一種提供全球平臺(gp)兼容可信執(zhí)行環(huán)境(tee)的方法,所述方法包括:由處理器執(zhí)行存儲在存儲器設(shè)備中的應(yīng)用,所述應(yīng)用包括客戶端應(yīng)用(ca)和可信應(yīng)用(ta),其中,執(zhí)行所述應(yīng)用包括在客戶端進(jìn)程中運(yùn)行所述ca并且在tee主機(jī)進(jìn)程中運(yùn)行所述ta,所述客戶端進(jìn)程與所述tee主機(jī)進(jìn)程分開;由所述處理器使用所述tee主機(jī)進(jìn)程從所述客戶端進(jìn)程接收用于開啟會話的請求,其中,所述請求包括所述ta的標(biāo)識符;由所述處理器使用包括在所述tee主機(jī)進(jìn)程中的gp可信服務(wù)飛地來確定與所述標(biāo)識符相關(guān)聯(lián)的ta飛地;由所述處理器在所述tee主機(jī)進(jìn)程中加載與所述標(biāo)識符相關(guān)聯(lián)的所述ta飛地,以便使用所述gp可信服務(wù)飛地建立所述會話;由所述處理器使用所述tee主機(jī)進(jìn)程接收將在所述ta飛地中調(diào)用的命令以及所述命令需要的參數(shù)集,其中,所述命令和所述參數(shù)集來自所述客戶端進(jìn)程;由所述處理器使用所述gp可信服務(wù)飛地驗(yàn)證所述參數(shù);由所述處理器依次將所述命令調(diào)度到與所述標(biāo)識符相關(guān)聯(lián)的所述ta飛地;由所述處理器使用gp內(nèi)部api在與所述標(biāo)識符相關(guān)聯(lián)的所述ta飛地中執(zhí)行所述命令;以及由所述處理器處理與所述會話有關(guān)的信息,并且使用所述gp可信服務(wù)飛地卸載與所述標(biāo)識符相關(guān)聯(lián)的所述ta飛地,以便關(guān)閉所述會話。
示例13包括如示例12所述的主題,其中,由所述處理器使用gp內(nèi)部api在與所述標(biāo)識符相關(guān)聯(lián)的所述ta飛地中執(zhí)行所述命令進(jìn)一步包括:使用gp可信運(yùn)行時間系統(tǒng)(rts)以及包括在所述ta飛地中的本地可信rts來實(shí)現(xiàn)所述gp內(nèi)部api。
示例14包括如示例12所述的主題,進(jìn)一步包括:由所述處理器運(yùn)行體系結(jié)構(gòu)飛地服務(wù)(aes)進(jìn)程,所述體系結(jié)構(gòu)飛地服務(wù)進(jìn)程包括分別提供安全服務(wù)的多個體系結(jié)構(gòu)飛地(ae),其中,所述aes進(jìn)程與所述客戶端進(jìn)程和所述tee主機(jī)進(jìn)程分開。
示例15包括如示例14所述的主題,其中,使用gp內(nèi)部api在與所述標(biāo)識符相關(guān)聯(lián)的所述ta飛地中執(zhí)行所述命令進(jìn)一步包括:在所述tee主機(jī)進(jìn)程與包括在所述aes進(jìn)程中的所述ae中的一個ae之間建立安全信道;將包括所述命令中的至少一個命令的請求傳輸至所述ae中的所述一個ae;以及在所述ae中的所述一個ae與安全處理器之間建立安全信道。
一些實(shí)施例涉及示例16,示例16涉及一種提供全球平臺(gp)兼容可信執(zhí)行環(huán)境(tee)的系統(tǒng),所述系統(tǒng)包括:存儲器設(shè)備,所述存儲器設(shè)備用于存儲應(yīng)用,所述應(yīng)用包括客戶端應(yīng)用(ca)和可信應(yīng)用(ta);處理器,所述處理器耦合至所述存儲器設(shè)備,用于:通過在客戶端進(jìn)程中運(yùn)行所述ca并且在tee主機(jī)進(jìn)程中運(yùn)行所述ta來執(zhí)行所述應(yīng)用,運(yùn)行體系結(jié)構(gòu)飛地服務(wù)(aes)進(jìn)程,所述體系結(jié)構(gòu)飛地服務(wù)進(jìn)程包括分別提供安全服務(wù)的多個體系結(jié)構(gòu)飛地(ae),其中,所述客戶端進(jìn)程、所述tee主機(jī)進(jìn)程、以及所述aes進(jìn)程分開,向所述tee主機(jī)進(jìn)程發(fā)信號以便從所述客戶端進(jìn)程接收用于開啟會話的請求,其中,所述請求包括所述ta的標(biāo)識符,向所述tee主機(jī)進(jìn)程發(fā)信號以便加載與所述標(biāo)識符相關(guān)聯(lián)的所述ta飛地并且使用包括在所述tee主機(jī)進(jìn)程中的所述gp可信服務(wù)飛地建立所述會話,向所述tee主機(jī)進(jìn)程發(fā)信號以便接收將在所述ta飛地中調(diào)用的命令以及所述命令需要的參數(shù)集,其中,所述命令和所述參數(shù)集來自所述客戶端進(jìn)程;向與所述標(biāo)識符相關(guān)聯(lián)的所述ta飛地發(fā)信號以便使用gp內(nèi)部api執(zhí)行所述命令;以及安全處理器,所述安全處理器經(jīng)由安全信道耦合至所述aes進(jìn)程。
示例17包括如示例16所述的主題,其中,在所述客戶端進(jìn)程與所述tee主機(jī)進(jìn)程之間建立第一進(jìn)程間通信(ipc)信道,并且在所述tee主機(jī)進(jìn)程與所述aes進(jìn)程之間建立第二ipc信道。
示例18包括如示例17所述的主題,其中,所述處理器向與所述標(biāo)識符相關(guān)聯(lián)的所述ta飛地發(fā)信號以便使用gp內(nèi)部api來執(zhí)行所述命令,進(jìn)一步包括:向gp可信運(yùn)行時間系統(tǒng)(rts)和本地可信rts發(fā)信號以便實(shí)施所述gp內(nèi)部api,其中,所述gp可信rts和所述本地可信rts包括在所述ta飛地中。
示例19包括如示例17所述的主題,其中,所述處理器向與所述標(biāo)識符相關(guān)聯(lián)的所述ta飛地發(fā)信號以便使用gp內(nèi)部api來執(zhí)行所述命令,進(jìn)一步包括:在所述tee主機(jī)進(jìn)程與包括在所述aes進(jìn)程中的所述ae中的一個ae之間建立所述第二ipc信道;將包括所述命令中的至少一個命令的請求傳輸至所述ae中的所述一個ae;以及在所述ae中的所述一個ae與安全處理器之間建立所述安全信道。
示例20包括如示例17所述的主題,其中,所述tee主機(jī)進(jìn)程包括所述tee,其中,所述tee包括多個ta飛地和所述gp可信服務(wù)飛地,所述多個ta飛地包括與所述標(biāo)識符相關(guān)聯(lián)的所述ta飛地。
示例21包括如示例17所述的主題,其中,所述處理器進(jìn)一步用于:向包括在所述tee主機(jī)進(jìn)程中的操作系統(tǒng)(os)服務(wù)組件發(fā)信號,以便對所述命令進(jìn)行排隊;向所述gp可信服務(wù)飛地發(fā)信號以便驗(yàn)證所述參數(shù);以及向所述os服務(wù)組件發(fā)信號以便依次調(diào)度所述命令。
示例22包括如示例17所述的主題,其中,所述處理器進(jìn)一步用于:當(dāng)完成執(zhí)行命令時,將用于關(guān)閉所述會話的請求從所述客戶端進(jìn)程傳輸至所述gp可信服務(wù)飛地;以及向所述gp可信服務(wù)飛地發(fā)信號,以便處理與所述會話有關(guān)的信息并且卸載與所述標(biāo)識符相關(guān)聯(lián)的所述ta飛地。
一些實(shí)施例涉及示例23,示例23涉及一種提供全球平臺(gp)兼容可信執(zhí)行環(huán)境(tee)的方法,所述方法包括:執(zhí)行存儲在存儲器設(shè)備中的應(yīng)用,所述應(yīng)用包括客戶端應(yīng)用(ca)和可信應(yīng)用(ta),其中,執(zhí)行所述應(yīng)用包括在客戶端進(jìn)程中運(yùn)行所述ca并且在tee主機(jī)進(jìn)程中運(yùn)行所述ta,所述客戶端進(jìn)程與所述tee主機(jī)進(jìn)程分開;使用所述tee主機(jī)進(jìn)程從所述客戶端進(jìn)程接收用于開啟會話的請求,其中,所述請求包括所述ta的標(biāo)識符;使用包括在所述tee主機(jī)進(jìn)程中的gp可信服務(wù)飛地來確定與所述標(biāo)識符相關(guān)聯(lián)的ta飛地;在所述tee主機(jī)進(jìn)程中加載與所述標(biāo)識符相關(guān)聯(lián)的所述ta飛地,以便使用所述gp可信服務(wù)飛地建立所述會話;使用所述tee主機(jī)進(jìn)程接收將在所述ta飛地中調(diào)用的命令以及所述命令需要的參數(shù)集,其中,所述命令和所述參數(shù)集來自所述客戶端進(jìn)程;以及使用gp內(nèi)部api在與所述標(biāo)識符相關(guān)聯(lián)的所述ta飛地中執(zhí)行所述命令。
示例24包括如示例23所述的主題,其中,使用gp內(nèi)部api在與所述標(biāo)識符相關(guān)聯(lián)的所述ta飛地中執(zhí)行所述命令進(jìn)一步包括:使用gp可信運(yùn)行時間系統(tǒng)(rts)以及包括在所述ta飛地中的本地可信rts來實(shí)現(xiàn)所述gp內(nèi)部api。
示例25包括如示例23所述的主題,進(jìn)一步包括:運(yùn)行體系結(jié)構(gòu)飛地服務(wù)(aes)進(jìn)程,所述體系結(jié)構(gòu)飛地服務(wù)進(jìn)程包括分別提供安全服務(wù)的多個平臺服務(wù)飛地(pse),其中,所述aes進(jìn)程與所述客戶端進(jìn)程和所述tee主機(jī)進(jìn)程分開。
示例26包括如示例25所述的主題,其中,使用gp內(nèi)部api在與所述標(biāo)識符相關(guān)聯(lián)的所述ta飛地中執(zhí)行所述命令進(jìn)一步包括:在所述tee主機(jī)進(jìn)程與包括在所述aes進(jìn)程中的所述pse中的一個pse之間建立安全信道;將包括所述命令中的至少一個命令的請求傳輸至所述pse中的所述一個pse;以及在所述pse中的所述一個pse與安全處理器之間建立安全信道。
示例27包括如示例23所述的主題,進(jìn)一步包括:由所述客戶端進(jìn)程使用客戶端應(yīng)用編程接口(api)在所述tee主機(jī)進(jìn)程中初始化所述tee。
示例28包括如示例23所述的主題,進(jìn)一步包括:使用包括在所述tee主機(jī)進(jìn)程中的操作系統(tǒng)服務(wù)組件對所述命令進(jìn)行排隊;使用所述gp可信服務(wù)飛地驗(yàn)證所述參數(shù);以及依次將所述命令調(diào)度到與所述標(biāo)識符相關(guān)聯(lián)的所述ta飛地。
示例29包括如示例23所述的主題,進(jìn)一步包括:當(dāng)完成執(zhí)行命令時,將用于關(guān)閉所述會話的請求從所述客戶端進(jìn)程傳輸至所述gp可信服務(wù)飛地;以及處理與所述會話有關(guān)的信息,并且使用所述gp可信服務(wù)飛地卸載與所述標(biāo)識符相關(guān)聯(lián)的所述ta飛地,以便關(guān)閉所述會話。
示例30包括如示例23所述的主題,其中,所述ta的所述標(biāo)識符是唯一通用標(biāo)識符(uuid)。
示例31包括如示例23所述的主題,其中,經(jīng)由進(jìn)程間通信(ipc)信道來傳輸用于開啟所述會話的所述請求、進(jìn)程命令和所述參數(shù)集。
示例32包括如示例23所述的主題,進(jìn)一步包括:當(dāng)預(yù)先加載了與所述標(biāo)識符相關(guān)聯(lián)的所述ta飛地時,使用所述gp可信服務(wù)飛地選擇與所述標(biāo)識符相關(guān)聯(lián)的所述ta飛地。
示例33包括如示例23所述的主題,其中,所述tee主機(jī)進(jìn)程包括所述tee,其中,所述tee包括多個ta飛地和所述gp可信服務(wù)飛地,所述多個ta飛地包括與所述標(biāo)識符相關(guān)聯(lián)的所述ta飛地。
一些實(shí)施例涉及示例34,示例34涉及一種包括代碼的機(jī)器可讀介質(zhì),所述代碼在被執(zhí)行時使機(jī)器執(zhí)行如權(quán)利要求12至15和23至34中任一項所述的方法。
一些實(shí)施例涉及示例35,示例35涉及一種包括用于執(zhí)行如在任一前述示例中提出的方法的裝置的設(shè)備。
一些實(shí)施例涉及示例36,示例36涉及一種包括機(jī)器可讀指令的機(jī)器可讀存儲設(shè)備,所述機(jī)器可讀指令當(dāng)被執(zhí)行時用于實(shí)施如任一前述示例所提出的方法或?qū)崿F(xiàn)如任一前述示例所提出的裝置。