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