專利名稱:包括用于保護(hù)多用戶敏感代碼和數(shù)據(jù)的架構(gòu)的方法和裝置的制作方法
技術(shù)領(lǐng)域:
本申請(qǐng)涉及基于硬件的安全執(zhí)行環(huán)境。
背景技術(shù):
數(shù)字版權(quán)管理(DRM)許可證的穩(wěn)健技術(shù)實(shí)施假定防止直接訪問(wèn)解密的數(shù)字內(nèi)容的原始位流且許可證實(shí)施機(jī)制本身是可行的。然而,這難以在如個(gè)人計(jì)算機(jī)(PC)的開(kāi)放計(jì)算平臺(tái)上實(shí)現(xiàn)。已經(jīng)發(fā)現(xiàn),PC難以使維持敏感代碼和數(shù)據(jù)的機(jī)密性變得穩(wěn)健。維持代碼的機(jī)密性或保護(hù)數(shù)據(jù)的當(dāng)前方法包括現(xiàn)有的基于軟件的解決方案,這些解決方案依賴于反調(diào)試、完整性監(jiān)控和混淆技術(shù),以阻止逆向工程和篡改。另一種技術(shù)涉及在安全引導(dǎo)過(guò)程期間在加載時(shí)間認(rèn)證系統(tǒng)希望執(zhí)行的軟件代碼和/或數(shù)據(jù)常量。這可例如經(jīng)由如所屬技術(shù)領(lǐng)域普通人員了解的簽名確認(rèn)技術(shù)來(lái)完成。但是,加載時(shí)間認(rèn)證技術(shù)還有多個(gè)缺點(diǎn)。例如,在此技術(shù)中,認(rèn)證僅在安全引導(dǎo)過(guò)程期間發(fā)生一次。因此,利用加載時(shí)間認(rèn)證技術(shù)的系統(tǒng)易于在運(yùn)行時(shí)間受到編程攻擊和/或數(shù)據(jù)破壞,其中運(yùn)行時(shí)間被認(rèn)為是緊隨加載時(shí)間的時(shí)間段(即,在安全引導(dǎo)過(guò)程之后)?,F(xiàn)有計(jì)算系統(tǒng)常試圖通過(guò)實(shí)現(xiàn)基于憑證的安全系統(tǒng)來(lái)保護(hù)存儲(chǔ)在寄存器中的數(shù)據(jù)的完整性。在這樣的系統(tǒng)中,對(duì)寄存器(即,可讀/寫(xiě)的存儲(chǔ)器中的位置)的訪問(wèn)受限于其憑證經(jīng)過(guò)確認(rèn)的那些功能(即,軟件程序)。這種確認(rèn)可通過(guò)計(jì)算系統(tǒng)內(nèi)的邏輯來(lái)完成。然而,基于憑證的安全系統(tǒng)有許多缺點(diǎn)。例如,基于憑證的安全系統(tǒng)僅能夠?qū)嵤┮粋€(gè)數(shù)據(jù)訪問(wèn)策略。具體而言,將允許具有可行憑證的功能訪問(wèn)寄存器內(nèi)的數(shù)據(jù),而將拒絕不具有可行憑證的功能訪問(wèn)該數(shù)據(jù)。因?yàn)檫@些系統(tǒng)只依賴于基于憑證的確認(rèn)作為用于數(shù)據(jù)訪問(wèn)的機(jī)制,所以易于受惡意功能不當(dāng)?shù)孬@取可行憑證并因此被允許訪問(wèn)被尋求保護(hù)的數(shù)據(jù)的情形的影響。此外,這些系統(tǒng)假設(shè)基于憑證的數(shù)據(jù)訪問(wèn)對(duì)于被尋求保護(hù)的所有類型的數(shù)據(jù)都是適當(dāng)?shù)陌踩呗?。然而,常常希望利用不同訪問(wèn)策略來(lái)保護(hù)不同類型的數(shù)據(jù)。當(dāng)如上文所討論的已知技術(shù)以旨在運(yùn)行于常規(guī)PC上的軟件來(lái)實(shí)現(xiàn)時(shí),這些技術(shù)對(duì)于在DRM系統(tǒng)中使用常常還不夠。存在可用于使逆向工程成為可能的許多工具。另外,在PC中,操作系統(tǒng)的保護(hù)架構(gòu)和訪問(wèn)控制模型使其在用作DRM內(nèi)容呈現(xiàn)客戶端的平臺(tái)時(shí)變得麻煩,因?yàn)殡y以連同開(kāi)放架構(gòu)一起來(lái)保護(hù)敏感軟件代碼。已證明,用來(lái)維持機(jī)密性的當(dāng)前方法對(duì)于漫不經(jīng)心的黑客是有效的,其代價(jià)是高計(jì)算和功率開(kāi)銷。然而,高價(jià)值資產(chǎn)仍難以防備專業(yè)的黑客。因此,需要提供一種在個(gè)人計(jì)算機(jī)環(huán)境中用于執(zhí)行敏感代碼和數(shù)據(jù)的安全執(zhí)行環(huán)境。發(fā)明概要本文所述實(shí)施方案包括一種被提供用于基于硬件的受保護(hù)執(zhí)行環(huán)境的安全配置,其允許將多個(gè)應(yīng)用或按需敏感代碼同時(shí)加載至安全執(zhí)行環(huán)境中。運(yùn)行時(shí)間生成的數(shù)據(jù)即使在被存儲(chǔ)于外部存儲(chǔ)器時(shí)仍可安全地受到保護(hù)。每個(gè)存儲(chǔ)器上下文被單獨(dú)管理,確保了各自上下文之間的機(jī)密性。該執(zhí)行環(huán)境包括安全資產(chǎn)管理單元(SAMU)的架構(gòu)細(xì)節(jié)。SAMU通過(guò)以加密格式從主機(jī)處理器卸載代碼或數(shù)據(jù)以便進(jìn)行認(rèn)證并維持代碼或數(shù)據(jù)的機(jī)密性而為程序代碼或數(shù)據(jù)提供安全執(zhí)行環(huán)境。SAMU減少了提供用于防篡改軟件的平臺(tái)所帶來(lái)的功耗,并且降低了有效軟件的撤銷頻率。此外,SAMU不會(huì)打擾老實(shí)的用戶,但是提供受保護(hù)執(zhí)行環(huán)境以使敏感代碼的逆向工程變得困難?;谟布陌踩渲么俪煞乐勾怪被蛩綑?quán)限違規(guī)。附圖簡(jiǎn)述結(jié)合附圖舉例給出后,可從以下描述中得到更詳細(xì)的理解,其中:
圖1A示出了根據(jù)一個(gè)實(shí)施方案的主機(jī)系統(tǒng),其中敏感代碼從處理器中卸載至安全資產(chǎn)管理單元(SAMU);圖1B示出了 SAMU頂層架構(gòu);圖2是多應(yīng)用SAMU運(yùn)行時(shí)上下文設(shè)置的流程圖;圖3示出了 SAMU軟件堆棧;和圖4示出了運(yùn)行時(shí)間存儲(chǔ)器管理的實(shí)例。
具體實(shí)施例方式應(yīng)注意,本申請(qǐng)并入美國(guó)非臨時(shí)申請(qǐng)第12/964,278號(hào)的全文,如同在本文中闡述了該申請(qǐng)的全文一樣。如本文所使用的,術(shù)語(yǔ)“處理器”指的是以下任一個(gè):處理器、處理器核心、中央處理單元(CPU)、圖形處理單元(GPU)、數(shù)字信號(hào)處理器(DSP)、現(xiàn)場(chǎng)可編程門陣列(FPGA),或類似器件。處理器可形成另一器件(例如,集成北橋、應(yīng)用處理器(App處理器)、CPU、DSP等)的部分。如本文所使用的,處理器核心可以是x86、RISC或其它指令集核心。安全資產(chǎn)管理單元(SAMU)是配置在處理器核心內(nèi)的組件,或是被配置來(lái)和處理器核心配合執(zhí)行的單獨(dú)組件。當(dāng)配置在處理器核心中或配置為與處理器核心分開(kāi)的組件時(shí),SAMU可被配置來(lái)執(zhí)行以下中的至少一項(xiàng)操作:從主機(jī)處理器卸載敏感代碼或加密存儲(chǔ)器中的敏感代碼或數(shù)據(jù)。SAMU可以硬件來(lái)實(shí)現(xiàn)以提供基于硬件的受保護(hù)執(zhí)行環(huán)境。在這樣的環(huán)境中,敏感代碼和數(shù)據(jù)可以在安全存儲(chǔ)器中被保護(hù),并且可僅在高速緩存或嵌入式存儲(chǔ)器中被以明文形式存儲(chǔ)。此外,調(diào)試在生產(chǎn)部件上被完全禁用;并且安全內(nèi)核“擁有”并控制執(zhí)行環(huán)境,并且對(duì)存儲(chǔ)器和資源的訪問(wèn)全部受控。SAMU可與處理器共享存儲(chǔ)器,或者其可具有專用存儲(chǔ)器。圖1A示出了根據(jù)一個(gè)實(shí)施方案的主機(jī)系統(tǒng)101,其中敏感代碼從處理器被卸載至SAMU。圖1A示出了包括經(jīng)由系統(tǒng)總線或內(nèi)部總線105連接的處理器102和SAMU104的系統(tǒng)101。系統(tǒng)101用于執(zhí)行將安全代碼從處理器102卸載至SAMU104。系統(tǒng)101可以是能夠與對(duì)等端交換數(shù)據(jù)的任何計(jì)算機(jī)系統(tǒng)。此外,系統(tǒng)101可以包括使用安全協(xié)議在處理器102和SAMU104之間傳輸數(shù)據(jù)的一個(gè)或多個(gè)應(yīng)用(圖中未示出)。應(yīng)用可運(yùn)行在內(nèi)核空間或用戶空間中。處理器102被配置來(lái)在系統(tǒng)內(nèi)核(圖中未示出)中運(yùn)行。處理器102與外部器件接口連接以從內(nèi)容源(例如,內(nèi)容介質(zhì),如藍(lán)光(Blu-ray )光盤(pán)、從因特網(wǎng)等)檢索加密的數(shù)據(jù)和消息(即,數(shù)據(jù)包)。處理器102可以將加密數(shù)據(jù)提供給SAMU104,以便進(jìn)行解密和處理。例如導(dǎo)航數(shù)據(jù)的一些數(shù)據(jù)集可從SAMU104被返回至處理器102,以控制整體介質(zhì)使用過(guò)程。SAMU104還可在需要保護(hù)時(shí)以重新加密格式將數(shù)據(jù)發(fā)送回處理器102。在一個(gè)實(shí)施方案中,SAMU104包括處理堆棧,其被配置來(lái)實(shí)現(xiàn)處理發(fā)送至外部器件和從外部器件接收的數(shù)據(jù)。因此,當(dāng)系統(tǒng)101建立與外部器件或因特網(wǎng)的連接時(shí),不是主機(jī)處理器102處理發(fā)送和接收的數(shù)據(jù)包,而是SAMU104經(jīng)由在SAMU104上實(shí)現(xiàn)的處理堆棧而提供此處理功能。在另一實(shí)施方案中,SAMU104可以是處理器102的一部分。相對(duì)于圖1B更詳細(xì)地解釋了 SAMU104的架構(gòu)。SAMU104包括安全引導(dǎo)只讀存儲(chǔ)器(ROM) 110、存儲(chǔ)器管理單元(MMU) 120、指令高速緩存(1-高速緩存)130、數(shù)據(jù)高速緩存(D-高速緩存)140、存儲(chǔ)器高級(jí)加密標(biāo)準(zhǔn)(M-AES)組件150、完整性確認(rèn)器(IV) 160、安全加速器170、處理器核心180、安全內(nèi)核185,以及存儲(chǔ)器接口 190。安全加速器170被配置來(lái)實(shí)現(xiàn)以下中的至少一項(xiàng):128b/192b/256b AES ;安全散列算法(SHA-1/-2) ;Rivest、Shamir和Adleman (RSA)密碼算法;橢圓曲線密碼算法(ECC);數(shù)據(jù)加密標(biāo)準(zhǔn)(DES) ;3DES ;Rivest密文4 (RC4) ;1024b/2048b/3072b模冪運(yùn)算;或提供真隨機(jī)數(shù)發(fā)生器。SAMU104可支持多個(gè)處理器模式,包括硅引導(dǎo)代碼模式。其它處理器模式可以由安全內(nèi)核185定義,包括例如:內(nèi)核功能;內(nèi)核服務(wù);內(nèi)部開(kāi)發(fā)的SAMU104應(yīng)用;第三方開(kāi)發(fā)的SAMU104應(yīng)用;已簽名但用明碼的SAMU104應(yīng)用;未簽名且用明碼的SAMU104應(yīng)用。引導(dǎo)R0M110被配置來(lái)執(zhí)行以硅形式的引導(dǎo)代碼,以進(jìn)行調(diào)試管理、以檢查給定內(nèi)核的完整性,以及以設(shè)置存儲(chǔ)器AES,且然后將控制交給(通過(guò)完整性檢查的)內(nèi)核,其中嵌入式處理器在復(fù)位后被配置來(lái)運(yùn)行引導(dǎo)代碼。弓I導(dǎo)代碼還被配置成基于電子熔絲技術(shù)配置或重新配置調(diào)試設(shè)備(例如,禁止訪問(wèn)生產(chǎn)部件的所有調(diào)試設(shè)備或在涉及將計(jì)算機(jī)邏輯蝕刻或硬編碼至在制造后不能改變的芯片上的制造時(shí)注入的電子熔絲圖案);等待SAMU104內(nèi)核初始化,其中SAMU驅(qū)動(dòng)程序提供安全內(nèi)核185用于加載;并且采用完整性確認(rèn)器(IV)硬件160來(lái)驗(yàn)證給定映像的完整性。IV硬件160可以被配置來(lái)從給定映像生成散列代碼,并將該散列代碼與附加到映像的散列代碼進(jìn)行比較。如果生成的散列代碼和附加的散列代碼匹配,那么IV硬件160提供PASS (通過(guò))報(bào)告,否則,報(bào)告FAILURE (失敗)。引導(dǎo)R0M110還被配置來(lái)在成功的完整性檢查后準(zhǔn)備用于安全內(nèi)核185的環(huán)境,并將控制交給安全內(nèi)核185。安全內(nèi)核可以使用相同的IV硬件160來(lái)定期地重新驗(yàn)證自身。引導(dǎo)R0M110可以硅形式被提供為芯片的部分或安全地存儲(chǔ)在外部ROM中。安全內(nèi)核185 (已加密和簽名)可被提供為SAMU驅(qū)動(dòng)程序的部分,其中安全內(nèi)核185被配置來(lái)提供對(duì)SAMU中的資源的控制訪問(wèn)(安全策略);對(duì)SAMU周期的控制訪問(wèn)(作業(yè)調(diào)度);連接在主機(jī)上運(yùn)行的SAMU驅(qū)動(dòng)程序或運(yùn)行在SAMU上的SAMU應(yīng)用;并且按需建構(gòu)/解構(gòu)SAMU存儲(chǔ)器或其它上下文。
為了提供最大的代碼保護(hù),來(lái)自不同應(yīng)用的不同SAMU代碼在不同的上下文中運(yùn)行。每個(gè)代碼映像不同地由簽名工具加密并被散列化,其中在簽名時(shí)隨機(jī)生成加密密鑰。此夕卜,在接受加密映像用于執(zhí)行之前對(duì)加密的映像進(jìn)行完整性檢查。M-AES150提供讀時(shí)的調(diào)制(利用硬件中的額外專有置亂)AES解密和寫(xiě)時(shí)的調(diào)制AES加密(高速緩存中或嵌入式內(nèi)部存儲(chǔ)器中的內(nèi)容是明文);還可能存在旁路模式作為直通式常規(guī)存儲(chǔ)器訪問(wèn)(經(jīng)由MMU予以配置)。存儲(chǔ)器AES密鑰可由引導(dǎo)ROM代碼或安全內(nèi)核185生成,并被提供給用于保護(hù)經(jīng)過(guò)存儲(chǔ)器接口的敏感代碼和數(shù)據(jù)的硬件。內(nèi)容只有在指令高速緩存130、數(shù)據(jù)高速緩存140或在內(nèi)部嵌入式存儲(chǔ)器中時(shí)是明文。對(duì)于相同上下文,代碼和數(shù)據(jù)密鑰的共享也是可能的。安全內(nèi)核185還可以使用隨機(jī)位來(lái)在上下文創(chuàng)建時(shí)初始化數(shù)據(jù)密鑰以阻止重放攻擊。運(yùn)行時(shí)建立的敏感數(shù)據(jù)通常由運(yùn)行時(shí)生成的隨機(jī)密鑰保護(hù)。隨機(jī)密鑰可以兩種方式受到保護(hù)。在一種方式中,以標(biāo)準(zhǔn)AES加密旨在用于外部使用(例如主機(jī)或處理器中的解碼加速器)的敏感數(shù)據(jù)。在第二種方式中,通過(guò)M-AES150加密旨在保持在安全執(zhí)行環(huán)境內(nèi)部的敏感數(shù)據(jù)。M-AES操作涉及在其它標(biāo)準(zhǔn)AES過(guò)程之前和之后利用硬件生成的調(diào)制進(jìn)行調(diào)制。在提供額外安全的替代實(shí)施方案中,為了保護(hù)來(lái)自SAMU的存儲(chǔ)器流量,M-AES150在其它標(biāo)準(zhǔn)AES操作之前和之后利用硬件中的額外專有置亂應(yīng)用進(jìn)一步調(diào)制,這使逆向工程變得困難。敏感代碼和數(shù)據(jù)可因此得以存儲(chǔ)在現(xiàn)有幀緩沖器存儲(chǔ)器或系統(tǒng)存儲(chǔ)器中并受到保護(hù)??赡軙?huì)生成不同的隨機(jī)密鑰用于保護(hù)數(shù)據(jù)段,并有可能不共享代碼和數(shù)據(jù)密鑰。在提供額外安全的另一實(shí)施方案中,每個(gè)代碼映像由簽名工具進(jìn)行加密并散列化,其中加密密鑰在簽名期間隨機(jī)生成(過(guò)程的這一部分發(fā)生在供應(yīng)商或第三方軟件提供商處)。用于安全內(nèi)核185的解密密鑰由引導(dǎo)ROMl 10中的引導(dǎo)代碼計(jì)算和恢復(fù),且用于SAMU應(yīng)用的解密密鑰由內(nèi)核計(jì)算和恢復(fù)。此外,在接受映像用于執(zhí)行之前由IV160進(jìn)行完整性檢查(對(duì)加密版本)。上下文或存儲(chǔ)器管理是在MMU120的幫助下由安全內(nèi)核185進(jìn)行的。MMU120被配置成進(jìn)行將處理器180虛擬地址空間映射至器件地址空間(例如,圖形處理器、數(shù)字信號(hào)處理器或FPGA)的地址轉(zhuǎn)換邏輯。MMU120利用四個(gè)AES密鑰支持多達(dá)16個(gè)非重疊地址段。一種可能的布置是指派兩個(gè)密鑰用于安全內(nèi)核185 (—個(gè)用于代碼且一個(gè)用于數(shù)據(jù))并指派另兩個(gè)密鑰用于SAMU應(yīng)用(各一個(gè)用于代碼和數(shù)據(jù))。在此配置中,僅可利用相同數(shù)據(jù)密鑰來(lái)保護(hù)屬于相同上下文且需要受存儲(chǔ)器AES保護(hù)的所有數(shù)據(jù)段。每個(gè)段可獨(dú)立配置為針對(duì):存儲(chǔ)器大小;存儲(chǔ)器AES保護(hù),不論其是否可執(zhí)行(例如,非執(zhí)行標(biāo)志);和訪問(wèn)控制(用于讀/寫(xiě)訪問(wèn)的最小處理器模式)。每個(gè)存儲(chǔ)器段在虛擬地址空間中必須是連續(xù)的。并非所有段受存儲(chǔ)器AES加密保護(hù)。具體而言,用于SAMU104和外部器件或因特網(wǎng)之間的通信的緩沖器只可通過(guò)標(biāo)準(zhǔn)AES加以保護(hù),且因此應(yīng)在M-AES150關(guān)閉的情況下對(duì)其加以配置。安全內(nèi)核185是被允許配置MMU120的唯一代理。在切換到新的上下文(以服務(wù)于下個(gè)SAMU操作或應(yīng)用)之前,安全內(nèi)核185從MMU120取消映射屬于先前的上下文的所有段,并重新配置MMU120以映射屬于目標(biāo)上下文的所有段。為了執(zhí)行此過(guò)程,安全內(nèi)核185可能需要清理數(shù)據(jù)高速緩存以將所有高速緩存數(shù)據(jù)往回提交至存儲(chǔ)器,并以用于目標(biāo)上下文的存儲(chǔ)器AES密鑰更新存儲(chǔ)器AES密鑰。
經(jīng)由存儲(chǔ)器接口 190訪問(wèn)存儲(chǔ)器。從器件(例如,處理器,包括CPU、GPU、DSP或FPGA或其它類似器件)的角度來(lái)看,SAMU104及其相應(yīng)的組件被視為常規(guī)客戶端。SAMU104依賴于M-AES150以對(duì)敏感代碼和數(shù)據(jù)提供存儲(chǔ)器保護(hù)。安全內(nèi)核185可包括額外安全服務(wù)以提供以下覆蓋范圍:建立與外部組件的安全通道;與數(shù)字版權(quán)管理(DRM)塊的密鑰交換;打開(kāi)許可證密鑰、器件密鑰或內(nèi)容密鑰的包裝;多路分用位流;解密或重新加密位流;作為虛擬機(jī)操作,例如,BD+,它是藍(lán)光(Blu-ray )光盤(pán)DRM系統(tǒng)的組件;或使用現(xiàn)有路徑的用于音頻/視頻(A/V)加速的數(shù)據(jù)提交?!┍患虞d并受控,安全內(nèi)核185就負(fù)責(zé)SAMU執(zhí)行環(huán)境。如果按需加載了安全服務(wù)(而不是內(nèi)核的完整部分),那么內(nèi)核也負(fù)責(zé)檢查按需代碼的完整性,并為這些按需服務(wù)設(shè)置正確的解密密鑰。按需代碼的密鑰推導(dǎo)過(guò)程由內(nèi)核工程過(guò)程確定,且可根據(jù)產(chǎn)品/器件生成或制造技術(shù)變化。(產(chǎn)品/器件生成是制造器件所在的級(jí)別。例如,可以使用90納米(nm)或65納米技術(shù)制造處理器。)但是每次內(nèi)核改變其密鑰推導(dǎo)算法,用于用戶代碼的離線簽名工具都必須被修改成匹配加密過(guò)程中的該流程。復(fù)位后,處理器自硅中的ROM代碼引導(dǎo)。引導(dǎo)程序代碼被構(gòu)造成在恢復(fù)解密密鑰并將控制傳遞給給定加密內(nèi)核之前檢驗(yàn)給定加密內(nèi)核的完整性。完整性確認(rèn)是由完整性確認(rèn)器160中的專用硬件邏輯來(lái)進(jìn)行的。用于安全內(nèi)核的離線簽名工具具有密碼學(xué)設(shè)置,其匹配完整確認(rèn)硬件以及硬編碼在引導(dǎo)ROMllO中的密鑰恢復(fù)機(jī)制。用于加密或密鑰生成的散列功能的選擇并非關(guān)鍵性的,且可基于單向AES操作的鏈接。SAMU104的架構(gòu)是這樣的,其能夠每秒執(zhí)行具有密文要求的數(shù)百萬(wàn)指令(MIPS),并可支持包括AES、DES、SHAl和其它算法的密文加速。SAMU100架構(gòu)支持全部或部分以下內(nèi)容:真隨機(jī)數(shù)發(fā)生器和偽隨機(jī)數(shù)發(fā)生器、安全計(jì)時(shí)器、具有存儲(chǔ)器管理的指令/數(shù)據(jù)高速緩存、多執(zhí)行模式(或保護(hù)級(jí)別)、地址范圍實(shí)施(由內(nèi)核配置)、引導(dǎo)程序代碼驗(yàn)證,以及額外開(kāi)發(fā)工具。具有基于硬件的頁(yè)面表會(huì)同時(shí)改進(jìn)安全性和性能。但是,對(duì)于系統(tǒng)而言,由于需要額外的專用存儲(chǔ)器,支持通常由大多數(shù)操作系統(tǒng)使用的四千(K)字節(jié)頁(yè)面大小可能是成本較高的。通過(guò)本文所述的安全執(zhí)行單元,這個(gè)支持問(wèn)題被證明是合理的。在一個(gè)實(shí)施方案中,一兆(M)字節(jié)的頁(yè)面大小被用作起點(diǎn)。硬件頁(yè)面表機(jī)制可支持從一個(gè)M字節(jié)至四個(gè)千兆(G)字節(jié)的2的任何次冪的頁(yè)面大小?;蛘?,可以支持其它的頁(yè)面大小(例如,4K字節(jié)、8K字節(jié)、16K字節(jié)和2的其它次冪的頁(yè)面大小)。除了地址轉(zhuǎn)換之外,頁(yè)面表可包括其它安全特性。例如,其可包括數(shù)據(jù)結(jié)構(gòu)以指示下列中的一個(gè)或多個(gè):頁(yè)面條目是活動(dòng)的還是被禁用、頁(yè)面是否含有數(shù)據(jù)或代碼、單獨(dú)的讀訪問(wèn)和寫(xiě)訪問(wèn)控制、用來(lái)打開(kāi)或關(guān)閉存儲(chǔ)器AES的密文標(biāo)志,或在需要存儲(chǔ)器AES時(shí)的密鑰索引。指示頁(yè)面(或段)是否含有代碼或數(shù)據(jù)的頁(yè)面表信息主要是個(gè)安全問(wèn)題,且對(duì)于支持多個(gè)上下文而言可能并非必需的。通過(guò)通知內(nèi)核頁(yè)面旨在用于數(shù)據(jù)存儲(chǔ),內(nèi)核可捕獲執(zhí)行來(lái)自該頁(yè)面的代碼的任何企圖。此信息也有助于促進(jìn)用來(lái)捕獲緩沖器溢出攻擊的有效機(jī)制。在每個(gè)頁(yè)面(或段)的基礎(chǔ)上定義的讀和寫(xiě)訪問(wèn)控制指定最小保護(hù)環(huán),代碼在這個(gè)最小保護(hù)環(huán)內(nèi)執(zhí)行,然后才可以準(zhǔn)許對(duì)該頁(yè)(或段)的讀和/或?qū)懺L問(wèn)。這防止了在較低權(quán)限指派的應(yīng)用(例如,用戶應(yīng)用)得到對(duì)屬于在較高權(quán)限下運(yùn)行的另一進(jìn)程(例如,內(nèi)核)的頁(yè)面的讀/寫(xiě)訪問(wèn)權(quán)時(shí)發(fā)生的垂直權(quán)限違規(guī)。典型的處理器架構(gòu)利用各種保護(hù)/權(quán)限級(jí)別來(lái)分開(kāi)和控制功能和進(jìn)程(例如,進(jìn)程必須有一定(預(yù)定義)的保護(hù)級(jí)別才能訪問(wèn)特定的數(shù)據(jù)結(jié)構(gòu)或代碼段)。密文標(biāo)志指示高速緩存至存儲(chǔ)器接口是否可以打開(kāi)M-AES150。M-AES150具有在AES操作之前和之后應(yīng)用的硬件調(diào)制。受M-AES150保護(hù)的信息旨在用于在將由安全執(zhí)行環(huán)境執(zhí)行的SAMU敏感代碼和/或僅由運(yùn)行在該環(huán)境內(nèi)部的機(jī)密功能使用的敏感數(shù)據(jù)內(nèi)部使用。對(duì)于以在頁(yè)面表?xiàng)l目中設(shè)置的密文標(biāo)志標(biāo)記的頁(yè)面,硬件自動(dòng)對(duì)至指令高速緩存或數(shù)據(jù)高速緩存中的所有存儲(chǔ)器讀操作應(yīng)用解密,并在清理高速緩存線時(shí)對(duì)存儲(chǔ)器寫(xiě)應(yīng)用加
LU OMMU120中的不同頁(yè)面條目可與不同密文密鑰相關(guān)。在一個(gè)實(shí)施方案中,可以在任一時(shí)間點(diǎn)支持四個(gè)活動(dòng)的密文密鑰(在替代實(shí)施方案中,可支持任何數(shù)量的密鑰)。每個(gè)頁(yè)面條目可指定可用于加密和解密兩者的的密鑰硬件的索引。這允許以獨(dú)立密鑰保護(hù)內(nèi)核代碼/數(shù)據(jù)和用戶代碼/數(shù)據(jù)。引導(dǎo)代碼負(fù)責(zé)恢復(fù)內(nèi)核代碼密鑰,而內(nèi)核負(fù)責(zé)恢復(fù)用戶代碼密鑰。內(nèi)核還負(fù)責(zé)運(yùn)行時(shí)生成所有數(shù)據(jù)密鑰。在替代實(shí)施方案中,代碼密鑰通過(guò)使這些功能均采用電子熔絲值作為其輸入的部分而與完整性確認(rèn)機(jī)構(gòu)中的簽名關(guān)聯(lián)。通過(guò)將解密密鑰與完整性確認(rèn)機(jī)制關(guān)聯(lián),SAMU篡改變得困難。最后,所有這些資源(頁(yè)面表?xiàng)l目和存儲(chǔ)器AES密鑰)的配置空間必須受控。對(duì)該配置的讀/寫(xiě)訪問(wèn)受控制狀態(tài)寄存器中的單獨(dú)訪問(wèn)控制字段的保護(hù)。代碼可能需要處于適當(dāng)?shù)谋Wo(hù)環(huán)中,然后它才可以修改這些配置設(shè)置。所述的這種基于硬件的虛擬存儲(chǔ)器的支持和相關(guān)安全設(shè)置提供了穩(wěn)健的解決方案,以保護(hù)用于與現(xiàn)代的基于PC的操作系統(tǒng)一起使用的敏感代碼和數(shù)據(jù)。這消除了與基于軟件的防篡改和混淆相關(guān)的計(jì)算和功耗/熱開(kāi)銷。圖2是使用SAMU架構(gòu)時(shí)單個(gè)應(yīng)用的流程圖。為SAMU生成二進(jìn)制數(shù)(步驟210)。在簽名工具中生成隨機(jī)密鑰(步驟215)。為SAMU加密二進(jìn)制數(shù)(步驟220),且該步驟包括將安全內(nèi)核作為例如GPU的顯示驅(qū)動(dòng)程序的一部分裝運(yùn)。用戶可以將驅(qū)動(dòng)程序和應(yīng)用安裝在用戶的計(jì)算機(jī)/系統(tǒng)上,從而使安全內(nèi)核(顯示驅(qū)動(dòng)程序)和安全應(yīng)用在一起(步驟225)。在引導(dǎo)時(shí),安全內(nèi)核185被提供給SAMU硬件(步驟230)。安全內(nèi)核被引導(dǎo)ROMl 10確認(rèn)并驗(yàn)證完整性(步驟235)。在以存儲(chǔ)器AES配置解密密鑰(以執(zhí)行加密代碼的按需解密)并將控制交給安全內(nèi)核185之前,引導(dǎo)R0M110驗(yàn)證安全內(nèi)核185完整性(步驟240)。如果安全內(nèi)核驗(yàn)證失敗(步驟245),則不暴露SAMU服務(wù)并且應(yīng)用轉(zhuǎn)而依靠基于軟件的保護(hù)方案。成功的驗(yàn)證后,由引導(dǎo)R0M110配置用于安全內(nèi)核的解密密鑰(步驟250)。由用戶啟動(dòng)應(yīng)用(步驟255)。當(dāng)啟動(dòng)應(yīng)用時(shí),應(yīng)用檢測(cè)SAMU服務(wù)的存在(步驟260),并使其自身準(zhǔn)備好來(lái)利用由SAMU提供的受保護(hù)的執(zhí)行環(huán)境。應(yīng)用將安全SAMU應(yīng)用提供給安全內(nèi)核,用于上下文創(chuàng)建(步驟265 )。由安全內(nèi)核185驗(yàn)證SAMU應(yīng)用的完整性(步驟270)。安全內(nèi)核185配置IV硬件160以檢查SAMU應(yīng)用的完整性(步驟275)。在成功的完整性驗(yàn)證之后,由安全內(nèi)核185配置用于SAMU應(yīng)用的解密密鑰(步驟280)。如果IV硬件160無(wú)法驗(yàn)證SAMU應(yīng)用(步驟275),那么無(wú)法接受運(yùn)行SAMU應(yīng)用,并將對(duì)應(yīng)的失敗消息返回給應(yīng)用(步驟285)。在這種情況下,應(yīng)用可選擇回退到基于軟件的保護(hù)技術(shù)。如上文所述的將代碼或數(shù)據(jù)卸載至SAMU用于硬件加速與解碼卸載以及3D呈現(xiàn)卸載類似。例如,應(yīng)用使用API將良好定義的工作項(xiàng)卸載至GPU。SAMU104通過(guò)以下操作提供安全執(zhí)行環(huán)境:提供針對(duì)敏感功能使用的敏感數(shù)據(jù)的安全引導(dǎo)、完整性檢查、執(zhí)行加密代碼、存儲(chǔ)器保護(hù);和禁用對(duì)生產(chǎn)芯片的調(diào)試。安全環(huán)境內(nèi)存在至少兩種不同種類的代碼,例如,內(nèi)核代碼或應(yīng)用代碼,以及引導(dǎo)程序代碼。引導(dǎo)程序代碼被加密地存儲(chǔ)在安全存儲(chǔ)器中且和最終芯片一起被裝運(yùn)。其在引導(dǎo)時(shí)提供三個(gè)主要服務(wù):禁用對(duì)生產(chǎn)芯片的調(diào)試、檢查由SAMU驅(qū)動(dòng)程序提供的內(nèi)核映像的完整性和在將控制交給給定內(nèi)核之前計(jì)算用于該內(nèi)核的解密密鑰。作為引導(dǎo)過(guò)程的部分,解密密鑰被計(jì)算,且只在成功確認(rèn)內(nèi)核映像的完整性后完成此操作。解密密鑰依據(jù)多個(gè)輸入:在涉及將計(jì)算機(jī)邏輯蝕刻或硬編碼至在被制造后不能改變的芯片上的制造時(shí)注入的電子熔絲圖案、在內(nèi)核二進(jìn)制簽名時(shí)生成的隨機(jī)圖案(存儲(chǔ)為已簽名內(nèi)核映像的部分)和在引導(dǎo)時(shí)由SAMU驅(qū)動(dòng)程序提供的軟件參數(shù)。內(nèi)核解密密鑰的計(jì)算還涉及訪問(wèn)嵌入在硅中的秘密功能,這些功能可包括秘密乘法器、DSP塊、處理器、高速IO邏輯和嵌入式存儲(chǔ)器。內(nèi)核代碼用作SAMU104的管理器并向SAMU驅(qū)動(dòng)程序提供服務(wù)。內(nèi)核代碼可包括制造商內(nèi)核證書(shū)且被引導(dǎo)加載程序完整性實(shí)施。它控制SAMU資源且具有對(duì)SAMU和處理器的寄存器級(jí)訪問(wèn)權(quán)。它還可以在運(yùn)行時(shí)加載額外的應(yīng)用代碼以提供按需服務(wù)。安全內(nèi)核185處理驅(qū)動(dòng)程序調(diào)用并相應(yīng)地引用固件例行程序。圖3描述SAMU軟件堆棧300。主機(jī)應(yīng)用310和SAMU驅(qū)動(dòng)程序320駐留在主機(jī)處理器360 (例如,個(gè)人計(jì)算機(jī)、智能電話等)上?;趤?lái)自主機(jī)應(yīng)用310的請(qǐng)求,SAMU驅(qū)動(dòng)程序320發(fā)出命令330,并將相應(yīng)數(shù)據(jù)340傳輸?shù)?例如,在處理器核心中或在GPU中的)SAMU處理器370的安全內(nèi)核380。安全內(nèi)核380可以從多個(gè)應(yīng)用進(jìn)程(如SAMU應(yīng)用)接收數(shù)據(jù)。此數(shù)據(jù)可包括代碼、應(yīng)用數(shù)據(jù),以及相應(yīng)的密鑰和簽名(由簽名工具嵌入)。安全內(nèi)核380可以將經(jīng)過(guò)處理的數(shù)據(jù)340交回給SAMU驅(qū)動(dòng)程序320,SAMU驅(qū)動(dòng)程序320繼而將該信息交給主機(jī)應(yīng)用310?;蛘?,安全內(nèi)核380可將退出代碼350交給SAMU驅(qū)動(dòng)程序320,退出代碼350最終將被交給主機(jī)應(yīng)用310,以便進(jìn)行處理。圖4示出了 SAMU架構(gòu)中的運(yùn)行時(shí)存儲(chǔ)器管理的實(shí)例。SAMU虛擬地址410被映射到MMU120中的虛擬地址頁(yè)面表?xiàng)l目(D0-D15),MMU120接著將地址映射至器件地址空間420(例如,GPU存儲(chǔ)器、DSP存儲(chǔ)器、FPGA存儲(chǔ)器或其它類似器件)中的條目。在一個(gè)實(shí)施方案中,虛擬地址頁(yè)面表被存儲(chǔ)在MMU120的硬件寄存器中且只對(duì)于處理器180可訪問(wèn),而不是依賴于外部存儲(chǔ)器。這個(gè)方案的一個(gè)特點(diǎn)是可以同時(shí)管理多個(gè)應(yīng)用。在這個(gè)實(shí)例中,SA2 (在SAMU地址空間410和器件地址空間420中)和SAl (在器件地址空間420中)表示至少兩個(gè)應(yīng)用,其中SA2是此時(shí)由SAMU提供服務(wù)的活動(dòng)上下文。現(xiàn)在將說(shuō)明頁(yè)面表?xiàng)l目的應(yīng)用。將頁(yè)面表?xiàng)l目標(biāo)記為活動(dòng)或不活動(dòng)是用于基于硬件的頁(yè)面轉(zhuǎn)換。不同上下文通常使用不同數(shù)量的頁(yè)面表?xiàng)l目,因?yàn)閺能浖_(kāi)發(fā)角度來(lái)看,如果所有上下文都必須使用相同數(shù)量的存儲(chǔ)器段,就太具有限制性了。在存儲(chǔ)器管理中,每條目標(biāo)志為內(nèi)核提供靈活性。每條目標(biāo)志還可防止在被指派了相同保護(hù)環(huán)(環(huán)值被存儲(chǔ)在如在SAMU地址空間410中所示的SAMU環(huán)緩沖器(SRB)中)的兩個(gè)上下文得到對(duì)屬于另一上下文的頁(yè)面的訪問(wèn)權(quán)時(shí)發(fā)生的水平權(quán)限違規(guī)。本文所述的實(shí)施方案使用SAMU來(lái)從主機(jī)處理器卸載敏感代碼。處理器以受保護(hù)形式將敏感數(shù)據(jù)饋送至在SAMU上運(yùn)行的敏感代碼。為了處理高價(jià)值優(yōu)質(zhì)內(nèi)容,SAMU可提供內(nèi)容復(fù)制保護(hù)、多路分用,以及在將控制交回給主機(jī)和/或編碼解碼器以便進(jìn)行進(jìn)一步處理之前的音頻和/或視頻數(shù)據(jù)包的提取、音頻和/或視頻基本流的建構(gòu)和重新加密的應(yīng)用。通過(guò)SAMU提供的安全執(zhí)行環(huán)境可用于運(yùn)行與為優(yōu)質(zhì)內(nèi)容使用而建立的復(fù)制保護(hù)方案相關(guān)的敏感代碼??赡苄枰踩珗?zhí)行的環(huán)境的實(shí)例是在主機(jī)上運(yùn)行的藍(lán)光(Blu-ray )光盤(pán)播放器或藍(lán)光(Blu-ray )播放器應(yīng)用。藍(lán)光(Blu-ray )光盤(pán)播放器可以是個(gè)人計(jì)算機(jī)或用戶器件的一部分。軟件供應(yīng)商需要用于運(yùn)行藍(lán)光(Blu-ray )光盤(pán)的安全執(zhí)行環(huán)境,因?yàn)楣獗P(pán)伴有內(nèi)容創(chuàng)建者所依賴的用于保護(hù)內(nèi)容的穩(wěn)健的復(fù)制保護(hù)方案。SAMU提供這樣的環(huán)境。藍(lán)光(Blu-ray )播放器可卸載內(nèi)容保護(hù)功能(如AACS和BD+功能)以在安全環(huán)境上運(yùn)行。受保護(hù)的藍(lán)光(Blu-ray )內(nèi)容自光盤(pán)加載,但是在安全環(huán)境中依賴于AACS和BD+功能來(lái)進(jìn)行解密及多路分用操作。視頻位流可以在安全環(huán)境內(nèi)部以AES重新加密,以便由視頻解碼器使用。音頻位流和其它導(dǎo)航數(shù)據(jù)可以AES重新加密,以便由播放器使用。然而,所屬領(lǐng)域技術(shù)人員應(yīng)明白,SAMU的應(yīng)用并不限于藍(lán)光(Blu-ray )光盤(pán)播放器。SAMU可以用在其它硬件平臺(tái),包括移動(dòng)電話、手持配件、定位系統(tǒng)等等。在所描述的實(shí)施方案中,SAMU是處理器為中心的安全平臺(tái)。處理器可以形成另一器件(例如,集成北橋、應(yīng)用處理器、中央處理單元、數(shù)字信號(hào)處理器等等)的部分。因?yàn)镾AMU是提供編解碼器加速的處理器的一部分,所以用于保護(hù)從SAMU退出的位流的密鑰可用作至編解碼器加速器中的輸入,且可從SAMU傳遞至編解碼器加速器而不會(huì)離開(kāi)處理器。這種構(gòu)造和操作還可改進(jìn)優(yōu)質(zhì)內(nèi)容使用的安全性。可以通過(guò)檢測(cè)和利用作為SAMU內(nèi)核的部分提供的安全服務(wù)而將敏感代碼的執(zhí)行從處理器移至SAMU。或者,可以通過(guò)將敏感代碼提供到作為已簽名固件的來(lái)自半導(dǎo)體制造商的授權(quán)驅(qū)動(dòng)程序而將敏感代碼從處理器移至SAMU。SAMU還可用于卸載其它密碼學(xué)操作,如其中需要訪問(wèn)私有密鑰的認(rèn)證和數(shù)字簽名的創(chuàng)建。通過(guò)將這些操作移至SAMU,私有密鑰可以加密的形式被存儲(chǔ)在主機(jī)系統(tǒng)中,且私有密鑰的明文值只能在受保護(hù)的執(zhí)行環(huán)境中被恢復(fù)和使用。使用SAMU可以改進(jìn)整個(gè)系統(tǒng)的穩(wěn)健性和電源效率。SAMU在處理架構(gòu)中提供單個(gè)信任確認(rèn)點(diǎn),如在處理器、GPU、CPU、DSP或FPGA內(nèi)。SAMU僅從加密和已簽名的內(nèi)核代碼引導(dǎo),并且僅執(zhí)行加密和已簽名的代碼。SAMU硬件可運(yùn)行未簽名的明碼(即未加密的)代碼。SAMU被提供了基于硬件的安全引導(dǎo)和存儲(chǔ)器保護(hù),并能夠執(zhí)行由主機(jī)處理器提供的按需代碼。在一個(gè)實(shí)施方案中,通過(guò)在器件(例如,GPU平臺(tái))中集成32位RISC處理器并將安全邏輯添加至其中而建立具有功率效率和成本效益的安全執(zhí)行環(huán)境。用于在此環(huán)境中執(zhí)行的二進(jìn)制數(shù)以隨機(jī)生成的密鑰加密且同時(shí)由離線工具簽名。將受保護(hù)的二進(jìn)制數(shù)以加密形式隨驅(qū)動(dòng)程序和/或應(yīng)用提供,并且即使在存儲(chǔ)器中被加載時(shí),受保護(hù)的二進(jìn)制數(shù)仍將保持在該形式。當(dāng)按需將敏感代碼加載至指令高速緩存中時(shí),“實(shí)時(shí)地”進(jìn)行解密。這種布置允許使用PC中現(xiàn)有的可用存儲(chǔ)器來(lái)存儲(chǔ)機(jī)密信息。敏感代碼受離線簽名工具保護(hù)。存在至少兩種敏感代碼:管理資源訪問(wèn)的內(nèi)核和將實(shí)際安全相關(guān)功能提供給主機(jī)應(yīng)用的用戶代碼。SAMU制造商可擁有內(nèi)核,但是用戶代碼可來(lái)自SAMU制造商或外部軟件供應(yīng)商(其為SAMU建立應(yīng)用)。還可為這些種類的敏感代碼開(kāi)發(fā)單獨(dú)的簽名工具。此外,可將SAMU的核心功能提供給軟件供應(yīng)商,其中SAMU制造商將開(kāi)發(fā)工具提供給軟件供應(yīng)商,或者其中SAMU制造商和軟件供應(yīng)商都開(kāi)發(fā)分區(qū)方案和有關(guān)API。在這些情況下,SAMU制造商或軟件供應(yīng)商可生成按需固件代碼。此外,本文所述實(shí)施方案減少了研究和開(kāi)發(fā)資源的隨機(jī)化、減輕退貨的零售壓力,并實(shí)現(xiàn)個(gè)人計(jì)算機(jī)平臺(tái)上的優(yōu)質(zhì)廣播。優(yōu)質(zhì)內(nèi)容可包括,例如,手持?jǐn)?shù)字視頻廣播、ARIB等。本文所述實(shí)施方案減少了在混淆和防篡改軟件使用上消耗的功率,降低了有效軟件的撤銷頻率,并且通過(guò)對(duì)客戶造成相對(duì)較少或幾乎沒(méi)有的不便而使內(nèi)容所有人滿意。本文所述實(shí)施方案可以在處理器核心中實(shí)現(xiàn),處理器核心可以以CPU、DSP、FPGA、GPU或其任意組合來(lái)體現(xiàn)。所屬領(lǐng)域技術(shù)人員應(yīng)理解,處理器核心可以形成另一器件(例如,集成北橋、應(yīng)用處理器、CPU、DSP等)的部分。舉例而言,合適的處理器包括:通用處理器、專用處理器、常規(guī)處理器、數(shù)字信號(hào)處理器(DSP)、多個(gè)微處理器、與DSP核心相關(guān)的一個(gè)或多個(gè)微處理器、控制器、微控制器、專用集成電路(ASIC)、現(xiàn)場(chǎng)可編程門陣列(FPGA)電路、任何其它類型的集成電路(IC)和/或狀態(tài)機(jī)。此外,本發(fā)明可以以硬件、軟件、固件或其任意組合來(lái)體現(xiàn)。本發(fā)明的實(shí)施方案或其部分可以許多編程語(yǔ)言來(lái)編碼,如硬件描述語(yǔ)言(HDL)、匯編語(yǔ)言、C語(yǔ)言、網(wǎng)表等。例如,如Verilog的HDL可以用于合成、模擬和制造實(shí)現(xiàn)本發(fā)明的一個(gè)或多個(gè)實(shí)施方案的方面的器件,例如,處理器、專用集成電路(ASIC)和/或其它硬件元件。Verilog代碼可用于建模、設(shè)計(jì)、確認(rèn)和/或?qū)崿F(xiàn)能夠應(yīng)用SAMU的處理器。例如,Verilog可用于生成可執(zhí)行指令的邏輯的寄存器傳輸級(jí)(RTL)描述,用于SAMU應(yīng)用。接著,邏輯的RTL描述可用來(lái)生成數(shù)據(jù),例如圖形設(shè)計(jì)系統(tǒng)(⑶S)或⑶S II數(shù)據(jù),其用于制造所需的邏輯或器件。Verilog代碼、RTL描述和/或⑶S II數(shù)據(jù)可以被存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)上。由邏輯執(zhí)行以執(zhí)行本發(fā)明的方面的指令可以各種編程語(yǔ)言(例如C和C++)來(lái)編碼,并且可被編譯成可由邏輯或其它器件執(zhí)行的目標(biāo)代碼。本發(fā)明的方面可以全部或部分地被存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)上。在計(jì)算機(jī)可讀介質(zhì)上存儲(chǔ)的指令可將處理器調(diào)適為全部或部分地執(zhí)行本發(fā)明,或調(diào)適為生成專門適于全部或部分地執(zhí)行本發(fā)明的器件,例如處理器、ASIC或其它硬件。這些指令也可用于通過(guò)生成掩模作品/光掩模而最終配置制造過(guò)程,以生成體現(xiàn)本文所述發(fā)明的方面的硬件器件。
權(quán)利要求
1.一種用于為單獨(dú)程序代碼或數(shù)據(jù)的多個(gè)實(shí)例提供安全執(zhí)行環(huán)境的方法,所述方法包括: 將單獨(dú)代碼或數(shù)據(jù)的多個(gè)實(shí)例以加密格式從主機(jī)處理器卸載至安全資產(chǎn)管理單元(SAMU),以便進(jìn)行認(rèn)證并維持所述單獨(dú)代碼或數(shù)據(jù)的多個(gè)實(shí)例的機(jī)密性。
2.根據(jù)權(quán)利要求1所述的方法,其中所述卸載包括對(duì)于所述單獨(dú)代碼或數(shù)據(jù)的多個(gè)實(shí)例中的每一個(gè)實(shí)例,創(chuàng)建具有在簽名工具中生成的隨機(jī)密鑰的加密二進(jìn)制引導(dǎo)映像。
3.根據(jù)權(quán)利要求2所述的方法,其中所述加密二進(jìn)制引導(dǎo)映像被加密用于所述SAMU且作為用于所述SAMU的安全內(nèi)核和安全應(yīng)用被提供。
4.根據(jù)權(quán)利要求3所述的方法,其中用戶安裝所述加密二進(jìn)制引導(dǎo)映像并按需將所述加密二進(jìn)制引導(dǎo)映像提 供給所述SAMU。
5.根據(jù)權(quán)利要求4所述的方法,其還包括: 在使用引導(dǎo)只讀存儲(chǔ)器(ROM)配置用于和所述SAMU —起使用的解密密鑰之前驗(yàn)證所述加密二進(jìn)制弓I導(dǎo)映像的完整性。
6.根據(jù)權(quán)利要求5所述的方法,其還包括: 在所述弓I導(dǎo)ROM生成用于和所述SAMU —起使用的解密密鑰;和響應(yīng)于肯定的驗(yàn)證而將控制交給所述加密二進(jìn)制弓I導(dǎo)映像。
7.根據(jù)權(quán)利要求6所述的方法,其中在肯定的驗(yàn)證和所述安全內(nèi)核的執(zhí)行之后,用于提供對(duì)內(nèi)容的訪問(wèn)的應(yīng)用檢測(cè)所述SAMU硬件的可用性且所述安全內(nèi)核生成用于所述應(yīng)用的上下文并驗(yàn)證所述應(yīng)用的完整性。
8.根據(jù)權(quán)利要求7所述的方法,其中響應(yīng)于肯定的驗(yàn)證,由所述安全內(nèi)核恢復(fù)用于所述應(yīng)用的所述單獨(dú)代碼或數(shù)據(jù)的多個(gè)實(shí)例中的每個(gè)的代碼解密密鑰,以便與使用內(nèi)核映像創(chuàng)建的所述上下文一起使用。
9.根據(jù)權(quán)利要求8所述的方法,其還包括: 響應(yīng)于所述內(nèi)核映像的肯定的驗(yàn)證,對(duì)于所述單獨(dú)代碼或數(shù)據(jù)的多個(gè)實(shí)例中的每一個(gè),在所述安全內(nèi)核為所述應(yīng)用隨機(jī)地生成數(shù)據(jù)密文密鑰。
10.根據(jù)權(quán)利要求5所述的方法,其中如果存在否定的驗(yàn)證,則不暴露SAMU服務(wù),且所述應(yīng)用回退到基于軟件的保護(hù)方案。
11.一種用于提供用于單獨(dú)程序代碼或數(shù)據(jù)的多個(gè)實(shí)例的安全執(zhí)行單元的系統(tǒng),所述系統(tǒng)包括: 主機(jī)處理器,其被配置來(lái)執(zhí)行包括代碼或數(shù)據(jù)的多個(gè)應(yīng)用; 安全資產(chǎn)管理單元(SAMU),其被配置來(lái)執(zhí)行程序代碼,其中所述SAMU連接至所述主機(jī)處理器且被配置來(lái)將單獨(dú)代碼或數(shù)據(jù)的多個(gè)實(shí)例以加密格式從所述主機(jī)處理器卸載,以便進(jìn)行認(rèn)證并維持所述單獨(dú)代碼或數(shù)據(jù)的多個(gè)實(shí)例的機(jī)密性。
12.根據(jù)權(quán)利要求11所述的系統(tǒng),其中所述SAMU還被配置來(lái)創(chuàng)建具有在簽名工具中生成的隨機(jī)密鑰的加密二進(jìn)制引導(dǎo)映像,作為所述卸載單獨(dú)代碼或數(shù)據(jù)的多個(gè)實(shí)例的部分。
13.根據(jù)權(quán)利要求12所述的系統(tǒng),其中所述加密二進(jìn)制引導(dǎo)映像被加密用于所述SAMU且作為用于SAMU的安全內(nèi)核和安全應(yīng)用被提供。
14.根據(jù)權(quán)利要求12所述的系統(tǒng),其中用戶安裝所述加密二進(jìn)制引導(dǎo)映像并按需將所述加密二進(jìn)制引導(dǎo)映像提供給所述SAMU。
15.根據(jù)權(quán)利要求14所述的系統(tǒng),其中所述SAMU還被配置成在使用引導(dǎo)只讀存儲(chǔ)器(ROM)配置用于和所述SAMU —起使用的解密密鑰之前驗(yàn)證所述加密二進(jìn)制引導(dǎo)映像的完整性。
16.根據(jù)權(quán)利要求15所述的系統(tǒng),其中所述引導(dǎo)ROM還被配置來(lái)生成用于和所述SAMU一起使用的解密密鑰,并響應(yīng)于肯定的驗(yàn)證而將控制交給所述加密二進(jìn)制引導(dǎo)映像。
17.根據(jù)權(quán)利要求16所述的系統(tǒng),其中在肯定的驗(yàn)證和所述安全內(nèi)核的執(zhí)行之后,用于提供對(duì)內(nèi)容的訪問(wèn)的應(yīng)用檢測(cè)所述SAMU硬件的可用性且所述安全內(nèi)核生成用于所述應(yīng)用的上下文并驗(yàn)證所述應(yīng)用的完整性。
18.根據(jù)權(quán)利要求17所述的系統(tǒng),其中響應(yīng)于肯定的驗(yàn)證,由所述安全內(nèi)核恢復(fù)所述應(yīng)用的所述單獨(dú)代碼或數(shù)據(jù)的多個(gè)實(shí)例中的每個(gè)的代碼解密密鑰,以便與使用內(nèi)核映像創(chuàng)建的所述上下文一起使用。
19.根據(jù)權(quán)利要求18所述的系統(tǒng),其還被配置來(lái): 響應(yīng)于所述內(nèi)核映像的肯定的驗(yàn)證,對(duì)于所述單獨(dú)代碼或數(shù)據(jù)的多個(gè)實(shí)例中的每一個(gè),在所述安全內(nèi)核為所述應(yīng)用隨機(jī)地生成數(shù)據(jù)密文密鑰。
20.根據(jù)權(quán)利要求16所述的系統(tǒng),其中如果存在否定的驗(yàn)證,則不暴露SAMU服務(wù),且所述應(yīng)用轉(zhuǎn)而依靠基于軟件的保護(hù)方案來(lái)進(jìn)行認(rèn)證。
21.一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其存儲(chǔ)用于由一個(gè)或多個(gè)處理器執(zhí)行以促進(jìn)安全資產(chǎn)管理單元(SAMU)的制造的指令集,所述SAMU被配置來(lái): 執(zhí)行程序代碼;和 以加密格式從處理器卸載單獨(dú)代碼或數(shù)據(jù)的多個(gè)實(shí)例以認(rèn)證并維持所述單獨(dú)代碼或數(shù)據(jù)的多個(gè)實(shí)例的機(jī)密性。
22.根據(jù)權(quán)利要求21所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中所述指令是用于制造器件的硬件描述語(yǔ)言(HDL)指令。
全文摘要
描述了一種用于執(zhí)行敏感代碼和數(shù)據(jù)且包括安全資產(chǎn)管理單元(SAMU)的安全執(zhí)行環(huán)境。所述SAMU提供安全執(zhí)行環(huán)境以運(yùn)行與用于內(nèi)容使用而被建立的復(fù)制保護(hù)方案相關(guān)的單獨(dú)程序代碼或數(shù)據(jù)代碼的多個(gè)實(shí)例。所述SAMU架構(gòu)允許基于硬件的安全引導(dǎo)和存儲(chǔ)器保護(hù),并且提供由主機(jī)處理器提供的單獨(dú)程序代碼或數(shù)據(jù)的多個(gè)實(shí)例的按需代碼執(zhí)行。所述SAMU可自已加密并簽名的內(nèi)核代碼來(lái)引導(dǎo),并且執(zhí)行已加密、簽名的代碼。基于硬件的安全配置促成防止垂直或水平權(quán)限違規(guī)。
文檔編號(hào)G06F21/10GK103221961SQ201180054122
公開(kāi)日2013年7月24日 申請(qǐng)日期2011年10月19日 優(yōu)先權(quán)日2010年10月20日
發(fā)明者丹尼爾·W·翁 申請(qǐng)人:超威半導(dǎo)體公司