在系統(tǒng)預引導期間具有改進的只讀存儲器鎖定的安全數據保護的制作方法
【專利摘要】總體上,本發(fā)明提供了用于在系統(tǒng)預引導期間具有改進的只讀存儲器鎖定的安全數據保護的方法和系統(tǒng),所述安全數據保護包括對高級配置和電源接口(ACPI)表的保護。所述方法可以包括:選擇要保護的系統(tǒng)存儲器的區(qū)域,所述選擇響應于系統(tǒng)重置狀態(tài)而發(fā)生,且由包括可信基本輸入/輸出系統(tǒng)(BIOS)的可信控制塊(TCB)執(zhí)行;對地址解碼器電路進行編程以將所選區(qū)域配置為讀寫;將要保衛(wèi)的數據移動到所選區(qū)域;對所述地址解碼器電路進行編程以將所選區(qū)域配置為只讀;以及鎖定所述地址解碼器電路中的只讀配置。
【專利說明】在系統(tǒng)預弓I導期間具有改進的只讀存儲器鎖定的安全數據保護
【技術領域】
[0001]本公開涉及安全數據保護,并且更具體地,涉及在系統(tǒng)預引導期間具有改進的只讀存儲器鎖定的安全數據保護,包括對高級配置和電源接口(ACPI)表的保護。
【背景技術】
[0002]隨著計算機平臺變得更加復雜,包括基本輸入/輸出系統(tǒng)(BIOS)和BIOS到操作系統(tǒng)(OS)通信例程的軟件正在越來越多地成為攻擊的目標。這些攻擊可能以高級配置和電源接口(ACPI)表、統(tǒng)一可擴展固件接口(UEFI)運行時服務以及其他敏感數據為目標。當前的計算系統(tǒng)典型地在系統(tǒng)引導和/或OS加載完成之前不提供對該敏感代碼和數據可駐留于其中的系統(tǒng)存儲器的保護。因為ACPI代碼可以在OS開始執(zhí)行后在內核模式中運行,所以對ACPI的惡意修改可能產生顯著的安全易損壞性,且可能實現對原始設備制造商(OEM)OS圖像的盜版。
【專利附圖】
【附圖說明】
[0003]隨著以下【具體實施方式】繼續(xù)并且在參照附圖后,要求保護的主題的實施例的特征和優(yōu)點將變得顯而易見,在附圖中,相似的數字描繪相似的部分,并且在附圖中:
圖1圖示了根據本公開的一個示例性實施例的頂級系統(tǒng)圖;
圖2圖示了根據本公開的一個示例性實施例的框圖;
圖3圖示了根據本公開的示例性實施例的操作的流程圖;
圖4圖示了根據本公開的另一示例性實施例的操作的流程圖;
圖5圖示了根據本公開的另一示例性實施例的操作的流程圖。
[0004]盡管以下【具體實施方式】將在對說明性實施例做出參照的情況下繼續(xù),但是對其的許多替代、修改和變型對于本領域技術人員來說將顯而易見。
【具體實施方式】
[0005]總體而言,本公開提供了用于在系統(tǒng)預引導期間具有改進的只讀存儲器鎖定的安全數據保護的方法和系統(tǒng),所述安全數據保護包括對高級配置和電源接口(ACPI)表的保護。在上電或系統(tǒng)重置時,可信軟件和/或硬件可以選擇系統(tǒng)存儲器的區(qū)域以進行保護??尚庞布梢允强尚趴刂茐K(TCB),并且可信軟件可以是可信BIOS??梢詫Φ刂方獯a器電路進行編程以將所選區(qū)域配置為讀寫,使得要保衛(wèi)的敏感數據可以被移動到系統(tǒng)存儲器的所選區(qū)域中。在移動數據之后,可以對地址解碼器電路進行重新編程以將所選區(qū)域配置為只讀。然后,可以鎖定地址解碼器電路,以防止所選存儲器區(qū)域的狀態(tài)的后續(xù)改變,除非系統(tǒng)被重置。因此,鎖定可以防止非可信代碼意外地或惡意地更改系統(tǒng)存儲器的受保護區(qū)域,所述非可信代碼包括進一步預引導和弓I導操作以及OS。
[0006]圖1圖示了根據本公開的一個示例性實施例的頂級系統(tǒng)圖100。該系統(tǒng)可以包括系統(tǒng)存儲器102、地址解碼電路112、以及被配置為執(zhí)行預引導操作114、引導操作116和OS操作118的處理器120??梢酝ㄟ^地址解碼電路112的配置將系統(tǒng)存儲器分段成不受保護區(qū)域104和受保護區(qū)域106,如將在下文中更詳細描述的那樣。存儲器的受保護區(qū)域106可以加載有ACPI表108和要在預引導操作114期間通過可信BIOS代碼保衛(wèi)的其他敏感數據110。在一些實施例中,該其他敏感數據110可以包括統(tǒng)一可擴展固件接口(UEFI)運行時服務。然后,可以在例如在引導116和OS 118中將控制轉移到非可信代碼之前將存儲器的受保護區(qū)域106鎖定到只讀模式中。在一些實施例中,OS操作可以包括測量虛擬機監(jiān)視器(MVMM)和要在OS支持的情況下執(zhí)行的應用。
[0007]圖2圖示了示出根據本公開的示例性實施例的附加細節(jié)的框圖200。圖1的處理器120可以是任何數目的處理器核心208中的一個,每個處理器核心208可以包括處理器高速緩沖存儲器控制器214和/或集成的存儲器控制器212。處理器208可以與一個或多個系統(tǒng)存儲器模塊102通信,每個系統(tǒng)存儲器模塊102可以包括本地存儲器設備控制器206。存儲器控制器214、212和206中的每一個還可以分別包括關聯的地址解碼電路112a、112b和 112c。
[0008]可信BIOS 202可以通過平臺控制器中樞204耦合到處理器核心208??尚臖IOS202可以被配置為在預引導操作期間將ACPI表108和要保衛(wèi)的其他敏感數據110加載到系統(tǒng)存儲器102的受保護區(qū)域106中??尚臖IOS 202可以與TCB相關聯,該TCB包括被配置為提供可信執(zhí)行環(huán)境的經驗證的硬件和軟件??尚臖IOS 202可以將受保護區(qū)域106配置到只讀狀態(tài),并通過對地址解碼器電路112a、112b和112c中的一個或多個進行編程將該區(qū)域鎖定到該狀態(tài)中。地址解碼電路112a可以包括源地址解碼(SAD)寄存器,其被提供用于存儲器訪問配置編程。地址解碼電路112b可以包括目標地址解碼(TAD)寄存器,其被提供用于存儲器訪問配置編程。受保護區(qū)域可以保持鎖定,直到后續(xù)系統(tǒng)重置、電力循環(huán)或從ACPI系統(tǒng)睡眠狀態(tài)3喚醒。對受保護區(qū)域執(zhí)行存儲器寫操作的后續(xù)嘗試可以被丟棄(例如,失敗),并可以作為存儲器寫故障錯誤而被報告,如果系統(tǒng)被配置為報告此類事件的話。
[0009]在一些實施例中,系統(tǒng)存儲器102可以是包括相變存儲器和開關(PCMS)電路的動態(tài)隨機存取存儲器(DRAM)。
[0010]圖3圖示了根據本公開的示例性實施例的操作300的流程圖。操作310可以在系統(tǒng)重置或上電時例如作為上電自檢(POST)或其他預引導操作的一部分而發(fā)生。如下文所描述的,操作310至360可以是通過可信BIOS代碼執(zhí)行的。在操作310處,對CPU、芯片組和存儲器進行初始化。在操作320處,指明系統(tǒng)存儲器的受保護區(qū)域。在操作330處,創(chuàng)建ACPI表或將其移動到系統(tǒng)存儲器的受保護區(qū)域中。其他敏感或安全數據、表、接口或代碼段也可以被移動到受保護區(qū)域中。在操作340處,對存儲器控制器地址解碼器進行編程以將受保護區(qū)域配置為只讀。在操作350處,將受保護區(qū)域配置鎖定在只讀狀態(tài)中。在操作360處,可信BIOS代碼可以退出TCB模式。在操作370處,執(zhí)行任何剩余POST任務。在操作380處,將OS和/或MVMM加載到系統(tǒng)存儲器中并啟動OS和/或MVMM。在一些實施例中,0S/MVMM可以繼續(xù)使用來自受保護存儲器區(qū)域的ACPI表,或者0S/MVMM可以將ACPI表復制到內核(例如,ringO)保護存儲器區(qū)域。
[0011]圖4圖示了根據本公開的另一示例性實施例的操作400的流程圖。操作410至480可以在可信BIOS代碼已經完成上述預引導操作之后發(fā)生。在操作410處,高速緩沖存儲器控制器接收存儲器訪問請求。在操作420處,高速緩沖存儲器控制器詢問地址解碼器。在操作430處,如果所請求的地址不在受保護區(qū)域中,則控制轉移到操作480。在操作440處,如果受保護區(qū)域未被設置為只讀,則控制轉移到操作480。在操作450處,如果存儲器訪問請求不是寫訪問,則控制轉移到操作480,否則,在操作460處,丟棄存儲器請求,并且在操作470處,如果報告被使能,則報告錯誤。在操作480處,完成存儲器請求。
[0012]圖5圖示了根據本公開的另一示例性實施例的操作500的流程圖。在操作510處,選擇要保護的系統(tǒng)存儲器的區(qū)域。該選擇響應于系統(tǒng)重置狀態(tài)而發(fā)生,且由包括可信基本輸入/輸出系統(tǒng)(BIOS)的可信控制塊(TCB)執(zhí)行。在操作520處,對地址解碼器進行編程以將所選區(qū)域配置為讀寫。在操作530處,將要保衛(wèi)的數據移動到所選區(qū)域。在操作540處,對地址解碼器電路進行編程以將所選區(qū)域配置為只讀。在操作550處,對地址解碼器電路中的只讀配置進行鎖定。
[0013]盡管圖3、4和5根據不同實施例圖示了各種操作,但是應當理解,并非在圖3-5中描繪的所有操作對于其他實施例來說都是必要的。實際上,本文中完全可設想:在本公開的其他實施例中,圖3-5中描繪的操作和/或本文描述的其他操作可以以未在任何圖中具體示出的方式加以組合,而仍然完全符合本公開。因此,涉及未在一個圖中精確示出的特征和/或操作的權利要求被認為在本公開的范圍和內容內。
[0014]本文描述的方法的實施例可以在包括一個或多個存儲介質的系統(tǒng)中實現,所述一個或多個存儲介質上個體地或組合地存儲有指令,所述指令在被一個或多個處理器執(zhí)行時執(zhí)行所述方法。這里,處理器可以包括例如系統(tǒng)CPU (例如,核處理器)和/或可編程電路。因此,意圖是,根據本文描述的方法的操作可以跨多個物理設備而分布,所述多個物理設備諸如是若干不同物理位置處的處理結構。此外,意圖是,如本領域技術人員將理解的那樣,方法操作可以個體地或以子組合執(zhí)行。因此,并非每個流程圖的所有操作都需要被執(zhí)行,并且本公開的明確意圖是,如本領域技術人員將理解的那樣,此類操作的所有子組合都被實現。
[0015]存儲介質可以包括任何類型的有形介質,例如:任何類型的盤,包括軟盤、光盤、緊湊盤只讀存儲器(⑶-ROM)、可重寫緊湊盤(⑶-RW)、數字多功能盤(DVD)和磁光盤;半導體器件,諸如,只讀存儲器(ROM)、諸如動態(tài)和靜態(tài)RAM之類的隨機存取存儲器(RAM)、可擦除可編程只讀存儲器(EPR0M)、電可擦除可編程只讀存儲器(EEPR0M)、閃速存儲器、磁或光卡、相變存儲器(PCM)、相變存儲器與開關(PCMS);或適于存儲電子指令的任何類型的介質。
[0016]如本文的任何實施例中所使用的那樣,“電路”可以例如單個地或以任何組合包括硬連線電路、可編程電路、狀態(tài)機電路和/或存儲由可編程電路執(zhí)行的指令的固件。
[0017]如本文的任何實施例中所使用的那樣,術語“模塊”可以指代被配置為執(zhí)行任何上述操作的軟件、固件和/或電路。軟件可以被體現為在非瞬變計算機可讀存儲介質上記錄的軟件封裝、代碼、指令、指令集和/或數據。固件可以被體現為在存儲器設備中硬編碼(例如,非易失性)的代碼、指令或指令集和/或數據。如本文的任何實施例中所使用的那樣,“電路”可以例如單個地或以任何組合包括硬連線電路、諸如包括一個或多個個體指令處理核心的計算機處理器之類的可編程電路、狀態(tài)機電路和/或存儲由可編程電路執(zhí)行的指令的固件。這些模塊可以被共同地或個體地體現為形成較大系統(tǒng)的一部分的電路,所述較大系統(tǒng)例如是集成電路(1C)、片上系統(tǒng)(SoC)、臺式計算機、膝上型計算機、平板計算機、服務器、智能電話等。
[0018]應用可以被體現為可在諸如主機處理器之類的可編程電路或其他可編程電路上執(zhí)行的代碼或指令。
[0019]因此,本公開提供了用于在系統(tǒng)預引導期間具有改進的只讀存儲器鎖定的安全數據保護的方法和系統(tǒng),所述安全數據保護包括對高級配置和電源接口(ACPI)表的保護。
[0020]根據一個方面,提供了一種方法。所述方法可以包括選擇要保護的系統(tǒng)存儲器的區(qū)域,所述選擇響應于系統(tǒng)重置狀態(tài)而發(fā)生,所述選擇由包括可信BIOS的TCB執(zhí)行。該示例的方法還可以包括對地址解碼器電路進行編程以將所選區(qū)域配置為讀寫。該示例的方法還可以包括將要保衛(wèi)的數據移動到所選區(qū)域。該示例的方法還可以包括對地址解碼器電路進行編程以將所選區(qū)域配置為只讀。該示例的方法還可以包括鎖定地址解碼器電路中的只讀配置。
[0021]另一示例方法包括前述操作,并且系統(tǒng)重置狀態(tài)還包括系統(tǒng)上電。
[0022]另一示例方法包括前述操作,并且要保衛(wèi)的數據包括ACPI表。
[0023]另一示例方法包括前述操作,且還包括在鎖定之后執(zhí)行剩余的系統(tǒng)引導任務。
[0024]另一示例方法包括前述操作,并且剩余系統(tǒng)引導任務包括加載OS。
[0025]另一示例方法包括前述操作,并且地址解碼器電路是通過與處理器高速緩沖存儲器控制器相關聯的SAD寄存器來編程的。
[0026]另一示例方法包括前述操作,并且地址解碼器電路是通過與集成的處理器存儲器控制器相關聯的TAD寄存器來編程的。
[0027]另一示例方法包括前述操作,并且地址解碼器電路與DRAM設備控制器相關聯。
[0028]另一示例方法包括前述操作,且還包括在執(zhí)行鎖定之后拒絕對所選區(qū)域的存儲器寫請求。
[0029]另一示例方法包括前述操作,且還包括響應于存儲器寫請求拒絕而報告存儲器寫故障錯誤。
[0030]根據一個方面,提供了一種系統(tǒng)。所述系統(tǒng)可以包括系統(tǒng)存儲器、耦合到所述系統(tǒng)存儲器的地址解碼器電路以及耦合到所述地址解碼器電路的處理器。該示例的系統(tǒng)還可以包括與處理器相關聯的TCB,并且TCB被配置為執(zhí)行可信BIOS。該示例的可信BIOS還可以被配置為響應于系統(tǒng)重置狀態(tài)而將要保衛(wèi)的數據移動到系統(tǒng)存儲器的所選區(qū)域,對地址解碼器電路進行編程以將所選區(qū)域配置為只讀,并鎖定地址解碼器電路中的只讀配置。
[0031]另一示例系統(tǒng)包括前述部件,并且系統(tǒng)重置狀態(tài)還包括系統(tǒng)上電。
[0032]另一示例系統(tǒng)包括前述部件,并且要保衛(wèi)的數據包括ACPI表。
[0033]另一示例系統(tǒng)包括前述部件,且還包括處理器高速緩沖存儲器控制器,并且地址解碼器電路是通過與處理器高速緩沖存儲器控制器相關聯的SAD寄存器來編程的。
[0034]另一示例系統(tǒng)包括前述部件,且還包括集成的處理器存儲器控制器,并且地址解碼器電路是通過與集成的處理器存儲器控制器相關聯的TAD寄存器來編程的。
[0035]另一示例系統(tǒng)包括前述部件,且還包括DRAM設備控制器,并且地址解碼器電路與DRAM設備控制器相關聯。
[0036]根據另一方面,提供了至少一個計算機可讀存儲介質,其上存儲有指令,所述指令在被處理器執(zhí)行時使得處理器執(zhí)行如上面示例中所描述的方法。[0037]本文已經采用的術語和表達被用作描述性術語而非限制性術語,并且在此類術語和表達的使用中不存在排除所示出和描述的特征(或其部分)的任何等同物的意圖,并且應當認識到,在權利要求的范圍內,各種修改是可能的。相應地,權利要求意圖覆蓋所有此類等同物。本文已經描述了各種特征、方面和實施例。如本領域技術人員將理解的那樣,這些特征、方面和實施例可允許彼此組合以及變型和修改。因此,應當認為本公開涵蓋了此類組合、變型和修改。
【權利要求】
1.一種用于安全數據保護的方法,所述方法包括: 選擇要保護的系統(tǒng)存儲器的區(qū)域,所述選擇響應于系統(tǒng)重置狀態(tài)而發(fā)生,所述選擇由包括可信基本輸入/輸出系統(tǒng)(BIOS)的可信控制塊(TCB)執(zhí)行; 對地址解碼器電路進行編程以將所述所選區(qū)域配置為讀寫; 將要保衛(wèi)的數據移動到所述所選區(qū)域; 對所述地址解碼器電路進行編程以將所述所選區(qū)域配置為只讀;以及 鎖定所述地址解碼器電路中的所述只讀配置。
2.如權利要求1所述的方法,其中,所述系統(tǒng)重置狀態(tài)還包括系統(tǒng)上電。
3.如權利要求1所述的方法,其中,所述要保衛(wèi)的數據包括高級配置和電源接口(ACPI)表。
4.如權利要求1所述的方法,還包括在所述鎖定之后執(zhí)行剩余系統(tǒng)引導任務。
5.如權利要求4所述的方法,其中,所述剩余系統(tǒng)引導任務包括加載操作系統(tǒng)(OS)。
6.如權利要求1至5中任何一項所述的方法,其中,所述地址解碼器電路是通過與處理器高速緩沖存儲器控制器相關聯的源地址解碼器(SAD)寄存器來編程的。
7.如權利要求1至5中任何一項所述的方法,其中,所述地址解碼器電路是通過與集成的處理器存儲器控制器相關聯的目標地址解碼器(TAD)寄存器來編程的。
8.如權利要求1至5中任何一項所述的方法,其中,所述地址解碼器電路與動態(tài)隨機存取存儲器(DRAM)設備控制器相關聯。
9.如權利要求1所述的方法,還包括在執(zhí)行所述鎖定之后拒絕對所述所選區(qū)域的存儲器寫請求。
10.如權利要求9所述的方法,還包括響應于所述存儲器寫請求拒絕而報告存儲器寫故障錯誤。
11.一種用于安全數據保護的系統(tǒng),所述系統(tǒng)包括: 系統(tǒng)存儲器; 耦合到所述系統(tǒng)存儲器的地址解碼器電路; 耦合到所述地址解碼器電路的處理器;以及 與所述處理器相關聯的可信控制塊(TCB),所述TCB被配置為執(zhí)行可信基本輸入/輸出系統(tǒng)(BIOS),其中所述可信BIOS被配置為: 響應于系統(tǒng)重置狀態(tài)而將要保衛(wèi)的數據移動到所述系統(tǒng)存儲器的所選區(qū)域; 對所述地址解碼器電路進行編程以將所述所選區(qū)域配置為只讀;以及 鎖定所述地址解碼器電路中的所述只讀配置。
12.如權利要求11所述的系統(tǒng),其中,所述系統(tǒng)重置狀態(tài)還包括系統(tǒng)上電。
13.如權利要求11所述的系統(tǒng),其中,所述要保衛(wèi)的數據包括高級配置和電源接口(ACPI)表。
14.如權利要求11至13中任何一項所述的系統(tǒng),還包括處理器高速緩沖存儲器控制器,其中,所述地址解碼器電路是通過與所述處理器高速緩沖存儲器控制器相關聯的源地址解碼器(SAD)寄存器來編程的。
15.如權利要求11至13中任何一項所述的系統(tǒng),還包括集成的處理器存儲器控制器,其中,所述地址解碼器電路是通過與所述集成的處理器存儲器控制器相關聯的目標地址解碼器(TAD)寄存器來編程的。
16.如權利要求11至13中任何一項所述的系統(tǒng),還包括動態(tài)隨機存取存儲器(DRAM)設備控制器,其中,所述地址解碼器電路與所述動態(tài)隨機存取存儲器(DRAM)設備控制器相關聯。
17.一種其上存儲有指令的計算機可讀存儲介質,所述指令在被處理器執(zhí)行時導致用于安全數據保護的以下操作,所述操作包括: 選擇要保護的系統(tǒng)存儲器的區(qū)域,所述選擇響應于系統(tǒng)重置狀態(tài)而發(fā)生,所述選擇由包括可信基本輸入/輸出系統(tǒng)(BIOS)的可信控制塊(TCB)執(zhí)行; 對地址解碼器電路進行編程以將所述所選區(qū)域配置為讀寫; 將要保衛(wèi)的數據移動到所述所選區(qū)域; 對所述地址解碼器電路進行編程以將所述所選區(qū)域配置為只讀;以及 鎖定所述地址解碼器電路中的所述只讀配置。
18.如權利要求17所述的計算機可讀存儲介質,其中,所述系統(tǒng)重置狀態(tài)還包括系統(tǒng)上電。
19.如權利要 求17所述的計算機可讀存儲介質,其中,所述要保衛(wèi)的數據包括高級配置和電源接口(ACPI)表。
20.如權利要求17所述的計算機可讀存儲介質,還包括在所述鎖定之后執(zhí)行剩余系統(tǒng)引導任務的操作。
21.如權利要求20所述的計算機可讀存儲介質,其中,所述剩余系統(tǒng)引導任務包括加載操作系統(tǒng)(OS)。
22.如權利要求17至21中任何一項所述的計算機可讀存儲介質,其中,所述地址解碼器電路是通過與處理器高速緩沖存儲器控制器相關聯的源地址解碼器(SAD)寄存器來編程的。
23.如權利要求17至21中任何一項所述的計算機可讀存儲介質,其中,所述地址解碼器電路是通過與集成的處理器存儲器控制器相關聯的目標地址解碼器(TAD)寄存器來編程的。
24.如權利要求17至21中任何一項所述的計算機可讀存儲介質,其中,所述地址解碼器電路與動態(tài)隨機存取存儲器(DRAM)設備控制器相關聯。
25.如權利要求17所述的計算機可讀存儲介質,還包括在執(zhí)行所述鎖定之后拒絕對所述所選區(qū)域的存儲器寫請求的操作。
26.如權利要求25所述的計算機可讀存儲介質,還包括響應于所述存儲器寫請求拒絕而報告存儲器寫故障錯誤的操作。
【文檔編號】G06F9/24GK104011733SQ201380004524
【公開日】2014年8月27日 申請日期:2013年8月8日 優(yōu)先權日:2012年8月9日
【發(fā)明者】P.薩克蒂庫馬, V.J.齊默, R.C.斯萬森, E.納魯薩米 申請人:英特爾公司