国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      在多處理器環(huán)境中單方地加載安全操作系統(tǒng)的裝置和方法

      文檔序號:6431081閱讀:162來源:國知局
      專利名稱:在多處理器環(huán)境中單方地加載安全操作系統(tǒng)的裝置和方法
      技術(shù)領(lǐng)域
      本發(fā)明一般地涉及計算機安全領(lǐng)域。更具體地說,本發(fā)明涉及用于在多處理器環(huán)境中單方地加載安全操作系統(tǒng)的方法和裝置。
      背景技術(shù)
      隨著計算機與我們的社會愈加緊密接合,計算機安全方面的需求猛烈增加。近來,互聯(lián)網(wǎng)商務(wù)在全球計算機網(wǎng)絡(luò)上經(jīng)歷了巨大的增長。不幸的是,除非互聯(lián)網(wǎng)商務(wù)使用充分證明的計算機安全機制被充分地保護,計算機剽竊的潛在性可能有一天會侵害消費者的信心。換句話說,為了獲得產(chǎn)品和服務(wù)而提供了保密信息的計算機用戶必須具有足夠的保障,以便信息不會被計算機剽竊者截取。
      因而,許多計算機系統(tǒng)現(xiàn)在加入了必不可少的安全特征,例如加密、來源檢驗、受信環(huán)境以及額外的安全特征。如此,現(xiàn)在的在線計算機系統(tǒng)通常依賴于可傳遞的信任關(guān)系。公鑰基礎(chǔ)設(shè)施(PKI)是這種可傳遞信任模型的一個例子。在公鑰基礎(chǔ)設(shè)施下,認證授權(quán)機構(gòu)可以向個體提供只有用戶知道的私鑰。
      因此,當(dāng)用戶提供信息的時候,使用計算機用戶的私鑰可以對其加密。如此,被加密的信息的接收者可以通過聯(lián)系認證授權(quán)機構(gòu)獲得公鑰,以便解密該被加密的信息。另外,信息的來源也可以通過數(shù)字簽名消息被鑒別,該數(shù)字簽名消息也可以被解密以便檢驗信息的來源。
      如可以看到的那樣,PKI提供了保證對于一對一關(guān)系的安全的機制。然而,關(guān)系可能很快增長而超出一對一的交互,這要求可傳遞的信任以保證安全。不幸的是,信任通常是不可傳遞的。例如,個體可能信任認證授權(quán)機構(gòu),并從該認證授權(quán)機構(gòu)收到頒布的外部證書。證書頒布之后,認證授權(quán)機構(gòu)可以決定信任另一個體,并授權(quán)該個體訪問和控制所有頒布的證書,包括最初的個體的證書。
      不幸的是,最初的個體可能不信任被認證授權(quán)機構(gòu)信任的后來的個體。因而,如果個體在證書頒布之前知道認證授權(quán)機構(gòu)信任后來的個體,則該個體可能不會請求該證書。如此,該問題顯示出可傳遞的信任既不對稱,也不可傳遞,也不可分配。換句話說,唯一的可靠信任是自我信任,在最初的信任形成之后不會有被認證授權(quán)機構(gòu)信任的未知的后來的個體。雖然對第三方的信任并不總是不可靠的,但是也不能總是被可靠地估計。
      在一些計算機系統(tǒng)中,用戶或者系統(tǒng)管理員可能希望加載可信操作系統(tǒng)。對于可信,其意思是用戶或者第三方要求一種機制,用于檢查系統(tǒng)并確定是否給定的操作系統(tǒng)被加載了。一旦完成了對操作系統(tǒng)加載的檢驗,外部代理可能也希望確定是否操作系統(tǒng)被加載在一個安全環(huán)境中。不幸的是,例如公鑰基礎(chǔ)設(shè)施的傳統(tǒng)可傳遞信任模型不能支持這種能力。所以,存在克服上述的現(xiàn)有技術(shù)中的一個或者多個局限性的需要。


      本發(fā)明通過示例的方式,而非限定的方式被示出于附圖的圖形中,其中圖1描繪了一個框圖,示出了本領(lǐng)域公知的網(wǎng)絡(luò)計算機環(huán)境。
      圖2描繪了一個框圖,示出了傳統(tǒng)的計算機系統(tǒng)。
      圖3描繪了一個框圖,示出了按照本發(fā)明一個實施例可以在其中實現(xiàn)本發(fā)明的系統(tǒng)。
      圖4描繪了一個框圖,示出了按照本發(fā)明另一實施例的用于加載可信操作系統(tǒng)的多處理器計算機系統(tǒng)。
      圖5A和圖5B描繪了一個框圖,示出了按照本發(fā)明另一實施例的安全存儲器環(huán)境。
      圖6描繪了一個流程圖,示出了按照本發(fā)明的一個實施例,用于在多處理器環(huán)境中單方地加載安全操作系統(tǒng)的方法。
      圖7描繪了一個流程圖,示出了按照本發(fā)明的一個實施例,用于在將會成為安全存儲器環(huán)境的存儲器區(qū)域中加載操作系統(tǒng)的另一方法。
      圖8描繪了一個流程圖,示出了按照本發(fā)明的另一實施例,用于不理會收到的LSR指令的另一方法。
      圖9描繪了一個流程圖,示出了按照本發(fā)明的一個實施例,用于創(chuàng)建安全存儲器環(huán)境的另一方法。
      圖10描繪了一個流程圖,示出了按照本發(fā)明的一個實施例,用于完成安全存儲器環(huán)境的形成的另一方法。
      圖11描繪了一個流程圖,示出了按照本發(fā)明的另一實施例,對于外部代理用于建立安全存儲器環(huán)境安全檢驗的方法。
      圖12描繪了一個流程圖,示出了按照本發(fā)明的一個實施例,響應(yīng)于SRESET命令所進行的方法。
      圖13描繪了一個流程圖,示出了按照本發(fā)明的另一實施例,響應(yīng)于收到SRESET命令用于復(fù)位一個或多個處理器的另一方法。
      圖14描繪了一個流程圖,示出了按照本發(fā)明的示例性實施例,用于重新使能對所形成的安全存儲器環(huán)境的處理器讀寫訪問的另一方法。
      具體實施例方式
      用于在多處理器環(huán)境中單方地加載操作系統(tǒng)的方法和裝置被描述。該方法包括當(dāng)檢測到當(dāng)前活動的加載安全區(qū)域指令的時候,不理會收到的加載安全區(qū)域指令。否則,響應(yīng)于收到的加載安全區(qū)域指令,引導(dǎo)存儲器保護單元,以形成安全存儲器環(huán)境。一旦被引導(dǎo),對安全存儲器環(huán)境的一個或多個受保護的存儲器區(qū)域的未授權(quán)的讀/寫訪問被禁止。最后,一個或者多個受保護存儲器區(qū)域的加密散列(hash)值被存儲在摘要信息庫中。一旦被存儲,外部代理可以請求對被加密的標(biāo)識信息的訪問,以便建立安全環(huán)境中的安全操作系統(tǒng)的安全檢驗。
      在下面的描述中,為了說明的目的,提出了多種特定的細節(jié),以便提供對本發(fā)明的徹底的理解。然而,本發(fā)明可以不用這些特定細節(jié)中的某些而被實現(xiàn),這對于本領(lǐng)域的技術(shù)人員來說是清楚的。另外,為了舉例說明的目的,下面的說明提供了示例,并且附圖示出了各種示例。然而,因為這些示例僅僅是用來提供本發(fā)明的示例,而不是提供本發(fā)明所有可能的實施方式的窮盡性列表,所以它們不應(yīng)被認為是限定的含意。在其他情況中,公知的結(jié)構(gòu)和設(shè)備以框圖的形式被示出,以便避免使本發(fā)明的細節(jié)模糊。
      下面的詳細描述中的一些部分可能以對數(shù)據(jù)位操作的符號表達的形式和算法來表示。這些算法描述和表達被本領(lǐng)域的技術(shù)人員用于將他們的工作內(nèi)容傳達給本領(lǐng)域的其他技術(shù)人員。這里所描述的算法是指導(dǎo)致希望的結(jié)果的自恰的動作序列。動作是要求對物理量的物理操作的那些動作。這些量可以采用能夠被存儲、傳輸、組合、比較以及以其他方式被操作的電或磁信號的方式。此外,主要為了普通的用途,這些信號是指位、值、元素、符號、字符、項、數(shù)字等等。
      然而,這些項以及類似的項將與適當(dāng)?shù)奈锢砹肯嚓P(guān)聯(lián),并且僅僅是對這些量所使用的方便的標(biāo)記。除非另外具體地說明,應(yīng)當(dāng)認識到使用例如“處理”或“計算”或“運算”或“確定”或“顯示”等術(shù)語的討論是指計算機系統(tǒng)或者類似的電子計算設(shè)備的動作和處理,該計算機系統(tǒng)或者電子計算設(shè)備將在計算機系統(tǒng)的設(shè)備中被表示為物理(電子)量的數(shù)據(jù)操作和轉(zhuǎn)換為在計算機系統(tǒng)設(shè)備中被類似地表示為物理量的其他數(shù)據(jù),這些計算機系統(tǒng)設(shè)備例如是存儲器、寄存器或者其他這樣的信息存儲、傳輸、顯示設(shè)備等。
      這里所出現(xiàn)的算法和表示并非固有地涉及任何特定的計算機或者其他裝置。各種通用系統(tǒng)可以按照這里的教導(dǎo)與程序一起被使用,或者可以證明構(gòu)建更專用的裝置來進行所需的方法是便利的。舉例來說,根據(jù)本發(fā)明的任何一種方法可以通過編程通用處理器,在硬連線電路中被實現(xiàn),或者通過硬件和軟件的結(jié)合來實現(xiàn)。
      本領(lǐng)域的技術(shù)人員將立即認識到,本發(fā)明可以用與下面所描述的那些結(jié)構(gòu)不同的計算機系統(tǒng)結(jié)構(gòu)來實現(xiàn),包括手持設(shè)備、多處理器系統(tǒng)、基于微處理器的或者可編程的消費電子產(chǎn)品、數(shù)字信號處理(DSP)設(shè)備、網(wǎng)絡(luò)個人計算機、迷你計算機、大型計算機等。本發(fā)明還可以在分布式計算環(huán)境中實現(xiàn),其中,任務(wù)由通過通信網(wǎng)絡(luò)被鏈接的遠程處理設(shè)備進行。多種這些系統(tǒng)所需的結(jié)構(gòu)將從下面的描述中變得清楚。
      應(yīng)當(dāng)理解,各種術(shù)語和技術(shù)被本領(lǐng)域的技術(shù)人員使用來描述通信、協(xié)議、應(yīng)用、實施方式、機制等。一種這樣的技術(shù)是根據(jù)算法或數(shù)學(xué)表達式來描述技術(shù)的實施方式。也就是說,雖然技術(shù)可以例如實現(xiàn)為執(zhí)行計算機上的代碼,但是作為公式、算法或數(shù)學(xué)表達式,該技術(shù)的表達可以被更適當(dāng)和簡潔地傳達和傳遞。
      因此,本領(lǐng)域的技術(shù)人員將會把表示A+B=C的框認為是一個加法的函數(shù),其在硬件和/或軟件中的實施方式將是取兩個輸入(A和B),并產(chǎn)生一個求和輸出(C)。因此,用作描述的公式、算法或者數(shù)學(xué)表達式的使用應(yīng)被理解為至少具有以硬件和/或軟件形成的物理的實施例(例如可以在其中將本發(fā)明的技術(shù)實踐或者實施為實施例的計算機系統(tǒng))。
      在一個實施例中,本發(fā)明的方法體現(xiàn)在機器可執(zhí)行指令中。這些指令可以被用于引起用指令被編程的通用或?qū)S锰幚砥鬟M行本發(fā)明的步驟??商娲?,本發(fā)明的步驟可以通過含有用于進行這些步驟的硬連線邏輯的專用硬件部件來進行,或者通過被編程的計算機部件和定制硬件部件的任何組合來進行。
      在一個實施例中,本發(fā)明可以被提供為計算機程序產(chǎn)品,其可以包括在其上存儲有指令的機器或計算機可讀介質(zhì),這些指令可以被用于編程計算機(或者其他電子設(shè)備)以進行按照本發(fā)明的處理。計算機可讀介質(zhì)可以包括但不限于軟盤、光盤、壓縮盤只讀存儲器(CD-ROM)和磁光盤、只讀存儲器(ROM)、隨機存取存儲器(RAM)、可擦除可編程只讀存儲器(EPROM)、電可擦除可編程只讀存儲器(EEPROM)、磁或光卡、閃存等。
      因此,計算機可讀介質(zhì)包括適于存儲電子指令的任何類型的媒體/機器可讀介質(zhì)。此外,本發(fā)明也可以作為計算機程序產(chǎn)品被下載。如此,程序可以從遠程計算機(例如服務(wù)器)被傳送到請求的計算機(例如客戶端)??梢越?jīng)由通信鏈路(例如,調(diào)制解調(diào)器、網(wǎng)絡(luò)連接等)通過包含在載波或者其他傳播介質(zhì)中的數(shù)據(jù)信號的方式傳輸程序。
      系統(tǒng)體系結(jié)構(gòu)現(xiàn)在參考圖1,圖1描繪了網(wǎng)絡(luò)環(huán)境100,在其中可以實現(xiàn)本發(fā)明的技術(shù)。如圖所述,網(wǎng)絡(luò)環(huán)境包括通過網(wǎng)絡(luò)102互相連接的若干計算機系統(tǒng),例如多個服務(wù)器104(104-1,...,104-M)和多個客戶端108(108-1,...,108-N)。網(wǎng)絡(luò)102可以例如是互聯(lián)網(wǎng)。注意,可代替地,網(wǎng)絡(luò)102可以是或者包括以下的一個或者多個局域網(wǎng)(LAN)、廣域網(wǎng)(WAN)、衛(wèi)星鏈路、光纖網(wǎng)、電纜網(wǎng)或者這些和/或其他的組合。這里所描述的方法和裝置實質(zhì)上可以被應(yīng)用于不論是本地還是遠程的任何類型的通信裝置或者設(shè)備,例如LAN、WAN、系統(tǒng)總線、磁盤驅(qū)動器、存儲裝置等。
      現(xiàn)在參考圖2,圖2以框圖的形式示出了傳統(tǒng)的個人計算機200,該個人計算機200可以代表圖1中所示的客戶端108和服務(wù)器104中的任一個??驁D是高級的概念表示,可以通過各種體系結(jié)構(gòu)以多種方式被實現(xiàn)。計算機200包括總線系統(tǒng)202,該總線系統(tǒng)202互連了中央處理單元(CPU)204、只讀存儲器(ROM)206、隨機存取存儲器(RAM)208、存儲裝置210、顯示器220、音頻設(shè)備222、鍵盤224、點選器226、雜項輸入/輸出(I/O)設(shè)備228和通信設(shè)備230。
      總線系統(tǒng)202可以例如是系統(tǒng)總線、外圍部件互連(PCI)、加速圖形接口(AGP)、小型計算機系統(tǒng)接口(SCSI)、固件等。CPU 204可以是單個、多個、乃至分布式的計算資源。ROM 206可以是任何類型的非易失性存儲器,其可以是可編程的,例如掩膜可編程、快閃等。
      另外,RAM 208可以例如是靜態(tài)的、動態(tài)的、同步的、異步的或者任何組合。存儲裝置210可以是壓縮盤(CD)、數(shù)字多功能盤(DVD)、硬盤(HDD)、光盤、磁帶、閃存、記憶棒、錄影機等。而顯示器220可以例如是陰極射線管(CRT)、液晶顯示器(LCD)、投影系統(tǒng)、電視機(TV)等。音頻設(shè)備222可以是單聲道的、立體聲的、三維的聲卡等。
      鍵盤224可以是鍵盤、音樂鍵盤、小鍵盤、一系列的開關(guān)等。點選器226可以例如是鼠標(biāo)、觸摸板、軌跡球、手柄等。而I/O設(shè)備228可以是語音命令輸入設(shè)備、拇指紋輸入設(shè)備、智能卡插槽、個人計算機卡(PC卡)接口、虛擬現(xiàn)實附件等,它們可以可選地通過輸入/輸出端口229連接到其他設(shè)備或系統(tǒng)。雜項I/O設(shè)備228的一個示例是用I/O端口229連接到樂器的樂器數(shù)字化接口(MIDI)卡。
      通信設(shè)備230可以例如是用于局域網(wǎng)(LAN)連接的以太網(wǎng)適配器、衛(wèi)星連接、機頂盒適配器、數(shù)字用戶線路(xDSL)適配器、無線調(diào)制解調(diào)器、傳統(tǒng)電話調(diào)制解調(diào)器、直接電話連接、混合光纖同軸電纜(HFC)連接、電纜調(diào)制解調(diào)器等。而外部連接端口232可以提供遠程設(shè)備和總線系統(tǒng)202之間通過通信設(shè)備230的所需的任何互連。
      舉例來說,通信設(shè)備230可是以太網(wǎng)適配器,其通過連接端口232被連接到例如外部DSL調(diào)制解調(diào)器。注意,取決于計算機系統(tǒng)的實際實施方式,計算機系統(tǒng)可以包括框圖中的部件的一些、全部、更多或者重新安排。舉例來說,瘦客戶端可以由例如沒有傳統(tǒng)的鍵盤的無線手持設(shè)備構(gòu)成。因而,對圖2的系統(tǒng)的許多變化是可能的。
      返回參考圖1,多個客戶端108通過網(wǎng)絡(luò)102被有效地連接到由諸如多個服務(wù)器104之類的服務(wù)器表示的網(wǎng)站、應(yīng)用服務(wù)提供商、搜索引擎和/或數(shù)據(jù)庫資源。網(wǎng)絡(luò)瀏覽器和/或其他應(yīng)用通常運行在多個客戶端108上,而信息通常駐留在多個服務(wù)器104上。為了便于說明,將考慮單個服務(wù)器104或者單個客戶端108-1來舉例說明本發(fā)明的一個實施例。很明顯,這樣的技術(shù)可以被容易地應(yīng)用到多個客戶端、服務(wù)器等。
      現(xiàn)在參考圖3,圖3描繪了多處理器環(huán)境的計算機系統(tǒng)300的框圖,該計算機系統(tǒng)可以由如圖1中所描繪的客戶端或者服務(wù)器中的任何一個所利用。多處理器計算機系統(tǒng)300包括通過總線304被耦合到存儲器控制器310的多個處理器302(302-1,...,302-N)。存儲器控制器310包括存儲器320,并通過第二總線312被耦合到I/O控制器330。I/O控制器330可以包括通過總線332被耦合的一個或者多個設(shè)備340(340-1、340-2和340-3)。
      在例如圖3中所描繪的計算機系統(tǒng)中,用戶或者系統(tǒng)管理員可能希望加載可信操作系統(tǒng)。如這里所引用的,術(shù)語可信是指被提供給用戶或者第三方用于以后檢查系統(tǒng)300并確定給定的操作系統(tǒng)是否被加載的能力。一旦確定出給定的操作系統(tǒng)是否被加載,則用戶或者第三方可以進一步確定操作系統(tǒng)是否已經(jīng)被加載進安全存儲器環(huán)境中。這種機制在傳統(tǒng)的操作系統(tǒng)中沒有被提供。
      然而,因為所描述的機制允許可信操作系統(tǒng)在非受信軟件部件已經(jīng)運行之后被加載,所以它是特別有益的。而且,在存在惡意軟件的情況下,這種能力是魯棒的,所述惡意軟件在系統(tǒng)300可能正在嘗試注冊可信軟件部件的同時,試圖從例如多處理器系統(tǒng)中的另一處理器破壞計算機系統(tǒng)300的安全。
      如此,在典型的計算機系統(tǒng)中,處理器302強制實施特權(quán)級別。這些特權(quán)級別限定了特定的軟件部件可以訪問哪些系統(tǒng)資源。因此,在例如圖3所描繪的傳統(tǒng)系統(tǒng)中,用戶或者第三方當(dāng)前不可通過對處理器302中的一個的單方請求而加載受信操作系統(tǒng)。如下面進一步詳細描述的,提供了加載(加載安全區(qū)域)指令,響應(yīng)于該指令,進行加載(加載安全區(qū)域)操作,以創(chuàng)建受保護的或者安全的存儲器環(huán)境,在其中所選的操作系統(tǒng)可以作為受信操作系統(tǒng)具有完全的特權(quán)而運行。相應(yīng)地,如這里所描述的,可互換地提到加載指令或者加載安全區(qū)域(LSR)指令。另外,可互換地提到響應(yīng)于加載/LSR指令的發(fā)出而執(zhí)行的加載操作或者加載安全區(qū)域(LSR)操作。
      相應(yīng)地,圖4描繪了包含在安全存儲器環(huán)境中單方地加載可信操作系統(tǒng)的能力的計算機系統(tǒng)400。所提供的機制在存在惡意軟件的情況下是魯棒的,該惡意軟件在系統(tǒng)正在注冊可信軟件部件的同時試圖從多處理器系統(tǒng)的另一處理器破壞計算機系統(tǒng)400的安全。因此,計算機系統(tǒng)400差不多如圖4中所描述的那樣被配置,但是,在所描述的實施例中,存儲器控制器包括存儲器保護單元402,以及第三方檢驗部件450,以及存儲器散列引擎470。雖然被提供在一個特定實施例中,但是圖4中所描繪的計算機系統(tǒng)400代表了對圖1中所描繪的客戶端108或服務(wù)器104中的任何一個所利用的計算機系統(tǒng)的抽象。不論怎樣,本領(lǐng)域的技術(shù)人員將認識到,計算機系統(tǒng)400的各種部件之間的劃分僅僅是邏輯劃分。實際上,任何部件可以被集成為被分為多個電路片(die)的同一硅電路片或者它們的組合。另外,各種部件可以在微代碼、軟件或者設(shè)備專用部件中被完成。
      如這里所描述的,特定存儲器區(qū)域被認為是包含了用戶或者系統(tǒng)管理員希望加載的可信操作系統(tǒng)。在一個實施例中,該存儲器區(qū)域包含了以完全特權(quán)執(zhí)行的可信操作系統(tǒng)的一部分。因而,計算機系統(tǒng)400需要一種機制用于防止非受信軟件和設(shè)備破壞安全存儲器環(huán)境。因此,在典型的計算機系統(tǒng)中,用于將處理器或設(shè)備存儲器事務(wù)調(diào)整到安全存儲器區(qū)域中的機制是必需的。
      在圖4所描繪的實施例中,計算機系統(tǒng)400的存儲器控制器410負責(zé)將收到的存儲器事務(wù)轉(zhuǎn)發(fā)到適當(dāng)?shù)哪繕?biāo)。但是,與傳統(tǒng)的計算機系統(tǒng)相對比,存儲器控制器410包括存儲器保護單元420。在所描述的實施例中,存儲器保護單元420是一種特殊結(jié)構(gòu),其可以阻止某些存儲器訪問前進到存儲器412。被該結(jié)構(gòu)阻止的寫入操作被放棄而不影響存儲器。另外,取決于系統(tǒng)需求,讀取操作可以返回這樣的值其中所有的位被清除,或者其中的位被全部設(shè)置,或者隨機值。
      因而,存儲器保護單元可以由啟動軟件使用,以便建立一個或者多個存儲器區(qū)域作為上面所描述的安全存儲器環(huán)境。另外,啟動軟件可以在安全存儲器環(huán)境的指定存儲器區(qū)域中加載希望的軟件或者操作系統(tǒng)。一旦被加載,只要含有該軟件或者操作系統(tǒng)的安全存儲器環(huán)境被建立,則該軟件或者操作系統(tǒng)就作為安全軟件或者可信操作系統(tǒng)而運行。
      從而,一旦形成安全存儲器環(huán)境的存儲器區(qū)域被建立,存儲器保護單元就將保護該環(huán)境不被破壞。因此,一旦建立了安全存儲器環(huán)境,其中所含有的軟件或者操作系統(tǒng)就被認為是可信的。除了存儲器保護單元420之外,計算機系統(tǒng)400還包括外部檢驗部件450。在一個實施例中,外部檢驗部件被使用,以便對于外部代理建立被包含在安全存儲器區(qū)域中的操作系統(tǒng)或者安全軟件的信任檢驗。
      因此,在一個實施例中,通過被提供了檢查駐留在安全存儲器環(huán)境中的軟件的能力,外部代理可以建立信任或者決定信任被包含在安全存儲器環(huán)境中的操作系統(tǒng)。在一個實施例中,計算機系統(tǒng)400向使代表了安全存儲器區(qū)域的加密散列值被檢查,而不是整個區(qū)域。該值在該區(qū)域被保護之后由存儲器散列引擎470生成,并被存儲在摘要460中。在一個實施例中,安全存儲器環(huán)境的加密散列值代表其中所包含的安全環(huán)境的軟件標(biāo)識值。
      如此,一旦生成安全軟件標(biāo)識值,系統(tǒng)400就可以將安全軟件標(biāo)識值存儲在摘要460中。在一個實施例中,摘要是信息庫,其可以被發(fā)送給外部代理用于建立信任。在所描述的實施例中,這些值可以被讀取,并在被發(fā)送給外部代理之前,由散列簽名引擎452加密地簽名。如此,在所描述的一個實施例中,摘要460代表摘要寄存器庫,這些寄存器可以被摘要簽名引擎452通過安全通道454訪問。
      因此,摘要簽名引擎452利用安全通道454來訪問摘要460,并且會在從外部代理收到對內(nèi)容簽名的請求后對該內(nèi)容簽名。通過請求這種簽名,外部代理可以觀察由被簽名的軟件標(biāo)識值所報告的規(guī)定部件,并決定是否信任計算機系統(tǒng)400。在一個實施例中,被數(shù)字簽名的安全軟件標(biāo)識值可以被存儲在硬件令牌中,該令牌可以被外部代理訪問。這被提供以便避免在存在試圖破壞計算機系統(tǒng)安全的惡意軟件的情況下可能容易地繞開的軟件到軟件的檢驗。
      現(xiàn)在參考圖5A,圖5A描繪了按照本發(fā)明實施例所形成的安全存儲器環(huán)境500和550。在一個實施例中,響應(yīng)于加載安全區(qū)域指令的發(fā)出,形成安全存儲器環(huán)境。在一個實施例中,響應(yīng)于由安全啟動軟件發(fā)出加載安全區(qū)域(LSR)指令,進行加載安全區(qū)域(LSR)操作。從而,安全啟動軟件將選擇希望成為安全軟件的軟件或者操作系統(tǒng)。接著,安全軟件將引導(dǎo)所選擇的軟件在指定的存儲器區(qū)域中的加載。
      一旦軟件或者操作系統(tǒng)被加載,在其中加載了操作系統(tǒng)的存儲器區(qū)域就被啟動軟件通過LSR指令指定成為安全存儲器環(huán)境。因此,LSR指令將被提供給處理器402(圖4),該處理器將執(zhí)行LSR操作,引導(dǎo)處理器單方地開始形成安全存儲器環(huán)境,而不與任何一個其他的處理器(402-2到402-4)協(xié)作。這樣做時,處理器402將建立LSR排他性互斥體,以保證沒有正在進行的當(dāng)前LSR指令。
      如此,處理器將進行一系列動作,包括對容許啟動軟件發(fā)出這種指令的檢驗(例如,特權(quán)級別檢查),接著引導(dǎo)存儲器保護單元保護指定的安全存儲器環(huán)境。這一旦完成,處理器就可以作為啟動處理器而采集關(guān)于安全存儲器環(huán)境以及標(biāo)識符的信息,并將該信息記錄在摘要中。如此,處理器將提交(commit)摘要中的全部的值,并引導(dǎo)散列引擎計算安全軟件標(biāo)識值,該值將被存儲在摘要中,并可以被提供給外部代理,以便建立檢驗。
      再次參考圖5A,初始軟件可以請求安全存儲器環(huán)境550,該安全存儲器環(huán)境550包括固定基址554和固定偏移或者入口點552,在其中,一旦安全存儲器區(qū)域被形成,每個處理器將隨著下面所進一步詳細描述的安全復(fù)位(SRESET)的發(fā)出而被引導(dǎo)進行操作。另外,安全存儲器環(huán)境500可以包括可變基址504和固定偏移入口點,在其中,一旦SRESET命令被發(fā)出,則引導(dǎo)處理器中的每一個。
      因此,如下面所進一步詳細描述的,SRESET命令將迫使每個處理器清除所有的未完成事務(wù)、存儲器信息、任務(wù)、代碼狀態(tài)等。另外,處理器被引導(dǎo)到如圖5A中所描繪的特定入口點,使得在SRESET之后進行的第一個操作是在安全存儲器環(huán)境中所包含的可信操作系統(tǒng)中。另外,在SRESET的時候,系統(tǒng)中的所有處理器都進入多個已知的特權(quán)狀態(tài)S1,S2,...,SN中的一個中。
      在一個實施例中,這些狀態(tài)中的每一個都可以通過一組參數(shù)被描述(例如,初始特權(quán)等級、操作模式、寄存器值、控制值等),這些參數(shù)在SRESET的時候從平臺被讀取(這種情況中,參數(shù)的值被直接或者間接地記錄在摘要日志中),或者被作為處理器配置的一部分。舉例來說,在一個實施例中,SRESET之后的處理器的特權(quán)模式是固定的;該特權(quán)模式可以被編碼進處理器的SRESET微代碼序列中。然而,在SRESET操作之后處理器從其開始執(zhí)行指令的地址可以在SRESET的時候從平臺被讀取。
      在一個實施例中,處理器中的數(shù)據(jù)存儲單元被設(shè)置為常量。相應(yīng)地,這些常量或者可以被存儲在例如通用代碼(ucode)ROM中(例如,將值0×55AA存儲到寄存器N中)?;蛘?,這些常量可以被硬連線為芯片的操作(例如,一旦收到RESET(復(fù)位)信號,芯片的一段中的所有觸發(fā)器就被復(fù)位/設(shè)置)。最后,這些值可以從在通用代碼ROM中的所表達的算法被導(dǎo)出(例如,對于高速緩存中的每個地址,將單元的地址存儲到單元中)。
      在另一實施例中,處理器中的數(shù)據(jù)存儲單元被設(shè)置為規(guī)定的參數(shù)值。相應(yīng)地,這些參數(shù)可以在發(fā)出LSR指令的時候由啟動軟件規(guī)定。這些參數(shù)可以不是被存儲在寄存器中的確切的值。舉例來說,一個特定參數(shù)可以例如表明“允許分頁”。處理器會知道如何將參數(shù)譯成將值A(chǔ)、B和C存儲到寄存器X、Y和Z中。在發(fā)出LSR的時候,這些參數(shù)或者(1)被存儲在平臺中的預(yù)定位置中(例如,摘要、芯片組或者啟動處理器),或者(2)被傳送給所有處理器。于是,在發(fā)出SRESET的時候,每個處理器或者(1)從一個(多個)存儲位置取得參數(shù),或者(2)已經(jīng)具有所有感興趣的參數(shù)的拷貝。開始代碼地址就是一個這樣的參數(shù)。
      因此,如圖5B所描繪的,安全存儲器區(qū)域602將包含如上面所描述的受保護的軟件/操作系統(tǒng)代碼610,其將與普通環(huán)境的應(yīng)用程序640形成對比。如此,一旦安全存儲器環(huán)境602被形成,安全軟件610可以運行至結(jié)束,或者啟動可以執(zhí)行所希望的進一步的功能的受信應(yīng)用程序(小應(yīng)用程序)620。因此,如上面所描述的,可信操作系統(tǒng)的身份被記錄在摘要460中,并在SRESET命令之后,所有的處理器將開始執(zhí)行屬于該可信操作系統(tǒng)的代碼。
      從而,外部實體以后可以請求摘要的被簽名的版本,并且能夠評價系統(tǒng)是否在可信的狀態(tài)中。在一個實施例中,上面所描述的LSR和SRESER操作可以以多種方式被公開給啟動軟件,例如,通過I/O端口訪問、存儲器訪問、指令等。在一個實施例中,LSR操作被實現(xiàn)為一個指令,SRESET被實現(xiàn)為對平臺芯片組的一個命令。
      因此,LSR操作可以在處理器微代碼中被實現(xiàn)。另外,SRESET命令可以通過芯片組邏輯被實現(xiàn)。此外,處理器資源可以被用于實現(xiàn)存儲器散列引擎470(圖4)的功能。也就是說,存儲器散列引擎470可以是利用處理器402的計算序列資源的微代碼序列。在另一實施例中,存儲器散列引擎470可以在存儲器控制器410或者I/O控制器430中被實現(xiàn)。
      然而,由于LSR功能被實現(xiàn)在處理器中的事實,平臺將能夠區(qū)分由散列引擎470生成的消息和由通用啟動軟件生成的消息。在一個實施例中,引入了僅對LSR存儲器散列微代碼可用的專用消息類型。因此,微代碼軟件將缺乏生成這些類型的消息的機制。在一個實施例中,SRESET命令可以是對某個I/O端口地址的簡單的寫入,該命令被芯片組譯碼。從而,芯片組然后可以進行SRESET命令所描述的動作。
      雖然存儲器保護單元420被描繪為集成到如圖4中所描繪的存儲器控制器410中,但是本領(lǐng)域的技術(shù)人員將認識到,這種機制可以以在I/O控制器和處理器中出現(xiàn)的功能在整個系統(tǒng)400中被實現(xiàn)和分配。此外,摘要和摘要簽名代理可以被集成到所描述的芯片組部件中的任何一個中,或者可以被實現(xiàn)為分立的平臺設(shè)備。在所描述的實施例中,這些部件被示為連接到I/O控制器430的分立設(shè)備?,F(xiàn)在描述用于實現(xiàn)本發(fā)明教導(dǎo)的過程的方法。
      操作現(xiàn)在參考圖6,圖6描繪了一個流程圖,示出了用于在例如如圖4所描繪的多處理器環(huán)境中單方地加載安全操作系統(tǒng)的方法700。在處理框710,確定加載安全區(qū)域(LSR)指令(加載指令)是否已經(jīng)被收到。一旦收到了LSR指令,則進行處理框712。在處理框712,確定是否檢測到了當(dāng)前活動的LSR操作(加載操作)。進行該檢測是因為任何處理器都可以各自從啟動軟件接收LSR指令。
      換句話說,如上所述,這里所描述的機制提供了一種技術(shù),用于由啟動處理器進行單方的創(chuàng)建,以響應(yīng)于例如安全啟動程序而形成安全存儲器環(huán)境。如此,當(dāng)收到LSR指令時,接收處理器確定是否另外的處理器已經(jīng)收到了當(dāng)前正在被執(zhí)行的LSR指令(當(dāng)前LSR操作)。從而,當(dāng)檢測到了當(dāng)前的LSR操作時,所接收的LSR指令將被放棄。否則,進行處理框730。
      從而,一旦檢驗出沒有另外的處理器正在執(zhí)行LSR指令,則進行處理框730。在處理框730,接收處理器將引導(dǎo)存儲器保護單元420形成安全存儲器環(huán)境,如LSR指令所指示。最后,在處理框740,處理器會將安全存儲器環(huán)境的加密散列值存儲到摘要信息庫460中。如所描述的,對散列值或者安全軟件標(biāo)識值的存儲被利用來使得外部代理能夠進行環(huán)境的安全檢驗。
      現(xiàn)在參考圖7,圖7描繪了一個流程圖,示出了用于通過安全啟動軟件發(fā)起LSR指令的另一方法702。在處理框704,安全啟動軟件將選擇一個或者多個存儲器區(qū)域,用于被包括在一起作為安全存儲器環(huán)境。一旦選定,則在處理框706,啟動軟件將引導(dǎo)處理器將所選的軟件或者操作系統(tǒng)加載到所述一個或者多個存儲器區(qū)域中的一個存儲器區(qū)域中。最后,在處理框708,啟動軟件將向所選擇的處理器發(fā)出LSR指令,用于將一個或者多個存儲器區(qū)域形成為安全存儲器區(qū)域。一旦完成,控制流轉(zhuǎn)移到圖6的處理框710。
      現(xiàn)在參考圖8,圖8描繪了一個流程圖,示出了響應(yīng)于收到來自安全啟動軟件的LSR指令,由接收處理器進行的動作。在處理框716,處理器將接收來自安全啟動軟件的LSR指令。一旦收到,則在處理框718,處理器將確定安全啟動軟件是否被授權(quán)以發(fā)出LSR指令。當(dāng)啟動軟件是未被授權(quán)的時候,LSR指令被放棄。否則,在處理框720,處理器將確定是否檢測到了LSR操作的排他性互斥體。如上面所描述的,排他性互斥體使得啟動處理器能夠通知所有其他處理器,告知當(dāng)前正在執(zhí)行LSR指令。
      當(dāng)檢測到了排他性互斥體的時候,收到的LSR指令被放棄。否則,在處理框722,確定是否檢測到了安全復(fù)位(SRESET)命令。如下面將進一步詳細描述的,啟動處理器利用SRESET命令迫使每個處理器接受安全存儲器區(qū)域/環(huán)境,并開始在安全存儲器環(huán)境的操作系統(tǒng)中進行操作。當(dāng)檢測到SRESET命令時,收到的LSR指令被放棄。否則,在處理框724,處理器將由于上述的原因而建立LSR操作排他性互斥體。一旦完成,控制流轉(zhuǎn)移到圖6中所描繪的處理框730。
      現(xiàn)在參考圖9,圖9描繪了另一方法732,用于引導(dǎo)存儲器保護單元420形成如圖6所描繪的處理框730的安全存儲器環(huán)境。在處理框734,存儲器保護單元420將清除摘要信息庫。一旦被清除,在處理框736,存儲器保護單元420將采集安全存儲器環(huán)境信息。在一個實施例中,安全存儲器環(huán)境信息可以包括安全軟件標(biāo)識信息、處理器型號、狀態(tài)信息等。如此,安全存儲器信息的采集提供了被啟動軟件最初加載的軟件或者操作系統(tǒng)的注冊信息。最后,在處理框738,存儲器保護單元420會將安全存儲器環(huán)境信息存儲到摘要信息庫460中。一旦被存儲,軟件或者操作系統(tǒng)就在安全存儲器環(huán)境中被注冊為安全軟件或者安全操作系統(tǒng)。
      現(xiàn)在參考圖10,圖10描繪了一個流程圖,示出了用于生成圖6中所描繪的處理框740的加密散列值或者安全軟件標(biāo)識值的另一方法742。在處理框744,存儲器散列引擎470將散列安全存儲器環(huán)境的內(nèi)容,以生成作為安全軟件標(biāo)識值的加密散列值。接著,在處理框746,散列引擎470會將安全軟件標(biāo)識值存儲在硬件摘要信息庫460中。這一旦完成,安全存儲器環(huán)境以及安全軟件就已經(jīng)被標(biāo)識和注冊了。因此,在處理框748,處理器將釋放LSR操作排他性互斥體,以使得系統(tǒng)中的其他處理器能夠執(zhí)行LSR指令。
      現(xiàn)在參考圖11,圖11描繪了對于外部代理用于安全存儲器環(huán)境的安全檢驗的方法750。在處理框752,確定是否從外部代理收到了安全驗證請求。一旦收到,則在處理框754,摘要簽名引擎452將通過安全通道754從硬件摘要460中訪問安全軟件標(biāo)識值。一旦進行了訪問,則在處理框756,摘要簽名引擎452將對安全軟件標(biāo)識值進行數(shù)字簽名。最后,在處理框758,被簽名的標(biāo)識值被傳送給外部代理。
      現(xiàn)在參考圖12,圖12描繪了方法800,說明了如上面所描述的例如在如圖4所描繪的計算機系統(tǒng)400中的安全復(fù)位(SRESET)命令。在處理框802,確定安全存儲器區(qū)域的形成是否完成了。在一個實施例中,這可以通過檢驗摘要460中的信息是否在完成LSR指令之后經(jīng)由啟動處理器已經(jīng)被提交來確定。一旦完成了形成,則進行處理框804。在處理框804,啟動處理器將向系統(tǒng)400中的多個處理器402發(fā)出復(fù)位命令。一旦被復(fù)位,則在處理框820,處理器將使每個處理器能夠?qū)Π踩鎯ζ鳝h(huán)境的一個或者多個受保護的存儲器區(qū)域進行讀/寫訪問。如此,一旦讀/寫訪問被使能,則所有處理器將開始執(zhí)行屬于可信操作系統(tǒng)的代碼。
      現(xiàn)在參考圖13,圖13描繪了一個流程圖,示出了響應(yīng)于如圖12所示的處理框804的復(fù)位命令所進行的另一方法806。在處理框808,處理器將向系統(tǒng)平臺芯片組發(fā)出處理器復(fù)位命令。一旦發(fā)出,則在處理器810,芯片組平臺或者平臺芯片組將向計算機系統(tǒng)400的多個處理器中的每一個發(fā)出復(fù)位請求。一旦發(fā)出,則在處理框812,各處理器將清除所有未完成的任務(wù)、事務(wù)、高速緩存存儲器等,使得外部動作不會造成例如系統(tǒng)存儲器中斷。
      最后,參考圖14,圖14描繪了一個流程圖,示出了用于使能如圖12所描繪的處理框820的處理器讀/寫訪問的另一方法822。在處理框824,處理器將提交摘要信息庫460中的全部信息,以指示活動的SRESET命令。一旦提交了,則在處理框826,系統(tǒng)400中的多個處理器402中的每一個被置于計算機系統(tǒng)400中可用的高級特權(quán)狀態(tài)或者已知的特權(quán)狀態(tài)中。
      接著,在處理框828,各處理器將被引導(dǎo)到已知的狀態(tài),可以包括例如多個已知特權(quán)狀態(tài)(S1,S2,...,Sn)中的一個、操作模式、寄存器和控制值以及例如圖5A中所描繪的安全存儲器區(qū)域中的預(yù)定入口點。最后,在處理框830,存儲器保護單元420將被引導(dǎo)以重新使能對于安全存儲器環(huán)境的處理器讀/寫訪問。以這種方式,可信操作系統(tǒng)的身份被記錄在摘要中,并在SRESET之后,所有處理器將開始執(zhí)行屬于該可信操作系統(tǒng)的代碼。此外,外部代理可以在以后請求摘要的經(jīng)簽名的版本,并能夠評價該系統(tǒng)是否在可信狀態(tài)中。
      替代實施例已經(jīng)描述了用于提供在多處理器環(huán)境中單方地加載安全操作系統(tǒng)的安全存儲器環(huán)境多處理器系統(tǒng)的一個實施方式的若干方面。但是,安全存儲器環(huán)境多處理器系統(tǒng)的各種實施方式提供了包括補充、增加和/或替換上述特征的許多種特征。特征可以在不同的實施方式中被實現(xiàn)為同一硅片的一部分、多個電路片、它們的組合,或者微代碼的一部分,或者專用硬件或軟件部件。另外,為了說明的目的,前面的描述使用了特定的術(shù)語來提供對本發(fā)明的徹底的理解。然而,為了實現(xiàn)本發(fā)明,這些特定細節(jié)并不是必需的,這對于本領(lǐng)域的技術(shù)人員是清楚的。
      另外,雖然這里所描述的實施例是針對安全存儲器環(huán)境多處理器系統(tǒng),但是本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)認識到,本發(fā)明的教導(dǎo)可以被應(yīng)用于其他系統(tǒng)。實際上,用于單方地加載可檢驗的可信操作系統(tǒng)的系統(tǒng)是在本發(fā)明的教導(dǎo)之內(nèi),而不脫離本發(fā)明的范圍和精神。上述實施例被選擇和描述以便最佳地解釋本發(fā)明的原理及其實際應(yīng)用。因此,這些實施例被選擇以使得本領(lǐng)域的技術(shù)人員能夠最佳地利用本發(fā)明和適合于設(shè)想的具體用途的具有各種修改的各種實施例。
      應(yīng)當(dāng)理解,盡管在上面的描述中已經(jīng)連同本發(fā)明各種實施例的結(jié)構(gòu)和功能的細節(jié),提出了本發(fā)明各種實施例的許多特性和優(yōu)點,但是被公開僅是示例性的。在一些情況中,某些子部件僅僅用一個這樣的實施例被詳細描述。然而,應(yīng)當(dāng)認識到并且其意思是這樣的子部件也可以被用在本發(fā)明的其他實施例中??梢栽诒景l(fā)明的原理之內(nèi)對細節(jié),尤其是部件的管理和結(jié)構(gòu),在最大可能的范圍內(nèi)作出變化,該范圍由所附權(quán)利要求被表達于其中的項目的更寬廣的一般含意所指示。
      本發(fā)明提供了優(yōu)于已知技術(shù)的許多優(yōu)點。本發(fā)明包括在多處理器環(huán)境中單方地加載安全操作系統(tǒng)的能力。本發(fā)明提供了一種機制,通過該機制,系統(tǒng)可以在安全存儲器環(huán)境中安裝可信操作系統(tǒng)。因而,用戶或者系統(tǒng)管理員可以利用如上面所描述的其后跟隨SRESET指令的LSR指令來加載可信操作系統(tǒng)。一旦完成,外部代理以后就可以檢查系統(tǒng),并確定給定的操作系統(tǒng)是否被加載,并且如果是的話,它是否已經(jīng)被加載到了安全環(huán)境中。因此,由于所描述的這種機制允許可信操作系統(tǒng)在非受信的軟件部件已經(jīng)運行之后被加載,所以它是特別有益的。另外,在存在惡意軟件的情況下該機制是魯棒的,所述惡意軟件在系統(tǒng)正在注冊可信軟件部件的時候,試圖從多處理器系統(tǒng)中的另一處理器破壞計算機系統(tǒng)的安全。
      已經(jīng)公開了示例實施例和最佳模式之后,可以對所公開的實施例作出修改和變化,而保持在由所附權(quán)利要求所定義的本發(fā)明的范圍之內(nèi)。
      權(quán)利要求
      1.一種方法,包括當(dāng)檢測到當(dāng)前活動的加載操作時,不理會收到的加載指令;否則的話,響應(yīng)于所述收到的加載指令,引導(dǎo)存儲器保護單元以形成包括了一個或者多個受保護的存儲器區(qū)域的安全存儲器環(huán)境,以使得對所述一個或者多個受保護的存儲器區(qū)域的未授權(quán)的讀/寫訪問被禁止;以及在摘要信息庫中存儲所述一個或者多個受保護的存儲器區(qū)域的加密散列值,從而使得能夠建立所述安全存儲器環(huán)境的安全檢驗。
      2.根據(jù)權(quán)利要求1所述的方法,其中,所述不理會收到的加載指令的步驟還包括從安全啟動軟件接收作為所述加載指令的加載安全區(qū)域指令,以使得所述加載安全區(qū)域指令指示要被建立為所述安全存儲器環(huán)境的所述一個或者多個存儲器區(qū)域;確認所述安全啟動軟件具有足夠發(fā)出所述加載安全區(qū)域指令的特權(quán)等級;一旦被確認,則確定是否存在當(dāng)前活動的加載安全區(qū)域操作排他性互斥體;當(dāng)檢測到當(dāng)前活動的加載安全區(qū)域操作排他性互斥體時,不理會所述收到的加載安全區(qū)域指令請求;以及否則的話,建立加載安全區(qū)域指令排他性互斥體。
      3.根據(jù)權(quán)利要求1所述的方法,其中,所述不理會收到的加載指令的步驟還包括確定是否已經(jīng)收到安全復(fù)位命令;以及當(dāng)已經(jīng)收到安全復(fù)位命令時,不理會所述收到的加載指令請求。
      4.根據(jù)權(quán)利要求3所述的方法,其中,所述確定是否已經(jīng)收到安全復(fù)位命令的步驟還包括查詢所述摘要信息庫中的值;以及當(dāng)所述摘要信息庫中的值被提交的時候,檢測復(fù)位命令的接收。
      5.根據(jù)權(quán)利要求1所述的方法,其中,所述引導(dǎo)存儲器保護單元的步驟還包括從所述收到的加載指令請求確定所述一個或者多個受保護的存儲器區(qū)域;以及向存儲器保護單元提供請求,該請求包括所述一個或者多個受保護的存儲器區(qū)域的參數(shù),以使得所述存儲器保護單元根據(jù)所述加載指令,建立由加載安全區(qū)域操作所請求的所述安全存儲器環(huán)境。
      6.根據(jù)權(quán)利要求1所述的方法,其中,所述引導(dǎo)存儲器保護單元的步驟還包括清除所述摘要信息庫;以及將安全環(huán)境信息記錄在所述摘要信息庫中。
      7.根據(jù)權(quán)利要求1所述的方法,其中,所述存儲所述一個或者多個受保護的存儲器區(qū)域的加密散列值的步驟還包括散列所述安全存儲器區(qū)域的內(nèi)容,以為包含在所述安全環(huán)境中的軟件生成作為安全軟件標(biāo)識值的加密散列標(biāo)識值;以及將所述安全軟件標(biāo)識值存儲在所述摘要信息庫中;以及釋放加載操作排他性互斥體。
      8.根據(jù)權(quán)利要求1所述的方法,還包括從外部代理接收安全驗證請求;通過安全通道訪問安全軟件標(biāo)識值;對所述軟件標(biāo)識值進行數(shù)字簽名;以及將所述被數(shù)字簽名的安全軟件標(biāo)識值傳送給所述外部代理,以使得所述外部代理可以檢查在所述安全存儲器環(huán)境中的安全軟件的部件狀態(tài),并決定是否信任所述安全軟件。
      9.根據(jù)權(quán)利要求1所述的方法,還包括向系統(tǒng)芯片組發(fā)出處理器復(fù)位請求;以及響應(yīng)于所述處理器復(fù)位請求,由所述芯片組復(fù)位耦合到所述芯片組的所有處理器。
      10.一種方法,包括響應(yīng)于安全復(fù)位請求,復(fù)位系統(tǒng)中的一個或者多個處理器,所述安全復(fù)位請求在加載安全區(qū)域操作完成之后被發(fā)出;以及使能對安全存儲器環(huán)境的一個或者多個受保護的存儲器區(qū)域的處理器讀/寫訪問,所述安全存儲器環(huán)境是按照用于建立安全環(huán)境的加載安全區(qū)域指令請求而形成的。
      11.根據(jù)權(quán)利要求10所述的方法,其中,所述復(fù)位系統(tǒng)中的一個或者多個處理器的步驟還包括向系統(tǒng)芯片組平臺發(fā)出處理器復(fù)位命令;以及由所述芯片組平臺向所述一個或者多個處理器的每一個發(fā)出復(fù)位請求。
      12.根據(jù)權(quán)利要求11所述的方法,其中,所述發(fā)出處理器復(fù)位命令的步驟還包括進行對輸入/輸出端口地址的數(shù)據(jù)寫入;以及由所述芯片組平臺譯碼所述數(shù)據(jù)寫入,以檢測處理器復(fù)位命令。
      13.根據(jù)權(quán)利要求10所述的方法,其中,所述重新使能處理器讀/寫訪問的步驟還包括提交摘要信息庫中的數(shù)據(jù),以指示當(dāng)前活動的復(fù)位命令;使得耦合到所述系統(tǒng)的每個處理器進入已知的特權(quán)狀態(tài);以及引導(dǎo)存儲器保護單元重新使能對所述安全存儲器環(huán)境的處理器讀/寫訪問。
      14.根據(jù)權(quán)利要求13所述的方法,其中,所述使得耦合到所述系統(tǒng)的每個處理器進入已知的特權(quán)狀態(tài)的步驟包括將所述一個或者多個處理器中的數(shù)據(jù)存儲單元設(shè)置為常量或者由參數(shù)導(dǎo)出的值中的一個,所述常量是被存儲在所述處理器中或者由所述處理器生成的,所述參數(shù)是在發(fā)出所述加載安全區(qū)域指令時由安全啟動軟件所規(guī)定的。
      15.一種計算機可讀存儲介質(zhì),包括程序指令,所述程序指令當(dāng)被處理器執(zhí)行的時候,引導(dǎo)計算機以規(guī)定方式運行,所述程序指令包括當(dāng)檢測到當(dāng)前活動的加載指令時,不理會收到的加載指令;否則的話,響應(yīng)于所述收到的加載指令,引導(dǎo)存儲器保護單元以形成包括了一個或者多個受保護的存儲器區(qū)域的安全存儲器環(huán)境,以使得對所述一個或者多個受保護的存儲器區(qū)域的未授權(quán)的讀/寫訪問被禁止;以及在摘要信息庫中存儲所述一個或者多個受保護的存儲器區(qū)域的加密散列值,從而使得能夠建立所述安全環(huán)境的安全檢驗。
      16.根據(jù)權(quán)利要求15所述的計算機可讀存儲介質(zhì),其中,所述不理會收到的加載指令的步驟還包括從安全啟動軟件接收作為所述加載安全區(qū)域指令的指令,以使得所述加載安全區(qū)域指令指示要被建立為所述安全存儲器環(huán)境的所述一個或者多個存儲器區(qū)域,以及被加載在所述安全存儲器區(qū)域中的安全軟件;確認所述安全啟動軟件具有足夠發(fā)出所述加載安全區(qū)域指令的特權(quán)等級;一旦被確認,則確定是否存在當(dāng)前活動的加載操作排他性互斥體;當(dāng)檢測到當(dāng)前活動的加載操作排他性互斥體時,不理會所述收到的加載安全區(qū)域指令請求;以及否則的話,建立加載安全區(qū)域操作排他性互斥體。
      17.根據(jù)權(quán)利要求15所述的計算機可讀存儲介質(zhì),其中,所述不理會收到的加載指令的步驟還包括確定是否已經(jīng)收到安全復(fù)位命令;以及當(dāng)已經(jīng)收到安全復(fù)位命令時,不理會所述收到的加載指令請求。
      18.根據(jù)權(quán)利要求17所述的計算機可讀存儲介質(zhì),其中,所述確定是否已經(jīng)收到安全復(fù)位命令的步驟還包括查詢所述摘要信息庫中的值;以及當(dāng)所述摘要信息庫中的值被提交的時候,檢測復(fù)位命令的接收。
      19.根據(jù)權(quán)利要求15所述的計算機可讀存儲介質(zhì),其中,所述引導(dǎo)存儲器保護單元的步驟還包括從所述收到的加載指令請求確定所述一個或者多個受保護的存儲器區(qū)域;以及向存儲器保護單元提供請求,該請求包括所述一個或者多個受保護的存儲器區(qū)域的參數(shù),以使得所述存儲器保護單元根據(jù)所述加載指令,建立由加載安全區(qū)域操作所請求的所述安全存儲器區(qū)域。
      20.根據(jù)權(quán)利要求15所述的計算機可讀存儲介質(zhì),其中,所述程序還包括清除所述摘要信息庫;以及將安全環(huán)境信息記錄在所述摘要信息庫中。
      21.根據(jù)權(quán)利要求15所述的計算機可讀存儲介質(zhì),其中,所述存儲所述一個或者多個受保護的存儲器區(qū)域的加密散列值的步驟還包括散列所述安全存儲器環(huán)境中的內(nèi)容,以為被加載在所述安全存儲器環(huán)境中的軟件生成作為安全軟件標(biāo)識值的加密散列標(biāo)識值;將所述安全軟件標(biāo)識值存儲在所述摘要信息庫中;以及釋放加載操作排他性互斥體。
      22.根據(jù)權(quán)利要求15所述的計算機可讀存儲介質(zhì),還包括從外部代理接收安全驗證請求;通過安全通道訪問軟件標(biāo)識值;對所述軟件散列標(biāo)識值進行數(shù)字簽名;以及將所述被數(shù)字簽名的軟件標(biāo)識值傳送給所述外部代理,以使得所述外部代理可以檢查在所述安全存儲器環(huán)境中的安全軟件的部件狀態(tài),并決定是否信任所述安全軟件。
      23.根據(jù)權(quán)利要求15所述的計算機可讀存儲介質(zhì),還包括向系統(tǒng)芯片組發(fā)出處理器復(fù)位請求;以及響應(yīng)于所述處理器復(fù)位請求,由所述芯片組復(fù)位耦合到所述芯片組的所有。
      24.一種計算機可讀存儲介質(zhì),包括響應(yīng)于安全復(fù)位請求,復(fù)位系統(tǒng)中的一個或者多個處理器,所述安全復(fù)位請求在加載安全區(qū)域操作完成之后被發(fā)出;以及重新使能對安全存儲器環(huán)境的一個或者多個受保護的存儲器區(qū)域的處理器讀/寫訪問,所述安全存儲器環(huán)境是按照用于建立安全環(huán)境的加載安全區(qū)域指令而形成的。
      25.根據(jù)權(quán)利要求24所述的計算機可讀存儲介質(zhì),其中,所述復(fù)位系統(tǒng)中的一個或者多個處理器的步驟還包括向系統(tǒng)芯片組平臺發(fā)出處理器復(fù)位命令;以及由所述芯片組平臺向所述一個或者多個處理器的每一個發(fā)出復(fù)位請求。
      26.根據(jù)權(quán)利要求25所述的計算機可讀存儲介質(zhì),其中,所述發(fā)出處理器復(fù)位命令的步驟還包括進行對輸入/輸出端口地址的數(shù)據(jù)寫入;以及由所述芯片組平臺譯碼所述數(shù)據(jù)寫入,以檢測處理器復(fù)位命令。
      27.根據(jù)權(quán)利要求24所述的計算機可讀存儲介質(zhì),其中,所述重新使能處理器讀/寫訪問的步驟還包括提交摘要信息庫中的數(shù)據(jù),以指示當(dāng)前活動的復(fù)位命令;使得耦合到所述系統(tǒng)的每個處理器進入已知的特權(quán)狀態(tài);以及編程存儲器保護單元,以重新使能對所述安全存儲器環(huán)境的處理器讀/寫。
      28.根據(jù)權(quán)利要求27所述的計算機可讀存儲介質(zhì),其中,所述處理器中的每個還包括將所述處理器中的數(shù)據(jù)存儲單元設(shè)置為常量或者由參數(shù)導(dǎo)出的值中的一個,所述常量是被存儲在所述處理器中或者由所述處理器生成的,所述參數(shù)是在發(fā)出所述加載安全區(qū)域指令時由安全啟動軟件所規(guī)定的。
      29.一種裝置,包括存儲器控制器;多個處理器,所述多個處理器各自耦合到所述存儲器控制器,并各自具有執(zhí)行指令的電路;耦合到所述存儲器控制器的存儲器保護單元,所述存儲器保護單元阻止對一個或者多個受保護的存儲器區(qū)域的未授權(quán)的存儲器訪問;耦合到所述存儲器控制器的摘要信息庫,用于存儲安全軟件標(biāo)識值;和耦合到所述存儲器控制器的存儲器設(shè)備,所述存儲器設(shè)備具有存儲于其中的指令序列,所述指令序列包括至少一個加載指令,所述加載指令當(dāng)被處理器執(zhí)行時使得所述處理器當(dāng)檢測到當(dāng)前活動的加載安全區(qū)域操作時,不理會收到的加載安全區(qū)域指令;否則的話,按照對應(yīng)于所述收到的加載安全區(qū)域指令的加載安全區(qū)域操作,引導(dǎo)存儲器保護單元以形成包括了一個或者多個受保護的存儲器區(qū)域的安全存儲器環(huán)境,以使得對所述一個或者多個受保護的存儲器區(qū)域的未授權(quán)的讀/寫訪問被禁止;以及根據(jù)所述加載安全區(qū)域操作,在所述摘要信息庫中存儲所述一個或者多個受保護的存儲器區(qū)域的加密散列值,作為所述安全軟件標(biāo)識值,從而使得能夠建立由外部代理進行的所述安全存儲器環(huán)境的安全檢驗。
      30.根據(jù)權(quán)利要求29所述的裝置,其中,所述處理器還被使得從外部代理接收安全驗證請求;通過安全通道訪問安全軟件標(biāo)識值;對所述安全軟件標(biāo)識值進行數(shù)字簽名;以及將所述被數(shù)字簽名的安全軟件標(biāo)識值傳送給所述外部代理,以使得所述外部代理可以檢查在所述安全存儲器環(huán)境中的安全軟件的部件狀態(tài),并決定是否信任所述安全軟件。
      31.根據(jù)權(quán)利要求29所述的裝置,其中,所述處理器還被使得響應(yīng)于安全復(fù)位請求,復(fù)位所述多個處理器中的每一個,所述安全復(fù)位請求在所述加載指令完成之后被發(fā)出;以及重新使能對所述安全存儲器環(huán)境的所述一個或者多個受保護的存儲器區(qū)域的處理器讀/寫訪問,所述安全存儲器環(huán)境是按照用于建立安全環(huán)境的所述加載安全區(qū)域操作而形成的。
      32.根據(jù)權(quán)利要求29所述的裝置,其中,所述用于重新使能的指令還使得所述處理器提交摘要信息庫中的數(shù)據(jù),以指示當(dāng)前活動的安全復(fù)位命令;使得耦合到所述系統(tǒng)的每個處理器進入已知的特權(quán)狀態(tài);以及引導(dǎo)存儲器保護單元重新使能對所述安全存儲器環(huán)境的處理器讀/寫訪問。
      33.根據(jù)權(quán)利要求32所述的裝置,其中,所述用于使得處理器進入特權(quán)狀態(tài)的指令還使得所述處理器將所述多個處理器中的數(shù)據(jù)存儲單元設(shè)置為常量或者由參數(shù)導(dǎo)出的值中的一個,所述常量是被存儲在所述處理器中或者由所述處理器生成的,所述參數(shù)是在發(fā)出所述加載安全區(qū)域指令時由安全啟動軟件所規(guī)定的。
      34.一種系統(tǒng),包括存儲器控制器;多個處理器,所述多個處理器各自耦合到所述存儲器控制器,并各自具有執(zhí)行指令的電路;耦合到所述存儲器控制器的存儲器保護單元,所述存儲器保護單元阻止對一個或者多個受保護的存儲器區(qū)域的未授權(quán)的存儲器訪問;耦合到所述存儲器控制器的輸入/輸出控制器;檢驗單元,所述檢驗單元耦合到所述輸入/輸出控制器,并包括用于存儲安全軟件標(biāo)識值以及向外部代理提供安全驗證的摘要信息庫;和耦合到所述存儲器控制器的存儲設(shè)備,所述存儲設(shè)備具有存儲于其中的指令序列,所述指令序列包括至少一個加載指令,所述加載指令當(dāng)被處理器執(zhí)行時使得所述處理器當(dāng)檢測到當(dāng)前活動的加載指令時,不理會收到的加載安全區(qū)域操作;否則的話,按照對應(yīng)于所述收到的加載指令的加載安全區(qū)域操作,引導(dǎo)存儲器保護單元以形成包括了一個或者多個受保護的存儲器區(qū)域的安全存儲器環(huán)境,以使得對所述一個或者多個受保護的存儲器區(qū)域的未授權(quán)的讀/寫訪問被禁止;以及在所述摘要信息庫中存儲所述一個或者多個受保護的存儲器區(qū)域的加密散列值,從而使得能夠建立由外部代理進行的所述安全存儲器環(huán)境的安全檢驗。
      35.根據(jù)權(quán)利要求34所述的系統(tǒng),其中,所述處理器還被使得從外部代理接收安全驗證請求;通過安全通道訪問安全軟件標(biāo)識值;對所述安全軟件標(biāo)識值進行數(shù)字簽名;以及將所述被數(shù)字簽名的安全軟件標(biāo)識值傳送給所述外部代理,以使得所述外部代理可以檢查在所述安全存儲器環(huán)境中的安全軟件的部件狀態(tài),并決定是否信任所述安全軟件。
      36.根據(jù)權(quán)利要求34所述的系統(tǒng),其中,所述處理器還被使得響應(yīng)于安全復(fù)位請求,復(fù)位所述多個處理器中的每一個,所述安全復(fù)位請求在所述加載指令請求完成之后被發(fā)出;以及重新使能對安全存儲器環(huán)境的一個或者多個受保護的存儲器區(qū)域的處理器讀/寫訪問,所述安全存儲器環(huán)境是按照用于建立安全環(huán)境的加載安全區(qū)域操作而形成的。
      37.根據(jù)權(quán)利要求34所述的系統(tǒng),其中,所述用于重新使能的指令還使得所述處理器提交摘要信息庫中的數(shù)據(jù),以指示當(dāng)前活動的安全復(fù)位命令;使得所述多個處理器中的每一個進入已知的特權(quán)狀態(tài);以及引導(dǎo)存儲器保護單元重新使能對所述安全存儲器環(huán)境的處理器讀/寫訪問。
      38.根據(jù)權(quán)利要求37所述的系統(tǒng),其中,所述用于使得處理器進入特權(quán)狀態(tài)的指令還使得所述處理器將所述多個處理器中的數(shù)據(jù)存儲單元設(shè)置為常量或者由參數(shù)導(dǎo)出的值中的一個,所述常量是被存儲在所述處理器中或者由所述處理器生成的,所述參數(shù)是在發(fā)出所述加載安全區(qū)域指令時由安全啟動軟件所規(guī)定的。
      全文摘要
      本公開描述了一種用于在多處理器環(huán)境中單方地加載安全操作系統(tǒng)的裝置和方法。該方法包括當(dāng)檢測到當(dāng)前活動的加載安全區(qū)域操作時,不理會收到的加載安全區(qū)域指令。否則,響應(yīng)于收到的加載安全區(qū)域指令,存儲器保護單元被引導(dǎo)以形成安全存儲器環(huán)境。一旦被引導(dǎo),則對一個或者多個受保護的存儲器區(qū)域的未授權(quán)的讀/寫訪問被禁止。最后,一個或者多個受保護的存儲器區(qū)域的加密散列值作為安全軟件標(biāo)識值被存儲到摘要信息庫中。一旦被存儲,則外部代理可以請求對被數(shù)字簽名的軟件標(biāo)識值進行訪問,以便建立對在安全存儲器環(huán)境中的安全軟件的安全檢驗。
      文檔編號G06F1/00GK1685297SQ02822219
      公開日2005年10月19日 申請日期2002年10月30日 優(yōu)先權(quán)日2001年11月1日
      發(fā)明者三世 勞倫斯·史密斯, 二世 詹姆斯·薩頓, 戴維·波伊斯尼爾, 克利福德·霍爾, 安德魯·格洛伊, 吉爾伯特·奈格, 理查德·烏利希, 邁克爾·科祖克, 羅伯特·喬治, 戴維·克勞羅克, 布拉德利·伯吉斯 申請人:英特爾公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1