專利名稱:安全啟動方法、裝置及計算機系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及設(shè)備安全技術(shù)領(lǐng)域,特別涉及一種安全啟動方法、裝置及計算機系統(tǒng)。
背景技術(shù):
設(shè)備從加電到完全運行的過程稱為啟動,啟動一般有兩種啟動方式,一種為可信 啟動,另一種為安全啟動;可信啟動是對當前需要運行的組件進行度量后,無論其是否安全 都繼續(xù)運行該組件,然后將對組件的度量結(jié)果通知驗證方,由驗證方評估所運行設(shè)備的安 全狀態(tài)。安全啟動指除核度量信任根(Core Root of trusted measurement, CRTM)之外, 每次運行一個組件之前,就對該平臺的安全性進行評估,只有在該平臺安全的情況下,才繼 續(xù)運行該組件,否則,則拒絕運行并發(fā)出告警。在安全啟動方式中,將標準值存放在可信平臺模塊(Trusted Platform Module, TPM)的非易失存儲器中,在設(shè)備加電過程中,首先由核度量信任根(Core Root of trusted measurement, CRTM)度量OS Loader,并由專門的驗證代理將度量結(jié)果與TPM非易失存儲 器中的標準值進行比較,如果不一致,則終止運行,如果一致,則將操作控制權(quán)移交給OS Loader,啟動OS Loader,由OS Loader度量0S,并由專門的驗證代理將度量結(jié)果與TPM非 易失存儲器中的標準值進行比較,如果不一致,則終止運行,如果一致,則將操作控制權(quán)移 交給0S,啟動0S,此時系統(tǒng)的啟動組件已全部運行。現(xiàn)有技術(shù)具有如下缺點現(xiàn)有技術(shù)中,如果TPM被屏蔽,就繞過TPM的本地驗證直接啟動組件了,不能保證 已啟動組件的安全性。
發(fā)明內(nèi)容
本發(fā)明實施例提供一種安全啟動方法、裝置及計算機系統(tǒng),能夠保證設(shè)備所運行 的啟動組件都是安全的。有鑒于此,本發(fā)明實施例提供一種安全啟動方法,包括A、具有操作控制權(quán)的啟動組件調(diào)用可信平臺模塊TPM中的解封裝函數(shù),所述解封 裝函數(shù)被調(diào)用以用于在所述具有操作控制權(quán)的啟動組件運行時,獲取當前所述具有操作控 制權(quán)的啟動組件所對應(yīng)的平臺配置寄存器PCR中的數(shù)值,在當前所述具有操作控制權(quán)的啟 動組件所對應(yīng)的PCR中的數(shù)值與封裝包中的PCR值匹配且封裝包中具有用于解密下一個即 將啟動的加密組件的解密密鑰時,向所述具有操作控制權(quán)的啟動組件返回所述解密密鑰;B、利用調(diào)用返回的解密密鑰解密所述下一個即將啟動的加密組件,并度量解密得 到的啟動組件,得到度量值,控制TPM將所述度量值與所述解密得到的啟動組件所對應(yīng)的 PCR中的數(shù)值進行哈希運算,將哈希運算結(jié)果作為當前所述解密得到的啟動組件所對應(yīng)的 PCR中的數(shù)值,將操作控制權(quán)移交給所述解密得到的啟動組件,返回執(zhí)行步驟A,直到設(shè)備 的啟動組件全部啟動完成。
一種安全啟動裝置,包括具有操作控制權(quán)的組件,所述具有操作控制權(quán)的組件包 括調(diào)用模塊、解密模塊、度量模塊和控制權(quán)移交模塊,其中,所述調(diào)用模塊,用于調(diào)用可信平臺模塊TPM中的解封裝函數(shù),所述解封裝函數(shù)被 調(diào)用以用于在所述具有操作控制權(quán)的啟動組件運行時,獲取當前所述具有操作控制權(quán)的啟 動組件所對應(yīng)的平臺配置寄存器PCR中的數(shù)值,在當前所述具有操作控制權(quán)的啟動組件所 對應(yīng)的PCR中的數(shù)值與封裝包中的PCR值匹配且封裝包中具有用于解密下一個即將啟動 的加密組件的解密密鑰時,向所述具有操作控制權(quán)的啟動組件的調(diào)用模塊返回所述解密密 鑰;所述解密模塊,用于利用所述調(diào)用模塊調(diào)用返回的解密密鑰解密所述下一個即將 啟動的加密組件;所述度量模塊,用于度量解密得到的啟動組件,得到度量值,控制TPM將所述度量 值與所述解密得到的啟動組件所對應(yīng)的PCR中的數(shù)值進行哈希運算,將哈希運算結(jié)果作為 當前所述解密得到的啟動組件所對應(yīng)的PCR中的數(shù)值;所述控制權(quán)移交模塊,用于將操作控制權(quán)移交給所述解密得到的啟動組件。一種計算機系統(tǒng),包括處理器和可信平臺模塊TPM,其中,所述處理器上運行有 具有操作控制權(quán)的啟動組件,所述具有操作控制權(quán)的啟動組件,用于調(diào)用TPM中的解封裝函數(shù),并利用調(diào)用返 回的解密密鑰解密下一個即將啟動的加密組件,并度量解密得到的啟動組件,得到度量值, 控制TPM將所述度量值與所述解密得到的啟動組件所對應(yīng)的PCR中的數(shù)值進行哈希運算, 將哈希運算結(jié)果作為當前所述解密得到的啟動組件所對應(yīng)的PCR中的數(shù)值,將操作控制權(quán) 移交給所述解密得到的啟動組件,直到啟動組件全部啟動完成;所述TPM,用于在所述具有操作控制權(quán)的啟動組件調(diào)用所述TPM中的解封裝函數(shù) 時,執(zhí)行所述解封裝函數(shù)的功能,其中,所述解封裝函數(shù)被調(diào)用以用于在所述具有操作控制 權(quán)的啟動組件運行時,獲取當前所述具有操作控制權(quán)的啟動組件所對應(yīng)的平臺配置寄存器 PCR中的數(shù)值,在當前所述具有操作控制權(quán)的啟動組件所對應(yīng)的PCR中的數(shù)值與封裝包中 的PCR值匹配且封裝包中具有用于解密下一個即將啟動的加密組件的解密密鑰時,向所述 具有操作控制權(quán)的啟動組件返回所述解密密鑰。本發(fā)明實施例中具有操作控制權(quán)的啟動組件通過調(diào)用TPM中的解封裝函數(shù),在 該啟動組件運行時,如果該啟動組件所對應(yīng)的平臺配置寄存器(Platform Configuration Register, PCR)中的數(shù)值與封裝包中的PCR值匹配,則返回用于解密下一個即將啟動的加 密組件的解密密鑰,這樣具有操作控制權(quán)的啟動組件就能利用該解密密鑰解密待啟動組 件,由于只能通過解封裝操作才能獲取解密密鑰,只有利用解密密鑰才能解密待啟動組件, 使設(shè)備中啟動組件的啟動必須經(jīng)過TPM平臺的校驗,這樣能夠保證設(shè)備所運行的啟動組件 都是安全的。
為了更清楚地說明本發(fā)明實施例的技術(shù)方案,下面將對實施例中所需要使用的附 圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域 普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1是本發(fā)明一實施提供的安全啟動方法流程圖;圖2是本發(fā)明另一實施例提供的安全啟動方法流程圖;圖3是本發(fā)明一實施例提供的PC機安全啟動方法流程圖;圖4是本發(fā)明一實施例提供的訪問接入點(Access Point, AP)安全啟動方法流程 圖;圖5是本發(fā)明實施例提供的安全啟動裝置結(jié)構(gòu)圖;圖6是本發(fā)明實施例提供的計算機系統(tǒng)結(jié)構(gòu)圖。
具體實施例方式參閱圖1,本發(fā)明實施例提供一種安全啟動方法,該方法包括101、具有操作控制權(quán)的啟動組件調(diào)用可信平臺模塊TPM中的解封裝函數(shù),所述解 封裝函數(shù)被調(diào)用以用于在所述具有操作控制權(quán)的啟動組件運行時,獲取當前所述具有操作 控制權(quán)的啟動組件所對應(yīng)的平臺配置寄存器PCR中的數(shù)值,在當前所述具有操作控制權(quán)的 啟動組件所對應(yīng)的PCR中的數(shù)值與封裝包中的PCR值匹配且封裝包中具有用于解密下一 個即將啟動的加密組件的解密密鑰時,向所述具有操作控制權(quán)的啟動組件返回所述解密密 鑰。其中,所述封裝包中的PCR值為預(yù)定的運行所述具有操作控制權(quán)的啟動組件時所 述TPM的狀態(tài)值;本發(fā)明實施例中所提及的啟動組件對應(yīng)的PCR都位于TPM中。其中,當前 所述具有操作控制權(quán)的啟動組件所對應(yīng)的PCR中的數(shù)值為具有操作控制權(quán)的啟動組件運 行時,當前所述具有操作控制權(quán)的啟動組件所對應(yīng)的TPM的狀態(tài)值。其中,封裝包是存儲在TPM以外的存儲介質(zhì)中的,這樣可以節(jié)省TPM的存儲空間, 避免像現(xiàn)有技術(shù)那樣將標準值存儲在TPM的非易失存儲器中浪費TPM的存儲空間。為了得到封裝包,在該步驟之前,對于設(shè)備的最后一個啟動組件,TPM將預(yù)定的運 行所述最后一個啟動組件時TPM的狀態(tài)值進行封裝;對于設(shè)備的非最后一個啟動組件,TPM 將預(yù)定的運行所述非最后一個啟動組件時TPM的狀態(tài)值和下一個即將啟動的加密組件的 解密密鑰進行封裝。并且,在該步驟之前,需要對除了根啟動組件之外的啟動組件進行加密。其中,根 啟動組件為設(shè)備運行的第一個啟動組件。需要說明的是,當具有操作控制權(quán)的啟動組件是根啟動組件時,在步驟101調(diào)用 TPM中的解封裝函數(shù)之前,所述根啟動組件度量所述根啟動組件的鏡像,得到根啟動組件的 度量值,并控制TPM將所述根啟動組件的度量值與TPM中根啟動組件對應(yīng)的PCR中的數(shù)值 進行哈希運算,將哈希運算結(jié)果作為當前根啟動組件所對應(yīng)PCR中的數(shù)值。102、利用調(diào)用返回的解密密鑰解密所述下一個即將啟動的加密組件。其中,下一個即將啟動的加密組件即為下一個將啟動的啟動組件的加密包。所述解封裝函數(shù)還用于在當前所述具有操作控制權(quán)的啟動組件所對應(yīng)的PCR中 的數(shù)值與封裝包中的PCR值不匹配時,向具有操作控制權(quán)的啟動組件返回失敗指示;則該 步驟中具有操作控制權(quán)的啟動組件根據(jù)調(diào)用返回的失敗指示,停止運行所述具有操作控制 權(quán)的啟動組件。103、具有操作控制權(quán)的啟動組件度量解密得到的啟動組件,得到度量值,控制TPM將所述度量值與所述解密得到的啟動組件所對應(yīng)的PCR中的數(shù)值進行哈希運算,將哈希運 算結(jié)果作為當前所述解密得到的啟動組件所對應(yīng)的PCR中的數(shù)值。104、具有操作控制權(quán)的啟動組件將操作控制權(quán)移交給所述解密得到的啟動組件, 返回執(zhí)行步驟A,直到設(shè)備的啟動組件全部啟動完成。具體的,如果步驟102采用解密函數(shù)對即將啟動的加密組件進行解密,步驟103中 采用度量函數(shù)對解密得到的啟動組件進行度量,本發(fā)明實施例中解密函數(shù)的輸出作為度量 函數(shù)的輸入,這樣,解密和度量可以同時進行,所以一般解密成功時,度量操作也就完成了, 然后解密成功后該啟動組件開始自行啟動,獲得操作控制權(quán)。其中,本發(fā)明實施例提供的技術(shù)方案適用于PC、移動終端(Mobile Station)、接入 點(Access Point,AP)、基站(NB)、演進基站(eNB)等設(shè)備的啟動。在PC中,根啟動組件為 Bios,在AP、NB、eNB中,根啟動組件通常為Bootrom,在其他設(shè)備中,根組件可以為其他的組 件,不影響本發(fā)明的實現(xiàn)。需要說明的是,在TPM中,可以每個啟動組件分別對應(yīng)一個PCR,也可以是多個啟 動組件對應(yīng)一個PCR。如果多個啟動組件對應(yīng)一個PCR時,假定第一啟動組件和第二啟動組 件對應(yīng)同一個PCR,將第一啟動組件的度量值與該PCR中原始數(shù)值進行哈希運算,得到數(shù)值 一,利用數(shù)值一更新該PCR中的數(shù)值;當數(shù)值一與封裝包中預(yù)定的運行所述第一啟動組件 時所述TPM的狀態(tài)值匹配時,獲取第二啟動組件的解密密鑰,解密第二啟動組件加密包,得 到第二啟動組件,然后再將第二啟動組件的度量值與該PCR中的數(shù)值一進行哈希運算,得 到數(shù)值二,利用數(shù)值二更新該PCR中的數(shù)值。本發(fā)明實施例中具有操作控制權(quán)的啟動組件通過調(diào)用TPM中的解封裝函數(shù),當該 啟動組件運行時,在當前該啟動組件所對應(yīng)的PCR中的數(shù)值與封裝包中的PCR值匹配時返 回用于解密下一個即將啟動的加密組件的解密密鑰,這樣具有操作控制權(quán)的啟動組件就能 利用該解密密鑰解密待啟動組件,由于只能通過解封裝操作才能獲取解密密鑰,利用解密 密鑰才能解密待啟動組件,使設(shè)備中啟動組件的啟動必須經(jīng)過TPM平臺的校驗,這樣能保 證設(shè)備所運行的啟動組件都是安全的。進一步,避免像現(xiàn)有技術(shù)那樣為每個組件生成一個 標準值并存儲在TPM中,本發(fā)明實施例是將封裝包存儲在TPM外的存儲介質(zhì)上,不需要放在 TPM中,節(jié)省TPM的存儲空間。進一步,本發(fā)明實施例中TPM在解封裝時自動判斷該啟動組 件當前對應(yīng)的PCR中的數(shù)值與封裝包中預(yù)定的PCR值是否匹配,不需要專門的驗證代理對 組件的度量值和標準值進行比較。為了使本發(fā)明提供的技術(shù)方案更加清楚明白,如下各實施例將對本發(fā)明提供的技 術(shù)方案進行詳細描述。圖2示出了一種安全啟動方法,該方法具體包括201、對設(shè)備加電。202、啟動核度量信任根(Core Root of trusted measurement,CRTM),CRTM 中的 度量代理度量CRTM的鏡像,得到度量值,將度量值擴展到TPM相應(yīng)的PCR中,此時CRTM為 具有操作控制權(quán)的啟動組件。其中,該步驟中的度量就是對該組件的鏡像進行哈希運算。此時,該組件的度量值 即為該組件鏡像的Hash值。其中,將度量值擴展到TPM相應(yīng)的PCR中具體指控制TPM將根啟動組件的度量值與TPM中根啟動組件對應(yīng)的PCR中的數(shù)值進行哈希運算,用哈希運算結(jié)果更新該PCR中 的數(shù)值,此時,該哈希運算結(jié)果為當前根啟動組件對應(yīng)的PCR中的數(shù)值,即根啟動組件運行 時,根啟動組件所對應(yīng)的TPM的狀態(tài)值。具體的,可以采用如下命令將度量值擴展到TPM相應(yīng)的PCR中TPM_Extend :PCR[new] = SHA l{PCR[old]| new measured value}。203、具有操作控制權(quán)的啟動組件調(diào)用TPM平臺上的解封裝函數(shù),執(zhí)行解封裝功 能,如果解封裝函數(shù)返回用于解密下一個即將啟動的加密組件的解密密鑰,則執(zhí)行步驟 204,如果解封裝函數(shù)返回失敗指示,則停止運行該啟動組件,或者提示警告,并結(jié)束本流 程。其中,解封裝功能包括在具有操作控制權(quán)的組件運行時,獲取當前具有操作控制 權(quán)的啟動組件所對應(yīng)的PCR中的數(shù)值,判斷當前具有操作控制權(quán)的啟動組件所對應(yīng)的PCR 中的數(shù)值與封裝包中存儲的該啟動組件所對應(yīng)的PCR值是否匹配,如果是,當封裝包中有 用于解密下一個即將啟動的加密組件的解密密鑰時,則返回該解密密鑰給具有操作控制權(quán) 的組件;如果兩者不匹配,則返回失敗指示給具有操作控制權(quán)的組件,該失敗指示可以是一 個提示不匹配的指示信息,也可以是一個表指示該組件不安全的警告消息。需要說明的是,在該步驟之前,設(shè)備中加密組件需要對設(shè)備中除了 CRTM以外的各 啟動組件進行加密,并獲得對應(yīng)各啟動組件的解密密鑰(各啟動組件的加密密鑰和解密密 鑰是對稱密鑰)。然后利用存儲密鑰對各啟動組件的解密密鑰進行封裝,該存儲密鑰是不可 遷移的非對稱密鑰。具體的,對于設(shè)備啟動過程中的非最后一個啟動組件,TPM利用存儲密 鑰將預(yù)定的運行所述啟動組件時TPM的狀態(tài)值和下一個即將啟動的加密組件的解密密鑰 進行加密,得到封裝包并保存在TPM外的存儲空間中,比如保存在PC的存儲空間中;對于設(shè) 備啟動過程中的最后一個啟動組件,TPM利用存儲密鑰將預(yù)定的運行所述啟動組件時TPM 的狀態(tài)值進行封裝,得到封裝包并保存在TPM外的存儲空間中,比如保存在PC的存儲空間 中。具體的,在調(diào)用解封裝函數(shù)時,具有操作控制權(quán)的啟動組件會將授權(quán)值傳給TPM, TPM通過對授權(quán)值的判斷決定該具有操作控制權(quán)的啟動組件是否有權(quán)利用存儲密鑰對封裝 包進行解封裝。204、具有操作控制權(quán)的啟動組件利用調(diào)用返回的解密密鑰解密下一個即將啟動 的加密組件。205、具有操作控制權(quán)的啟動組件度量解密得到的啟動組件,將度量值擴展到TPM 相應(yīng)的PCR中。在度量解密得到的啟動組件完成時,該啟動組件開始啟動。具體的,具有操作控制權(quán)的啟動組件控制TPM將所述度量值與所述解密得到的啟 動組件所對應(yīng)的PCR中的數(shù)值進行哈希運算,用哈希運算結(jié)果更新該PCR中的數(shù)值,此時, 該哈希運算結(jié)果為當前所述解密得到的啟動組件所對應(yīng)的PCR中的數(shù)值,即具有操作控制 權(quán)的啟動組件運行時,該啟動組件所對應(yīng)的TPM的狀態(tài)值。其中,PCR是160bit的寄存器,通常,一個TPM中有24個PCR,PCR中存儲TPM的 狀態(tài)值。206、解密得到的啟動組件啟動運行過程中,具有操作控制權(quán)的啟動組件將操作控制權(quán)交給解密得到的啟動組件,返回執(zhí)行203。本發(fā)明實施例中具有操作控制權(quán)的啟動組件通過調(diào)用TPM中的解封裝函數(shù),判斷 該啟動組件運行時,該啟動組件對應(yīng)的PCR中的數(shù)值與封裝包中的PCR值是否匹配,并在 兩者匹配時返回用于解密下一個即將啟動的加密組件的解密密鑰,這樣具有操作控制權(quán)的 啟動組件就能利用該解密密鑰解密待啟動組件,由于只能通過解封裝操作才能獲取解密密 鑰,利用解密密鑰才能解密待啟動組件,使設(shè)備中啟動組件的啟動必須經(jīng)過TPM平臺的校 驗,這樣能夠保證設(shè)備所運行的啟動組件都是安全的。進一步,避免像現(xiàn)有技術(shù)那樣為每個 組件生成一個標準值并存儲在TPM中,本發(fā)明實施例是將封裝包存儲在TPM外的存儲介質(zhì) 上,不需要放在TPM中,節(jié)省TPM的存儲空間。進一步,本發(fā)明實施例中TPM在解封裝時自 動判斷該啟動組件當前對應(yīng)的PCR中的數(shù)值與封裝包中預(yù)定的PCR值是否匹配,不需要專 門的驗證代理對組件的度量值和標準值進行比較。圖3示出了一種基于PC機的安全啟動方法,該方法具體包括301、PC機加電,啟動BIOS,BIOS中的度量代理度量BIOS的鏡像,得到度量值。302、BI0S將度量值擴展到TPM的相應(yīng)PCR中,并且調(diào)用解封裝函數(shù)(TPM Unseal)。其中,將度量值擴展到TPM相應(yīng)的PCR中具體指控制TPM將BIOS的度量值與當 前TPM中BIOS對應(yīng)的PCR中的數(shù)值進行哈希運算,用哈希運算結(jié)果更新該PCR中的數(shù)值, 此時,該哈希運算結(jié)果為當前BIOS對應(yīng)的PCR中的數(shù)值。303、TPM執(zhí)行解封裝功能。其中,解封裝功能包括在具有操作控制權(quán)的組件運行時,獲取當前具有操作控制 權(quán)的啟動組件所對應(yīng)的PCR中的數(shù)值,判斷當前具有操作控制權(quán)的啟動組件所對應(yīng)的PCR 中的數(shù)值與封裝包中該啟動組件所對應(yīng)的PCR值是否匹配,如果是,當封裝包中有用于解 密下一個即將啟動的加密組件的解密密鑰時,則返回該解密密鑰給具有操作控制權(quán)的組 件;如果兩者不匹配,則返回失敗指示給具有操作控制權(quán)的組件,該失敗指示可以是一個提 示不匹配的指示信息,也可以是一個指示該組件不安全的警告消息。本發(fā)明實施例假定BIOS擴展到PCR后PCR中的數(shù)值與封裝包中預(yù)存的BIOS對應(yīng) 的PCR值匹配,并繼續(xù)執(zhí)行步驟304。304、BIOS獲得TPM返回的解密密鑰。該解密密鑰是用于解密下一個即將啟動的加密組件的密鑰,本發(fā)明實施例中下一 個將啟動的啟動組件為OS Loader。305、BIOS解密OS Loader加密組件,并度量解密得到的OS Loader。306、BIOS將對OS Loader的度量值擴展到TPM的相應(yīng)PCR中。具體的,BIOS控制TPM將OS Loader的度量值與當前TPM中OS Loader所對應(yīng)的 PCR中的數(shù)值進行哈希運算,用哈希運算結(jié)果更新該PCR中的數(shù)值,此時,該哈希運算結(jié)果 為當前所述OS Loader所對應(yīng)的PCR中的數(shù)值。307、OS Loader啟動運行過程中,BIOS將操作控制權(quán)移交給OS Loader。其中,OS Loader是在步驟306BI0S度量OS Loader完成后開始啟動的。308、OS Loader 調(diào)用解封裝函數(shù)(TPM_Unseal)。309、TPM執(zhí)行解封裝功能。本發(fā)明實施例假定步驟306擴展到PCR后PCR中的數(shù)值與封裝包中預(yù)存OSLoader對應(yīng)的PCR值匹配,繼續(xù)執(zhí)行步驟310。310、OS Loader獲得TPM返回的解密密鑰。該解密密鑰是用于解密下一個即將啟動的加密組件的密鑰,本發(fā)明實施例中下一 個即將啟動的啟動組件為Os。311、OS Loader解密OS加密組件,并度量解密得到的OS。312、OS Loader將對OS的度量值擴展到TPM的相應(yīng)PCR中。具體的,BIOS控制TPM將OS的度量值與當前TPM中OS所對應(yīng)的PCR中的數(shù)值進 行哈希運算,用哈希運算結(jié)果更新該PCR中的數(shù)值,此時,該哈希運算結(jié)果為當前所述OS所 對應(yīng)的PCR中的數(shù)值。313、OS啟動運行過程中,OS Loader將操作控制權(quán)交給0S。其中,OS是在步驟311 OS Loader度量OS完成后開始啟動的。314、OS 調(diào)用解封裝函數(shù)(TPM_Unseal)。315, TPM執(zhí)行解封裝功能。本發(fā)明實施例假定步驟312擴展到PCR后PCR中的數(shù)值與封裝包中預(yù)存OS對應(yīng) 的PCR值匹配,且該封裝包沒有解密密鑰了,則表示該OS為設(shè)備的最后一個啟動組件。此 時TPM解封裝時未返回失敗指示,則表示該OS是安全的,可以繼續(xù)運行下去,此時設(shè)備的啟 動組件已全部安全啟動。本發(fā)明實施例的PC中有操作控制權(quán)的啟動組件通過調(diào)用TPM中的解封裝函數(shù),判 斷該啟動組件運行時,當前該啟動組件所對應(yīng)的PCR中的數(shù)值與封裝包中該啟動組件所對 應(yīng)的PCR值是否匹配,并在兩者匹配時返回用于解密下一個即將啟動的加密組件的解密密 鑰,這樣具有操作控制權(quán)的啟動組件就能利用該解密密鑰解密待啟動組件,由于只能通過 解封裝操作才能獲取解密密鑰,利用解密密鑰才能解密待啟動組件,使設(shè)備中啟動組件的 啟動必須經(jīng)過TPM平臺的校驗,這樣能夠保證設(shè)備所運行的啟動組件都是安全的。進一步, 避免像現(xiàn)有技術(shù)那樣為每個組件生成一個標準值并存儲在TPM中,本發(fā)明實施例是將封裝 包存儲在TPM外的存儲介質(zhì)上,不需要放在TPM中,節(jié)省TPM的存儲空間。進一步,本發(fā)明 實施例中TPM在解封裝時自動判斷該啟動組件當前對應(yīng)的PCR中的數(shù)值與封裝包中預(yù)定的 PCR值是否匹配,不需要專門的驗證代理對組件的度量值和標準值進行比較。圖4示出了一種基于AP的安全啟動方法,該方法具體包括401、AP加電,啟動Bootrom,Bootrom中的度量代理度量Bootrom的鏡像,得到度 量值。402、Bootrom將度量值擴展到TPM的相應(yīng)PCR中,并且調(diào)用解封裝函數(shù)(TPM_ Unseal)。具體的擴展方式與步驟302相似,在此不再贅述。403、TPM執(zhí)行解封裝功能。其中,解封裝功能包括在具有操作控制權(quán)的組件運行時,獲取當前具有操作控制 權(quán)的啟動組件所對應(yīng)的PCR中的數(shù)值,判斷當前具有操作控制權(quán)的啟動組件所對應(yīng)的PCR 中的數(shù)值與封裝包中該啟動組件所對應(yīng)的PCR值是否匹配,如果是,當封裝包中有用于解 密下一個即將啟動的加密組件的解密密鑰時,則返回該解密密鑰給具有操作控制權(quán)的組 件;如果兩者不匹配,則返回失敗指示給具有操作控制權(quán)的組件,該失敗指示可以是一個提示不匹配的指示信息,也可以是一個指示該組件不安全的警告消息。本發(fā)明實施例假定Bootrom的度量值擴展到PCR后PCR中的數(shù)值與封裝包中預(yù)存 的Bootrom對應(yīng)的PCR值匹配,并繼續(xù)執(zhí)行步驟404。404、Bootrom獲得TPM返回的解密密鑰。該解密密鑰是用于解密下一個即將啟動的加密組件的密鑰,本發(fā)明實施例中下一 個將啟動的啟動組件為VxWorks。405、Bootrom解密VxWorks加密組件,并度量解密得到的VxWorks。406、Bootrom將對Vxfforks的度量值擴展到TPM相應(yīng)的PCR中。具體的擴展方式與步驟306中的擴展方式相似,在此不再贅述。407、Vxfforks啟動運行過程中,Bootrom將控制操作權(quán)移交給VxWorks。其中,VxWorks是在步驟405Bootrom度量VxWorks完成后開始啟動的。408、Vxfforks 調(diào)用解封裝函數(shù)(TPM_Unseal)。409、TPM執(zhí)行解封裝功能。本發(fā)明實施例假定步驟406擴展到PCR后PCR中的數(shù)值與封裝包中預(yù)存的 Vxfforks對應(yīng)的PCR值匹配。且該封裝包沒有解密密鑰了,則表示該VxWorks為設(shè)備的最后 一個啟動組件。此時TPM解封裝時未返回失敗指示,則表示該VxWorks是安全的,可以繼續(xù) 運行下去,此時設(shè)備的啟動組件已全部安全啟動。本發(fā)明實施例的AP中有操作控制權(quán)的啟動組件通過調(diào)用TPM中的解封裝函數(shù),判 斷該啟動組件運行時,該啟動組件所對應(yīng)的PCR中的數(shù)值與封裝包中該啟動組件所對應(yīng)的 PCR值是否匹配,并在兩者匹配時返回用于解密下一個即將啟動的加密組件的解密密鑰,這 樣具有操作控制權(quán)的啟動組件就能利用該解密密鑰解密待啟動組件,由于只能通過解封裝 操作才能獲取解密密鑰,利用解密密鑰才能解密待啟動組件,使設(shè)備中啟動組件的啟動必 須經(jīng)過TPM平臺的校驗,這樣能夠保證設(shè)備所運行的啟動組件都是安全的。進一步,避免像 現(xiàn)有技術(shù)那樣為每個組件生成一個標準值并存儲在TPM中,本發(fā)明實施例是將封裝包存儲 在TPM外的存儲介質(zhì)上,不需要放在TPM中,節(jié)省TPM的存儲空間。進一步,本發(fā)明實施例 中TPM在解封裝時自動判斷該啟動組件當前對應(yīng)的PCR中的數(shù)值與封裝包中預(yù)定的PCR值 是否匹配,不需要專門的驗證代理對組件的度量值和標準值進行比較。參閱圖5,本發(fā)明實施例提供一種安全啟動裝置,該裝置包括具有操作控制權(quán)的 組件50,所述具有操作控制權(quán)的組件包括調(diào)用模塊501、解密模塊502、度量模塊503和控 制權(quán)移交模塊504,其中,為了使本發(fā)明技術(shù)方案更加清楚明白,圖5中也示出了可信平臺 模塊TPM 60。調(diào)用模塊501,用于調(diào)用TPM中的解封裝函數(shù),所述解封裝函數(shù)被調(diào)用以用于在所 述具有操作控制權(quán)的啟動組件運行時,獲取當前所述具有操作控制權(quán)的啟動組件所對應(yīng)的 PCR中的數(shù)值,在當前所述具有操作控制權(quán)的啟動組件所對應(yīng)的PCR中的數(shù)值與封裝包中 的PCR值匹配且封裝包中具有用于解密下一個即將啟動的加密組件的解密密鑰時,向所述 具有操作控制權(quán)的啟動組件的調(diào)用模塊返回所述解密密鑰;所述封裝包中的PCR值為預(yù)定 的運行所述具有操作控制權(quán)的啟動組件時所述TPM的狀態(tài)值;其中,本發(fā)明實施例中所提及的啟動組件對應(yīng)的PCR都位于TPM中。其中,當前所 述具有操作控制權(quán)的啟動組件所對應(yīng)的PCR中的數(shù)值為具有操作控制權(quán)的啟動組件運行時,當前所述具有操作控制權(quán)的啟動組件所對應(yīng)的TPM的狀態(tài)值。其中,封裝包是存儲在 TPM以外的存儲介質(zhì)中的,這樣可以節(jié)省TPM的存儲空間,避免像現(xiàn)有技術(shù)那樣將標準值存 儲在TPM的非易失存儲器中浪費TPM的存儲空間。解密模塊502,用于利用所述調(diào)用模塊501調(diào)用返回的解密密鑰解密所述下一個 即將啟動的加密組件;度量模塊503,用于度量解密模塊502解密得到的組件,得到度量值,得到度量值, 控制TPM將所述度量值與所述解密得到的啟動組件所對應(yīng)的PCR中的數(shù)值進行哈希運算, 將哈希運算結(jié)果作為當前所述解密得到的啟動組件所對應(yīng)的PCR中的數(shù)值。其中,在TPM 中,可以每個啟動組件分別對應(yīng)一個PCR,也可以是多個啟動組件對應(yīng)一個PCR。具體的可 以參見方法中第一個實施例的相應(yīng)描述,在此不再贅述??刂茩?quán)移交模塊504,用于在度量模塊503度量解密模塊解密得到的組件之后,將 操作控制權(quán)移交給所述解密得到的組件。其中,所述解封裝函數(shù)還用于在當前所述具有操作控制權(quán)的啟動組件所對應(yīng)的 PCR中的數(shù)值與封裝包中的PCR值不匹配時,向具有操作控制權(quán)的啟動組件的調(diào)用模塊501 返回失敗指示;所述具有操作控制權(quán)的組件還包括控制模塊505,用于根據(jù)所述調(diào)用模塊501調(diào) 用返回的失敗指示,控制停止運行所述具有操作控制權(quán)的啟動組件。具體的,該裝置還包括可信平臺模塊TPM 60具體用于在調(diào)用模塊501調(diào)用TPM 中的解封裝函數(shù)時,執(zhí)行所述解封裝函數(shù)的功能;并對于設(shè)備的最后一個啟動組件,將預(yù)定 的運行所述最后一個啟動組件時TPM的狀態(tài)值進行封裝;對于設(shè)備的非最后一個啟動組 件,將預(yù)定的運行所述非最后一個啟動組件時TPM的狀態(tài)值和下一個即將啟動的加密組件 的解密密鑰進行封裝。當具有操作控制權(quán)的啟動組件是根啟動組件時,所述度量模塊503還用于度量所 述根啟動組件,得到所述根啟動組件的度量值,控制TPM將所述根啟動組件的度量值與TPM 中根啟動組件對應(yīng)的PCR中的數(shù)值進行哈希運算,將根啟動組件的度量值與TPM中根啟動 組件對應(yīng)的PCR中的數(shù)值的哈希運算結(jié)果作為當前所述根啟動組件對應(yīng)的PCR中的數(shù)值。 其中,在PC中,根啟動組件為Bios,在AP、NB、eNB中,根啟動組件通常為Bootrom,在其他設(shè) 備中,根組件可以為其他的組件,不影響本發(fā)明的實現(xiàn)。為了對各組件進行加密,該安全啟動裝置還包括加密模塊70,用于對除了根啟 動組件之外的啟動組件進行加密。本發(fā)明實施例中具有操作控制權(quán)的啟動組件通過調(diào)用TPM中的解封裝函數(shù),判斷 該啟動組件運行時,該啟動組件所對應(yīng)的PCR中的數(shù)值與封裝包中的PCR是否匹配,并在 兩者匹配時返回用于解密下一個即將啟動的加密組件的解密密鑰,這樣具有操作控制權(quán)的 啟動組件就能利用該解密密鑰解密待啟動組件,由于只能通過解封裝操作才能獲取解密密 鑰,利用解密密鑰才能解密待啟動組件,使設(shè)備中啟動組件的啟動必須經(jīng)過TPM平臺的校 驗,這樣能夠保證設(shè)備所運行的啟動組件都是安全的。進一步,避免像現(xiàn)有技術(shù)那樣為每個 組件生成一個標準值并存儲在TPM中,本發(fā)明實施例是將封裝包存儲在TPM外的存儲介質(zhì) 上,不需要放在TPM中,節(jié)省TPM的存儲空間。進一步,本發(fā)明實施例中TPM在解封裝時自 動判斷該啟動組件當前對應(yīng)的PCR中的數(shù)值與封裝包中預(yù)定的PCR值是否匹配,不需要專門的驗證代理對組件的度量值和標準值進行比較。本領(lǐng)域普通技術(shù)人員可以理解實現(xiàn)上述實施例方法中的全部或部分步驟是可以 通過程序來指令相關(guān)的硬件完成,所述的程序可以存儲于一種計算機可讀存儲介質(zhì)中,例 如只讀存儲器,磁盤或光盤等。參閱圖6,本發(fā)明實施例提供一種計算機系統(tǒng),其包括處理器601和可信平臺模 塊TPM 602,其中,所述處理器601上運行有具有操作控制權(quán)的啟動組件,其中,處理器601 可以是CPU等。該計算機系統(tǒng)可用于PC、移動終端(Mobile Station)、接入點(Access Point,AP)、基站(NB)、演進基站(eNB)等設(shè)備。所述具有操作控制權(quán)的啟動組件,用于調(diào)用TPM中的解封裝函數(shù),并利用調(diào)用返 回的解密密鑰解密下一個即將啟動的加密組件,并度量解密得到的啟動組件,得到度量值, 控制TPM將所述度量值與所述解密得到的啟動組件所對應(yīng)的PCR中的數(shù)值進行哈希運算, 將哈希運算結(jié)果作為當前所述解密得到的啟動組件所對應(yīng)的PCR中的數(shù)值,將操作控制權(quán) 移交給所述解密得到的啟動組件,直到啟動組件全部啟動完成。所述TPM 602,用于在所述具有操作控制權(quán)的啟動組件調(diào)用所述TPM中的解封裝 函數(shù)時,執(zhí)行所述解封裝函數(shù)的功能,其中,所述解封裝函數(shù)被調(diào)用以用于在所述具有操作 控制權(quán)的啟動組件運行時,獲取當前所述具有操作控制權(quán)的啟動組件所對應(yīng)的平臺配置寄 存器PCR中的數(shù)值,在當前所述具有操作控制權(quán)的啟動組件所對應(yīng)的PCR中的數(shù)值與封裝 包中的PCR值匹配且封裝包中具有用于解密下一個即將啟動的加密組件的解密密鑰時,向 所述具有操作控制權(quán)的啟動組件返回所述解密密鑰。其中,所述封裝包中的PCR值為預(yù)定的運行所述具有操作控制權(quán)的啟動組件時所 述TPM的狀態(tài)值;本發(fā)明實施例中所提及的啟動組件對應(yīng)的PCR都位于TPM中。其中,當前 所述具有操作控制權(quán)的啟動組件所對應(yīng)的PCR中的數(shù)值為具有操作控制權(quán)的啟動組件運 行時,當前所述具有操作控制權(quán)的啟動組件所對應(yīng)的TPM的狀態(tài)值。其中,封裝包是存儲在 TPM以外的存儲介質(zhì)中的,這樣可以節(jié)省TPM的存儲空間,避免像現(xiàn)有技術(shù)那樣將標準值存 儲在TPM的非易失存儲器中浪費TPM的存儲空間。為了避免已啟動的組件不安全時影響系統(tǒng)性能,所述解封裝函數(shù)還用于在當前所 述具有操作控制權(quán)的啟動組件所對應(yīng)的PCR中的數(shù)值與封裝包中的PCR值不匹配時,向具 有操作控制權(quán)的啟動組件返回失敗指示;所述具有操作控制權(quán)的啟動組件,還用于根據(jù)調(diào) 用返回的失敗指示,停止運行。該計算機系統(tǒng)采用上述方法實施例提供的方法,從根啟動組件開始,逐個啟動各 啟動組件,啟動組件在啟動后獲得上一個啟動組件轉(zhuǎn)交的操作控制權(quán),然后開始調(diào)用TPM 中的解封裝函數(shù),當收到解密密鑰時,利用所述解密密鑰解密所述下一個即將啟動的加密 組件,并度量解密得到的啟動組件,得到度量值,控制TPM將所述度量值與所述解密得到的 啟動組件所對應(yīng)的PCR中的數(shù)值進行哈希運算,將哈希運算結(jié)果作為當前所述解密得到的 啟動組件所對應(yīng)的PCR中的數(shù)值,將操作控制權(quán)移交給解密得到的啟動組件。為了獲得封裝包,所述TPM 602還用于將預(yù)定的運行最后一個啟動組件時TPM的 狀態(tài)值進行封裝;將預(yù)定的運行非最后一個啟動組件時TPM的狀態(tài)值和下一個即將啟動的 加密組件的解密密鑰進行封裝。當具有操作控制權(quán)的啟動組件是根啟動組件時,所述根啟動組件,還用于度量自己,得到根啟動組件的度量值,控制TPM對所述根啟動組件的度量值與TPM中根啟動組件對 應(yīng)的PCR中的數(shù)值進行哈希運算,將根啟動組件的度量值與TPM中根啟動組件對應(yīng)的PCR 中的數(shù)值的哈希運算結(jié)果作為當前所述根啟動組件所對應(yīng)的PCR中的數(shù)值。其中,根啟動 組件為設(shè)備運行的第一個啟動組件。為了對除了根啟動組件之外的啟動組件進行加密,所述CPU上還運行加密組件, 所述加密組件,用于對除了根啟動組件之外的啟動組件進行加密。本發(fā)明實施例提供的計算機系統(tǒng)中,具有操作控制權(quán)的啟動組件通過調(diào)用TPM中 的解封裝函數(shù),判斷該啟動組件運行時,該啟動組件所對應(yīng)的PCR中的數(shù)值與封裝包中的 PCR是否匹配,并在兩者匹配時返回用于解密下一個即將啟動的加密組件的解密密鑰,這樣 具有操作控制權(quán)的啟動組件就能利用該解密密鑰解密待啟動組件,由于只能通過解封裝操 作才能獲取解密密鑰,利用解密密鑰才能解密待啟動組件,使設(shè)備中啟動組件的啟動必須 經(jīng)過TPM平臺的校驗,這樣能夠保證設(shè)備所運行的啟動組件都是安全的。進一步,避免像現(xiàn) 有技術(shù)那樣為每個組件生成一個標準值并存儲在TPM中,本發(fā)明實施例是將封裝包存儲在 TPM外的存儲介質(zhì)上,不需要放在TPM中,節(jié)省TPM的存儲空間。進一步,本發(fā)明實施例中 TPM在解封裝時自動判斷該啟動組件當前對應(yīng)的PCR中的數(shù)值與封裝包中預(yù)定的PCR值是 否匹配,不需要專門的驗證代理對組件的度量值和標準值進行比較。以上對本發(fā)明實施例所提供的安全啟動方法、裝置及計算機系統(tǒng)進行了詳細介 紹,本文中應(yīng)用了具體個例對本發(fā)明的原理及實施方式進行了闡述,以上實施例的說明只 是用于幫助理解本發(fā)明的方法及其核心思想;同時,對于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā) 明的思想,在具體實施方式
及應(yīng)用范圍上均會有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理 解為對本發(fā)明的限制。
權(quán)利要求
1.一種安全啟動方法,其特征在于,包括A、具有操作控制權(quán)的啟動組件調(diào)用可信平臺模塊TPM中的解封裝函數(shù),所述解封裝函 數(shù)被調(diào)用以用于在所述具有操作控制權(quán)的啟動組件運行時,獲取當前所述具有操作控制權(quán) 的啟動組件所對應(yīng)的平臺配置寄存器PCR中的數(shù)值,在當前所述具有操作控制權(quán)的啟動組 件所對應(yīng)的PCR中的數(shù)值與封裝包中的PCR值匹配且封裝包中具有用于解密下一個即將啟 動的加密組件的解密密鑰時,向所述具有操作控制權(quán)的啟動組件返回所述解密密鑰;B、利用調(diào)用返回的解密密鑰解密所述下一個即將啟動的加密組件,并度量解密得到的 啟動組件,得到度量值,控制TPM將所述度量值與所述解密得到的啟動組件所對應(yīng)的PCR中 的數(shù)值進行哈希運算,將哈希運算結(jié)果作為當前所述解密得到的啟動組件所對應(yīng)的PCR中 的數(shù)值,將操作控制權(quán)移交給所述解密得到的啟動組件,返回執(zhí)行步驟A,直到設(shè)備的啟動 組件全部啟動完成。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述解封裝函數(shù)還用于在當前所述具有操作控制權(quán)的啟動組件所對應(yīng)的PCR中的數(shù) 值與封裝包中的PCR值不匹配時,向具有操作控制權(quán)的啟動組件返回失敗指示;步驟B還包括根據(jù)調(diào)用返回的失敗指示,停止運行所述具有操作控制權(quán)的啟動組件。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,在步驟A之前,該方法還包括對于設(shè)備的最后一個啟動組件,TPM將預(yù)定的運行所述最后一個啟動組件時TPM的狀 態(tài)值進行封裝;對于設(shè)備的非最后一個啟動組件,TPM將預(yù)定的運行所述非最后一個啟動組件時TPM 的狀態(tài)值和下一個即將啟動的加密組件的解密密鑰進行封裝。
4.根據(jù)權(quán)利要求1-3任一項所述的方法,其特征在于,當具有操作控制權(quán)的啟動組件是根啟動組件時,在調(diào)用可信平臺模塊TPM中的解封裝 函數(shù)之前,該方法還包括所述根啟動組件度量所述根啟動組件的鏡像,得到根啟動組件的度量值,控制TPM將 所述根啟動組件的度量值與TPM中根啟動組件對應(yīng)的PCR中的數(shù)值進行哈希運算,將根啟 動組件的度量值與TPM中根啟動組件對應(yīng)的PCR中的數(shù)值的哈希運算結(jié)果作為當前所述根 啟動組件所對應(yīng)的PCR中的數(shù)值。
5.根據(jù)權(quán)利要求1-3任一項所述的方法,其特征在于,在步驟A之前,該方法還包括對除了根啟動組件之外的啟動組件進行加密。
6.一種安全啟動裝置,其特征在于,包括具有操作控制權(quán)的組件,所述具有操作控制權(quán) 的組件包括調(diào)用模塊、解密模塊、度量模塊和控制權(quán)移交模塊,其中,所述調(diào)用模塊,用于調(diào)用可信平臺模塊TPM中的解封裝函數(shù),所述解封裝函數(shù)被調(diào)用 以用于在所述具有操作控制權(quán)的啟動組件運行時,獲取當前所述具有操作控制權(quán)的啟動組 件所對應(yīng)的平臺配置寄存器PCR中的數(shù)值,在當前所述具有操作控制權(quán)的啟動組件所對應(yīng) 的PCR中的數(shù)值與封裝包中的PCR值匹配且封裝包中具有用于解密下一個即將啟動的加密 組件的解密密鑰時,向所述具有操作控制權(quán)的啟動組件的調(diào)用模塊返回所述解密密鑰;所述解密模塊,用于利用所述調(diào)用模塊調(diào)用返回的解密密鑰解密所述下一個即將啟動 的加密組件;所述度量模塊,用于度量解密得到的啟動組件,得到度量值,控制TPM將所述度量值與 所述解密得到的啟動組件所對應(yīng)的PCR中的數(shù)值進行哈希運算,將哈希運算結(jié)果作為當前 所述解密得到的啟動組件所對應(yīng)的PCR中的數(shù)值;所述控制權(quán)移交模塊,用于將操作控制權(quán)移交給所述解密得到的啟動組件。
7.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述解封裝函數(shù)還用于在當前所述具有操作控制權(quán)的啟動組件所對應(yīng)的PCR中的數(shù) 值與封裝包中的PCR值不匹配時,向具有操作控制權(quán)的啟動組件的調(diào)用模塊返回失敗指 示;所述具有操作控制權(quán)的組件還包括控制模塊,用于根據(jù)所述調(diào)用模塊調(diào)用返回的失敗指示,控制停止運行所述具有操作 控制權(quán)的啟動組件。
8.根據(jù)權(quán)利要求6所述的裝置,其特征在于,還包括可信平臺模塊TPM,用于在所述調(diào)用模塊調(diào)用所述TPM中的解封裝函數(shù)時,執(zhí)行所述解 封裝函數(shù)的功能;并對于設(shè)備的最后一個啟動組件,將預(yù)定的運行所述最后一個啟動組件 時TPM的狀態(tài)值進行封裝;對于設(shè)備的非最后一個啟動組件,將預(yù)定的運行所述非最后一 個啟動組件時TPM的狀態(tài)值和下一個即將啟動的加密組件的解密密鑰進行封裝。
9.根據(jù)權(quán)利要求6-8任一項所述的裝置,其特征在于,當具有操作控制權(quán)的啟動組件是根啟動組件時,所述度量模塊,還用于度量所述根啟動組件的鏡像,得到根啟動組件的度量值,控制 TPM將所述根啟動組件的度量值與TPM中根啟動組件對應(yīng)的PCR中的數(shù)值進行哈希運算,將 根啟動組件的度量值與TPM中根啟動組件對應(yīng)的PCR中的數(shù)值的哈希運算結(jié)果作為當前所 述根啟動組件所對應(yīng)的PCR中的數(shù)值。
10.根據(jù)權(quán)利要求6-8任一項所述的裝置,其特征在于,所述安全啟動裝置還包括加密模塊,用于對除了根啟動組件之外的啟動組件進行加密。
11.一種計算機系統(tǒng),其特征在于,包括處理器和可信平臺模塊TPM,其中,所述處理 器上運行有具有操作控制權(quán)的啟動組件,所述具有操作控制權(quán)的啟動組件,用于調(diào)用TPM中的解封裝函數(shù),并利用調(diào)用返回的 解密密鑰解密下一個即將啟動的加密組件,并度量解密得到的啟動組件,得到度量值,控制 TPM將所述度量值與所述解密得到的啟動組件所對應(yīng)的PCR中的數(shù)值進行哈希運算,將哈 希運算結(jié)果作為當前所述解密得到的啟動組件所對應(yīng)的PCR中的數(shù)值,將操作控制權(quán)移交 給所述解密得到的啟動組件,直到啟動組件全部啟動完成;所述TPM,用于在所述具有操作控制權(quán)的啟動組件調(diào)用所述TPM中的解封裝函數(shù)時,執(zhí) 行所述解封裝函數(shù)的功能,其中,所述解封裝函數(shù)被調(diào)用以用于在所述具有操作控制權(quán)的 啟動組件運行時,獲取當前所述具有操作控制權(quán)的啟動組件所對應(yīng)的平臺配置寄存器PCR 中的數(shù)值,在當前所述具有操作控制權(quán)的啟動組件所對應(yīng)的PCR中的數(shù)值與封裝包中的 PCR值匹配且封裝包中具有用于解密下一個即將啟動的加密組件的解密密鑰時,向所述具 有操作控制權(quán)的啟動組件返回所述解密密鑰。
12.根據(jù)權(quán)利要求11所述的系統(tǒng),其特征在于,所述解封裝函數(shù)還用于在當前所述具有操作控制權(quán)的啟動組件所對應(yīng)的PCR中的數(shù) 值與封裝包中的PCR值不匹配時,向具有操作控制權(quán)的啟動組件返回失敗指示;所述具有操作控制權(quán)的啟動組件,還用于根據(jù)調(diào)用返回的失敗指示,停止運行。
13.根據(jù)權(quán)利要求11所述的系統(tǒng),其特征在于,所述TPM,還用于對于設(shè)備的最后一個啟動組件,將預(yù)定的運行所述最后一個啟動組件 時TPM的狀態(tài)值進行封裝;對于設(shè)備的非最后一個啟動組件,將預(yù)定的運行所述非最后一 個啟動組件時TPM的狀態(tài)值和下一個即將啟動的加密組件的解密密鑰進行封裝。
14.根據(jù)權(quán)利要求11所述的系統(tǒng),其特征在于,當具有操作控制權(quán)的啟動組件是根啟動組件時,所述根啟動組件,還用于度量所述根啟動組件的鏡像,得到根啟動組件的度量值,控制 TPM將所述根啟動組件的度量值與TPM中根啟動組件對應(yīng)的PCR中的數(shù)值進行哈希運算,將 根啟動組件的度量值與TPM中根啟動組件對應(yīng)的PCR中的數(shù)值的哈希運算結(jié)果作為當前所 述根啟動組件所對應(yīng)的PCR中的數(shù)值。
15.根據(jù)權(quán)利要求11所述的系統(tǒng),其特征在于,所述CPU上還運行加密組件,所述加密組件,用于對除了根啟動組件之外的啟動組件 進行加密。
全文摘要
本發(fā)明實施例提供一種安全啟動方法、裝置及計算機系統(tǒng),其中安全啟動方法包括A、具有操作控制權(quán)的啟動組件調(diào)用TPM中的解封裝函數(shù);B、利用調(diào)用返回的解密密鑰解密所述下一個即將啟動的加密組件,并度量解密得到的啟動組件,得到度量值,控制TPM將所述度量值與所述解密得到的啟動組件所對應(yīng)的PCR中的數(shù)值進行哈希運算,將哈希運算結(jié)果作為當前所述解密得到的啟動組件所對應(yīng)的PCR中的數(shù)值,將操作控制權(quán)移交給所述解密得到的啟動組件,返回執(zhí)行步驟A,直到設(shè)備的啟動組件全部啟動完成。使用本發(fā)明實施例提供的技術(shù)方案,能夠保證設(shè)備所運行的啟動組件都是安全的。
文檔編號G06F9/445GK102136044SQ20101022848
公開日2011年7月27日 申請日期2010年7月14日 優(yōu)先權(quán)日2010年7月14日
發(fā)明者宋成, 尹瀚, 郎風華 申請人:華為技術(shù)有限公司