欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

在安全引導裝載程序中使用散列技術(shù)的制作方法

文檔序號:6368027閱讀:201來源:國知局
專利名稱:在安全引導裝載程序中使用散列技術(shù)的制作方法
技術(shù)領(lǐng)域
本發(fā)明通常涉及安全地引導包括一個處理器的電子設(shè)備,尤其關(guān)于確保當引導這種電子設(shè)備時,該處理器只執(zhí)行所需的機器指令,以防止在引導過程中執(zhí)行代替的或替換的機器指令。
背景技術(shù)
當最初被激活或重置時,有許多種類型的電子設(shè)備都必須經(jīng)歷引導過程。在引導過程中,通常使用控制電子設(shè)備的基本操作特征的機器指令,這些機器指令被存儲在只讀存儲器(ROM)中并被加以執(zhí)行,以便對設(shè)備進行初始化并進一步將機器指令載入將被執(zhí)行的隨機存取存儲器(RAM),從而使電子設(shè)備能夠執(zhí)行更多的功能。例如,當個人計算機被引導時,執(zhí)行包括基本輸入-輸出系統(tǒng)(BIOS)的指令,這些指令能夠?qū)⒉僮飨到y(tǒng)從硬盤驅(qū)動器載入RAM并使計算機的中央處理器(CPU)執(zhí)行操作系統(tǒng)。術(shù)語“引導”是較早的、也許更具描述性的術(shù)語“引導程序”的簡略形式。
必須被引導的其他類型的電子設(shè)備包括游戲控制臺、數(shù)字記錄設(shè)備、個人數(shù)據(jù)系統(tǒng),以及包括必須執(zhí)行一套初始機器指令以進一步啟用功能特性(同時,額外的機器指令被載入存儲器并被執(zhí)行)的某種形式的處理器的幾乎任何其他的電子產(chǎn)品。由于引導過程確定電子設(shè)備的初始狀態(tài),因此,它影響設(shè)備的重要的操作參數(shù),并會對完成引導過程之后如何使用電子設(shè)備產(chǎn)生重要的影響。對于出售電子設(shè)備的公司而言,防止引導過程的修改很重要,可以避免因使用設(shè)備而產(chǎn)生的收入損失。
例如,在電子游戲工業(yè)中,用于運行電子游戲而被出售的游戲控制臺的許多商業(yè)價值來自于運行在游戲控制臺上的游戲軟件所產(chǎn)生的許可收入。相應(yīng)地,在引導過程中被裝載的機器指令執(zhí)行功能特性,以防止未經(jīng)許可的軟件副本在游戲控制臺上運行,并強制執(zhí)行制造商有關(guān)使用用于運行電子游戲的游戲控制臺的策略。某些用戶往往將關(guān)于運行未經(jīng)許可的軟件副本的限制和強制執(zhí)行有關(guān)游戲控制臺的這類策略的限制視作一種挑戰(zhàn)和一種對于使用游戲控制臺的討厭的局限。這些用戶通過“胡亂刪改”游戲控制臺電路和軟件,來努力克服這些限制。例如,避開這些限制的一種方法是使運行于游戲控制臺上的引導過程裝載一個被改變的軟件內(nèi)核(其中,已進行某些更改)。這些更改除去游戲控制臺的制造商所規(guī)定的限制,這樣會導致制造商失去對游戲控制臺的使用方法的控制,并且,如果未經(jīng)許可的軟件游戲副本由此而能夠運行于游戲控制臺上,則會引起收入損失。相應(yīng)地,游戲控制臺制造商通常不遺余力地防止電腦黑客在引導過程中使用被改變的軟件內(nèi)核。
在使用必須進行引導的電子設(shè)備的其他技術(shù)領(lǐng)域中,存在類似的問題。例如,根據(jù)用戶每月支付的費用來限制所接收的頻道的衛(wèi)星電視接收器的制造商必須確保其安全策略和其產(chǎn)品的使用策略得到遵循,以便消費者只能夠按照電子設(shè)備的許可證的條款來使用它。電腦黑客也許能夠修改使衛(wèi)星接收器中的處理器確定用戶已付費觀看的電視頻道的代碼,從而無須正確支付許可證費用,就可以接收和觀看所有的頻道。
相應(yīng)地,將會需要確保在電子設(shè)備的引導期間,只執(zhí)行經(jīng)授權(quán)的軟件代碼。所使用的任何技術(shù)都應(yīng)該防止計劃在設(shè)備的引導期間被執(zhí)行的經(jīng)授權(quán)的軟件被一套修改的或替換的機器指令取代,從而確保電子設(shè)備執(zhí)行功能特性以及制造并/或?qū)㈦娮釉O(shè)備銷售給最終用戶的一方的策略。用于防止電腦黑客使有關(guān)使用電子設(shè)備的限制和策略(被包括在電子設(shè)備的引導期間所裝載的代碼中)失效的各種已知方法顯然沒有獲得完全的成功。通過使用包含替換軟件代碼的內(nèi)插式電路卡,電腦黑客(將電路卡耦合到電子設(shè)備的電路中)可以至少局部地擊敗已知的安全方法。顯而易見,需要一種更安全、更嚴格的方法,以防止在電子設(shè)備的引導過程中插入和執(zhí)行替換代碼。

