專利名稱:自舉具有冗余可信平臺模塊的可信服務器的方法和系統(tǒng)的制作方法
技術領域:
本發(fā)明涉及一種改進的數(shù)據(jù)處理系統(tǒng),具體涉及一種用于使用密碼技術的數(shù)據(jù)存儲保護的方法和裝置。
背景技術:
多數(shù)數(shù)據(jù)處理系統(tǒng)包括需要保護的敏感數(shù)據(jù)和敏感操作。例如,需要保護配置信息的完整性以防非法的修改,同時需要保護諸如口令文件的其他信息以防非法公開。作為另一個示例,一個數(shù)據(jù)處理系統(tǒng)需要能夠可靠地向其他數(shù)據(jù)處理系統(tǒng)識別其本身。
給定的數(shù)據(jù)處理系統(tǒng)的操作員可以使用許多不同類型的安全機制來保護所述數(shù)據(jù)處理系統(tǒng)。例如,在數(shù)據(jù)處理系統(tǒng)上的操作系統(tǒng)可以提供各種軟件機制以保護敏感數(shù)據(jù),諸如各種驗證和授權方案,而某些硬件設備和軟件應用可以依賴于硬件機制來保護敏感數(shù)據(jù),諸如硬件安全令牌(token)和生物統(tǒng)計學傳感器設備。
但是,數(shù)據(jù)處理系統(tǒng)的數(shù)據(jù)及其操作的完整性圍繞著信任(trust)問題。如果另一個實體相對于特定數(shù)據(jù)項或特定操作具有用于建立與數(shù)據(jù)處理系統(tǒng)的信任的某種方式,則所述實體可以驗證或接受數(shù)據(jù)處理系統(tǒng)的數(shù)據(jù)和操作。
因此,用于保護數(shù)據(jù)處理系統(tǒng)的能力受限于在數(shù)據(jù)處理系統(tǒng)內建立或根植信任的方式。為了解決保護數(shù)據(jù)處理系統(tǒng)的問題,一個公司集團已經形成了可信計算集團(TCG)來開發(fā)和推廣用于可信計算的開放標準和規(guī)范。按照所述可信計算集團的規(guī)范,在給定的數(shù)據(jù)處理系統(tǒng)內的信任或在數(shù)據(jù)處理系統(tǒng)和另一個實體之間的信任基于在已經被稱為可信平臺模塊(TPM)的數(shù)據(jù)處理系統(tǒng)內的硬件部件的存在。
可信平臺模塊物理上保護特定的密鑰數(shù)據(jù)安全。每個可信的平臺模塊在制造時是唯一的。如果一個可信平臺模塊故障,則使得由所述設備保護的密鑰材料不可用。
當前的可信平臺架構著重于低成本安全模塊,它們被捆綁到單個系統(tǒng),諸如臺式計算機或便攜計算機。雖然這些低成本安全模塊不是必然容易故障,但是在臺式計算機內的安全模塊的故障一般比在高性能服務器內的類似安全模塊的故障具有成本更低和勞動密集程度更低的后果,它們經常被制造為具有冗余的能力,以便避免不可接受的單個故障點。
因此,具有用于改善可信平臺模塊的可用性的機制是有益的。允許在保證系統(tǒng)可用性的同時使用低成本可信平臺模塊尤其有益。
發(fā)明內容
一種方法、系統(tǒng)、裝置和計算機程序產品使多個可信平臺模塊能夠以冗余的方式用于數(shù)據(jù)處理系統(tǒng)內。在數(shù)據(jù)處理系統(tǒng)上執(zhí)行的管理程序(hypervisor)讀取在數(shù)據(jù)處理系統(tǒng)中的可信平臺內存儲的秘密數(shù)據(jù),然后請求在數(shù)據(jù)處理系統(tǒng)中的每個可信平臺模塊加密秘密數(shù)據(jù)的拷貝,由此產生加密的秘密數(shù)據(jù)值的多個版本。加密的秘密數(shù)據(jù)值存儲在可信平臺內的非易失性存儲器中。在以后的某時間,所述加密的秘密數(shù)據(jù)值被取出,由執(zhí)行先前加密的可信平臺模塊進行解密,然后彼此比較。如果根據(jù)比較操作,有任何解密的值與額定數(shù)(quorum)不匹配,則將對應于不匹配的解密值的相應可信平臺模塊指定為有缺陷,因為它還不能夠正確地解密它先前加密的值。建立多個可信平臺模塊的額定數(shù)提供了可靠機制,用于安全地將秘密材料存儲在休眠狀態(tài)(atrest),秘密材料用于自舉(bootstrap)該系統(tǒng)的可信平臺模塊。
在所附的權利要求中給出了本發(fā)明確信具有的特征的新穎特性。通過結合附圖而閱讀下列詳細說明,可以最佳地明白本發(fā)明本身、進一步的目的及其優(yōu)點,其中圖1A描述了一種典型的數(shù)據(jù)處理系統(tǒng)的網絡,其中每個數(shù)據(jù)處理系統(tǒng)可以實現(xiàn)本發(fā)明;圖1B描述了可以用于其中可以實現(xiàn)本發(fā)明的數(shù)據(jù)處理系統(tǒng)內的典型計算機架構;
圖2描述了示出典型的可信平臺架構的示例的方框圖;圖3描述了示出典型可信平臺模塊的一些主要部件的方框圖;圖4描述了示出按照本發(fā)明的一個實施例的、包括冗余可信平臺模塊的可信平臺的一些部件的方框圖;圖5描述了示出按照本發(fā)明的一個實施例的、使用多個冗余物理可信平臺模塊的系統(tǒng)的配置處理的流程圖;圖6描述了示出按照本發(fā)明的一個實施例的、使用多個冗余物理可信平臺模塊的數(shù)據(jù)處理系統(tǒng)的自舉處理的流程圖;以及圖7描述了示出按照本發(fā)明的一個實施例的、在使用多個冗余物理可信平臺模塊的數(shù)據(jù)處理系統(tǒng)內并入新的可信平臺模塊的處理的流程圖。
具體實施例方式
一般,可以包括或涉及本發(fā)明的設備包括多種數(shù)據(jù)處理技術。因此,作為背景,在更詳細地說明本發(fā)明之前,說明在分布式數(shù)據(jù)處理系統(tǒng)內的硬件和軟件部件的典型組織。
現(xiàn)在參見附圖,圖1A描述了數(shù)據(jù)處理系統(tǒng)的典型網絡,其中每個數(shù)據(jù)處理系統(tǒng)可以實現(xiàn)本發(fā)明的一部分。分布式數(shù)據(jù)處理系統(tǒng)100包括網絡101,它是可以用于提供在分布式數(shù)據(jù)處理系統(tǒng)100內的連接在一起的各種設備和計算機之間的通信鏈路的介質。網絡101可以包括諸如導線或光纖纜線之類的永久連接或通過電話或無線通信而建立的臨時連接。在所描述的示例中,服務器102和服務器103與存儲單元104一起連接到網絡101。另外,客戶機105-107也連接到網絡101。客戶機105-107和服務器102-103可以由多種計算設備表示,諸如大型機、個人計算機、個人數(shù)字助理(PDA)等。分布式數(shù)據(jù)處理系統(tǒng)100可以包括未示出的附加服務器、客戶機、路由器、其他設備和對等(peer-to-peer)結構。
在所描述的示例中,分布式數(shù)據(jù)處理系統(tǒng)100可以包括因特網,以網絡101來表示使用用于彼此通信的各種協(xié)議的網絡和網關的世界范圍集合,所述協(xié)議諸如輕量級(Lightweight)目錄訪問協(xié)議(LDAP)、傳輸控制協(xié)議/因特網協(xié)議(TCP/IP)、超文本傳輸協(xié)議(HTTP)、無線應用協(xié)議(WAP)等。當然,分布式數(shù)據(jù)處理系統(tǒng)100也可以包括多個不同類型的網絡,諸如內聯(lián)網、局域網(LAN)或廣域網(WAN)。例如,服務器102直接支持客戶機109和網絡110,網絡110包含了無線通信鏈路。網絡使能的電話111通過無線鏈路112連接到網絡110,并且PDA 113通過無線鏈路114連接到網絡110。電話111和PDA 113也可以使用諸如“藍牙”無線技術的適當技術通過無線鏈路115在它們之間直接傳送數(shù)據(jù),以建立所謂的個人區(qū)域網絡(PAN)或個人專門網絡。以類似的方式,PDA 113可以經由無線通信鏈路116向PDA107傳送數(shù)據(jù)。
本發(fā)明可以被實現(xiàn)在多種硬件平臺上;圖1A意欲作為異類計算環(huán)境的示例,而不作為本發(fā)明的結構限制。
現(xiàn)在參見圖1B,該圖描述了其中可以實現(xiàn)本發(fā)明的、諸如圖1A所示的那些的數(shù)據(jù)處理系統(tǒng)的典型計算機架構。數(shù)據(jù)處理系統(tǒng)120包括與內部系統(tǒng)總線123連接的一個或多個中央處理單元(CPU)122,所述內部系統(tǒng)總線123將隨機存取存儲器(RAM)124、只讀存儲器126和輸入/輸出適配器128相互連接,所述輸入/輸出適配器128支持諸如打印機130、盤單元132、或其他未示出的設備的各種輸入/輸出設備,諸如音頻輸出系統(tǒng)等。系統(tǒng)總線123也連接到通信適配器134,通信適配器134用于向通信鏈路136提供訪問。用戶接口適配器148連接諸如鍵盤140和鼠標142、或其他未示出的設備的各種用戶設備,諸如觸摸屏、指示筆(stylus)、麥克風等。顯示適配器144將系統(tǒng)總線123連接到顯示器146。
本領域內的普通技術人員可以明白,在圖1B中的硬件可以依賴于系統(tǒng)實現(xiàn)方式而不同。例如,所述系統(tǒng)可以具有一個或多個處理器,諸如基于英特爾奔騰的處理器和數(shù)字信號處理器(DSP);一種或多種類型的易失性和非易失性存儲器。除了或替代圖1B所示的硬件,還可以使用其他的外圍設備。所描述的示例不意味著表示對于本發(fā)明的結構限制。
除了能夠被實現(xiàn)在多種硬件平臺上,本發(fā)明還可以被實現(xiàn)在多種軟件環(huán)境中??梢允褂玫湫偷牟僮飨到y(tǒng)來控制在每個數(shù)據(jù)處理系統(tǒng)內的程序執(zhí)行。例如,一種設備可以運行Unix操作系統(tǒng),而另一種設備包括簡單Java運行時間環(huán)境。一種代表性的計算機平臺可以包括瀏覽器,它是公知的軟件應用,用于訪問多種格式的超文本文件,諸如圖形文件、字處理文件、可擴展標記語言(XML)、超文本標記語言(HTML)、手持器件標記語言(HDML)、無線標記語言(WML)和各種其他格式和類型的文件。
本發(fā)明可以被實現(xiàn)在多種硬件和軟件平臺上,如上參照圖1A和圖1B所述。但是更具體而言,本發(fā)明涉及使能可信計算平臺。但是,在更詳細地描述本發(fā)明之前,提供一些關于可信計算平臺的背景信息,用于評估本發(fā)明的操作效率和其他優(yōu)點。雖然可以按照一個或多個標準與多種可信計算平臺相結合地實現(xiàn)本發(fā)明,但是以下的本發(fā)明的示例使用來自已經由可信計算集團(TCG)推廣的標準和/或規(guī)范的術語和示例;但是應當注意,所述示例不意味著表示對于本發(fā)明的實施例的結構、功能和定義的限制。
現(xiàn)在參見圖2,方框圖描述了在使用可信平臺架構的模型構造的數(shù)據(jù)處理系統(tǒng)中的一些部件??梢詫τ谔囟ǖ挠嬎悱h(huán)境或對于特定類別的設備實現(xiàn)可信平臺架構;圖2描述了按照TCG的PC專用實現(xiàn)規(guī)范的可信平臺架構。
系統(tǒng)200支持在其平臺208上的諸如操作系統(tǒng)202、應用204和驅動器206的軟件部件的執(zhí)行??梢酝ㄟ^諸如在圖1A中所示的網絡101的網絡來接收所述軟件部件,或者可以例如在硬盤210上存儲它們。平臺208從電源212接收電功率,用于在附加(add-on)卡214和母板216上執(zhí)行軟件部件,所述母板216包括用于執(zhí)行軟件的典型部件,諸如CPU 218和存儲器220,雖然模板216可以包括多個CPU。接口222將母板216連接到在系統(tǒng)200內的其他硬件部件,固件224包括POST BIOS(通電自檢基本輸入/輸出系統(tǒng))226。
母板216也包括可信構建塊(TBB)228;母板216由制造商提供,附帶TBB 228、和由制造商物理地或邏輯地附加和提供的其他部件。TBB 228包括下述的組合測量的信任的核心根(CRTM)部件230、可信平臺模塊(TPM)232、CRTM到母板216的連接、和TPM到母板216的連接。
以下參照圖3來更詳細地說明TPM 232。CRTM 230是在平臺復位時執(zhí)行的平臺的初始化代碼的不可變部分;所述平臺的執(zhí)行必須在任何平臺復位事件時在CRTM開始。以這種方式,在平臺中的信任基于CRTM和T的行為,并且在所有測量中的信任基于CRTM的完整性。在圖2所示的示例中,可以假定BIOS包括BIOS引導塊和POST BIOS 226;這些的每個是可以彼此獨立地被更新的獨立部件,其中,制造商必須控制BIOS引導塊的更新、修改和維護,但是第三方提供商可以更新、修改或維護POSTBIOS部件。在圖2所示的示例中,假定CRTM是BIOS引導塊,并且POSTBIOS是信任鏈的測量部件?;蛘撸珻RTM可以包括整個BIOS。
現(xiàn)在參見圖3,方框圖描述了按照TCG規(guī)范的可信平臺模塊的一些主要部件??尚牌脚_模塊300包括輸入/輸出部件302,它通過執(zhí)行適當?shù)膮f(xié)議編碼/解碼操作和將消息取路由到適當?shù)牟考砉芾碓谕ㄐ趴偩€304上的信息流。密碼協(xié)處理器306在可信平臺模塊內執(zhí)行密碼操作。密鑰產生器308產生對稱密鑰和RSA非對稱密鑰對。HMAC引擎310執(zhí)行HM C(加密散列(keyed-hash)消息驗證)計算,由此使用秘密密鑰來計算消息驗證代碼作為完整性檢查以驗證在兩方之間傳送的信息,例如按照Krawczyk et al.,iHMACKeyed-Hashing for Message Authentication,Request for Comments(RFC)2104,Internet Engineering Task Force(IETF),F(xiàn)eb.1997(Krawczyk等,iHMAC加密散列消息驗證,征求意見稿(RFC)2104,因特網工程任務組(IETF),1997年2月)。
隨機數(shù)產生器312作為用于各種值,諸如不重性(nonce)、密鑰或其他值,的計算的隨機性來源。SHA-1引擎314實現(xiàn)SHA-1散列算法。功率檢測器316與平臺的功率狀態(tài)相關聯(lián)地管理可信平臺模塊的功率狀態(tài)。選入(opt-in)部件318保持持久和易失性標記的狀態(tài),并且強行實施與那些標記相關聯(lián)的語義,以便可以使能和禁止可信平臺模塊。執(zhí)行引擎320運行程序代碼以執(zhí)行可信平臺模塊通過輸入/輸出部件302接收的命令。非易失性存儲器322存儲與可信平臺模塊相關聯(lián)的持久身份和狀態(tài);非易失性存儲器可以存儲靜態(tài)數(shù)據(jù)項,但是也可用于通過由可信平臺模塊所有者授權的實體來存儲動態(tài)數(shù)據(jù)項,而易失性存儲器324存儲動態(tài)數(shù)據(jù)項。
在給出參照圖2和圖3描述的可信計算平臺的背景信息的情況下,以下參照其余的附圖來提供本發(fā)明的詳細說明。如上所述,典型的可信平臺已經被設計為使在可信平臺架構中存在可信平臺模塊作為可能的災難單個故障點,這在高性能服務器或類似的高成本計算設備中是不可接受的行為。本發(fā)明通過向可信平臺模塊提供冗余來解決這個問題,如下文更詳細地描述。
現(xiàn)在參見圖4,方框圖描述了按照本發(fā)明實施例的、包括冗余的可信平臺模塊的可信平臺上的一些部件。運行時間管理程序400包括系統(tǒng)TPM功能單元402,其中秘密數(shù)據(jù)404或者已經被制造商在系統(tǒng)TPM功能單元402的制造期間被插入,或者已經由系統(tǒng)TPM功能單元402產生。非易失性RAM 406提供了安全數(shù)據(jù)庫;對于非易失性RAM 406的訪問被物理地硬件限制到管理程序400,它使用非易失性RAM 406來存儲秘密數(shù)據(jù)404的不同加密版本。管理程序400調用在TPM 408、TPM 410和TPM 412中的功能以分別產生加密的秘密數(shù)據(jù)414、加密的秘密數(shù)據(jù)416和加密的秘密數(shù)據(jù)418。可以以冗余的方式使用多個TPM;所述可信平臺包括最少三個可信平臺模塊,用于通過使用管理程序400中的TPM完整性比較單元402來完成冗余操作,如下更詳細的解釋。
現(xiàn)在參見圖5,流程圖描述了按照本發(fā)明的一個實施例的、使用多個冗余物理可信平臺模塊的數(shù)據(jù)處理系統(tǒng)的配置處理。所述處理以在數(shù)據(jù)處理系統(tǒng)的可信平臺上的管理程序開始,檢測到還沒有產生將在自舉數(shù)據(jù)處理系統(tǒng)時使用的加密秘密數(shù)據(jù);例如,管理程序確定在可信平臺上的非易失性RAM(NVRAM)還沒有存儲加密的秘密數(shù)據(jù)(步驟502)。優(yōu)選的是,在非易失性RAM內的預定位置被保留以用于加密的秘密數(shù)據(jù),并且管理程序可以檢查那些關于有效數(shù)據(jù)的特定位置。可以假定,秘密數(shù)據(jù)或者已經被可信平臺的制造商在制造期間插入,或者已經在制造處理期間或諸如取得可信平臺的所有權的處理的某個其他時間由可信平臺產生。圖5所示的處理可以發(fā)生在可信平臺的制造期間,或者它可以發(fā)生在當實體獲得可信平臺的所有權的時候。
在確定非易失性RAM還未保存加密的秘密數(shù)據(jù)之后,管理程序請求在可信平臺上的每個可信平臺模塊加密所述秘密數(shù)據(jù)。管理程序獲得秘密數(shù)據(jù)的拷貝(步驟504),并且確定是否存在還未用于產生秘密數(shù)據(jù)的加密版本的TPM(步驟506);如果為否,則處理結束。如果所有的TPM還未產生秘密數(shù)據(jù)的加密版本,則管理程序向下一個未使用的TPM發(fā)送請求以加密秘密數(shù)據(jù)的拷貝(步驟508),所述秘密數(shù)據(jù)的拷貝然后被存儲到非易失性RAM中(步驟510)。管理程序調用每個TPM,由此通過冗余的TPM產生秘密數(shù)據(jù)的多個加密版本直到處理結束。通過在可信平臺的制造或配置期間執(zhí)行這個處理,圖5所示的處理產生一組檢查點值,可以隨后用于確定是否可信平臺模塊已經變得有缺陷。
現(xiàn)在參見圖6,流程圖描述了按照本發(fā)明的一個實施例、使用多個冗余物理可信平臺模塊的數(shù)據(jù)處理系統(tǒng)的自舉處理的一部分。所述處理以例如在數(shù)據(jù)處理系統(tǒng)的啟動或重啟期間在數(shù)據(jù)處理系統(tǒng)的可信平臺上啟動管理程序開始,其后管理程序例如使用圖5中所述的處理來讀取在可信平臺上的非易失性RAM內先前存儲的秘密數(shù)據(jù)的多個加密版本(步驟602)。管理程序使用產生所述加密版本的相應TPM來解密秘密數(shù)據(jù)的每個加密版本(步驟604)。
管理程序然后彼此比較解密值以確定是否所有的解密值彼此相等(步驟606)。如果解密值全部彼此相等,則管理程序可以繼續(xù)其自舉處理(步驟608),并且處理結束。如果確定沒有解密值等于任何其他的解密值(步驟610),則停止引導處理(步驟612),或者,引導處理繼續(xù),但是沒有在數(shù)據(jù)處理系統(tǒng)上的TPM功能。
然后處理通過嘗試確定是否已經在解密值中建立額定數(shù)而繼續(xù)。換句話說,比較解密值,并且邏輯地編組相等的值以確定是否一組相等的值表示該組的可用的值的多數(shù),即多于可用的值的百分之五十。如果如此,則已經建立了額定數(shù)。如果存在一組相等值但是它不表示所述組可用值的多數(shù),則還沒有建立額定數(shù)。在替代的實施例中,可以依賴于在數(shù)據(jù)處理系統(tǒng)內的TPM的數(shù)量而使用其他的比較算法。
因此,如果確定在解密值中存在額定數(shù),則對于未能產生與TPM的多數(shù)匹配的值的每個TPM設置誤差標記(步驟614),并且允許引導處理繼續(xù)(步驟616);換句話說,未能產生在額定數(shù)中的值的每個TPM被標記為出錯?;蛘?,可以使用用于將TPM指定為有缺陷的其他方法。
例如,再次參見圖4,可信平臺的一個示例描述了最小3個TPM。對于具有3個TPM的系統(tǒng)使用圖6所示的處理,如果兩個TPM能夠產生先前加密的秘密數(shù)據(jù)的兩個匹配的解密值,則自舉處理能夠繼續(xù);換句話說,額定數(shù)被確定為具有至少兩個匹配的解密值。
現(xiàn)在參見圖7,流程圖描述了按照本發(fā)明的一個實施例的、用于將新的可信平臺模塊并入使用多個冗余物理可信平臺模塊的數(shù)據(jù)處理系統(tǒng)內的處理。圖7所示的處理假定例如使用圖6內所述的處理而已于先前檢測和標記了故障的TPM,其后可能記錄所述事件以供系統(tǒng)管理員發(fā)現(xiàn)和查看。故障的TPM然后被物理地去除和替換為新的TPM。
處理在管理程序檢測到新的TPM的時刻后的某個時間點開始(步驟702)。如果必要的話,管理程序清除被保留以用于保存來自被替換的TPM的相應數(shù)據(jù)的可信平臺上的非易失性RAM中的適當位置(步驟704)。管理程序獲得秘密數(shù)據(jù)的拷貝(步驟706),并且向新的TPM發(fā)送請求以加密秘密數(shù)據(jù)的拷貝(步驟708),所述拷貝然后被存儲在非易失性RAM內的預定位置內(步驟710),以便非易失性RAM包含當以圖6所述的方式自舉數(shù)據(jù)處理系統(tǒng)時用于完成TPM完整性檢查操作所需要的所有數(shù)據(jù)。
根據(jù)上述的詳細說明,本發(fā)明的優(yōu)點應很明顯。通過在非易失性RAM中保存加密的秘密數(shù)據(jù)的多個拷貝,其中每個對應于在數(shù)據(jù)處理系統(tǒng)內的一個可信平臺模塊,在數(shù)據(jù)處理系統(tǒng)內的管理程序能夠通過下列方式來檢測一個或多個TPM的故障解密加密的秘密數(shù)據(jù)的拷貝,并且比較解密值以試圖建立在解密值中的額定數(shù)。如果在解密值中找到額定數(shù),則數(shù)據(jù)處理系統(tǒng)可以繼續(xù)操作而不受到整個數(shù)據(jù)處理系統(tǒng)的災難性故障的影響,所述災難性故障可能由典型的現(xiàn)有技術系統(tǒng)上的故障的TPM引起。
重要的是注意,盡管已經在全功能的數(shù)據(jù)處理系統(tǒng)的環(huán)境中描述了本發(fā)明,本領域內的那些普通技術人員可以明白,本發(fā)明的處理能夠以計算機可讀介質中的指令的形式和多種其他形式被分布,而不論實際用于執(zhí)行所述分布的信號承載介質的特定類型如何。計算機可讀介質的示例包括諸如EPROM、ROM、磁帶、紙張、軟盤、硬盤驅動器、RAM和CD-ROM的介質和諸如數(shù)字和模擬通信鏈路的傳輸型介質。
方法一般被設想為導致期望結果的自我一致的步驟序列。這些步驟要求物理數(shù)量的物理操縱。通常,雖然不是必然地,這些數(shù)量采取能夠被存儲、傳送、組合、比較和操縱的電或磁信號的形式。方便的是,主要由于公共使用的原因而有時將這些信號稱為比特、值、參數(shù)、項、元素、對象、符號、字符、項目、數(shù)量等。但是,應當注意,所有這些術語和類似的術語要與適當?shù)奈锢頂?shù)量相關聯(lián),并且僅僅是被應用到這些數(shù)量的方便標簽。本發(fā)明的說明已經被提供來為了說明而不是意欲窮盡或限于所公開的實施例。許多修改和改變對于本領域內的普通技術人員是顯然的。所述實施例被選擇來說明本發(fā)明的原理及其實際應用,并且使得本領域內的其他普通技術人員能夠明白本發(fā)明,以便使用可能適合于其他所考慮的用途的各種修改來實現(xiàn)各個實施例。
權利要求
1.一種用于使用在數(shù)據(jù)處理系統(tǒng)內的可信平臺模塊的方法,其中在數(shù)據(jù)處理系統(tǒng)內的可信平臺包括至少一個非易失性存儲器,所述方法包括(a)使用在數(shù)據(jù)處理系統(tǒng)上執(zhí)行的管理程序來讀取在數(shù)據(jù)處理系統(tǒng)內的可信平臺中存儲的秘密數(shù)據(jù);(b)請求在數(shù)據(jù)處理系統(tǒng)中的可信平臺模塊加密秘密數(shù)據(jù)的拷貝以產生加密的秘密數(shù)據(jù)值;(c)在可信平臺內的非易失性存儲器內存儲先前產生的加密的秘密數(shù)據(jù)值。
2.按照權利要求1的方法,還包括(d)對于在數(shù)據(jù)處理系統(tǒng)內的每個可信平臺模塊重復步驟(b)和(c),以產生多個存儲的加密的秘密數(shù)據(jù)值,其中每個存儲的加密的秘密數(shù)據(jù)值與產生其的可信平臺模塊相關聯(lián)。
3.按照權利要求2的方法,還包括(e)從非易失性存儲器取出加密的秘密數(shù)據(jù)值;(f)請求解密來自產生所取出的加密的秘密數(shù)據(jù)值的可信平臺模塊的取出的加密的秘密數(shù)據(jù)值,以便產生解密的秘密數(shù)據(jù)值;(g)對于在數(shù)據(jù)處理系統(tǒng)內的每個可信平臺模塊重復步驟(e)和(f);(h)比較解密的秘密數(shù)據(jù)值;(i)根據(jù)解密的秘密數(shù)據(jù)值的比較來識別零個或更多的有缺陷的可信平臺模塊。
4.按照權利要求3的方法,還包括(j)如果與可信平臺模塊相關聯(lián)的解密的秘密數(shù)據(jù)值和與在數(shù)據(jù)處理系統(tǒng)內的不同可信平臺模塊相關聯(lián)的一個或多個解密的秘密數(shù)據(jù)值不匹配,則將所述可信平臺模塊指定為有缺陷。
5.按照權利要求3的方法,其中,步驟(e)-(i)發(fā)生在啟動或重啟數(shù)據(jù)處理系統(tǒng)時。
6.按照權利要求2的方法,其中,步驟(a)-(d)發(fā)生在可信平臺的制造期間。
7.按照權利要求2的方法,其中,步驟(a)-(d)發(fā)生在當實體獲得可信平臺的所有權時。
8.一種用于使用在數(shù)據(jù)處理系統(tǒng)內的可信平臺模塊的、在計算機可讀介質上的計算機程序產品,其中在數(shù)據(jù)處理系統(tǒng)內的可信平臺包括至少一個非易失性存儲器,所述計算機程序產品包括用于使用在數(shù)據(jù)處理系統(tǒng)上執(zhí)行的管理程序來讀取在數(shù)據(jù)處理系統(tǒng)內的可信平臺中存儲的秘密數(shù)據(jù)的裝置;用于請求在數(shù)據(jù)處理系統(tǒng)中的可信平臺模塊加密秘密數(shù)據(jù)的拷貝以產生加密的秘密數(shù)據(jù)值的裝置;用于在可信平臺內的非易失性存儲器內存儲先前產生的加密的秘密數(shù)據(jù)值的裝置。
9.按照權利要求8的計算機程序產品,還包括用于對于在數(shù)據(jù)處理系統(tǒng)內的每個其他可信平臺模塊重復產生加密的秘密數(shù)據(jù)值,以便非易失性存儲器包括多個加密的秘密數(shù)據(jù)值的裝置,其中每個加密的秘密數(shù)據(jù)值與產生其的可信平臺模塊相關聯(lián)。
10.按照權利要求9的計算機程序產品,還包括用于從非易失性存儲器取出加密的秘密數(shù)據(jù)值的裝置;用于請求解密來自產生取出的加密的秘密數(shù)據(jù)值的可信平臺模塊的取出的加密的秘密數(shù)據(jù)值,以便產生解密的秘密數(shù)據(jù)值的裝置;用于對于在數(shù)據(jù)處理系統(tǒng)內的每個其他的可信平臺模塊重復產生解密的秘密數(shù)據(jù)值的裝置;用于比較解密的秘密數(shù)據(jù)值的裝置;用于根據(jù)解密的秘密數(shù)據(jù)值的比較來識別零個或更多的有缺陷的可信平臺模塊的裝置。
11.按照權利要求10的計算機程序產品,還包括用于如果與可信平臺模塊相關聯(lián)的解密的秘密數(shù)據(jù)值不匹配與在數(shù)據(jù)處理系統(tǒng)內的不同可信平臺模塊相關聯(lián)的一個或多個解密的秘密數(shù)據(jù)值,則將所述可信平臺模塊指定為有缺陷的裝置。
12.按照權利要求10的計算機程序產品,其中,用于識別有缺陷的可信平臺模塊的裝置在啟動或重啟數(shù)據(jù)處理系統(tǒng)時使用。
13.按照權利要求9的計算機程序產品,其中,用于重復產生加密的秘密數(shù)據(jù)值的裝置在可信平臺的制造期間使用。
14.按照權利要求9的計算機程序產品,其中,用于重復地產生加密的秘密數(shù)據(jù)值的裝置在當實體獲得可信平臺的所有權時使用。
15.一種用于使用在數(shù)據(jù)處理系統(tǒng)內的可信平臺模塊的裝置,其中在數(shù)據(jù)處理系統(tǒng)內的可信平臺包括至少一個非易失性存儲器,所述裝置包括用于使用在數(shù)據(jù)處理系統(tǒng)上執(zhí)行的管理程序來讀取在數(shù)據(jù)處理系統(tǒng)內的可信平臺中存儲的秘密數(shù)據(jù)的裝置;用于請求在數(shù)據(jù)處理系統(tǒng)中的可信平臺模塊加密秘密數(shù)據(jù)的拷貝以產生加密的秘密數(shù)據(jù)值的裝置;用于在可信平臺內的非易失性存儲器內存儲先前產生的加密的秘密數(shù)據(jù)值的裝置。
16.按照權利要求15的裝置,還包括用于對于在數(shù)據(jù)處理系統(tǒng)內的每個其他可信平臺模塊重復產生加密的秘密數(shù)據(jù)值,以便非易失性存儲器包括多個加密的秘密數(shù)據(jù)值的裝置,其中每個加密的秘密數(shù)據(jù)值與產生其的可信平臺模塊相關聯(lián)。
17.按照權利要求16的裝置,還包括用于從非易失性存儲器取出加密的秘密數(shù)據(jù)值的裝置;用于請求解密來自產生取出的加密的秘密數(shù)據(jù)值的可信平臺模塊的取出的加密的秘密數(shù)據(jù)值,以便產生解密的秘密數(shù)據(jù)值的裝置;用于對于在數(shù)據(jù)處理系統(tǒng)內的每個其他的可信平臺模塊重復產生解密的秘密數(shù)據(jù)值的裝置;用于比較解密的秘密數(shù)據(jù)值的裝置;用于根據(jù)解密的秘密數(shù)據(jù)值的比較來識別零個或更多的有缺陷的可信平臺模塊的裝置。
18.按照權利要求17的裝置,還包括用于如果與可信平臺模塊相關聯(lián)的解密的秘密數(shù)據(jù)值不匹配與在數(shù)據(jù)處理系統(tǒng)內的不同可信平臺模塊相關聯(lián)的一個或多個解密的秘密數(shù)據(jù)值,則將所述可信平臺模塊指定為有缺陷的裝置。
19.按照權利要求17的裝置,其中,用于識別有缺陷的可信平臺模塊的裝置在啟動或重啟數(shù)據(jù)處理系統(tǒng)時使用。
20.按照權利要求16的裝置,其中,用于重復產生加密的秘密數(shù)據(jù)值的裝置在可信平臺的制造期間使用。
21.按照權利要求16的裝置,其中,用于重復地產生加密的秘密數(shù)據(jù)值的裝置在當實體獲得可信平臺的所有權時使用。
全文摘要
在數(shù)據(jù)處理系統(tǒng)內的多個可信平臺模塊以冗余方式被使用,這提供了可靠的機制,用于安全地將用以自舉系統(tǒng)可信平臺模塊的秘密數(shù)據(jù)存儲在休眠狀態(tài)。管理程序請求每個可信平臺模塊加密秘密數(shù)據(jù)的拷貝,由此產生加密的秘密數(shù)據(jù)值的多個版本,它們然后被存儲在可信平臺內的非易失性存儲器內。在以后的某個時間點,加密的秘密數(shù)據(jù)值被取出,被執(zhí)行先前的加密的可信平臺模塊解密,然后被彼此比較。如果根據(jù)比較操作,有任何解密的值不匹配值的額定數(shù),則將用于不匹配的解密值的相應可信平臺模塊指定為有缺陷,因為它還不能夠正確地解密它先前加密的值。
文檔編號G06F21/00GK1694032SQ200510059550
公開日2005年11月9日 申請日期2005年3月29日 優(yōu)先權日2004年4月29日
發(fā)明者史蒂文·A·巴德, 琳達·N·貝茨, 安德魯·G·凱蓋爾, 戴維·R·薩福德, 利恩德特·P·范多恩 申請人:國際商業(yè)機器公司