新四季網

通過重定向系統管理中斷和創建虛擬機容器來抵禦非可信系統管理代碼的系統和方法

2023-09-12 00:12:20

專利名稱:通過重定向系統管理中斷和創建虛擬機容器來抵禦非可信系統管理代碼的系統和方法
技術領域:
本發明總地涉及微處理器系統,更具體地說,涉及可以在可信或安全環境中運行的微處理器系統。
背景技術:
處理器可以根據系統操作的即時需求而運行在幾種處理器操作模式中。通常,處理器可以具有管理員模式、用戶模式,有時還具有其他專用模式。管理員模式可以支持作業系統的執行,並且可以使大多數指令得到執行,包括特權指令。在管理員模式中可以對不同的地址空間和外圍設備進行訪問。而與管理員模式相比,用戶模式可能只限於非特權指令,使得用戶代碼不能干擾系統功能。
經常出現的情況是商業上發行的軟體不能與特定的原始設備製造商(OEM)的硬體組完美配合。由於說明書誤解或實現錯誤,可能存在的情形是軟體試圖按照硬體沒有預期或不支持的方式訪問硬體。簡單的例子可能是軟體程序期望把值放入地址x上的寄存器內,然而硬體內的實際寄存器是在地址x+y上。這可能引起系統異常。
為了處理這樣的情形,可以設計處理器來支持這樣一種操作模式,其為了執行低級修補程序,具有以作業系統透明或準透明的方式或者以特權級獨立的方式來運行的能力。為了本申請,這樣的模式可以被定義為「子作業系統模式(sub operating system mode)」。一種這樣的模式是IntelPentium處理器系列和兼容處理器的系統管理模式(SMM)。(參見IntelPentium4處理器軟體開發者手冊第14章,卷III,2001版,序號245472,可以從美國加利福尼亞聖克拉拉的英特爾公司獲得)。其他子作業系統模式可以存在於MIPS TechnologiesMIPS32TM或MIPS64TM體系結構處理器、IBMPowerPCTM體系結構處理器、SPARC InternationalSPARC體系結構處理器、或許多其他處理器內。子作業系統模式的存在可能具有額外的系統優點,例如支持轉換到斷電模式。為了處理上述軟體和硬體失配,現有的子作業系統模式實現可以沒有任何特權限制或地址映射限制。子作業系統模式可以由專用子作業系統模式中斷來激活(invoke),有時由系統固件或系統硬體產生。這個專用子作業系統模式中斷通常被設計成不可屏蔽的,以便響應進入模式所需的緊急事件。
子作業系統模式通常可以具有下列主要機制。進入模式的唯一途徑是依靠專用子作業系統模式中斷。在SMM的情況下,專用子作業系統模式中斷被稱為系統管理中斷(SMI)。處理器可以執行在單獨的地址空間內的模式代碼。例如,當模式是SMM時,所述單獨的地址空間允許訪問系統管理隨機訪問存儲器(SMRAM),對於其他操作模式而言,該SMRAM不能被訪問。當進入所述模式時,處理器把被中斷的程序或任務的上下文保存在所述單獨地址空間內。例如,在SMM中,上下文被保存在SMRAM內。在該模式內的執行期間,可以禁用正常的中斷。最後,依靠恢復指令可以退出該模式,所述恢復指令只有在該模式內執行時才可以被執行。
在本地或遠程微型計算機上執行的金融和個人事務在數量上的不斷增加已經推動了「可信」或「安全」微處理器環境的建立。這些環境試圖要解決的問題是私密丟失(loss ofprivacy)或者數據被破壞或濫用。用戶不想公開他們的私人數據。他們也不想在不適當的事務中改變或使用他們的數據。這樣的例子包括非故意地洩露醫療記錄或者從在線銀行或其他存放處電子盜竊資金。類似地,內容提供者設法保護數字內容(例如,音樂、其他音頻、視頻或其他類型的一般數據)在未經授權的情況下被複製。
對於安全或可信系統的設計者來說,子作業系統模式例如SMM的存在是一種設計挑戰。這樣的子作業系統模式沒有特權限制或地址映射限制的事實與安全或可信系統體系結構不相容。並且通過試圖屏蔽上述模式的專用中斷,通常也無法避免這種特權限制或地址映射限制的缺少,因為這些中斷通常被設計成不可屏蔽的。