發(fā)明內(nèi)容
本發(fā)明通常應(yīng)該可以應(yīng)用于包括一個處理器并在最初被激活或重置時必須進行引導(以便可以執(zhí)行電子設(shè)備的其他功能)的幾乎任何的電子設(shè)備。在這種設(shè)備中,保護在設(shè)備操作期間被使用的專利信息并防止在引導過程中執(zhí)行未經(jīng)授權(quán)的代碼(以破壞有關(guān)電子設(shè)備的操作和應(yīng)用的策略),這常常將會很重要。
最可能被取代以破壞電子設(shè)備的所需策略和功能特性的部件之一是非易失存儲器,其中存儲有定義如何使用電子設(shè)備的機器指令。相應(yīng)地,本發(fā)明嘗試確認包括這種存儲器中的機器指令的代碼得到授權(quán)(即,還沒有用改變電子設(shè)備的所需功能特性和策略的機器指令來修改或取代)。在本發(fā)明中,經(jīng)授權(quán)的代碼包括一個預(yù)定義部分(也被稱作“預(yù)裝載程序代碼”)。即使對經(jīng)授權(quán)的代碼的剩余部分進行更改或電子設(shè)備將不進行引導,這個預(yù)定義部分也必須保持不變。
最初執(zhí)行一個程序,以確保代碼的預(yù)定義部分被授權(quán)。在這個程序中,對預(yù)定義部分實施散列技術(shù),產(chǎn)生第一個散列值。然后,將這第一個散列值與被保存在電子設(shè)備的電路部件(與存儲代碼的存儲器分開)中的存儲的散列值進行比較,以驗證代碼的預(yù)定義部分被授權(quán)。如果第一個散列值等于所存儲的散列值,則執(zhí)行代碼的預(yù)定義部分;如果第一個散列值不等于所存儲的散列值,則終止電子設(shè)備的引導。如果啟用代碼的預(yù)定義部分,則基本上所有的代碼都被實施散列技術(shù),以確定第二個散列值。數(shù)字簽名被包括在代碼的一個不同的部分中,而不是代碼的預(yù)定義部分中。然后,按照該數(shù)字簽名來驗證第二個散列值,以確保簽名的真實性。如果數(shù)字簽名被驗證是真實的,則執(zhí)行代碼;如果不是真實的,則終止電子設(shè)備的引導。
為了將第一個值與所存儲的散列值進行比較,可以執(zhí)行電路部件的非易失存儲部分中所保存的初始代碼。這個初始代碼包括所存儲的散列值并被保存在圖形處理器中,盡管也預(yù)期所存儲的散列值可能被保存在其他類型的輔助處理器(例如,音頻處理器、輸入處理器、輸出處理器、通信處理器或數(shù)字信號處理器)中。當然,若將初始代碼和預(yù)期的散列值保存在執(zhí)行初始代碼的處理器中,則會更好。執(zhí)行初始代碼,以便對預(yù)定義部分實施散列技術(shù),并將第一個散列值和所存儲的散列值進行比較。在本發(fā)明的一個較佳形式中,初始代碼在固件中被永久地定義為預(yù)定數(shù)量的字節(jié)。此外,代碼的預(yù)定義部分較佳地包括被安排在代碼內(nèi)的預(yù)定位置處的預(yù)定數(shù)量的字節(jié)。顯而易見,除非所存儲的散列值發(fā)生對應(yīng)的變化,否則,代碼的預(yù)定義部分的尺寸和內(nèi)容不會被修改,因為那時所存儲的散列值將不等于第一個散列值。
預(yù)定義代碼也包括被用于驗證數(shù)字簽名的一個公共密鑰,并具有使代碼的加密內(nèi)核部分能夠被解密的機器指令。于是,執(zhí)行被解密的內(nèi)核,以完成電子設(shè)備的引導。預(yù)定義代碼使用流動密碼程序來執(zhí)行代碼的內(nèi)核部分的解密。
本發(fā)明的另一個方面針對其上存儲有包括機器指令的代碼的一種存儲介質(zhì),這些機器指令在電子設(shè)備的引導期間被使用,以確定代碼是否被授權(quán)。通常,如上所述,該存儲介質(zhì)包括內(nèi)核部分、引導裝載程序部分、預(yù)裝載程序部分和數(shù)字簽名。
本發(fā)明的另一個方面針對必須被引導來進行操作的一種電子設(shè)備。該電子設(shè)備包括其中存儲有多個機器指令的一個非易失存儲器。該非易失存儲器包括一個主要部分,以及具有預(yù)定義的內(nèi)容、尺寸和位置的一個預(yù)裝載程序。將處理器耦合到非易失存儲器,以便在引導過程中執(zhí)行機器指令。引導程序代碼固件元件規(guī)定了機器指令,這些機器指令定義散列算法和預(yù)期的散列值。在電子設(shè)備的引導期間,最初由處理器來執(zhí)行引導程序代碼固件的機器指令,從而使處理器執(zhí)行預(yù)裝載程序部分的散列技術(shù)并將結(jié)果與預(yù)期的散列值進行比較。電子設(shè)備及其功能特性的其他細節(jié)通常與以上所討論的方法的各個步驟相一致。
通過在電子設(shè)備(例如,游戲控制臺)中使用本發(fā)明,將會顯而易見,若嘗試改變在引導過程中被執(zhí)行的機器指令或嘗試用不同的機器指令來代替另一個存儲器,則會阻止設(shè)備成功引導。相應(yīng)地,通過確保在電子設(shè)備的引導期間只執(zhí)行經(jīng)授權(quán)的代碼,本發(fā)明通常應(yīng)該防止某人修改基本的功能特性或避開將由電子設(shè)備執(zhí)行的所需策略。


