本發(fā)明涉及用于更新軟件的方法和設(shè)備。具體地,本發(fā)明涉及可信引導(dǎo)(boot)和遠程認證處理。如在此說明書中描述的,可信計算、可信引導(dǎo)和遠程認證一般涉及被稱為“可信計算組(TrustedComputingGroup)”的標準組開發(fā)的技術(shù)標準。
背景技術(shù):可信引導(dǎo)是用于在可信計算系統(tǒng)中引導(dǎo)和建立信任鏈的過程。引導(dǎo)的組件可被加密測定(measure)并被存儲在諸如可信平臺模塊(TrustedPlatformModule(TPM))的安全裝置中。每個引導(dǎo)組件測定并在安全裝置中存儲下一引導(dǎo)組件的特性測定(measurement),在控制被轉(zhuǎn)移到測定的組件之前,取得此測定。一旦系統(tǒng)正在運行,遠程系統(tǒng)便可使用遠程認證處理(例如,通過直接匿名認證(DirectAnonymousAttestation(DAA)))來提取測定用于檢驗(inspection)。測定的序列被描述為信任鏈。通過新的特征和軟件補丁來頻繁更新計算機系統(tǒng)。更新可能需要改變形成信任鏈的一部分的引導(dǎo)組件,并且,在該更新之后,遠程認證將顯示測定的改變;信任鏈將被打破。在很多系統(tǒng)和很多更新的情況下,這導(dǎo)致更大困難的管理問題。測定的改變將僅最少在重新測定之后“顯示”。重新測定可能僅在重新引導(dǎo)時發(fā)生,或者在運行時發(fā)生(取決于系統(tǒng)是如何被構(gòu)造的)。因此,在現(xiàn)有技術(shù)中,需要處理前述問題。
技術(shù)實現(xiàn)要素:在本發(fā)明的第一方面,提供了一種用于更新執(zhí)行環(huán)境中的代碼的方法,包括:安裝新代碼;測定新代碼的識別特性,并使識別特性可用于認證系統(tǒng);向認證系統(tǒng)通知已將代碼更新到新的版本,由此,當認證系統(tǒng)發(fā)現(xiàn)新代碼的識別特性不匹配預(yù)先存儲的認證值時,其意識到可能已發(fā)生了合法的不匹配。在優(yōu)選實施例中,代碼為在引導(dǎo)處理中使用的組件,但其還可指信任鏈中未被引導(dǎo)的另一個組件。在其它實施例中,代碼為固件、管理器、虛擬機、操作系統(tǒng)或應(yīng)用的全部或部分。新代碼可為組件的新版本、或全新的組件。預(yù)先存儲的認證值是被認證系統(tǒng)使用的基準,用來針對系統(tǒng)組件的有效識別特性進行測試。預(yù)先存儲的認證值通過系統(tǒng)管理保存在認證系統(tǒng)中、或通過某個初始化處理獲取,由此,組件的初始識別特性是被信任的,且被認證系統(tǒng)用作認證值。有利地,該方法還包括:確定操作系統(tǒng)組件的新版本的存在,由此,自動執(zhí)行更新階段。本發(fā)明向認證系統(tǒng)通知更新,但是,只有認證系統(tǒng)或系統(tǒng)管理員才能夠更新認證值。只有在較不安全的實施例中,認證值才可被管理器更新。在優(yōu)選實施例中,管理器不具有對認證系統(tǒng)的訪問權(quán),除非通過通知;認證系統(tǒng)必須在通知之后直接執(zhí)行認證,由此,其檢查組件的新版本的來源。一旦其已核實(verify)了新組件的來源,其可在將來的重新引導(dǎo)之后接受新組件的引導(dǎo)測定,即便其不匹配所存儲的認證值也是這樣。管理器通知階段被添加到已知的軟件更新處理,使得信任鏈通過管理器開始。在優(yōu)選實施例中,通知階段包括更新的系統(tǒng),其利用“testme(測試我)”消息來通知認證系統(tǒng),使得認證系統(tǒng)意識到已進行了新的測定。在所認證的系統(tǒng)重新引導(dǎo)并遇到不同的測定時,認證通知使認證系統(tǒng)停止恐慌。優(yōu)選實施例允許諸如管理器的可信組件參與測定處理,并測定另一個組件,使得認證系統(tǒng)可信任所測定的組件。有利地,組件(616.N)的新版本(651.N)的安裝包括:識別與組件的新版本(651.N)相關(guān)聯(lián)的更新方(updater)(612.N);測定所識別的更新方(612.N)的識別特性;安裝組件的新版本(651.N);以及使更新方的識別測定(PCR17)可用于認證系統(tǒng)(620),由此,認證系統(tǒng)(620)可使更新方(612.N)的識別測定(PCR17)匹配預(yù)先存儲的認證值(624.N),以驗證(validate)合法更新。為了清楚且僅用于示例,以將來自圖6的附圖標記添加到上述段落。更有利地,認證系統(tǒng)在通知之后直接檢查其在管理器中找到的組件的新版本的來源。在優(yōu)選實施例中,檢查組件的來源包括檢查安裝了更新的組件,但在其它實施例中,可進行其它檢查,如更新來自何處、或其被如何安裝。此外,如果測定不匹配認證值、且認證系統(tǒng)已檢查了對應(yīng)的組件的來源,則執(zhí)行以下操作中的一個或多個:用組件的新版本的測定來更新認證值;以及/或者向管理級別通知測定不匹配認證值、以及認證系統(tǒng)是否辨識出組件的來源。在本發(fā)明的第二方面,提供了一種用于更新并認證管理器中的操作系統(tǒng)組件的方法,包括:確定操作系統(tǒng)的組件的新版本;安裝新的組件版本;測定組件的識別特性,并使其可用于認證系統(tǒng);向認證系統(tǒng)通知已將組件更新到新的版本,由此,當認證系統(tǒng)發(fā)現(xiàn)新組件的識別特性不匹配預(yù)先存儲的認證值時,其意識到可能已發(fā)生了合法的不匹配。在本發(fā)明的第三方面,提供了一種用于測試程序的完整性的方法,包括:提取程序安裝處理所存儲的組件測定;通過測試系統(tǒng)存儲的基準測定來測試組件測定,并且,如果其不匹配,則測定失??;進一步測試失敗的組件測定,并且,如果測定不是源自測試系統(tǒng)已知的另一個組件,則測定再次失??;以及如果組件測定通過一個測試,則指示通過,并且,如果測定未通過任一測試,則指示失敗。在本發(fā)明的第四方面,提供了一種用于更新執(zhí)行環(huán)境中的代碼的系統(tǒng),包括:安裝部件,用于安裝新代碼;測定部件,用于測定所述新代碼的識別特性,并使其可用于認證系統(tǒng);通知部件,用于向所述認證系統(tǒng)通知已將代碼更新到新的版本,由此,當所述認證系統(tǒng)發(fā)現(xiàn)所述新代碼的識別特性不匹配預(yù)先存儲的認證值時,意識到可能已發(fā)生了合法的不匹配。在本發(fā)明的第五方面,提供了一種用于更新和認證執(zhí)行環(huán)境中的代碼的系統(tǒng),包括:安裝部件,用于安裝新代碼;測定部件,用于測定所述新代碼的識別特性,并使其可用于認證系統(tǒng);通知部件,用于向所述認證系統(tǒng)通知已將代碼更新到新的版本,由此,當所述認證系統(tǒng)發(fā)現(xiàn)所述新代碼的識別特性不匹配預(yù)先存儲的認證值時,意識到可能已發(fā)生了合法的不匹配。在本發(fā)明的第六方面,提供了一種用于測試程序的完整性的系統(tǒng),包括:用于提取程序安裝處理所存儲的代碼測定的部件;測試部件,用于通過測試系統(tǒng)所存儲的基準測定來測試所述代碼測定,并且,如果所述測定不匹配,則所述測定失?。涣硪粋€測試部件,用于測試失敗的代碼測定,并且,如果所述測定不是源自所述測試系統(tǒng)已知的組件,則所述測定再次失??;以及指示部件,用于如果所述代碼測定通過測試,則指示通過,并且,如果一個代碼測定未通過任一測試,則指示失敗。從另一個方面看,本發(fā)明提供了一種計算機程序產(chǎn)品,用于更新執(zhí)行環(huán)境中的代碼,該計算機程序產(chǎn)品包括:計算機可讀存儲介質(zhì),其可由處理電路讀取,并存儲用于由處理電路執(zhí)行的指令,用于執(zhí)行方法以執(zhí)行本發(fā)明的步驟。從另一個方面看,本發(fā)明提供了一種存儲在計算機可讀介質(zhì)上并可被加載到數(shù)字計算機的內(nèi)存中的計算機程序,包括軟件代碼部分,當所述程序在計算機上運行時,用于執(zhí)行本發(fā)明的步驟。本說明書呈現(xiàn)了這樣的解決方案,其允許系統(tǒng)向認證方告知對于使用虛擬TPM的虛擬化系統(tǒng)來說,在下一個可信引導(dǎo)上會預(yù)期到什么。附圖說明現(xiàn)在將參照以下附圖中示出的優(yōu)選實施例,僅通過示例來描述本發(fā)明,附圖中:圖1是根據(jù)現(xiàn)有技術(shù)的現(xiàn)有技術(shù)可信計算系統(tǒng)的示意部署圖,并且,其中可實施本發(fā)明的優(yōu)選實施例;圖2是根據(jù)現(xiàn)有技術(shù)的現(xiàn)有技術(shù)可信計算系統(tǒng)的示意處理圖,并且,其中可實施本發(fā)明的優(yōu)選實施例;圖3是根據(jù)現(xiàn)有技術(shù)的用于認證現(xiàn)有技術(shù)可信計算系統(tǒng)的示意處理圖,并且,其中可實施本發(fā)明的優(yōu)選實施例;圖4是根據(jù)現(xiàn)有技術(shù)的用于更新現(xiàn)有技術(shù)可信計算系統(tǒng)的示意處理圖,并且,其中可實施本發(fā)明的優(yōu)選實施例;圖5是示出實施例更新處理和根據(jù)現(xiàn)有技術(shù)的現(xiàn)有技術(shù)更新處理的等效步驟的比較圖,并且其中,可實施本發(fā)明的優(yōu)選實施例;圖6是根據(jù)本發(fā)明的優(yōu)選實施例的系統(tǒng)的示意部署圖;圖7是根據(jù)本發(fā)明的優(yōu)選實施例的更新處理的示意處理圖;圖8是根據(jù)本發(fā)明的優(yōu)選實施例的新組件加載處理的處理圖;圖9是根據(jù)本發(fā)明的優(yōu)選實施例的認證處理的處理圖;以及圖10是物理實施例的系統(tǒng)的示意部署圖。具體實施方式圖1是現(xiàn)有技術(shù)可信系統(tǒng)的簡化部署圖,該可信系統(tǒng)包括:平臺10;可信平臺模塊20(TPM20)、以及認證系統(tǒng)30。平臺10包括:引導(dǎo)處理200(下面通過參照圖2描述);更新處理12以及引導(dǎo)組件15.1至15N(在此說明書中的此處和其它處,字母N被用來表示數(shù)字,但不是任何特定的數(shù)字)。引導(dǎo)組件15包括:引導(dǎo)組件15.1至15N。TPM20包括平臺配置寄存器22.1至22N。TPM20被示出為部署得與平臺10分離,但其也可為平臺10的一部分。平臺配置寄存器PCR也被稱為寄存器。認證系統(tǒng)30包括認證處理300和認證值34.1至34N。認證系統(tǒng)30被示出為部署得與平臺分離。圖2是現(xiàn)有技術(shù)引導(dǎo)處理200的簡化處理圖,其包括一系列步驟202至212,用于如下依次執(zhí)行多個引導(dǎo)組件:步驟202用于執(zhí)行第一引導(dǎo)組件。步驟204用于測定下一引導(dǎo)組件的識別特性,并將測定存儲在寄存器中(例如,22.1)。步驟206用于執(zhí)行下一組件。步驟208用于測定后續(xù)的引導(dǎo)組件(如果存在)的識別特性,并將測定存儲在后續(xù)的寄存器中(例如,22.2)。步驟210表示引導(dǎo)循環(huán),其對于任何后續(xù)的引導(dǎo)組件重復(fù)步驟206和208。步驟212是當沒有剩余更多引導(dǎo)組件時處理的結(jié)束。在優(yōu)選實施例中,管理器(hypervisor)執(zhí)行初始步驟(現(xiàn)有技術(shù)中的等效步驟200、202、204),使得測定和執(zhí)行在管理器中開始。例如,管理器提供超級調(diào)用(call)“H-Measure”,其測定并執(zhí)行諸如下一引導(dǎo)組件的某個代碼。在另一個示例中,平臺固件可執(zhí)行初始步驟,并在管理器中開始后續(xù)的引導(dǎo)組件。圖3是現(xiàn)有技術(shù)認證處理300的簡化處理圖,其包括下面描述的一系列邏輯步驟302至308。認證處理在可信平臺已引導(dǎo)之后執(zhí)行。步驟302用于提取在寄存器中存儲的測定。步驟304用于將測定與認證系統(tǒng)30存儲的認證值34.1至34N比較。步驟306用于指示:1)如果值匹配測定,則通過;或者2)如果在值和測定之間存在不匹配,則失敗。步驟308是處理的結(jié)束?,F(xiàn)有技術(shù)認證處理相信認證值是正確的,并且,在現(xiàn)有技術(shù)中,由管理員更新認證值。圖4是現(xiàn)有技術(shù)更新處理400的簡化處理圖,其包括一系列步驟402至406。步驟402用于確定需要用新版本的組件來更新組件。步驟404用于通過移除舊的組件并加載新的組件來更新組件。步驟406是處理的結(jié)束。在此處理中,沒有組件是引導(dǎo)組件這樣的標識(identification),因此,不可能理解到該更新將對認證系統(tǒng)持有的認證值具有影響。圖5示出了現(xiàn)有技術(shù)可信系統(tǒng)的結(jié)果和優(yōu)選實施例的可信系統(tǒng)的結(jié)果的比較。完整的現(xiàn)有技術(shù)更新和認證包括下面以200、300、400、以及再次300的順序組合的處理。引導(dǎo)處理200加載引導(dǎo)組件,并且,隨之測定每個組件;將測定存儲在TPM20中。認證處理300針對所存儲的認證值檢索并測試測定,并且,因為所述值和測定匹配,所以用信號發(fā)出(signal)通過。更新處理400對包括一個或多個引導(dǎo)組件的一個或多個組件執(zhí)行更新,其中,TPM測定改變。因為沒有對認證值的更新、以及認證值和TPM測定不匹配,所以認證處理300的進一步執(zhí)行指示失敗。優(yōu)選實施例更新和認證處理包括下面以606、622、700、以及再次622的順序組合的處理。引導(dǎo)處理606加載引導(dǎo)組件;測定每個引導(dǎo)組件,并將測定存儲在TPM中。實施例認證處理622針對所存儲的認證值檢索并測試測定,并且,因為所述值和測定匹配,所以用信號發(fā)出通過。實施例更新處理700對一個或多個引導(dǎo)組件執(zhí)行更新,并且改變TPM中的測定。在優(yōu)選實施例中,認證系統(tǒng)被通知已執(zhí)行了更新。因為認證處理622檢查更新組件的來源,所以認證處理622指示“通過”。在另一個實施例中,用在更新期間建立的測定更新認證值。圖6示出了優(yōu)選實施例的可信計算系統(tǒng)的示意組件圖??尚庞嬎阆到y(tǒng)包括:平臺600、認證系統(tǒng)620和更新注冊表(registry)650。更新注冊表650是存儲資源和索引,用于保持操作系統(tǒng)和應(yīng)用的各個組件的最新版本,其用于更新操作系統(tǒng)或應(yīng)用的實例。在該圖中,更新注冊表包括更新651.1至650N。針對操作系統(tǒng)實例的組件版本號或日期掃描更新注冊表中的組件版本號或日期揭示了哪些組件需要更新。在操作中,平臺600是硬件平臺,其具有用于執(zhí)行和管理虛擬操作系統(tǒng)的管理器604。平臺的示例是IBMPowerSystem。在操作中,管理器604包括:引導(dǎo)處理606;更新處理700;更新方612.1至612N;以及虛擬機宿主(hosting)環(huán)境。本示例的管理器在宿主環(huán)境中創(chuàng)建單個虛擬機605用于單個操作系統(tǒng)614,但是,優(yōu)選實施例預(yù)計可在多于一個虛擬機上更新多于一個操作系統(tǒng)。每個虛擬機具有對應(yīng)的虛擬TPM。在管理器上執(zhí)行的每個虛擬機被認證系統(tǒng)信任。通過真實的TPM或當前和可信的簽署的更新和其它安全措施,來獲取所述信任。虛擬可信平臺模塊610包括多個寄存器(PCR)PCR1、2、3...17、18...N。每個PCR可存儲測定或值。更新方612.1至612N包括分離組件的示例集合,其各自與相應(yīng)引導(dǎo)組件(616.1至616N)相關(guān)聯(lián),并且各自可用各個更新(651.1至651N)來更新操作系統(tǒng)。例如,更新方612.3可使用更新651.3來更新引導(dǎo)組件616.3,等等,對于引導(dǎo)組件616N,更新方612N和更新651N也是這樣。每個更新方包括到對應(yīng)的更新和引導(dǎo)組件的鏈接。每個更新方意欲被管理器測定且隨后執(zhí)行。測定被存儲在第一協(xié)定寄存器(例如,PCR17)中。在執(zhí)行期間,更新方測定正在安裝的新的組件,并更新第二協(xié)定寄存器(例如,PCR18)。注意,更新方可能恰好正在進行復(fù)制、或忙于創(chuàng)建組件。例如,更新方“bosboot”忙于從很多配置文件和系統(tǒng)數(shù)據(jù)生成新的操作系統(tǒng)組件映像。在優(yōu)選實施例中,更新方被適配于直接向認證系統(tǒng)通知已更新了操作系統(tǒng)。這可能意味著,更新方直接與認證系統(tǒng)進行接觸、或在管理器上得到某個公共處理用來進行接觸。虛擬OS系統(tǒng)614(例如,IBMAIX*)在被管理器加載時,包括引導(dǎo)組件616.1至616N,其作為引導(dǎo)處理的一部分被加載,以向功能虛擬操作系統(tǒng)提供應(yīng)用、數(shù)據(jù)和接口。不是引導(dǎo)處理的一部分的其它操作系統(tǒng)組件未被示出。引導(dǎo)處理606包括與現(xiàn)有技術(shù)引導(dǎo)處理200相同的處理。認證系統(tǒng)620包括:認證處理622和認證值624.1至6...