在附圖中本發明是以實施例的方式,而不是以限定的方式來說明的,附圖中相同的附圖標號表示類似的元件,其中圖1是現有實施方式中系統管理RAM內的系統管理模式代碼的存儲器映射。
圖2是根據一種實施方案,具有可信和非可信區的示例性軟體環境圖。
圖3是根據本發明一種實施方案,適合於支持圖2的軟體環境的示例性微處理器系統的示意圖。
圖4是根據本發明一種實施方案,示出運行在虛擬機容器中的系統管理代碼的圖。
圖5是根據本發明一種實施方案,示出系統管理中斷重定向的圖。
圖6是根據本發明另一種實施方案,適合於支持圖2的軟體環境的示例性微處理器系統的示意圖。
圖7是根據本發明另一種實施方案,示出系統管理中斷重定向的圖。
具體實施例方式
下面的說明描述了允許在微處理器系統中的可信或安全環境內執行某種系統管理模式代碼的技術。在下面說明中,為了更徹底地理解本發明,闡述了許多具體細節,例如邏輯實現、軟體模塊分配、加密技術、總線信令技術、以及操作細節。然而,本領域技術人員將能理解,沒有上述具體細節也可以實施本發明。此外,為了不混淆本發明,沒有詳細示出控制結構、門級電路和全部軟體指令序列。獲悉本文所包含的說明的本領域普通技術人員無需超出常規的試驗就能夠實現適當的功能性。本發明是以微處理器系統的形式公開的。然而,以其他處理器的形式也可以實現本發明,例如數位訊號處理器、小型計算機或大型計算機。
為了在安全或可信環境內允許受限的子作業系統模式代碼執行,子作業系統模式中斷可以首先被定向到可信代碼內的處理程序,所述處理程序控制虛擬機對系統資源的訪問。可以通過允許可信代碼對處理器內的中斷服務寄存器進行讀寫來實現到處理程序的這種定向,所述寄存器包括服務上述子作業系統模式中斷所需要的代碼的位置。(中斷服務寄存器通常可以定義為在接收到中斷時用於確定應當執行的代碼的寄存器。)然後,子作業系統模式中斷將被重定向到子作業系統模式代碼來進行中斷服務,所述子作業系統模式代碼位於在上述可信代碼的安全控制下的另一虛擬機內。可替換地,微處理器的虛擬化體系結構可以是這樣的,就是當已經建立了可信代碼時,子作業系統模式中斷將不再使用正常中斷服務寄存器,相反將會引起向與虛擬化體系結構一致的可信代碼的轉換。
在子作業系統模式是系統管理模式(SMM)的示例性情況下,安全或可信環境內的SMM代碼執行可以通過使系統管理中斷(SMI)首先被定向到安全虛擬機監控程序(SVMM)內的處理程序而開始。可以通過允許SVMM對處理器內的系統管理基址(SMBASE)寄存器(PSMBASE)進行讀寫來實現定向到處理程序。然後,SMI將被重定向到位於虛擬機(VM)內的SMM代碼,所述虛擬機是在SVMM的安全控制下。可替換地,處理器的虛擬化體系結構可以禁止(disable)PSMBASE寄存器的使用,並且使所有的SMI被直接重定向到SVMM。
在一種實施方案中,SMM代碼可以被授權訪問除存儲器內受保護的頁面(pages)之外的所有系統資源、以及維持這一保護的相關系統控制。為了實現這個,在安全操作的初始化之後,SMI可以首先被定向到SVMM內的處理程序。這個處理程序可以為SMM代碼建立適當的虛擬機(VM)容器,並且使SMI被重定向到那個代碼。通過在VM容器內執行SMM代碼,可以防止SMM代碼訪問各種系統資源,例如SVMM已經認為受到保護的存儲器。在一種實施方案中,SMM代碼現在可以被寫入以符合VM要求。一種這樣的符合變化可以是按照平面保護模式或某一其他頁面存儲器訪問模式寫入SMM代碼。
現在參考圖1,圖中所示為在一種實施方案中,系統管理隨機訪問存儲器(SMRAM)內的系統管理模式(SMM)代碼的存儲器映射。在正常的系統初始化期間,系統隨機訪問存儲器(RAM)110的一部分可以被留出,用於由SMM代碼獨佔使用。這個留出部分稱為系統管理RAM(SMRAM)。晶片組或處理器內的中斷服務寄存器可以指向SMRAM內的具體存儲位置,所述中斷服務寄存器在一種實施方案中被稱為系統管理基址(SMBASE)寄存器。
晶片組SMBASE寄存器的內容CSMBASE可以定義SMRAM的邊界。例如,SMRAM可以佔據CSMBASE 120和CSMBASE+FFFF(十六進位)132之間的空間。在其他實施方案中,為了支持兩個或多個處理器同時執行SMM代碼,每個處理器可以具有它自己的專用SMRAM空間。處理器的SMBASE寄存器內容PSMBASE可以定義SMRAM內的代碼入口點和狀態保存位置。例如,在SMRAM內,標準的代碼入口點可以位於CSMBASE+8000(十六進位)124。在系統初始化時,CSMBASE的值可以被寫入每個處理器的SMBASE寄存器,從而允許每個處理器在接收到SMI時轉向SMM代碼入口點。在進入SMM代碼之前,在一種實施方案中,處理器可以把狀態數據存儲在地址PSMBASE+FE00(十六進位)128和SMBASE+FFFF(十六進位)132位置上的SMRAM末端之間的狀態保存區內。在其他實施方案中,為了支持兩個或多個處理器同時執行SMM代碼,每個處理器的SMBASE寄存器可以包含不同的PSMBASE值,允許代碼入口點和存儲狀態數據的位置不同。
狀態數據可以包括控制寄存器的值、標誌、自動中斷重啟動欄位、輸入/輸出(I/O)指令重啟動欄位、以及SMM修訂版標識符。SMRAM內的某些位置可以由SMI處理程序進行修改。SMM代碼執行一旦完成,當處理器執行恢復(RSM)指令時,可以重新輸入原始程序。這個現有的RSM指令只可以在SMM內發出,並且RSM指令恢復以前存儲在SMRAM內的狀態值。這個現有SMM設計的使用是本領域公知的。
現在參考圖2,圖中所示為根據本發明一種實施方案的示例性可信或安全軟體環境圖。在圖2的實施方案中,可信或安全軟體可以同時被加載,並且可以在單個計算機系統上同時執行。SVMM 250可選擇地允許或防止非可信作業系統240(或者,如果多個非可信虛擬機被實現,則為多個作業系統)和非可信應用程式210-230對硬體資源280的直接訪問。在這個上下文中,「非可信」並不一定是指作業系統或應用程式正在故意錯誤運行,而是指交互作用的代碼的大小和種類使得可靠地斷言軟體正在按照預想運行變得不切實際,並且是指沒有病毒或其他無關代碼正在幹擾它的執行。在典型的實施方案中,非可信代碼可能是由在當今的個人計算機上常見的作業系統和應用程式組成。
SVMM 250也可選擇地允許或防止一個或多個可信或安全核心程序260以及一個或多個可信應用程式270直接訪問硬體資源280。可以限制上述可信或安全核心程序260和可信應用程式270的大小和功能性,從而有助於在其上完成信任分析的能力。可信應用程式270可以是在安全環境中可執行的任何軟體代碼、程序、例程或例程組。因此,可信應用程式270可以是各種應用程式或代碼序列,或者可以是相對較小的應用程式,例如Javaapplet程序。
由能改變系統資源保護或特權的作業系統240或核心程序260正常執行的指令或操作可以被SVMM 250陷入(trap),並且被可選擇地允許、部分允許或拒絕。作為實施例,在典型的實施方案中,改變在正常情況下將由作業系統240或核心程序260執行的處理器頁面表的指令將會被SVMM 250陷入,這將確保所述請求不是在試圖改變在它的虛擬機轄域之外的頁面特權。察看這個系統的一種方法是作業系統240、核心程序260、以及SVMM 250都是虛擬機,其中作業系統240虛擬機和核心程序260虛擬機都在SVMM 250虛擬機內執行。因此創建了虛擬機層次結構。這時在一種實施方案中,虛擬機可以被定義為任何的多用戶共享資源作業系統,所述系統給每個用戶以能單獨控制所有系統資源的感覺,或者虛擬機也可以被定義為反過來由底層控制程序進行管理的作業系統。
現在參考圖3,圖中所示為適合於支持圖2安全軟體環境的微處理器系統300的一種實施方案。CPU A 310、CPU B 314、CPU C 318以及CPU D 322可以配置有附加的微代碼或邏輯電路用以支持執行特殊指令。在一種實施方案中,處理器可以是IntelPentium級的微處理器,其中根據本發明的實施方案進行了某些特殊修改。這些特殊指令可以支持在系統總線320上發布專用總線消息,所述總線消息可以使處理器內的SVMM 250操作能夠適當同步。類似地,晶片組330可以支持系統總線320上的上述特殊周期。物理處理器的數量可以根據具體實施方案的實現來改變。
在圖3的實施方案中,四個處理器CPU A 310、CPU B 314、CPU C 318以及CPU D322圖示為四個單獨的硬體實體。在其他實施方案中,處理器的數量可以不同。實際上,這些處理器可以用分別在多個物理處理器之一上運行的單獨線程來替換。在後者情況下,這些線程擁有許多附加物理處理器的屬性。為了用一般的表達方式來討論使用多個物理處理器和多個在處理器上的線程的任何混合,表達「邏輯處理器」可以用來描述一個物理處理器或在多個物理處理器之一內運行的線程。因此,一個單線程處理器可以認為是一個邏輯處理器,多線程或多核心處理器可以認為是多個邏輯處理器。
在一種實施方案中,對處理器的修改可以包括對寄存器性能的改變以及新的或經過修改的指令。例如,在一種實施方案中,CPU C 318可以包括新指令安全輸入(SENTER)324。SENTER 324指令在執行時可以使如上面圖2中所示的安全或可信操作開始。SENTER324可以使多個邏輯處理器能夠同步進入安全或可信操作。在一種實施方案中,SENTER324也可以在某些情況下允許對CPU C 318的PSMBASE寄存器316進行寫入,以支持安全或可信SMM操作。
在一種實施方案中,CPU C 318也可以包括修改的恢復(RSM)326指令。修改的RSM 326可以允許從支持安全或可信操作的SMM中返回。通常,RSM指令可以只從SMM內部執行。修改的RSM 326可以從普通的頁面模式內執行。當用激活的VM擴展名調用時,修改的RSM 326指令可以完成被稱為VMexit的特殊系統調用,返回到用於SMI的SVMM處理程序。
晶片組330可以服務通過系統總線320從CPU傳送的讀寫請求,然後,可以對物理存儲器334執行物理讀寫操作。通過包含CSMBASE值的晶片組SMBASE寄存器331可以協助存儲器334內的SMRAM分配。晶片組330另外可以連接到專用的輸入/輸出(I/O)通道,例如加速圖形接口(AGP)336。晶片組330可以控制從CPU A 310、CPU B 314、CPU C 318、CPU D 322以及另外從I/O設備對物理存儲器334內的存儲器頁面的訪問。這樣的設備可以包括大容量存儲設備,例如固定介質344或可移動介質348。固定介質344或可移動介質348可以是磁碟、磁帶、磁碟、磁光碟機動器、CD-ROM、DVD-ROM、快閃記憶體卡,或許多其他形式的大容量存儲設備。經由外圍部件互接(PCI)總線346,或者可替換地,經由通用串行總線(USB)342、集成控制器電子設備(IDE)總線(未圖示)或小型計算機系統互接(SCSI)總線(未圖示),固定介質344或可移動介質348可以連接到晶片組330。
SVMM 364可以允許或拒絕VM對存儲器334內特定頁面的訪問。拒絕VM訪問的存儲器頁面可以稱為「鎖定」頁面,而允許VM訪問的存儲器頁面可以稱為「解鎖」頁面。SVMM 364以及SVMM 364內的模塊可以位於鎖定存儲器頁面360內以支持安全SMM操作。在一種實施方案中,上述模塊可以包括SVMM SMM處理程序366和虛擬機退出(VMexit)/虛擬機調用(VMcall)處理程序368。在其他實施方案中,SVMM SMM處理程序366和VMexit/VMcall處理程序368的功能可以組合起來或者可以分布在其他模塊中。其他存儲器頁面可以保持解鎖,例如解鎖存儲器頁面362。標準作業系統372可以位於解鎖存儲器頁面362內。SMM虛擬機(SMM VM)370也可以位於解鎖存儲器頁面362內。SMM VM 370可以包括軟體代碼,所述軟體代碼類似於標準SMM代碼但被修改以在虛擬機容器內運行。SMM VM 370內的上述修改可以包括準備以頁面模式而不是普通SMM來執行的代碼。
在圖3的實施方案中,圖示為在單個獨立的集成電路上來實現晶片組330的存儲器控制器和I/O設備控制器功能。在替換性實施方案中,獨立的存儲器控制器集成電路通常可以實現上述晶片組330的存儲器控制器功能。類似地,獨立的I/O設備控制器集成電路通常可以實現上述晶片組330的I/O設備控制器功能。在另外的實施方案中,可以在CPU集成電路上的電路內實現晶片組330的存儲器控制器功能,允許幾個CPU各自能直接訪問一定數量的物理存儲器。在這樣的實施方案中,晶片組330的存儲器控制器功能可以被分割在幾個CPU集成電路中,或者對於多個處理器,可以包括在單個管芯(die)上。
現在參考圖4,圖示了根據本發明一種實施方案在虛擬機(VM)容器內運行的系統管理代碼(SMM)。在圖4的實施方案中,SVMM 450具有兩個附加模塊以支持安全或可信SMM操作。SVMM SMM處理程序452在SMM VM490內建立SMM代碼,以響應SENTER指令的執行。VMexit/VMcall處理程序454處理進入及退出SMM VM 490,這是由於SMM VM 490在它的VM容器內的有意更低的特權級。在某些實施方案中,SVMMSMM處理程序452和VMexit/VMcall處理程序454可以是同一軟體模塊。
SVMM SMM處理程序452可以執行幾項功能。在轉換成安全或可信操作期間,在處理器執行SENTER指令之後,SVMM SMM處理程序452在虛擬機容器內加載並啟動SMM VM 490代碼。在某些實施方案中,SVMM SMM處理程序452然後將把其自身內的入口位置寫入系統中每個處理器的修改後的SMBASE寄存器內。這個入口位置允許SMI首先被定向到SVMM SMM處理程序452。對於其他實施方案來說可以不需要調用VMexit/VMcall處理程序454來直接響應系統-管理中斷;對於這些實施方案來說,SVMMSMM處理程序452和VMexit/VMcall處理程序454將組合成一個軟體模塊。SVMM SMM處理程序452也在鎖定存儲器頁面內建立空間,用以存儲在進入SMM操作時需要保存的狀態數據。上面結合圖1論述了狀態數據的實施例。把這個狀態數據放入鎖定存儲器頁面內,這樣防止了狀態數據的未授權公開或操縱。
VMexit/VMcall處理程序454可以執行幾項功能。VMexit/VMcall處理程序454可以在初始進入之後處理進入及退出SMM VM 490。VMexit/VMcall處理程序454也可以處理在SMM VM 490試圖讀寫鎖定存儲器頁面時產生的例外。VMexit/VMcall處理程序454的若干部分可以根據情況確定這些對鎖定存儲器頁面的讀寫中的某些是否應該被允許進行。在一種實施方案中,如果VMexit/VMcall處理程序454確定在鎖定存儲器頁面內指定的位置不包含可信數據,則可以允許對鎖定存儲器頁面進行讀寫。
SMM VM 490包含預想的SMM代碼,該代碼從SMM模式格式修改為現在以存儲器頁面訪問模式來執行。通常,除了那些用於創建對鎖定存儲器頁面的存儲器讀寫的指令的例外情形之外,SMM VM 490內的SMM代碼根據寫入來執行。在那些情形中,SMM代碼可以調用VMexit/VMcall處理程序454。SMM代碼可以顯式調用VMexit/VMcall處理程序454,或者通過允許例外來陷入而間接調用VMexit/VMcall處理程序454。在任一情形下,VMexit/VMcall處理程序454都會處理這些情況。
現在參考圖5,圖示了根據本發明一種實施方案的系統管理中斷重定向的圖。考慮在安全或可信操作啟動之後在硬體480內的SMI產生事件。處理器檢查它的SMBASE寄存器。由於SVMM SMM處理程序452在啟動之後將一個內部存儲器位置寫入處理器中修改後的SMBASE寄存器內,處理器開始執行SVMM SMM處理程序452。SVMM SMM處理程序452把狀態數據存儲在鎖定存儲器頁面內,然後發出對SMM VM 490內的實際SMM代碼的虛擬模式進入(VMenter)調用。在另一種實施方案中,SMI可以引發SVMM的VMexit處理程序的調用。
SMM VM 490內的SMM代碼執行,直到它試圖對鎖定存儲器頁面內的存儲器位置進行讀寫。然後,通過顯式調用或者通過導致陷入的例外,可以使VMexit/VMcall 524調用VMexit/VMcall處理程序454。VMexit/VMcall處理程序454執行它認為可允許的那些存儲器訪問,然後,通過另一VMenter 522返回到SMM VM 490。這個過程可以重複幾次直到完成了SMM VM 490內的預想SMM代碼。此時,SMM代碼經由最後的VMexit/VMcall 524退出到VMexit/VMcall處理程序454。對於某些實施方案來說,通過執行修改後的恢復指令SMM VM代碼RSM 526,VMexit/VMcall處理程序454接著將退出到SVMM SMM處理程序452。這使得SVMM SMM處理程序452恢復被存儲在鎖定存儲器頁面內(可能被VMexit/VMcall處理程序454修改)的狀態數據。對於其他實施方案來說,SVMM SMM處理程序452和VMexit/VMcall處理程序454可以組合起來,並且這些操作可以用軟體來實現。一旦恢復了狀態數據,處理器繼續它的初始操作。
現在參考圖6,圖示了根據本發明另一種實施方案,適合於支持圖2的軟體環境的示例性微處理器系統的示意圖。CPU A 610、CPU B 614、CPU C 618以及CPU D 622可以用附加的微代碼或邏輯電路來配置,以支持特殊指令的執行。在一種實施方案中,對處理器的修改可以包括對寄存器性能的改變以及新的或修改的指令。例如,在一種實施方案中,CPU C 618可以包括新指令「虛擬機監控程序初始化」(VMMINIT)624。VMMINIT 624指令在執行時可以使如上面圖2中所示的安全或可信操作開始。在一種實施方案中,VMMINIT 624也可以在某些情況下禁用(disable)CPU C 618的PSMBASE寄存器616的正常操作,以支持安全或可信SMM操作。在這樣的實施方案中,CPU C 618然後可以將SMI重定向到VMexit/VMcall處理程序668內按照安全環境規則而預置的代碼入口點和狀態存儲區。
在一種實施方案中,CPU C 618也可以包括修改的恢復(RSM)626指令。修改的RSM 626可以允許從支持安全或可信操作的SMM中返回。通常,RSM指令只可以從SMM內部執行。修改的RSM 626可以從普通頁面模式內執行。當用激活的VM擴展名調用時,修改的RSM 626指令可以執行被稱為VMexit的特殊系統調用,返回以調用VMexit/VMcall處理程序668。
晶片組630可以服務通過系統總線620從CPU傳送的讀寫請求,然後,可以對物理存儲器634執行物理讀寫操作。利用包含CSMBASE值的晶片組SMBASE寄存器631,可以協助存儲器634內的SMRAM分配。
SVMM 664可以允許或拒絕VM對存儲器634內特定頁面面的訪問。拒絕VM訪問的存儲器頁面可以稱為「鎖定」頁面,而允許VM訪問的存儲器頁面可以稱為「解鎖」頁面。SVMM 664以及SVMM 664內的模塊可以位於鎖定存儲器頁面660內以支持安全SMM操作。在一種實施方案中,所述模塊可以包括VMexit/VMcall處理程序668。在其他實施方案中,VMexit/VMcall處理程序668的功能可以組合起來或者可以分布在其他模塊中。其他存儲器頁面可以保持解鎖,例如解鎖存儲器頁面662。標準作業系統672可以位於解鎖存儲器頁面662內。SMM VM 670也可以位於解鎖存儲器頁面662內。SMM VM 670可以包括軟體代碼,所述軟體代碼類似於標準SMM代碼但被修改以在虛擬機容器內運行。SMM VM 670內的上述修改可以包括準備以頁面模式而不是普通SMM來執行的代碼。
現在參考圖7,圖示了根據本發明另一種實施方案的系統管理中斷重定向的圖。在圖7的實施方案中,SVMM 750具有兩個附加模塊以支持安全或可信SMM操作。在一種實施方案中,VMexit/VMcall處理程序754在SMM VM 790內建立SMM代碼,以響應VMMINIT指令的執行,另外還處理進入及退出SMM VM 790,這是由於SMM VM 790在它的VM容器內的有意更低的特權級。
VMexit/VMcall處理程序754可以執行幾項功能。在轉換成安全或可信操作期間,在處理器執行VMMINIT指令之後,VMexit/VMcall處理程序754在虛擬機容器內加載並啟動SMM VM 790代碼。VMexit/VMcall處理程序754也在鎖定存儲器頁面內建立空間,用以存儲在進入SMM操作時需要被保存的狀態數據。
VMexit/VMcall處理程序754可以執行幾項功能。VMexit/VMcall處理程序754可以處理進入及退出SMM VM 790。VMexit/VMcall處理程序754也可以處理在SMM VM 790試圖讀寫鎖定存儲器頁面時產生的例外。VMexit/VMcall處理程序754中的若干部分可以根據情況來確定這些對鎖定存儲器頁面的讀寫中的某些是否應該被允許進行。在一種實施方案中,如果VMexit/VMcall處理程序754確定在鎖定存儲器頁面內指定的位置不包括可信數據,則可以允許對鎖定存儲器頁面進行讀寫。
SMM VM 790包含預想的SMM代碼,該代碼從SMM模式格式修改為現在以存儲器頁面訪問模式來執行。通常,除了那些用於創建對鎖定存儲器頁面的存儲器讀寫的指令的例外情形之外,SMM VM 790內的SMM代碼根據寫入來執行。在那些情形下,SMM代碼可以調用VMexit/VMcall處理程序754。SMM代碼可以顯式調用VMexit/VMcall處理程序754,或者通過允許例外來陷入而間接調用VMexit/VMcall處理程序754。在任一情形下,VMexit/VMcall處理程序754都會處理這些情況。
考慮在安全或可信操作啟動之後硬體780內的SMI產生事件。處理器檢查它的SMBASE寄存器。由於VMMINIT的執行禁用了對處理器內修改後的SMBASE寄存器進行正常操作,因此處理器從按照安全環境規則預置的代碼入口點開始執行VMexit/VMcall處理程序754。VMexit/VMcall處理程序754把狀態數據存儲在鎖定存儲器頁面內,然後發出對SMM VM 790內的實際SMM代碼的VMenter調用722。
SMM VM 790內的SMM代碼執行,直到它試圖對鎖定存儲器頁面內的存儲器位置進行讀寫。然後,通過顯式調用或者通過導致陷入的例外,可以使VMexit/VMcall 724調用VMexit/VMcall處理程序754。VMexit/VMcall處理程序754執行它認為可允許的那些存儲器訪問,然後,通過另一VMenter 722返回到SMM VM 790。這個過程可以重複幾次直到完成了SMM VM 790內的預想SMM代碼。此時,SMM代碼經由最後的VMexit/VMcall 724退出到VMexit/VMcall處理程序754。對於某些實施方案來說,通過首次執行修改後的恢復指令,VMexit/VMcall處理程序454接著將退出到正常的SVMM 750操作。這使得VMexit/VMcall處理程序754恢復被存儲在鎖定存儲器頁面內(可能被VMexit/VMcall處理程序754修改)的狀態數據。一旦恢復了狀態數據,處理器將繼續它的初始操作。
雖然公開的不同實施方案包括兩個或多個處理器(邏輯或物理處理器),但應該理解,更具體地描述了這樣的多處理器和/或多線程系統以解釋增加的複雜性,所述複雜性與確保具有多個邏輯處理器或物理處理器的系統的安全有關。在複雜程度較低的系統中,同樣可能有利的實施方案可以只使用一個處理器。在某些情況下,一個物理處理器可以是多線程運行的,從而可以包括多個邏輯處理器。然而,在其他情況下,可以使用單處理器、單線程系統,但仍然利用所公開的安全處理技術。在上述情況下,所述安全處理技術仍然可以減少以未授權方式竊取或操縱數據的可能性。
在前述說明書中,已經參考本發明的示例性實施方案對其進行了描述。然而,顯然可以對本發明進行各種修改和變化而不脫離所附權利要求書所提出的本發明更寬的精神和範圍。因此把說明書和附圖看作示例性的而不是限制性的。
權利要求
1.一種系統,包括處理器,所述處理器以用戶模式、管理員模式以及子作業系統模式運行,用以接收子作業系統模式中斷;第一代碼,所述第一代碼包含在第一虛擬機內;以及第一處理程序,所述第一處理程序包含在第二虛擬機中的可信代碼內,用以將所述子作業系統模式中斷重定向到所述第一代碼。
2.如權利要求1所述的系統,其中所述可信代碼將中斷服務寄存器寫入所述處理器內。
3.如權利要求2所述的系統,其中所述中斷服務寄存器是系統管理基址寄存器,並且其中所述子作業系統模式中斷是系統管理中斷。
4.如權利要求1所述的系統,其中所述第一代碼以頁面模式來執行。
5.如權利要求4所述的系統,其中所述第一代碼是系統管理模式代碼。
6.如權利要求1所述的系統,在所述可信代碼內還包括第二處理程序,用以在試圖訪問存儲器的鎖定頁面時被調用。
7.如權利要求6所述的系統,其中所述第二處理程序確定是否允許訪問所述存儲器的所述鎖定頁面。
8.如權利要求6所述的系統,其中所述第二處理程序通過發出修改的恢復指令而開始從所述第一代碼退出。
9.如權利要求8所述的系統,其中所述修改的恢復指令能夠以頁面模式來執行。
10.如權利要求1所述的系統,其中所述第一處理程序在存儲器的鎖定頁面內建立空間用以存儲狀態數據。
11.如權利要求1所述的系統,其中所述第一代碼位於存儲器的解鎖頁面內。
12.如權利要求1所述的系統,其中所述系統包括單處理器系統。
13.如權利要求1所述的系統,其中所述可信代碼將禁用所述處理器內的中斷服務寄存器。
14.如權利要求13所述的系統,其中所述中斷服務寄存器是系統管理基址寄存器,並且其中所述第一中斷是系統管理中斷。
15.如權利要求1所述的系統,其中所述可信代碼內的所述第一處理程序在試圖訪問存儲器的鎖定頁面時被調用。
16.如權利要求15所述的系統,其中所述第一處理程序確定是否允許訪問所述存儲器的所述鎖定頁面。
17.如權利要求15所述的系統,其中所述第一處理程序通過發出修改的恢復指令而開始從所述第一代碼退出。
18.如權利要求1所述的系統,其中所述修改的恢復指令能夠以頁面模式來執行。
19.一種方法,包括將子作業系統模式中斷定向到第二虛擬機內的可信代碼中的第一處理程序;將狀態存儲在存儲器中的鎖定頁面內;以及將第一代碼輸入第一虛擬機內。
20.如權利要求19所述的方法,還包括從所述第一代碼調用所述可信代碼中的第二處理程序。
21.如權利要求20所述的方法,其中所述調用是在所述第一代碼訪問存儲器中的所述鎖定頁面之後。
22.如權利要求19所述的方法,其中所述第一代碼是系統管理模式代碼。
23.如權利要求19所述的方法,還包括從所述第一代碼調用所述可信代碼內的第二處理程序。
24.如權利要求23所述的方法,其中所述調用是在所述第一代碼訪問存儲器中的所述鎖定頁面之後。
25.如權利要求19所述的方法,還包括從頁面模式執行修改的恢復指令。
26.如權利要求19所述的方法,還包括確定所述第一代碼是否可以訪問存儲器中的所述鎖定頁面。
27.如權利要求19所述的方法,其中所述定向包括將所述可信代碼內的一個存儲器位置寫入中斷服務寄存器。
28.如權利要求27所述的方法,其中所述中斷服務寄存器是系統管理基址寄存器。
29.如權利要求19所述的方法,其中所述子作業系統模式中斷是系統管理中斷。
30.如權利要求19所述的方法,還包括從所述第一代碼調用所述可信代碼內的第一處理程序。
31.如權利要求30所述的方法,其中所述調用是在所述第一代碼訪問存儲器中的所述鎖定頁面之後。
32.一種處理器,包括第一邏輯,用以執行修改的恢復指令;以及中斷服務寄存器,所述中斷服務寄存器能夠在安全輸入指令的執行之後被寫入。
33.如權利要求32所述的處理器,其中所述修改的恢復指令在第一代碼執行後將所述處理器返回到先前的程序執行。
34.如權利要求33所述的處理器,其中所述修改的恢復指令可以從頁面模式內被執行。
35.如權利要求33所述的處理器,其中所述第一代碼的所述執行發生在子作業系統模式內。
36.如權利要求35所述的處理器,其中所述子作業系統模式是系統管理模式。
37.如權利要求32所述的處理器,其中所述中斷服務寄存器是系統管理基址寄存器。
38.一種處理器,包括第一邏輯,用以執行修改的恢復指令;以及中斷服務寄存器,所述中斷服務寄存器能夠在監控程序初始化指令的執行之後被禁用。
39.如權利要求38所述的處理器,其中所述修改的恢復指令在第一代碼執行之後將所述處理器返回到先前的程序執行。
40.如權利要求39所述的處理器,其中所述修改的恢復指令可以從頁面模式內被執行。
41.如權利要求39所述的處理器,其中所述第一代碼的所述執行發生在子作業系統模式內。
42.如權利要求41所述的處理器,其中所述子作業系統模式是系統管理模式。
43.如權利要求38所述的處理器,其中所述中斷服務寄存器是系統管理基址寄存器。
全文摘要
描述了用於在微處理器系統內的安全操作期間允許執行系統管理模式(SMM)代碼的系統和方法。在一種實施方案中,系統管理中斷(SMI)可以首先被定向到安全虛擬機監控程序(SVMM)內的處理程序。然後,SMI可以被重定向到在SVMM的安全控制下的虛擬機(VM)內的SMM代碼。這個重定向可以通過允許SVMM讀寫處理器中的系統管理(SM)基址寄存器來實現。
文檔編號G06F1/00GK1675623SQ03818823
公開日2005年9月28日 申請日期2003年5月1日 優先權日2002年6月7日
發明者詹姆斯·薩頓二世, 戴維·格勞羅克, 理察·尤利格, 戴維·波伊斯納, 安德魯·格魯, 克利福德·霍爾, 勞倫斯·史密斯三世, 吉爾伯特·尼格, 麥可·科祖克, 羅伯特·喬治, 布拉德利·伯吉斯 申請人:英特爾公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