通過參考以下詳細的描述并結(jié)合附圖,將會更容易、更好地理解本發(fā)明的前述各個方面和許多附帶優(yōu)點。在這些附圖中圖1是使用本發(fā)明的一種游戲控制臺的等比例示意圖;圖2A是圖1的游戲控制臺中所包括的幾個功能部件的方框圖;圖2B是進行引導并包括一個處理器和存儲器的一般電子設(shè)備的功能方框圖;圖3是示意圖,將存儲器的各個部分展示為在本發(fā)明中被加以配置;以及,圖4是流程圖,展示了本發(fā)明中所執(zhí)行的邏輯。
具體實施例方式
示范系統(tǒng)必須強調(diào)的是,本發(fā)明并不意在局限于只用于游戲控制臺,盡管游戲控制臺上確實使用了本發(fā)明的一個初始較佳實施例。本發(fā)明被用于確保不向嘗試顛倒工程師代碼的用戶揭露專利信息,并被用于防止用戶避開許可限制和有關(guān)使用運行電子游戲的游戲控制臺的策略。
如圖1所示,示范的電子游戲系統(tǒng)100包括一個游戲控制臺102和對可達四個用戶輸入設(shè)備(例如,控制器104a和104b)的支持。游戲控制臺102裝備有一個內(nèi)部硬盤驅(qū)動器(在該圖中未示出)和支持各種形式的便攜式光學存儲介質(zhì)(由存儲光盤108代表)的一個便攜式媒體驅(qū)動器。合適的便攜式存儲介質(zhì)的例子包括DVD磁盤和CD-ROM磁盤。在這個游戲系統(tǒng)中,游戲程序被較佳地分配,以用于DVD磁盤上的游戲控制臺,但是,也預(yù)期可能在使用本發(fā)明的這種或其他類型的系統(tǒng)上使用其他的存儲介質(zhì),以強制執(zhí)行數(shù)據(jù)安全策略并確保被輸入到系統(tǒng)的數(shù)字數(shù)據(jù)的真實性。
游戲控制臺102的正面上有四個用于連接到控制器和支撐控制器的狹槽110,但可以修改狹槽的數(shù)量和布置。動力按鈕112和彈出按鈕114也被放置在游戲控制臺102的正面上。動力按鈕112控制對游戲控制臺的通電,彈出按鈕114交替地打開和關(guān)閉便攜式媒體驅(qū)動器106的淺盤(未示出),來插入和取出存儲磁盤108,以便可以讀取其上的數(shù)字數(shù)據(jù),供游戲控制臺使用。
游戲控制臺102經(jīng)由音頻/視覺(A/V)接口電纜120連接到電視機或其他顯示監(jiān)視器或屏幕(未示出)。當被連接到傳統(tǒng)的交流電線源(未示出)時,電力電纜插頭122將電力傳達給游戲控制臺??梢赃M一步為游戲控制臺102提供數(shù)據(jù)連接器124,以便(例如)經(jīng)由傳統(tǒng)的電話調(diào)制解調(diào)器或(更好的是)通過寬帶連接而在網(wǎng)絡(luò)(例如,互聯(lián)網(wǎng))上傳遞數(shù)據(jù)。
每個控制器104a和104b經(jīng)由導線(或者通過無線接口)被耦合到游戲控制臺102。在所展示的實施中,控制器是兼容的“通用串行總線”(USB),并經(jīng)由USB電纜130被連接到游戲控制臺102。游戲控制臺102裝備有用于跟游戲軟件相互作用并控制游戲軟件的眾多不同的用戶設(shè)備中的任何用戶設(shè)備。雖然圖1中沒有示出控制器104a的所有細節(jié),但是,控制器104a和104b都裝備有兩個拇指棒(thumbsticks)132a和132b、一個D墊134、按鈕136和兩個觸發(fā)器138。這些控制器只是起代表的作用,可以用其他已知的游戲輸入和控制機制來代替圖1中所示的機制,或者可以將其他已知的游戲輸入和控制機制加入圖1中所示的機制,用于游戲控制臺102。
可移動或便攜式存儲設(shè)備(MU)140可以隨意地被插入控制器104,以提供額外的可移動存儲。通過將便攜式Mus插入其他控制器,便攜式Mus使用戶能夠存儲游戲參數(shù)并將它們用于其他控制臺上的游戲。在所描述的實施中,雖然可以使用多于或少于兩個Mus,但每個控制器都被配置成容納兩個Mus。
游戲系統(tǒng)100能夠播放游戲、音樂和錄像。預(yù)期可以使用被存儲在硬盤驅(qū)動器上的或從存儲光盤108、在線來源或MU 140讀取的數(shù)字數(shù)據(jù)來執(zhí)行其他功能。將游戲控制臺設(shè)計成防止在游戲控制臺上運行未經(jīng)授權(quán)的電子游戲磁盤副本。某些策略也由游戲控制臺來強制執(zhí)行。例如,可以阻止一個地理區(qū)域中所出售的軟件在不同地理區(qū)域中所出售的游戲控制臺上執(zhí)行。游戲控制臺軟件也執(zhí)行用于防止視頻DVDs復(fù)制的一項工業(yè)標準方案(MACROVISIONTM)。
某些用戶會喜歡擊敗游戲控制臺所執(zhí)行的這些功能限制和策略。嘗試避開這些限制和策略的一種方法是在游戲控制臺中安裝一個集成電路(IC)或模塊,它用修改版本來取代在引導游戲控制臺中使用的、被存儲在那里的原來的ROM和代碼。對這類替換模塊中的機器指令的修改預(yù)定在引導過程中進行操作,并取消或改變游戲控制臺的制造商或設(shè)計者所規(guī)定的限制(可防止使用未經(jīng)授權(quán)的副本、視頻DVDs復(fù)制),以及游戲控制臺的其他功能方面和/或策略。但是,利用本發(fā)明,要插入未經(jīng)授權(quán)的替換ROM模塊以改變引導過程,會非常困難;如果本發(fā)明檢測到有人嘗試在游戲控制臺的引導期間使用替換的和未經(jīng)授權(quán)的代碼,則會終止引導過程。
為了防止有關(guān)引導過程的專利信息被發(fā)現(xiàn),并且為了防止在引導過程中使用被修改的或替換的代碼,在引導期間被執(zhí)行的機器指令的至少某個部分必須與游戲控制臺或其他電子設(shè)備的ROM內(nèi)所包括的大多數(shù)機器指令保持分開。通常,如果電子設(shè)備的外殼被打開,則容易接近電子設(shè)備的印刷電路板上的Ics、跡線、連接點和通道,從而能夠在物理上進行新的連接和修改,以胡亂刪改設(shè)備。雖然防止某人接近印刷電路板很困難,但是,利用本發(fā)明,要使用作為被安裝在印刷電路板上的Ics之一內(nèi)的固件而被嵌入的機器指令,非常困難。較佳的是,應(yīng)該為此目的而使用公眾不容易從其供應(yīng)者那里獲得的IC,因為它是為電子設(shè)備的制造商定做的。此外,用于此目的的IC對于電子設(shè)備的操作應(yīng)該是至關(guān)重要的,這樣,如果嘗試接近被嵌入IC內(nèi)的固件,則IC的操作和(因而)電子設(shè)備的操作將很可能會受到不利的影響。
圖2A展示了游戲控制臺100內(nèi)所包括的IC部件中的幾個IC部件。CPU 202是主處理器,被用于執(zhí)行游戲控制臺的大多數(shù)處理功能。對于多數(shù)處理器而言,CPU 202通常必須首先被引導,以便使其能夠執(zhí)行游戲控制臺被設(shè)計實施的各種功能。CPU 202被雙向連接到一個被定制的圖形處理器,該圖形處理器也是NVIDIA公司所生產(chǎn)的總線和存儲控制器芯片204并被指定為NV2A芯片。NV2A芯片被連接到RAM 206,并被連接到作為媒體通信處理器(MCP)208的另一個NVIDIA定做芯片,這樣,提供了音頻信號處理器性能,耦合到系統(tǒng)存儲器,并且也耦合到數(shù)據(jù)通信的USB端口和以太網(wǎng)端口。MCP 208內(nèi)包括512個字節(jié)的固件,該固件包含引導程序代碼212。引導程序代碼212基本上被埋在MCP 208內(nèi)的其他層的下面,并且無法僅僅通過撤去(decapping)這個模塊而被獲得。為了在物理上獲得引導程序代碼212,將必須除去其他的疊加層,這將會有效地破壞MCP模塊,從而使它和游戲控制臺不能使用。另外,由于MCP 208為游戲控制臺的制造商而定做,因此,其他人無法在開放的市場上得到它。即使用某種方式來獲得引導程序代碼,從而使包括這個固件的機器指令“可見”,本發(fā)明也會使引導序列不可改變。MCP 208耦合到ROM 210,它包括在游戲控制臺100的引導期間被使用的大多數(shù)機器指令。
表現(xiàn)了本發(fā)明的有關(guān)圖2B中的部件的更普通的應(yīng)用。預(yù)期自定義CPU 220會包括“被埋”在其內(nèi)(在CPU的其他層的下面)的固件引導程序代碼222。如圖2B所示,CPU 220被耦合到RAM 206和ROM 210。由于引導程序代碼222包括CPU 220內(nèi)的固件,因此,通常將無法獲得CPU的處理部分與引導程序代碼222之間的信號。相應(yīng)地,對于圖2B中所示的實施例而言,獲得引導程序代碼222并確定它的內(nèi)容將會更加困難,這樣,圖2B中的實施例提供了比圖2A中的實施例更高的安全性。
圖3展示了本發(fā)明中所用的ROM 210的各個不同的部分。在被用于游戲控制臺100中的較佳實施例中,ROM 210包括一個256千字節(jié)存儲器模塊。ROM210內(nèi)包括沒有被加密的預(yù)裝載程序230。預(yù)裝載程序230在較佳實施例中具有近似11個千字節(jié)的固定尺寸,它的內(nèi)容、尺寸和在ROM 210內(nèi)的位置都被預(yù)定義。重要的是,要注意,預(yù)裝載程序230包括一個被加密的公共密鑰231。還有一點很重要除非對固件引導程序代碼212進行對應(yīng)的更改,否則,預(yù)裝載程序230的內(nèi)容需要維持不變,從以下的說明中將清楚地看到這一點。ROM 210也包括被加密的引導裝載程序232。此外,ROM 210包括數(shù)字簽名234和對稱密鑰236。到目前為止,ROM 210的較大部分專用于存儲包括內(nèi)核238的機器指令。內(nèi)核238既被壓縮,又被加密。內(nèi)核238內(nèi)所包括的機器指令定義許多功能特性,并制定有關(guān)游戲控制臺100的操作的策略。最后,芯片組初始化碼240被包括在內(nèi),并且,當最初啟動游戲控制臺時,執(zhí)行該芯片組初始化碼。
圖4展示了當游戲控制臺102最初被激活或被重置時所執(zhí)行的一些邏輯步驟。步驟250規(guī)定運行ROM 210中的芯片組初始化碼。芯片組初始化碼240內(nèi)所包括的機器指令沒有被加密;它們定義特殊的配置信息,以及適合完整的游戲控制臺的構(gòu)造的特殊的配置序列。執(zhí)行芯片組配置所必要的機器代碼被包括在引導程序代碼中;特殊的值和序列是芯片組初始化碼的一部分。此外,CPU的初始化序列被包含在引導程序代碼中,并在芯片組初始化碼的剩余部分之前被加以執(zhí)行。接下來,在方框252中,固件引導程序代碼212(被埋在MCP 208內(nèi))內(nèi)所包括的機器指令運行單向散列算法,以確定ROM 210中的預(yù)裝載程序230的散列值。如上所述,在原來的ROM 210(在制造時,它被安裝在游戲控制臺100內(nèi))中,預(yù)裝載程序230將具有特殊的內(nèi)容、尺寸和在ROM 210內(nèi)的位置。相應(yīng)地,只要預(yù)裝載程序230還沒有被改變或用未經(jīng)授權(quán)的代碼取代,通過對預(yù)裝載程序230內(nèi)所包括的機器指令實施散列技術(shù)而獲得的散列值就應(yīng)該始終保持不變。在較佳實施例中,應(yīng)用SHA-1單向散列算法來對預(yù)裝載程序?qū)嵤┥⒘屑夹g(shù)。或者,可以使用MD5散列算法;掌握該技術(shù)領(lǐng)域普通技能的人將會理解,還可以使用其他的散列算法。所使用的散列算法被包括在引導程序代碼212的機器指令內(nèi)。
引導程序代碼212內(nèi)也包括作為預(yù)裝載程序230的預(yù)期散列值的一個存儲的散列值,以及一個對稱密鑰。步驟254裝載來自引導程序代碼的所存儲的散列值。引導程序代碼212中的機器指令將來自引導程序代碼的所存儲的散列值與剛剛在步驟252中為預(yù)裝載程序230而被確定的散列值進行比較。在決定步驟256中這樣比較,以確定所存儲的散列值是否等于曾被確定的實際的散列值。如果否,則引導程序代碼212中的機器指令執(zhí)行步驟258,該步驟停止游戲控制臺102的引導過程。相應(yīng)地,將會顯而易見,如果用不同的ROM代替原來的ROM,并且,新的被替換的或未經(jīng)授權(quán)的ROM不包括一個相同的預(yù)裝載程序部分(當用單向散列碼算法來處理時,它將產(chǎn)生預(yù)期的散列值),則決定步驟256將檢測對預(yù)裝載程序230的修改并終止引導過程。
假設(shè)所存儲的預(yù)期的散列值等于曾被確定的實際的散列值,則步驟260執(zhí)行包括ROM 210的預(yù)裝載程序代碼部分的機器指令??梢詧?zhí)行這個步驟,因為將會顯而易見,預(yù)裝載程序機器指令等同于被其制造商安裝在游戲控制臺內(nèi)的ROM中原先所包括的預(yù)裝載程序代碼。
接下來,步驟262規(guī)定為整個ROM 210確定一個散列值(除數(shù)字簽名234以外)。預(yù)裝載程序也包括用于確定單向散列值的機器指令,并再次較佳地使用SHA-1或MD5散列算法(或其他眾所周知的單向散列算法之一)來為ROM 210的大部分內(nèi)容確定散列值(數(shù)字簽名不被包括在被實施散列技術(shù)的ROM 210的內(nèi)容中)。只要應(yīng)用同一個散列碼算法,除非機器指令已被更改或已用未經(jīng)授權(quán)的機器指令取代,否則,結(jié)構(gòu)就應(yīng)該始終保持不變。即使改變在ROM 210中被實施散列技術(shù)的機器指令的一個單一的位,也會實質(zhì)上改變所得到的散列值。
在步驟264中,將ROM 210中的公共密鑰231應(yīng)用于數(shù)字簽名234,以便為該數(shù)字簽名產(chǎn)生一個對應(yīng)的值。(在可以應(yīng)用公共密鑰之前,用被存儲在MCP的引導程序代碼中的對稱密鑰來對它進行解密,但是,如果沒有用這個對稱密鑰對公共密鑰進行加密,則不要求執(zhí)行這個步驟。)接下來,預(yù)裝載程序230中的機器指令確定公共密鑰是否能夠在圖4中的決定步驟266中驗證簽名;這個步驟確定來自步驟264的值是否等于在步驟262中被確定的ROM的散列值。如果否,則步驟268停止引導操作,因為將顯而易見,自從創(chuàng)建ROM的原來的內(nèi)容以后,ROM中的簽名已發(fā)生變化。眾所周知,如果原先使用只有游戲控制臺的制造商知道的私人密鑰來為簽名值簽名,則可以使用公共密鑰來確認簽名的有效性。如果某人胡亂刪改游戲控制臺100并嘗試修改ROM210的任何部分,則將在決定步驟266中檢測到散列值的變化,從而導致在步驟268中終止引導過程。相反,如果數(shù)字簽名與ROM的散列碼相匹配,則將會顯而易見,ROM內(nèi)容等同于被授權(quán)的原來的內(nèi)容。
假設(shè)在步驟264中根據(jù)數(shù)字簽名而被確定的值在決定步驟266中驗證ROM的散列碼,則步驟270使引導能夠進行到結(jié)束,從而使內(nèi)核238能夠被復(fù)制到RAM 206中,然后被解壓并被解密到RAM中。預(yù)裝載程序230包括用于為引導裝載程序解密的機器指令。MCP中所保存的固件引導程序代碼中的對稱密鑰與ROM 210中的對稱密鑰236結(jié)合,以產(chǎn)生一個新的對稱代碼,該對稱代碼被用于根據(jù)預(yù)裝載程序中的機器指令來為引導裝載程序解密。
引導裝載程序包括機器指令,這些機器指令用于根據(jù)RC4連續(xù)密碼算法來執(zhí)行被壓縮并被加密的內(nèi)核的連續(xù)密碼解密,掌握該技術(shù)領(lǐng)域普通技能的人很了解這一點。然后,包括內(nèi)核的機器指令(已被解壓和解密到RAM 206中)可以由CPU 202來執(zhí)行,以實施游戲控制臺的全部功能特性,從而確保例如,它只裝載經(jīng)授權(quán)的游戲軟件,執(zhí)行阻止視頻DVDs的復(fù)制的算法,并確保它按經(jīng)授權(quán)的引導代碼所定義的內(nèi)容來執(zhí)行游戲控制臺的制造商所需要的所有其他的策略和功能。
雖然已結(jié)合本發(fā)明的較佳實踐形式描述了本發(fā)明,但是,掌握該技術(shù)領(lǐng)域普通技能的人將會理解,可以在以下的權(quán)利要求書的范圍內(nèi)對其進行許多修改。相應(yīng)地,本發(fā)明的范圍并不意在受到上文的限制,而是通過參考以下的權(quán)利要求書來加以完全的確定。
權(quán)利要求
本發(fā)明的專有權(quán)被聲明,其定義如下1.用于確定規(guī)定在電子設(shè)備的引導期間執(zhí)行的代碼是否被授權(quán)的一種方法,所述方法的特征在于包括以下各個步驟(a)對代碼的預(yù)定義部分實施散列技術(shù),以產(chǎn)生第一個散列值;(b)將第一個散列值與電子設(shè)備的電路部件中所保存的存儲的散列值進行比較,以驗證代碼的預(yù)定義部分被授權(quán),該電路部件與存儲代碼的存儲器分開;(c)如果第一個散列值等于所存儲的散列值,則執(zhí)行代碼的預(yù)定義部分,如果第一個散列值不等于所存儲的散列值,則終止電子設(shè)備的引導;(d)其中,執(zhí)行被授權(quán)的代碼的所述預(yù)定義部分實施以下各個步驟(i)基本上對所有的代碼實施散列技術(shù),以確定第二個散列值;以及,(ii)驗證代碼中所包括的數(shù)字簽名是否與第二個散列值相匹配,如果匹配,則執(zhí)行代碼,如果不匹配,則終止電子設(shè)備的引導。
2.如權(quán)利要求1所述的方法,其特征在于,將第一個值與所存儲的散列值進行比較的步驟包括執(zhí)行電路部件的非易失存儲部分中所保存的初始代碼,所述初始代碼包括所存儲的散列值。
3.如權(quán)利要求2所述的方法,其特征在于,初始代碼被保存在輔助處理器中。
4.如權(quán)利要求2所述的方法,其特征在于,初始代碼被保存在以下的一種設(shè)備中(a)圖形處理器;(b)音頻處理器;(c)輸入處理器;(d)輸出處理器;(e)通信處理器;以及,(f)數(shù)字信號處理器。
5.如權(quán)利要求2所述的方法,其特征在于,初始代碼被保存在執(zhí)行初始代碼的處理器中。
6.如權(quán)利要求2所述的方法,其特征在于,執(zhí)行初始代碼,以實施如權(quán)利要求1中的步驟(a)至步驟(c)。
7.如權(quán)利要求2所述的方法,其特征在于,初始代碼在固件中被永久地定義為預(yù)定數(shù)量的字節(jié)。
8.如權(quán)利要求1所述的方法,其特征在于,代碼的預(yù)定義部分包括預(yù)裝載程序代碼,該預(yù)裝載程序代碼具有被安排在代碼內(nèi)的預(yù)定位置處的預(yù)定數(shù)量的字節(jié)。
9.如權(quán)利要求8所述的方法,其特征在于,用預(yù)裝載程序代碼中所包括的公共密鑰來執(zhí)行驗證數(shù)字簽名的步驟。
10. 上存儲有代碼的一種存儲介質(zhì),該代碼包括在電子設(shè)備的引導期間被使用的機器指令,所述機器指令對于確定代碼是否被授權(quán)起部分作用,所述存儲介質(zhì)的特征在于包括(a)內(nèi)核部分,其中存儲有包括代碼的大部分機器指令;(b)引導裝載程序部分,適用于裝載內(nèi)核部分中所包括的機器指令,供電子設(shè)備執(zhí)行;(c)預(yù)裝載程序部分,它具有預(yù)定數(shù)量的字節(jié)和預(yù)定義的內(nèi)容,所述預(yù)裝載程序部分被安排在存儲介質(zhì)上的預(yù)定位置處;以及,(d)數(shù)字簽名部分,所述數(shù)字簽名部分提供一個確認散列值,用于跟通過對代碼實施散列技術(shù)而獲得的散列值進行比較,可用來確定代碼是否被授權(quán)。
11.如權(quán)利要求10所述的存儲介質(zhì),其特征在于,預(yù)裝載程序部分中所包括的公共密鑰可用于為簽名部分解密。
12.如權(quán)利要求10所述的存儲介質(zhì),其特征在于,存儲介質(zhì)包括一個只讀存儲器。
13.如權(quán)利要求10所述的存儲介質(zhì),其特征在于,預(yù)裝載程序部分包括定義單向散列算法的機器指令。
14.如權(quán)利要求10所述的存儲介質(zhì),其特征在于,預(yù)裝載程序部分包括機器指令,這些機器指令可以通過使用被存儲在預(yù)裝載程序部分內(nèi)的公共密鑰來驗證數(shù)字簽名。
15.如權(quán)利要求10所述的存儲介質(zhì),其特征在于,內(nèi)核部分被編碼。
16.如權(quán)利要求10所述的存儲介質(zhì),其特征在于,預(yù)裝載程序部分包括用于執(zhí)行內(nèi)核部分的連續(xù)密碼解碼的機器指令。
17.如權(quán)利要求10所述的存儲介質(zhì),其特征在于,預(yù)裝載程序部分包括用于驗證標有對應(yīng)的私人密鑰符號的簽名的至少一個公共密鑰。
18.一種必須被引導以進行操作所述的電子設(shè)備,其特征在于包括(a)其中存儲有多個機器指令的非易失存儲器,所述非易失存儲器包括一個主要部分,以及在內(nèi)容、尺寸和位置方面被預(yù)定義的一個預(yù)裝載程序部分;(b)被耦合到非易失存儲器以執(zhí)行機器指令的處理器;以及(c)規(guī)定定義散列算法和預(yù)期的散列值的機器指令的引導程序代碼固件元件,所述引導程序代碼固件的機器指令最初在電子設(shè)備的引導期間由處理器來執(zhí)行,從而使處理器(i)對非易失存儲器的預(yù)裝載程序部分實施散列技術(shù),以確定預(yù)裝載程序散列值;(ii)將預(yù)期的散列值與預(yù)裝載程序散列值進行比較;以及,(iii)如果預(yù)裝載程序散列值不等于預(yù)期的散列值,則終止電子設(shè)備的引導。
19.如權(quán)利要求18所述的電子設(shè)備,其特征在于,非易失存儲器的預(yù)裝載程序部分包括機器指令,這些機器指令使處理器(a)對非易失存儲器實施散列技術(shù),從而產(chǎn)生存儲器散列值;(b)將存儲器散列值與預(yù)裝載程序部分中所包括的預(yù)期的存儲器散列值進行比較;以及,(c)如果存儲器散列值不等于預(yù)期的存儲器散列值,則終止電子設(shè)備的引導。
20.如權(quán)利要求19所述的電子設(shè)備,其特征在于,預(yù)期的存儲器散列值作為數(shù)字簽名被包括在非易失存儲器內(nèi),但在對非易失存儲器實施散列技術(shù)時被排除在外。
21.如權(quán)利要求20所述的電子設(shè)備,其特征在于,非易失存儲器的預(yù)裝載程序部分中的機器指令進一步使處理器驗證數(shù)字簽名,以確定預(yù)期的存儲器散列值。
22.如權(quán)利要求20所述的電子設(shè)備,其特征在于,非易失存儲器的預(yù)裝載程序部分中的機器指令進一步使處理器應(yīng)用預(yù)裝載程序部分中所包括的公共密鑰,以驗證數(shù)字簽名。
23.如權(quán)利要求18所述的電子設(shè)備,其特征在于,非易失存儲器的主要部分的至少一部分被進行加密;其中,非易失存儲器的預(yù)裝載程序部分包括機器指令,這些機器指令使處理器對被加密的非易失存儲器的主要部分的至少一部分進行解密,從而利用非易失存儲器的主要部分中所包括的機器指令使電子設(shè)備的引導繼續(xù)。
24.如權(quán)利要求18所述的電子設(shè)備,其特征在于,引導程序代碼固件元件被安排在電子設(shè)備的另一個部件內(nèi),并且,若不充分破壞其他部件而致使電子設(shè)備無法操作,就基本上無法在物理上接近該引導程序代碼固件元件。
25.如權(quán)利要求18所述的電子設(shè)備,其特征在于,另一個部件包括一個輔助處理器。
26.如權(quán)利要求18所述的電子設(shè)備,其特征在于,另一個部件包括以下的一種設(shè)備(a)圖形處理器;(b)音頻處理器;(c)輸入處理器;(d)輸出處理器;(e)通信處理器;以及,(f)數(shù)字信號處理器。
27.如權(quán)利要求18所述的電子設(shè)備,其特征在于,引導程序代碼固件元件被安排在處理器內(nèi)。
28.如權(quán)利要求18所述的電子設(shè)備,其特征在于,非易失存儲器的主要部分的至少一部分被進行加密;且非易失存儲器的預(yù)裝載程序部分包括(a)定義單向散列算法的機器指令;(b)用于對非易失存儲器的主要部分的所述至少一部分進行解碼的機器指令;(c)包括一個引導裝載程序的機器指令;以及,(d)至少一個公共密鑰。
29.如權(quán)利要求18所述的電子設(shè)備,其特征在于,電子設(shè)備包括一個游戲控制臺。
全文摘要
包括引導程序代碼的機器指令被埋在電子游戲控制臺的一個關(guān)鍵部件內(nèi),在那里,這些機器指令不容易被使用或修改。引導程序代碼對只讀存儲器(ROM)中的預(yù)裝載程序部分實施散列技術(shù),將結(jié)果與引導程序代碼中所保存的預(yù)期的散列值進行比較。預(yù)裝載程序進一步驗證引導過程,這對ROM中的代碼實施散列技術(shù),以便為代碼獲得一個散列值。按照為這個散列碼定義預(yù)期值的數(shù)字簽名值來驗證結(jié)果。若無法獲得任何預(yù)期的結(jié)果,則終止引導過程。由于引導程序代碼確認預(yù)裝載程序,并且預(yù)裝載程序確認ROM中的代碼的剩余部分,因此,該技術(shù)可用來確保用于引導設(shè)備的代碼還沒有被修改或取代。
文檔編號G06F9/30GK1553315SQ0314239
公開日2004年12月8日 申請日期2003年6月6日 優(yōu)先權(quán)日2003年6月6日
發(fā)明者D·莫蘭斯, J·蘭格, D·西蒙, 陳陵, J·D·貝納勒, D 莫蘭斯, 貝納勒 申請人:微軟公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
克东县| 泽州县| 如东县| 措美县| 孟连| 吴堡县| 麻阳| 赤壁市| 衡阳县| 河西区| 图片| 洛南县| 华蓥市| 阿图什市| 永春县| 垣曲县| 团风县| 嘉黎县| 泽普县| 伽师县| 潮安县| 张家界市| 辛集市| 浏阳市| 奉新县| 泰安市| 安图县| 奇台县| 西和县| 当阳市| 谢通门县| 长海县| 香港 | 印江| 侯马市| 汶上县| 石阡县| 九龙城区| 琼海市| 龙陵县| 广东省|