專利名稱:通過安全內(nèi)核設(shè)計劃分的安全策略的制作方法
技術(shù)領(lǐng)域:
本發(fā)明主要涉及在數(shù)據(jù)處理系統(tǒng)內(nèi)安全軟件運行。具體地,本發(fā)明涉及一種確保在數(shù)據(jù)處理系統(tǒng)中運行的應(yīng)用程序只來自信任來源的方法。
背景技術(shù):
操作系統(tǒng)或運行環(huán)境的主要任務(wù)之一就是保持計算機系統(tǒng)的安全性和穩(wěn)定性。理 想地,操作系統(tǒng)或運行環(huán)境應(yīng)該確保只有能夠被證明不會破壞系統(tǒng)安全性和穩(wěn)定性的“安 全”的應(yīng)用程序才被允許運行。但是,可計算性理論領(lǐng)域內(nèi)的計算機科學(xué)家和數(shù)學(xué)家們已知 曉多年的不幸事實是,要事先確定地預(yù)測出給定的程序是否“安全”是非常困難的,在很多 情況下是不可能的。為此,更為實際的解決方案是只允許運行被確信是安全的應(yīng)用程序??梢杂脙煞N基本方式建立這種“確信”。一種方式是通過檢查代碼本身來檢測安 全問題的某些標(biāo)志。這是由病毒掃描軟件采取的方法,其掃描尋找已知病毒的特征。這種 技術(shù)也被應(yīng)用在JAVA虛擬機的字節(jié)碼校驗方案中,其尋找表示不安全或損壞代碼的模式。 JAVA是由加州Santa Clara的Sun Microsystems Inc研發(fā)的一種面向?qū)ο蟮木幊陶Z言和 運行環(huán)境規(guī)范。另一種方式是只允許運行“信任”的應(yīng)用程序,也就是來自信任來源的應(yīng)用程序。 JAVA虛擬機也支持第二種方法,因為JAVA允許開發(fā)人員向JAVA代碼添加數(shù)字簽名,該數(shù)字 簽名可以由JAVA虛擬機在運行時進行校驗。JAVA虛擬機能夠被設(shè)置為只允許已經(jīng)由信任 來源數(shù)字簽署過的JAVA代碼來執(zhí)行某些安全性敏感的操作。因為JAVA字節(jié)碼是在虛擬機中運行,所以虛擬機能夠在將要運行可能有害的字 節(jié)碼時,“實時地”(on the fly)針對與給定操作相關(guān)聯(lián)的潛在安全威脅做出運行時的判 定。盡管這種能力是有利的,但是通過使用虛擬機帶來的額外的復(fù)雜性和計算開銷在某些 應(yīng)用程序中是不利的。而且,因為虛擬機是軟件,所以虛擬機必須將其(用于驗證數(shù)字簽名 的)密鑰存儲在軟件可訪問的存儲器中。用這種方式存儲密鑰的事實意味著密鑰可以像任 何其他的數(shù)據(jù)一樣遭到修改或替換。因此通過簡單地修改存儲的密鑰組就可以規(guī)避由JAVA 虛擬機施加的安全限制。因此,需要由一種高效而又非常安全的方法來確保只有信任的代碼能夠在計算機 系統(tǒng)中運行。本發(fā)明對該問題以及其他問題提供了一種解決方案,并且提供了優(yōu)于先前解 決方案的其他優(yōu)點。
發(fā)明內(nèi)容
因此,本發(fā)明提供了一種方法、計算機程序產(chǎn)品和數(shù)據(jù)處理系統(tǒng),用于確保在數(shù)據(jù) 處理系統(tǒng)中運行的應(yīng)用程序只能來自信任的來源。在一個優(yōu)選實施例中,安全初始化硬件 將安全內(nèi)核載入并解密到內(nèi)存中,其中安全內(nèi)核含有嵌入式密鑰對。獨立于安全內(nèi)核,含有 對應(yīng)于可信任軟件廠商的密鑰的“密鑰環(huán)”被保留,其中利用嵌入式密鑰對的私鑰數(shù)字地簽 署這些密鑰中的每一個。在通過安全內(nèi)核將應(yīng)用程序載入內(nèi)存運行時,安全內(nèi)核使用來自其嵌入式密鑰對的公鑰來驗證來自其密鑰環(huán)的廠商密鑰。然后,在已確定廠商密鑰的真實 性之后,使用廠商密鑰來驗證與應(yīng)用程序相關(guān)聯(lián)的公鑰的真實性。該應(yīng)用程序的公鑰隨后 被用于驗證應(yīng)用程序映像的完整性。為了使用戶可以運行來自獨立軟件開發(fā)方(他們沒有 其自身的廠商密鑰)的軟件,上述的廠商密鑰校驗可以作為一個選項被禁用。以上是概述內(nèi)容并因此必然包含細節(jié)的簡化、概括和省略;所以,本領(lǐng)域普通技術(shù) 人員應(yīng)該理解概述內(nèi)容只是說明性的而不是為了以任何方式加以限制。本發(fā)明完全由權(quán)利 要求定義的其他應(yīng)用、創(chuàng)造性特征和優(yōu)點將在下面闡述的非限制性的詳細說明中變得顯而 易見。
本領(lǐng)域普通技術(shù)人員通過參照附圖可以更好地理解本發(fā)明,并且其各種目標(biāo)、特 征和優(yōu)點也可以變得顯而易見,在附圖中圖1是示例性數(shù)據(jù)處理系統(tǒng)的框圖,其中可以實施本發(fā)明的優(yōu)選實施例;圖2是根據(jù)本發(fā)明優(yōu)選實施例的輔助處理單元的框圖;圖3是內(nèi)存映射,示出了在根據(jù)本發(fā)明優(yōu)選實施例實施的數(shù)據(jù)處理系統(tǒng)中的內(nèi)存 使用;圖4是用于在根據(jù)本發(fā)明優(yōu)選實施例實施的數(shù)據(jù)處理系統(tǒng)中使用的應(yīng)用程序400 的內(nèi)存示意圖;圖5-7是根據(jù)本發(fā)明優(yōu)選實施例的安全內(nèi)核的基本運行流程的流程圖表示;圖8是示出了在本發(fā)明的優(yōu)選實施例中用于確保驗證應(yīng)用程序代碼可信度的方 案的示意圖;圖9是在本發(fā)明優(yōu)選實施例中驗證應(yīng)用程序代碼可信度的過程的流程圖表示;圖10是在本發(fā)明優(yōu)選實施例中預(yù)先驗證信任應(yīng)用程序的過程的流程圖表示;以 及圖11是在本發(fā)明優(yōu)選實施例中禁用嚴格策略模式的可選過程的流程圖表示。
具體實施例方式以下內(nèi)容是為了提供本發(fā)明的一個示例的詳細說明而不應(yīng)被理解為限制了發(fā)明 自身。相反,很多變形均可落在由說明書后的權(quán)利要求確定的本發(fā)明的保護范圍之內(nèi)。圖1是示例性數(shù)據(jù)處理系統(tǒng)100的框圖,其中可以實施本發(fā)明的優(yōu)選實施例。數(shù) 據(jù)處理系統(tǒng)100包括在單個集成電路上含有若干個處理器核心的單片多處理器101。單片 多處理器101包括由內(nèi)部總線104連接的通用主處理單元102和用于執(zhí)行更多專門的加強 計算功能的若干個輔助處理單元(輔助處理單元110,112和114)。在單片多處理器101以 外的外部總線105將單片多處理器101與主內(nèi)存106和輔助存儲器108以及其他外圍設(shè)備 (未示出)相連。除了主內(nèi)存106以外,輔助處理單元110,112和114中的每一個都含有其自身的 局部內(nèi)存。這就允許輔助處理單元110,112和114在隔離模式中獨立于主處理單元102操 作,其中特定的輔助處理單元利用其局部內(nèi)存執(zhí)行計算而不會干擾主處理單元102。當(dāng)未處 于隔離模式時,輔助處理單元110,112和114可以允許主處理單元102訪問它們各自的局部內(nèi)存空間。在該優(yōu)選實施例中,主處理單元102包括用于內(nèi)存保護的硬件支持(在主內(nèi)存106中),但是輔助處理單元110,112和114并不含有在處于隔離模式時阻止對輔助處理 單元內(nèi)局部內(nèi)存的非法內(nèi)存訪問的內(nèi)存保護硬件。圖2中提供了根據(jù)本發(fā)明優(yōu)選實施例的輔助處理單元110的更加詳細的描述。輔 助處理單元110被連接至(單片多處理器101內(nèi)部的)內(nèi)部總線104,但是在其自身內(nèi)部也 包含它自己的單元內(nèi)總線222。輔助處理單元110包含主數(shù)據(jù)路徑220,其包括用于運行在 輔助處理單元110內(nèi)存儲的程序指令的功能單元、寄存器和控制邏輯。除了它的主數(shù)據(jù)路 徑220以外,輔助處理單元110還包含其自身的局部隨機存取存儲器(RAM) 224和永久性存 儲的存儲器228 (其可以包含也可以不包含非易失性存儲技術(shù),例如閃存存儲器),用于在 運行時段之間永久地存儲信息。輔助處理單元110的啟動由獨立于主數(shù)據(jù)路徑220的安全初始化硬件226操縱。 應(yīng)該注意到在本文中,術(shù)語“初始化”被寬松地用于表示輔助處理單元110的初始化,其整 體上不需要與數(shù)據(jù)處理系統(tǒng)100的初始化一起發(fā)生。例如,在本發(fā)明的優(yōu)選實施例中,輔助 處理單元110的初始化可以在輔助處理單元110每一次被帶入隔離模式中時發(fā)生,其可以 在實際系統(tǒng)重新初始化之間發(fā)生多次。因此,在本文中,“初始化硬件”是指用于初始化被用 于運行安全內(nèi)核的特定處理單元或數(shù)據(jù)路徑的硬件(在本文中介紹的優(yōu)選實施例的情況 下,其是輔助處理單元110)。但是,術(shù)語“初始化”的這種用法不應(yīng)被理解為將本發(fā)明的保護范圍限定為優(yōu)選實 施例中的特定硬件。例如,本發(fā)明基于加密的保護方案還可以被應(yīng)用于單數(shù)據(jù)路徑的處理 器(或“單處理器”),在此情況下,通過安全初始化硬件來初始化單條數(shù)據(jù)路徑實質(zhì)上就等 價于將數(shù)據(jù)處理系統(tǒng)整體上“熱初始化”或“重啟”。除了在初始化輔助處理單元110期間重啟和啟用主數(shù)據(jù)路徑220以外,安全初始 化硬件226還包含解密硬件,用于作為初始化過程的一部分將系統(tǒng)內(nèi)核加密的原版拷貝 (原版拷貝230)解密到局部RAM224中。用于解密原版拷貝230的解密密鑰被嵌入到安全 初始化硬件226中,以使其不能從主數(shù)據(jù)路徑220中(或者為此從單元內(nèi)總線222中)讀 取。這可以通過將密鑰安全地存儲在安全初始化硬件226內(nèi)部的非易失性存儲器中或者通 過將解密過程實際地硬連線到安全初始化硬件226的邏輯以使解密密鑰不被存儲而是被 暗中集成到解密邏輯內(nèi)而實現(xiàn)。一旦系統(tǒng)內(nèi)核已被解密,安全初始化硬件226觸發(fā)主數(shù)據(jù) 路徑220開始運行解密的安全內(nèi)核。解密的安全內(nèi)核隨后利用公鑰密碼和數(shù)字簽名驗證的 組合來提供基于軟件的保護形式,這種基于軟件的保護形式對于輔助處理單元110是局部 的并且可以在隔離模式中使用。在公鑰密碼中,分離的密鑰被用于加密和解密。每一方都有兩個密鑰,“公鑰”用于 加密,而“私鑰”用于解密用公鑰加密的消息。一方的公鑰是“公開”,其意義在于這一方可 以使該公鑰對于希望給該方發(fā)送加密消息的任何人都是可獲得的,而私鑰保持保密。即使 多方均可獲得相同的公鑰,但是只有私鑰可以被用于解密用公鑰加密的消息。換句話說,除 非獲得私鑰,否則要解密用公鑰加密的消息在計算上是不可行的。這與傳統(tǒng)的在其中將相 同的密鑰既用于加密又用于解密的密鑰加密系統(tǒng)形成了對比。最廣為人知并且使用最為廣 泛的公鑰加密系統(tǒng)可能是在美國專利4405829中介紹的Rivest-Shamir-Adleman或RSA加 密系統(tǒng)。公鑰密碼被廣泛地用于在互聯(lián)網(wǎng)上實現(xiàn)安全交易,因為它避免了被第三方竊聽。
盡管公鑰密碼對于信息保密是非常有用的,但是公鑰密碼不能防止偽造的或損壞的信息。由于公鑰可以被分配給其他人,并且任何擁有公鑰的人都可以加密只能用私鑰讀 取的消息,因此公鑰密碼無法使消息的接收方獲知收到的消息是否是真實消息或者是由其 聲稱源自的來源發(fā)出的。為此,公鑰密碼經(jīng)常要與其他的能夠被用于鑒別通信和驗證消息 完整性的密碼技術(shù)結(jié)合使用。數(shù)字簽名是一種對公鑰密碼的天然補充,其能夠被用于驗證 消息始發(fā)者的身份。借助數(shù)字簽名,消息的發(fā)送者就有了公鑰/私鑰對。當(dāng)發(fā)送者發(fā)送 消息時,發(fā)送者使用其私鑰和消息本身的內(nèi)容來計算能夠被附加至該消息的代碼。該代碼 就被稱為數(shù)字簽名。消息的接受者應(yīng)該持有發(fā)送者的公鑰,能夠?qū)⑵溆糜隍炞C附加于特 定消息的數(shù)字簽名是使用對應(yīng)于該公鑰的發(fā)送者私鑰簽署的。最早的數(shù)字簽名方案之一 是Rivest-Shamir-Adleman或RSA數(shù)字簽名方案,類似于RSA公鑰加密系統(tǒng),在美國專利 4405829中介紹了這種方案。本發(fā)明的優(yōu)選實施例廣泛應(yīng)用了公鑰密碼和數(shù)字簽名以提供數(shù)據(jù)保密,保持數(shù)據(jù) 的完整性,并阻止未經(jīng)授權(quán)的動作。但是,本領(lǐng)域普通技術(shù)人員應(yīng)該意識到,本發(fā)明的實施 并不取決于任何特定類型的加密系統(tǒng)或數(shù)字簽名方案的使用。任何當(dāng)前已知或?qū)硌邪l(fā)出 的加密系統(tǒng)或數(shù)字簽名方案均可在本發(fā)明的實施例中使用。圖3是內(nèi)存映射,示出了在根據(jù)本發(fā)明優(yōu)選實施例實施的數(shù)據(jù)處理系統(tǒng)中的內(nèi)存 使用。系統(tǒng)內(nèi)最有特權(quán)的軟件部分是安全內(nèi)核302,其主要功能是檢驗和鑒別駐留在內(nèi)核擴 展區(qū)域304中的其他軟件部分(包括內(nèi)核擴展)。內(nèi)核擴展為系統(tǒng)軟件提供主要功能并且 可以在有必要或有需要時被升級、替換或增加。另一方面,安全內(nèi)核302被賦予最小的功能 性并且應(yīng)該在數(shù)據(jù)處理系統(tǒng)的生存期期間保持不變。安全內(nèi)核302之所以“安全”,是因為 其敏感的內(nèi)部被屏蔽而免于被數(shù)據(jù)處理系統(tǒng)內(nèi)駐留的其他程序檢查或訪問。正如將要看到 的那樣,通過機密信息的選擇性刪除和密碼技術(shù)的謹慎使用的結(jié)合來保持這種安全性。專 門用于安全內(nèi)核302的特定拷貝的私鑰位于安全內(nèi)核302內(nèi)包含的內(nèi)部信息的敏感部分 中。在本發(fā)明的優(yōu)選實施例中,安全內(nèi)核302的私鑰專門用于特定芯片(以使得來自相同 制造商的相同類型和版本的另一塊芯片也仍然會具有不同的私鑰)。安全內(nèi)核302還具有 對應(yīng)于其私鑰的公鑰,但是公鑰(由于其是公鑰而)不需要被保密。安全內(nèi)核302內(nèi)包含 的信息的其他敏感部分可以包括其他的密鑰以及用于執(zhí)行被認為是特權(quán)操作的指令。只要輔助處理單元110由安全初始化硬件226初始化,即可將安全內(nèi)核302從原 版拷貝載入到內(nèi)存中。該原版拷貝以加密形式存儲。解密原版拷貝所需的解密密鑰被集 成在安全初始化硬件226內(nèi)(圖2)并且不可被軟件訪問。因此,只有在安全初始化硬件 226 (如上所述,在輔助處理單元110的初始化期間)被激活時才能將安全內(nèi)核302載入到 內(nèi)存中。這樣不僅可以將安全內(nèi)核302的敏感部分保密,而且還可以確保安全內(nèi)核302在 被載入到內(nèi)存中時是真實的并且沒有被篡改。應(yīng)用程序軟件被載入到應(yīng)用程序區(qū)域306內(nèi)并在此運行。因為在本發(fā)明的優(yōu)選實 施例中不存在硬件內(nèi)存保護方案,所以從應(yīng)用程序區(qū)域306運行的應(yīng)用程序可以自由訪問 內(nèi)存空間的其他部分,包括例如內(nèi)核擴展區(qū)域304和安全內(nèi)核區(qū)域302這樣的內(nèi)存區(qū)域。 但是,通過在將控制權(quán)轉(zhuǎn)交給駐留在應(yīng)用程序區(qū)域306中的應(yīng)用程序之前就從安全內(nèi)核區(qū) 域302和內(nèi)核擴展區(qū)域304刪除敏感消息,或者在有必要調(diào)用內(nèi)核擴展代碼時通過利用安 全初始化硬件來重載安全內(nèi)核302和任意的內(nèi)核擴展,即可實現(xiàn)內(nèi)存保護的效果。
如果駐留在應(yīng)用程序區(qū)域306內(nèi)的應(yīng)用程序要使用內(nèi)核服務(wù),那么應(yīng)用程序首先 將信息寫入郵箱區(qū)域308。該信息可以包括與請求的特定內(nèi)核服務(wù)相關(guān)的信息以及用于返 回控制權(quán)給應(yīng)用程序所必須的信息例如回調(diào)地址。一旦該信息已被寫入郵箱區(qū)域308,應(yīng)用 程序觸發(fā)安全初始化硬件226以重新初始化輔助處理單元110。這就使安全內(nèi)核302的最 新拷貝(包括其所有的敏感部分)在執(zhí)行任何內(nèi)核服務(wù)之前被載入。根據(jù)郵箱區(qū)域308內(nèi) 留下的指令,安全內(nèi)核302的敏感部分以及所有的內(nèi)核擴展在返回控制權(quán)給應(yīng)用程序之前 即被刪除。
類似的機制也被用于內(nèi)核擴展以防止特定的內(nèi)核擴展具有對安全內(nèi)核302的全 部機密的訪問權(quán)。安全內(nèi)核302的那些不需要被內(nèi)核擴展用于執(zhí)行任務(wù)的敏感部分在將控 制權(quán)交給內(nèi)核擴展之前就被安全內(nèi)核302刪除。用這種方式,安全內(nèi)核302能夠?qū)⑵淙?或僅僅一部分權(quán)限和職責(zé)委派給指定的內(nèi)核擴展。利用內(nèi)核擴展來執(zhí)行絕大多數(shù)系統(tǒng)軟件 任務(wù)允許系統(tǒng)軟件得到升級而不再必須修改安全內(nèi)核302。這就允許利用集成在安全初始 化硬件226內(nèi)的不可恢復(fù)的解密密鑰來解密安全內(nèi)核302的原版拷貝。由于安全內(nèi)核302 將不會再改變,即使升級或替換了其他的系統(tǒng)軟件,也不需要將解密密鑰(或?qū)?yīng)的加密 密鑰,假定是不同密鑰的話)存儲在安全初始化硬件以外的任何地方,或者如果解密過程 是硬連線到硬件邏輯內(nèi)的話,那么就不需要再將其存儲在任何地方。另外,永久性存儲區(qū)域310被提供用于允許應(yīng)用程序存儲永久性數(shù)據(jù)。永久性數(shù) 據(jù)是在一個或多個應(yīng)用程序的調(diào)用之間保持被存儲的數(shù)據(jù)。永久性數(shù)據(jù)的例子可以是數(shù)據(jù) 庫,或者在視頻游戲控制臺的情況下可以是游戲的高分記錄列表。如上所述,安全內(nèi)核302鑒別和檢驗數(shù)據(jù)處理系統(tǒng)中包括應(yīng)用程序和內(nèi)核擴展在 內(nèi)的其他軟件部分的完整性。圖4是用于在根據(jù)本發(fā)明優(yōu)選實施例實施的數(shù)據(jù)處理系統(tǒng)中 使用的應(yīng)用程序400的內(nèi)存示意圖。除了實際的可執(zhí)行代碼自身(代碼映像402)以外,應(yīng) 用程序400還包括公鑰404,公鑰404可以被用于驗證應(yīng)用程序400的數(shù)字簽名406。在本 發(fā)明的優(yōu)選實施例中,公鑰404專門用于特定的應(yīng)用程序名稱,但不專門用于該應(yīng)用程序 的特定版本,以使同一應(yīng)用程序的多個版本都具有相同的公鑰404。另外,根據(jù)代碼映像402計算出的密碼哈希值408被提供用于允許驗證應(yīng)用程序 400的完整性。哈希值是這樣的數(shù)值,該數(shù)值是將較大的數(shù)據(jù)塊映射為有限位數(shù)的函數(shù)的結(jié) 果。利用單向函數(shù)(OWF)來計算密碼哈希值,單向函數(shù)是一種在計算上極難計算出其反函 數(shù)的函數(shù)。密碼哈希值的一個例子是公知的由美國的政府機構(gòu)即Nationallnstitute of Standards and Technology (NIST)研發(fā)的SHA-I算法(安全哈希算法1)。其他的密碼哈 希算法(例如SHA-256,MD5[MessageDigest 5]以及多種其他算法)都是本領(lǐng)域內(nèi)公知的 并且均可被沒有限制地應(yīng)用于本發(fā)明而且并不背離本發(fā)明的保護范圍和精神。為了驗證應(yīng) 用程序400的完整性,代碼映像402的密碼哈希值可以由安全內(nèi)核302算出,并與作為應(yīng)用 程序的一部分存儲的密碼哈希值408相比較。如果這兩個數(shù)值相符,那么應(yīng)用程序的完整 性就沒有遭到破壞(也就是說,代碼映像402沒有被篡改或被損壞)。在本發(fā)明的一個實施例中,密碼哈希值沒有被直接存儲在應(yīng)用程序400中(如密 碼哈希值408),而是被編碼成數(shù)字簽名406。更具體地,在該特定的實施例中,數(shù)字簽名406 是根據(jù)代碼映像402算出的密碼哈希值的加密拷貝。在此情況下,公鑰404被用于解密數(shù) 字簽名406以獲得密碼哈希值,隨后可以將其與根據(jù)代碼映像402算出的計算密碼哈希值相比較。由于公鑰404被用于驗證簽名406,因此公鑰404不是偽造的就很重要。所以,根據(jù)公鑰404計算出的數(shù)字簽名(公鑰簽名410)也被包含在應(yīng)用程序400中。該簽名可以 由安全內(nèi)核302利用一個或多個對安全內(nèi)核302來說已知的預(yù)定公鑰進行驗證。最后,附加的存儲空間412被提供用于創(chuàng)建特定于應(yīng)用程序的機密和特定于應(yīng)用 程序版本的機密。應(yīng)用程序可能會希望存儲或傳輸只能被該應(yīng)用程序的其他版本或同一版 本的該應(yīng)用程序的其他實例看到的信息。在本發(fā)明的優(yōu)選實施例中,安全內(nèi)核302在載入 例如應(yīng)用程序400的應(yīng)用程序時生成特定于應(yīng)用程序的機密和特定于應(yīng)用程序版本的機 密,它們被存儲在存儲區(qū)域412內(nèi)。通過計算安全內(nèi)核302的私鑰(私鑰專門用于安全內(nèi) 核302的拷貝)和公鑰404的單向函數(shù)來生成特定于應(yīng)用程序的機密,公鑰404專門用于 應(yīng)用程序(而非具體版本)。由此,在安全內(nèi)核302的特定拷貝下運行的任意版本的應(yīng)用程 序的每一個實體都將從安全內(nèi)核302接收到相同的特定于應(yīng)用程序的機密。另一方面,通過計算安全內(nèi)核302的私鑰和應(yīng)用程序映像的密碼哈希值(可能但 不是必須與哈希值408相同)的單向函數(shù)來生成特定于應(yīng)用程序版本的機密。這樣就得到 了不僅專門用于應(yīng)用程序名稱和安全內(nèi)核實例,而且還專門用于應(yīng)用程序自身的特定版本 的機密。這些特定于應(yīng)用程序的機密和特定于應(yīng)用程序版本的機密可以被用于對只能被 理解成特定的應(yīng)用程序名稱或特定的應(yīng)用程序版本的信息(例如用于存儲在非易失性存 儲器310中)進行密鑰(對稱密鑰)加密。而且,因為這些機密是利用只對安全內(nèi)核302 的特定拷貝已知的私鑰信息計算得出的,(以不同的私鑰運行安全內(nèi)核302的兩個不同拷 貝的)兩個不同的處理器將會算出不同的特定于應(yīng)用程序的機密和特定于應(yīng)用程序版本 的機密,所以使得整個加密方案更難以破解。在載入時由安全內(nèi)核302算出機密的附加好 處在于機密自身不需要被永久地存儲。在應(yīng)用程序終止時,機密即可被安全地刪除,這是因 為安全內(nèi)核302在下一次運行應(yīng)用程序時可以(用相同的值)重新計算機密。內(nèi)核擴展與應(yīng)用程序的類似之處在于其也包括數(shù)字簽名,因此它們也可以用與圖 4中的應(yīng)用程序400基本相同的方式組織。但是,內(nèi)核擴展和應(yīng)用程序之間的一個重要區(qū)別 是內(nèi)核擴展以加密的形式存儲,以使得只有利用安全內(nèi)核302的私鑰才能將其解密,所述 私鑰自身只有在緊接(利用安全初始化硬件進行的)安全初始化之后載入并運行安全內(nèi)核 302時才可獲得。公鑰密碼使得可以更新、替換或添加內(nèi)核擴展而并不破壞安全內(nèi)核302的 私鑰。為了加密新的內(nèi)核擴展,內(nèi)核擴展的來源(制造商、出版商、經(jīng)銷商等)只需被提供 安全內(nèi)核302的公鑰(與私鑰不同,公鑰不是機密的),由此使得只有安全內(nèi)核302的這個 拷貝(具有其特有的私鑰)能解密該內(nèi)核擴展。如上所述,安全內(nèi)核302可以將其一種或多種權(quán)限和職責(zé)委派給內(nèi)核擴展。安全 內(nèi)核302通過在將控制權(quán)交給內(nèi)核擴展時保留(也就是不刪除)安全內(nèi)核302需要用于執(zhí) 行特定特權(quán)任務(wù)的敏感部分來做到這一點。安全內(nèi)核302通過檢查用于驗證內(nèi)核擴展數(shù)字 簽名的公鑰來確定要保留哪些部分。安全內(nèi)核302識別出用于簽署內(nèi)核擴展的“特權(quán)公鑰” 的預(yù)定集合。每一個特權(quán)公鑰都與一個特定等級的特權(quán)相關(guān)聯(lián),也就是說,每一個特權(quán)公鑰 在安全內(nèi)核302將控制權(quán)交給用該特權(quán)公鑰簽署的內(nèi)核擴展時都對應(yīng)于安全內(nèi)核302要被 保留的一個或多個敏感部分。因此,根據(jù)由內(nèi)核擴展的公鑰指定的特權(quán)等級,可以將安全內(nèi)核302的全部或僅僅部分機密/特權(quán)委派給內(nèi)核擴展。圖5-7 —起示出了根據(jù)本發(fā)明優(yōu)選實施例實施的安全內(nèi)核的基本運行流程的多頁流程圖表示。圖5-7示出了如何使優(yōu)選實施例的各種加密特征在安全內(nèi)核的指導(dǎo)下一起 工作,以建立特權(quán)和無特權(quán)程序代碼系統(tǒng)而無需使用專用的保護硬件。在轉(zhuǎn)到圖5-7中的 具體內(nèi)容之前,首先應(yīng)該注意到的是為了簡化圖示,每一個數(shù)字簽名和哈希值驗證在此都 被表示處理步驟(矩形)而不是決策(菱形),盡管實質(zhì)上這些動作中的每一個都涉及關(guān) 于檢驗或驗證是成功還是失敗的確定。應(yīng)該理解在以下的整個說明內(nèi)容中,圖5-7中的任 何驗證或檢驗動作的失敗都會觸發(fā)錯誤或異常狀態(tài),其將中斷圖5-7中示出的正常運行流 程。因此,以下介紹的每一次檢驗或驗證都應(yīng)該被理解為暗含了轉(zhuǎn)移到關(guān)于檢驗或驗證失 敗的錯誤狀態(tài)的決策步驟。現(xiàn)轉(zhuǎn)至圖5,當(dāng)安全初始化硬件226初始化或重新初始化輔助處理單元110時(如 上所述),在輔助處理單元110的主數(shù)據(jù)路徑開始處理指令之前,安全初始化硬件將安全內(nèi) 核從加密的原版拷貝解密到處理器可訪問的內(nèi)存中(方塊500)。一旦安全內(nèi)核已被解密, 安全初始化硬件啟動數(shù)據(jù)處理系統(tǒng)的主數(shù)據(jù)路徑,隨后其開始運行安全內(nèi)核(方塊501)。安全內(nèi)核隨后檢查郵箱區(qū)域308以確定應(yīng)該在初始化之后采取什么動作,例如載 入/執(zhí)行特定的內(nèi)核擴展或?qū)⒖刂茩?quán)交還給觸發(fā)熱初始化的應(yīng)用程序(方塊502)。另外, 檢查郵箱區(qū)域308允許安全內(nèi)核確定是否發(fā)生了熱初始化或冷初始化。接下來做出關(guān)于是 否應(yīng)該載入內(nèi)核擴展的決定(方塊504)。如果要載入(方塊504:是),那么安全內(nèi)核利用 安全內(nèi)核的私鑰將所需的內(nèi)核擴展解密到處理器可訪問的內(nèi)存中(方塊506)。利用對安全 內(nèi)核來說已知的(也就是存儲在安全內(nèi)核的“密鑰環(huán)”中的)預(yù)定公鑰,所述安全內(nèi)核檢驗 與內(nèi)核擴展一起提供的公鑰的數(shù)字簽名(方塊507)。安全內(nèi)核隨后利用內(nèi)核擴展的公鑰檢 驗內(nèi)核擴展自身的數(shù)字簽名(方塊508)。接下來,通過計算內(nèi)核擴展的哈希值并將算出的 哈希值與隨內(nèi)核擴展一起提供的哈希值相比較,安全內(nèi)核驗證所用內(nèi)核擴展的完整性。如果內(nèi)核擴展通過了所有的這些檢驗/驗證,那么就做出關(guān)于安全內(nèi)核的哪些敏 感部分應(yīng)該在將控制權(quán)交給內(nèi)核擴展之前被刪除或保留的決定(方塊512)。如上所述,該 決定是以哪一個公鑰被用于簽署內(nèi)核擴展為基礎(chǔ),每一個公鑰對應(yīng)于在將控制權(quán)交給用該 公鑰簽署的內(nèi)核擴展之前要被保留的一組敏感部分(或者等價地,對應(yīng)于應(yīng)該被刪除的敏 感部分)。一旦確定應(yīng)該保留安全內(nèi)核的哪些敏感部分,安全內(nèi)核其余的敏感部分即被刪除 (方塊514),然后安全內(nèi)核就將控制權(quán)交給載入的內(nèi)核擴展(方塊516)。在從運行載入的內(nèi)核擴展返回到運行安全內(nèi)核時(方塊516之后),或者如果沒有 載入內(nèi)核擴展(方塊504 否),則做出關(guān)于是否應(yīng)該將新的應(yīng)用程序代碼載入內(nèi)存以供運 行的決定(方塊518)。如果要載入(方塊518 是),則應(yīng)用程序代碼即被載入處理器可訪 問的內(nèi)存中(方塊520)。隨后利用對于安全內(nèi)核來說已知的預(yù)定公鑰對新載入的應(yīng)用程序 代碼的公鑰的簽名進行檢驗(方塊521)。隨后利用應(yīng)用程序的經(jīng)過檢驗的公鑰對應(yīng)用程序 自身的簽名進行檢驗(方塊522)。接下來,通過計算應(yīng)用程序的哈希值并將算出的哈希值 與隨應(yīng)用程序一起提供的哈希值相比較來驗證應(yīng)用程序的完整性(方塊524)。一旦應(yīng)用程序已被檢驗和驗證,安全內(nèi)核就通過根據(jù)安全內(nèi)核私鑰和應(yīng)用程序公 鑰計算單向函數(shù),從而生成特定于應(yīng)用程序的機密(方塊526)。安全內(nèi)核還通過根據(jù)安全 內(nèi)核私鑰和由應(yīng)用程序自身的各字節(jié)算出的哈希值計算單向函數(shù),從而生成特定于應(yīng)用程序版本的機密(方塊528)。這些機密由安全內(nèi)核存儲在內(nèi)存中以使其可被載入的應(yīng)用程序 (例如在應(yīng)用程序的機密空間412中)訪問。在已由安全內(nèi)核算出特定于應(yīng)用程序的機密和特定于應(yīng)用程序版本的機密之后,安全內(nèi)核就刪除自身的敏感部分(包括其私鑰、特權(quán)代碼部分以及任意其他的安全內(nèi)核機 密)(方塊530)。安全內(nèi)核隨后將控制權(quán)完全轉(zhuǎn)交(轉(zhuǎn)移)給應(yīng)用程序(方塊532)(直到 下一次安全初始化之前都不再通過安全內(nèi)核進行進一步的處理)。如果未載入新的應(yīng)用程 序(方塊518:否),那么安全內(nèi)核就刪除自身的敏感部分(方塊534),然后將控制權(quán)交給 郵箱區(qū)域308內(nèi)指示的應(yīng)用程序代碼地址(也就是,啟動觸發(fā)安全內(nèi)核運行的熱初始化的 應(yīng)用程序)(方塊536)。在圖5-7中以流程圖形式示出的過程包括驗證載入的應(yīng)用程序的真實性和完整 性,但是,如圖所示,并不包括確保應(yīng)用程序?qū)嶋H上來自可信任來源的任何機制。圖8中介 紹了用于實現(xiàn)該目標(biāo)的附加機制。在圖8中,安全內(nèi)核800被示出為具有嵌入式內(nèi)核專用公鑰802 (與以上結(jié)合方塊 521提及的密鑰相同)。除了嵌入式公鑰802以外,安全內(nèi)核800還具有對多個與廠商相關(guān) 的公鑰(密鑰804、806和808)的訪問權(quán),這些公鑰未被嵌入在安全內(nèi)核中,但是仍然可供 其訪問。利用與嵌入式內(nèi)核專用公鑰802相對應(yīng)的嵌入式私鑰簽署每一個公鑰804、806和 808 (以使密鑰802能夠檢驗密鑰804、806和808的簽名)。例如,密鑰804與簽名812相 關(guān)聯(lián),可以利用安全內(nèi)核公鑰802檢驗該簽名。公鑰804、806和808對應(yīng)于可信任的軟件 廠商。來自這些可信任廠商之一的應(yīng)用程序(例如應(yīng)用程序816)將包含其自身的應(yīng)用 程序?qū)S妹荑€(例如,應(yīng)用程序?qū)S妹荑€818)。這是與以上結(jié)合方塊522提及的相同的應(yīng) 用程序?qū)S妹荑€。由于應(yīng)用程序816與對應(yīng)于公鑰804的可信任廠商相關(guān)聯(lián),因此利用與公 鑰804相關(guān)聯(lián)的私鑰(由該廠商持有)簽署該應(yīng)用程序?qū)S妹荑€818。該簽名(簽名820) 因此可以利用廠商專用公鑰804進行檢驗。由此,就形成了一條從安全內(nèi)核密鑰802到應(yīng) 用程序密鑰818的“信任鏈”。另一方面,在應(yīng)用程序來自不信任來源的情況下,安全內(nèi)核800將不具有對應(yīng)的 可以用于檢驗應(yīng)用程序密鑰的廠商專用密鑰。因此,不信任應(yīng)用程序的應(yīng)用程序?qū)S妹荑€ 的檢驗就會失敗。安全內(nèi)核800可以因此被設(shè)置為處于“嚴格策略”,在嚴格策略中,只有那 些來自于可信任廠商的應(yīng)用程序才被允許運行。在優(yōu)選實施例中,該“嚴格策略”能夠作為 選項被激活,以使得如果禁用該選項,那么安全內(nèi)核800使用內(nèi)核密鑰802來檢驗應(yīng)用程序 專用密鑰的簽名。當(dāng)然,這要求使用安全內(nèi)核的密鑰對簽署應(yīng)用程序?qū)S妹荑€,而不是用廠 商的密鑰對簽署應(yīng)用程序?qū)S妹荑€。圖9是在本發(fā)明優(yōu)選實施例中驗證應(yīng)用程序代碼可信度的基本過程的流程圖表 示。如果“嚴格策略”被激活(方塊900:是),那么安全內(nèi)核首先利用其自身的公鑰來檢驗 與應(yīng)用程序廠商相關(guān)聯(lián)的廠商密鑰的簽名(方塊902)。如果該步驟成功,那么隨后就將廠 商密鑰用于檢驗與應(yīng)用程序自身捆綁在一起的應(yīng)用程序?qū)S妹荑€的簽名(方塊904)。最 后,經(jīng)過檢驗的應(yīng)用程序?qū)S妹荑€被用于像圖5-7中那樣在應(yīng)用程序運行之前驗證其自身 的完整性(方塊906)。另一方面,如果嚴格策略已被禁用(方塊900 否),那么內(nèi)核的公鑰被用于在驗證應(yīng)用程序的完整性(方塊906)之前直接檢驗應(yīng)用程序?qū)S妹荑€(方塊908)。無論何時開始安裝應(yīng)用程序,通過使用“預(yù)先檢驗”技術(shù)可避免與該檢驗過程相關(guān) 聯(lián)的部分計算開銷。圖10是根據(jù)本發(fā)明優(yōu)選實施例執(zhí)行預(yù)先檢驗過程的流程圖表示。當(dāng) 開始在數(shù)據(jù)處理系統(tǒng)內(nèi)安裝應(yīng)用程序時,安全內(nèi)核使用其自身的公鑰來檢驗與應(yīng)用程序廠 商相關(guān)聯(lián)的廠商密鑰的簽名(方塊1002)。如果該步驟成功,那么隨后將廠商密鑰用于檢驗 與應(yīng)用程序自身捆綁在一起的應(yīng)用程序?qū)S妹荑€的簽名(方塊1004)。最后,如果這兩個 檢驗步驟都成功,那么安全內(nèi)核就利用其自身的密鑰對重新簽署應(yīng)用程序?qū)S妹荑€(方塊 1006)。一旦已經(jīng)執(zhí)行了該預(yù)先檢驗,直接利用安全內(nèi)核公鑰檢驗每一個應(yīng)用程序的應(yīng)用 程序?qū)S妹荑€,就像嚴格策略已被禁用一樣。(換句話說,只需執(zhí)行圖9中的方塊908和 906)。這就減少了在每一次載入應(yīng)用程序時必須要執(zhí)行的個體簽名檢驗的數(shù)量。以圖11的流程圖形式介紹了實施可撤銷的“嚴格策略”選項的一種可選方法,其 消除了如圖9中示出的對于“嚴格”和“非嚴格”(或“開放”)策略模式進行單獨檢驗處理 的需要。在該方法中,定義了與眾不同的“全局密鑰對”(參見圖8中的全局公鑰808),其 中全局密鑰對的公鑰和私鑰都是公眾可獲得的。在該方案中,利用全局密鑰簽署所有不與 廠商專用密鑰相關(guān)聯(lián)的應(yīng)用程序?qū)S霉€。例如,在圖8中,應(yīng)用程序822(例如其可以是 免費軟件或開源軟件)具有應(yīng)用程序?qū)S妹荑€824,其是利用對應(yīng)于全局公鑰808的私鑰簽 署的(簽名824)。隨后如圖11中所示地激活和禁用“嚴格策略”模式。如果要激活“嚴格策略”模 式(方塊1100),那么就從安全內(nèi)核800的廠商專用密鑰的密鑰環(huán)中去除全局密鑰808 (方 塊1102)。另一方面,如果要禁用“嚴格策略”(由此激活“開放策略”模式),那么就將全局 密鑰808添加至安全內(nèi)核800的廠商專用密鑰的密鑰環(huán)(方塊1104)。一旦已經(jīng)執(zhí)行了圖11中所示的過程,所有的后續(xù)檢驗就可以像在“嚴格策略”模 式下那樣進行(也就是圖9中的方塊902、904和906)??梢岳萌止€808檢驗沒有與 其相關(guān)聯(lián)的廠商專用密鑰的應(yīng)用程序,而可以通過廠商專用密鑰檢驗?zāi)切┐嬖趶S商專用密 鑰的應(yīng)用程序。本發(fā)明的優(yōu)選實施方式之一是計算機程序,也就是指令(程序代碼)集或代碼模 塊中的其他功能性描述素材,它們例如可以駐留在計算機的隨機存取存儲器中。直到被計 算機請求之前,指令集都可以被存儲在另一個計算機存儲器中,例如存儲在硬盤驅(qū)動器或 可移動存儲器例如光盤(用于最終在CD ROM中使用)或軟盤(用于最終在軟盤驅(qū)動器中 使用)中,或者通過因特網(wǎng)或其他計算機網(wǎng)絡(luò)下載。因此,本發(fā)明可以被實施為用于在計算 機中使用的計算機程序產(chǎn)品。另外,盡管介紹的各種方法可以通過軟件選擇性地激活或重 構(gòu)的通用計算機中方便地實施,但是本領(lǐng)域普通技術(shù)人員應(yīng)該意識到這些方法也可以在硬 件、固件或者構(gòu)造用于執(zhí)行所需方法步驟的更為專用的裝置中實現(xiàn)。功能性描述素材是給 機器賦予功能性的信息。功能描述素材包括但不限于計算機程序、指令、規(guī)則、事實、可計算 函數(shù)的定義、對象和數(shù)據(jù)結(jié)構(gòu)。盡管已經(jīng)圖示并介紹了本發(fā)明的特定實施例,但是對本領(lǐng)域普通技術(shù)人員顯而易見的是根據(jù)本文中的教導(dǎo),可以進行修改和變形而并不背離本發(fā)明及其更廣泛的應(yīng)用。因 此,所附權(quán)利要求是用于在其范圍內(nèi)涵蓋處于本發(fā)明實質(zhì)和保護范圍內(nèi)的所有這樣的修改和變形。而且,應(yīng)該理解本發(fā)明僅由所附權(quán)利要求限定。本領(lǐng)域普通技術(shù)人員應(yīng)該理解如果在介紹的權(quán)利要求要素中想要有具體數(shù)字,那么這種意圖將在權(quán)利要求中進行清楚地敘 述,而在沒有這種敘述時就意味著不存在這種限定。對于有助于理解的非限制性示例,以下 所附權(quán)利要求中包含了介紹性短語“至少一個”和“一個或多個”的使用以介紹權(quán)利要求要 素。但是,這些短語的使用不應(yīng)該被解釋為意味著由不定冠詞“一”或“一個”介紹的權(quán)利 要求要素就將包含這些被介紹的權(quán)利要求要素的任何特定權(quán)利要求限制為只含有一個這 種元素的發(fā)明,即使在同一權(quán)利要求包括介紹性短語“一個或多個”或“至少一個”以及不 定冠詞例如“一”或“一個”時也是如此,該原則對于權(quán)利要求中定冠詞的使用也同樣適用。 在權(quán)利要求中使用了詞語“或”時,使用的是它的包含性意義(也就是“A和/或B”而不是 “A或B 二者擇一”)。
權(quán)利要求
一種計算機實施的處理數(shù)據(jù)的方法,所述方法包括由計算機利用初始化硬件對存儲到供處理器數(shù)據(jù)路徑訪問的內(nèi)存中的安全內(nèi)核的加密拷貝進行解密,其中安全內(nèi)核含有安全內(nèi)核密鑰;以及由計算機運行從所述內(nèi)存訪問的安全內(nèi)核,其中所述運行包括利用安全內(nèi)核密鑰檢驗與廠商相關(guān)的密鑰的數(shù)字簽名,其中所述與廠商相關(guān)的密鑰與軟件廠商相關(guān)聯(lián);以及利用與廠商相關(guān)的密鑰檢驗與應(yīng)用程序相關(guān)的密鑰的數(shù)字簽名,其中與應(yīng)用程序相關(guān)的密鑰與軟件應(yīng)用程序相關(guān)聯(lián)。
2.如權(quán)利要求1所述的方法,其中與應(yīng)用程序相關(guān)的密鑰與軟件應(yīng)用程序共同存儲。
3.如權(quán)利要求1或2所述的方法,其中初始化硬件獨立于處理器數(shù)據(jù)路徑操作。
4.如權(quán)利要求1、2或3所述的方法,進一步包括 確定對與應(yīng)用程序相關(guān)的密鑰的檢驗是否成功;響應(yīng)于對與應(yīng)用程序相關(guān)的密鑰檢驗成功的確定,利用與安全內(nèi)核相關(guān)聯(lián)的簽署密鑰 生成與應(yīng)用程序相關(guān)的密鑰的新簽名。
5.如權(quán)利要求4所述的方法,其中簽署密鑰是密鑰對中的私鑰,在所述密鑰對中,所述 安全內(nèi)核密鑰是對應(yīng)的公鑰。
6.如權(quán)利要求1至5中的任意一項所述的方法,進一步包括 利用與應(yīng)用程序相關(guān)的密鑰驗證軟件應(yīng)用程序的數(shù)字簽名。
7.如權(quán)利要求1至6中的任意一項所述的方法,進一步包括只有在利用與廠商相關(guān)的密鑰對與應(yīng)用程序相關(guān)的密鑰的數(shù)字簽名進行的所述檢驗 成功的情況下,才運行軟件應(yīng)用程序。
8.一種在實體計算機可讀介質(zhì)內(nèi)用于由具有處理器數(shù)據(jù)路徑和專用初始化硬件的計 算機運行的計算機程序產(chǎn)品代碼,所述計算機程序產(chǎn)品代碼包括加密內(nèi)核,其中加密內(nèi)核適用于被專用的初始化硬件解密為解密形式并由處理器數(shù)據(jù) 路徑以解密形式運行,所述加密內(nèi)核包括 安全內(nèi)核密鑰;用于利用安全內(nèi)核密鑰檢驗與廠商相關(guān)的密鑰的數(shù)字簽名的指令,其中與廠商相關(guān)的 密鑰與軟件廠商相關(guān)聯(lián);以及用于利用與廠商相關(guān)的密鑰檢驗與應(yīng)用程序相關(guān)的密鑰的數(shù)字簽名的指令,其中與應(yīng) 用程序相關(guān)的密鑰與軟件應(yīng)用程序相關(guān)聯(lián)。
9.如權(quán)利要求8所述的計算機程序產(chǎn)品,其中與應(yīng)用程序相關(guān)的密鑰與軟件應(yīng)用程序 共同存儲。
10.如權(quán)利要求8或9所述的計算機程序產(chǎn)品,其中初始化硬件獨立于處理器數(shù)據(jù)路徑 操作。
11.如權(quán)利要求8、9或10所述的計算機程序產(chǎn)品,進一步包括 用于確定對與應(yīng)用程序相關(guān)的密鑰的檢驗是否成功的指令;用于響應(yīng)于對與應(yīng)用程序相關(guān)的密鑰檢驗成功的確定,利用與安全內(nèi)核相關(guān)聯(lián)的簽署 密鑰生成與應(yīng)用程序相關(guān)的密鑰的新簽名的指令。
12.如權(quán)利要求11所述的計算機程序產(chǎn)品,其中簽署密鑰是密鑰對中的私鑰,在所述密鑰對中,所述安全內(nèi)核密鑰是對應(yīng)的公鑰。
13.如權(quán)利要求8至12中的任意一項所述的計算機程序產(chǎn)品,進一步包括 利用與應(yīng)用程序相關(guān)的密鑰驗證軟件應(yīng)用程序的數(shù)字簽名。
14.如權(quán)利要求8至13中的任意一項所述的計算機程序產(chǎn)品,進一步包括用于只有在利用與廠商相關(guān)的密鑰對與應(yīng)用程序相關(guān)的密鑰的數(shù)字簽名進行的所述 檢驗成功的情況下,開始運行軟件應(yīng)用程序的指令。
15.一種數(shù)據(jù)處理系統(tǒng),包括 初始化硬件;處理器數(shù)據(jù)路徑;可供處理器數(shù)據(jù)路徑和初始化硬件訪問的內(nèi)存;以及 非易失性存儲器,包含具有一個或多個敏感部分的安全內(nèi)核的加密拷貝,其中 初始化硬件將加密拷貝解密到內(nèi)存中,處理器數(shù)據(jù)路徑運行來自內(nèi)存的安全內(nèi)核以執(zhí) 行如下動作,所述動作包括利用安全內(nèi)核密鑰檢驗與廠商相關(guān)的密鑰的數(shù)字簽名,其中與廠商相關(guān)的密鑰與軟件 廠商相關(guān)聯(lián);以及利用與廠商相關(guān)的密鑰檢驗與應(yīng)用程序相關(guān)的密鑰的數(shù)字簽名,其中與應(yīng)用程序相關(guān) 的密鑰與軟件應(yīng)用程序相關(guān)聯(lián)。
全文摘要
公開了一種方法、計算機程序產(chǎn)品和數(shù)據(jù)處理系統(tǒng),用于確保在數(shù)據(jù)處理系統(tǒng)中運行的應(yīng)用程序只能來自可信任來源。在一個優(yōu)選實施例中,安全操作內(nèi)核保留含有對應(yīng)于可信任軟件廠商的密鑰的“密鑰環(huán)”。安全內(nèi)核使用廠商密鑰來驗證給定的應(yīng)用程序是由經(jīng)核準(zhǔn)的廠商簽署。為了使用戶可以運行來自獨立軟件開發(fā)方的軟件,管理員用戶可以將上述的廠商密鑰校驗作為一個選項而禁用。
文檔編號G06F21/00GK101816004SQ200880110014
公開日2010年8月25日 申請日期2008年9月22日 優(yōu)先權(quán)日2007年10月2日
發(fā)明者V·澤巴斯蓋, 村瀨正名, 清水寬和, 阪本正治 申請人:國際商業(yè)機器公司