一種tpm密鑰及其授權(quán)數(shù)據(jù)備份恢復(fù)系統(tǒng)及方法
【專利說明】一種TPM密鑰及其授權(quán)數(shù)據(jù)備份恢復(fù)系統(tǒng)及方法
[0001]
技術(shù)領(lǐng)域
[0002]本發(fā)明屬于信息安全技術(shù)領(lǐng)域,涉及一種TPM密鑰備份系統(tǒng)及方法,尤其涉及一種TPM密鑰及其授權(quán)數(shù)據(jù)備份恢復(fù)系統(tǒng)及方法。
[0003]
【背景技術(shù)】
[0004]隨著可信計(jì)算的發(fā)展,大部分的商用計(jì)算機(jī)都有了 TPM,主流的操作系統(tǒng)也都支持TPM功能。TPM安全芯片是一種含有密碼運(yùn)算的小型芯片系統(tǒng),用戶可以用TPM創(chuàng)建密鑰,創(chuàng)建的密鑰由其父密鑰加密敏感部分后以密鑰緩存文件的形式保存在外部存儲設(shè)備上,其創(chuàng)建的密鑰需要加載到TPM內(nèi)部才能使用,使用時,所有操作都是在TPM內(nèi)部進(jìn)行,密鑰的敏感部分不會暴露在TPM外部。
[0005]在上述過程中,存在兩個問題。首先,密鑰緩存文件保存在TPM外部的存儲設(shè)備上,當(dāng)保存在外部密鑰緩存文件丟失或者破壞,密鑰也會隨之無法使用,使用該密鑰加密保存的文件也無法解密。其次,用于保護(hù)該密鑰的父密鑰或者任意一個祖先密鑰丟失,該密鑰也將無法使用,特別的,如果SRK (存儲根密鑰)丟失,原SRK下創(chuàng)建的密鑰都將無法使用。
[0006]
【發(fā)明內(nèi)容】
[0007]為了解決上述技術(shù)問題,本發(fā)明提供了一種TPM密鑰及其授權(quán)數(shù)據(jù)備份恢復(fù)系統(tǒng)及方法,使用戶在丟失或者無法使用由TPM產(chǎn)生的密鑰的時候,能從服務(wù)器恢復(fù)該密鑰。
[0008]本發(fā)明的系統(tǒng)所采用的技術(shù)方案是:一種TPM密鑰及其授權(quán)數(shù)據(jù)備份恢復(fù)系統(tǒng),其特征在于:包括TPM密鑰管理中心和物理主機(jī)或虛擬機(jī);
所述的TPM密鑰管理中心包括第一通信接口、密鑰管理中心模塊、第一 TSS模塊和第一TPM模塊;所述的密鑰管理中心模塊為實(shí)現(xiàn)物理主機(jī)或虛擬機(jī)備份過來的TPM密鑰管理,將其掛載到當(dāng)前TPM密鑰管理中心的TPM密鑰樹之下,并能處理遠(yuǎn)程物理主機(jī)或虛擬機(jī)的TPM密鑰或授權(quán)數(shù)據(jù)的恢復(fù)請求;所述的第一 TSS模塊為可信計(jì)算組織提供的訪問第一 TPM模塊的接口 ;
所述的物理主機(jī)或虛擬機(jī)包括第二通信接口、APP模塊、密鑰管理模塊、第二 TSS模塊和第二 TPM模塊;所述的APP模塊用于創(chuàng)建并使用TPM密鑰,所述的密鑰管理模塊用于實(shí)現(xiàn)在遠(yuǎn)程TPM密鑰管理中心上備份及恢復(fù)本地TPM密鑰;所述的第二 TSS模塊為可信計(jì)算組織提供的訪問第二 TPM模塊的接口 ;
所述的第一通信接口、第二通信接口是實(shí)現(xiàn)物理主機(jī)或虛擬機(jī)與遠(yuǎn)程TPM密鑰管理中心相互通信的接口。
[0009]本發(fā)明的方法所采用的技術(shù)方案是:一種TPM密鑰及其授權(quán)數(shù)據(jù)備份恢復(fù)方法,其特征在于:包括物理主機(jī)或虛擬機(jī)TPM密鑰及授權(quán)數(shù)據(jù)備份的方法、TPM密鑰管理中心備份或恢復(fù)TPM密鑰及授權(quán)數(shù)據(jù)的方法、物理主機(jī)或虛擬機(jī)恢復(fù)TPM密鑰或授權(quán)數(shù)據(jù)的方法。
[0010]作為優(yōu)選,所述的物理主機(jī)或虛擬機(jī)TPM密鑰及授權(quán)數(shù)據(jù)備份的方法,包括以下步驟:
步驟1.1:用戶填授權(quán)數(shù)據(jù),然后利用APP模塊生成TPM密鑰;
步驟1.2:通過第二 TSS模塊提供的seal命令,封裝上一步的授權(quán)數(shù)據(jù),封裝命令本質(zhì)上也是創(chuàng)建一個TPM密鑰,用于封裝命令的密鑰的授權(quán)數(shù)據(jù)為空,其安全性由本地的父密鑰或TPM密鑰管理中心的保護(hù)密鑰保證;
步驟1.3:向遠(yuǎn)程TPM密鑰管理中心,請求備份TPM密鑰以及其對應(yīng)的授權(quán)數(shù)據(jù),并發(fā)送身份認(rèn)證信息;
步驟1.4:TPM密鑰管理中心響應(yīng)后,返回該TPM密鑰對應(yīng)的TPM_ID,以及保護(hù)密鑰的公鑰信息,物理主機(jī)或虛擬機(jī)對TPM密鑰及其對應(yīng)的封裝后的授權(quán)數(shù)據(jù)做TPM2_Duplicate操作;TPM_ID為每個TPM密鑰對應(yīng)唯一的一個TPM_ID ;
步驟1.5:將上一步的結(jié)果通過第二通信接口發(fā)送給TPM密鑰管理中心;
步驟1.6: TPM密鑰管理中心做TPM2_Import操作,將密鑰以及該密鑰對應(yīng)的授權(quán)數(shù)據(jù)導(dǎo)入。
[0011]作為優(yōu)選,所述的PTM密鑰管理中心備份或恢復(fù)TPM密鑰及授權(quán)數(shù)據(jù)的方法,包括以下步驟:
步驟2.1:TPM密鑰管理中心一直處于端口監(jiān)聽狀態(tài),等待來自物理主機(jī)或虛擬機(jī)的連接;
步驟2.2:當(dāng)有連接請求的時候,判斷請求是備份或恢復(fù)TPM密鑰及授權(quán)數(shù)據(jù);
若是備份TPM密鑰及授權(quán)數(shù)據(jù)請求,則執(zhí)行下述步驟2.3 ;
若是恢復(fù)TPM密鑰及授權(quán)數(shù)據(jù)請求,則執(zhí)行下述步驟2.5 ;
步驟2.3:物理主機(jī)或虛擬機(jī)首先在該TPM密鑰管理中心注冊,每個物理主機(jī)或虛擬機(jī)的TPM密鑰綁定一個唯一的TPM_ID,然后TPM密鑰管理中心會將TPM_ID以及保護(hù)密鑰的公鑰信息發(fā)送給物理主機(jī)或虛擬機(jī);
步驟2.4:接收物理主機(jī)或虛擬機(jī)返回的結(jié)果,將待備份的密鑰及其對應(yīng)的授權(quán)數(shù)據(jù)做TPM2_Import操作,掛載在TPM密鑰管理中心的密鑰樹下;在備份TPM密鑰的時候,TPM密鑰及其對應(yīng)的授權(quán)數(shù)據(jù)是一起備份的;
步驟2.5:判斷是恢復(fù)TPM密鑰請求還是恢復(fù)授權(quán)數(shù)據(jù)請求;
若是恢復(fù)TPM密鑰請求,則執(zhí)行下述步驟2.8 ;
若是恢復(fù)授權(quán)數(shù)據(jù)請求,則執(zhí)行下述步驟2.6 ;
步驟2.6:接收物理主機(jī)或虛擬機(jī)端的保護(hù)密鑰公鑰信息;
步驟2.7:根據(jù)上一步得到的公鑰信息,做TPM2_Duplicate操作,授權(quán)數(shù)據(jù)是通過seal命令封裝在一個TPM密鑰中,該密鑰的授權(quán)數(shù)據(jù)為空,執(zhí)行這步時,授權(quán)數(shù)據(jù)部分不填;并跳轉(zhuǎn)執(zhí)行下述步驟步驟2.11 ;
步驟2.8:找到該密鑰對應(yīng)的授權(quán)數(shù)據(jù),加載后,通過unseal命令解封出其授權(quán)數(shù)據(jù),此處解封時用到的授權(quán)數(shù)據(jù)為空;
步驟2.9:接收物理主機(jī)或虛擬機(jī)端發(fā)送過來的保護(hù)密鑰公鑰; 步驟2.10:將步驟2.8中unseal得到的授權(quán)數(shù)據(jù)填充到此處做TPM2_Duplicate操作,在做TPM2_Duplicate操作時,必須提供該密鑰的授權(quán)數(shù)據(jù),否則操作將無法完成;
步驟2.11:將結(jié)果返回給主機(jī)或虛擬機(jī)。
[0012]作為優(yōu)選,所述的物理主機(jī)或虛擬機(jī)恢復(fù)TPM密鑰或授權(quán)數(shù)據(jù)的方法,包括以下步驟:
步驟3.1:接受來自上層的恢復(fù)TPM密鑰或授權(quán)數(shù)據(jù)請求;
步驟3.2:向TPM密鑰管理中心發(fā)送恢復(fù)請求;
步驟3.3:向TPM密鑰管理中心發(fā)送TPM_ID、待恢復(fù)的TPM密鑰或授權(quán)數(shù)據(jù)的key_ID,以及保護(hù)密鑰的公鑰信息;
步驟3.4:接收TPM密鑰管理中心返回結(jié)果;
步驟3.5:判斷恢復(fù)的是TPM密鑰還是TPM密鑰的授權(quán)數(shù)據(jù)請求;
若是恢復(fù)TPM密鑰請求,則執(zhí)行下述步驟3.6 ;
若是恢復(fù)授權(quán)數(shù)據(jù)請求,則執(zhí)行下述步驟3.7 ;
步驟3.6:替換原來的TPM密鑰的密鑰緩存文件,本流程結(jié)束;
步驟3.7:執(zhí)行unseal命令,解封出授權(quán)數(shù)據(jù),并將授權(quán)數(shù)據(jù)返回給上一層。
[0013]相對于現(xiàn)有技術(shù),本發(fā)明使用戶在丟失或者無法使用由TPM產(chǎn)生的密鑰的時候,能從服務(wù)器恢復(fù)該密鑰。
[0014]
【附圖說明】
[0015]圖1:本發(fā)明實(shí)施例的系統(tǒng)整體框架。
[0016]圖2:本發(fā)明實(shí)施例的物理主機(jī)或虛擬機(jī)備份產(chǎn)生的TPM密鑰和授權(quán)數(shù)據(jù)的方法流程圖。
[0017]圖3:本發(fā)明實(shí)施例的TPM密鑰管理中心備份及恢復(fù)TPM密鑰及其授權(quán)數(shù)據(jù)的方法流程圖。
[0018]圖4:本發(fā)明實(shí)施例的物理主機(jī)或虛擬機(jī)恢復(fù)TPM密鑰和授權(quán)數(shù)據(jù)的方法流程圖。
[0019]
【具體實(shí)施方式】
[0020]為了便于本領(lǐng)域普通技術(shù)人員理解和實(shí)施本發(fā)明,下面結(jié)合附圖及實(shí)施例對本發(fā)明作進(jìn)一步的詳細(xì)描述,應(yīng)當(dāng)理解,此處所描述的實(shí)施示例僅用于說明和解釋本發(fā)明,并不用于限定本發(fā)明。
[0021]本發(fā)明底層使用的是TPM密鑰迀移的接口,其和普通的TPM迀移的不同在于,在TPM密鑰備份階段,會將其對應(yīng)的授權(quán)數(shù)據(jù)也備份到TPM密鑰管理中心。這樣做的目的是在TPM密鑰恢復(fù)階段,若沒有將授權(quán)數(shù)據(jù)備份,該密鑰就不能在TPM密鑰管理中心做TPM2_Duplicate操作,這也代表密鑰恢復(fù)將無法完成。所以用普通的密鑰迀移是無法完成TPM密鑰恢復(fù)的。
[0022]為了解決上述問題需要將TPM密鑰的授權(quán)數(shù)據(jù)也備份到TPM密鑰管理中心。
[0023]請見圖1,本發(fā)明提供的一種TPM密鑰及其授權(quán)數(shù)據(jù)備份恢復(fù)系統(tǒng),包括TPM密鑰管理中心和物理主機(jī)或虛擬機(jī);TPM密鑰管理中心包括第一通信接口、密鑰管理中心模塊、第一 TSS(TCG Software Stack, TCG軟件協(xié)議棧)模塊和第一 TPM模塊;密鑰管理中心模塊為實(shí)現(xiàn)物理主機(jī)或虛擬機(jī)備份過來的TPM密鑰管理,將其掛載到當(dāng)前TPM密鑰管理中心的TPM密鑰樹之下,并能處理遠(yuǎn)程物理主機(jī)或虛擬機(jī)的TPM密鑰或授權(quán)數(shù)據(jù)的恢復(fù)請求;第一 TSS模塊為可信計(jì)算組織提供的訪問第一 TPM模塊的接口 ;物理主機(jī)或虛擬機(jī)包括第二通信接口、APP模塊、密鑰管理模塊、第二 TSS模塊和第二 TPM模塊;APP模塊用于創(chuàng)建并使用TPM密鑰,密鑰管理模塊用于實(shí)現(xiàn)在遠(yuǎn)程TPM密鑰管理中心上備份及恢復(fù)本地TPM密鑰;第二 TSS模塊為可信計(jì)算組織提供的訪問第二 TPM模塊的接口 ;第一通信接口、第二通信接口是實(shí)現(xiàn)物理主機(jī)或虛擬機(jī)與遠(yuǎn)程TPM密鑰管理中心相互通信的接口。
[0024]本發(fā)明提供的一種TPM密鑰及其授權(quán)數(shù)據(jù)備份恢復(fù)方法,包括物理主機(jī)或虛擬機(jī)TPM密鑰及授權(quán)數(shù)據(jù)備份的方法、PTM密鑰管理中心備份或恢復(fù)TPM密鑰及授權(quán)數(shù)據(jù)的方法、物理主機(jī)或虛擬機(jī)恢復(fù)TPM密鑰或授權(quán)數(shù)據(jù)的方法。
[0025]請見圖2,本實(shí)施例的物理主機(jī)或虛擬機(jī)TPM密鑰及授權(quán)數(shù)據(jù)備份的方法,包括以下步驟:
步驟1.1:用戶填授權(quán)數(shù)據(jù),然后利用APP模塊生成TPM密鑰;
步驟1.2:通過第二 TSS模塊提供的seal命令,封裝上一步的授權(quán)數(shù)據(jù),封裝命令本質(zhì)上也是創(chuàng)建一個TPM密鑰,用于封裝命令的密鑰的授權(quán)數(shù)據(jù)為空,其安全性由本地的父密鑰或TPM密鑰管理中心的保護(hù)密鑰保證;
步驟1.3:向遠(yuǎn)程TPM密鑰管理中心,請求備份TPM密鑰以及其對應(yīng)的授權(quán)數(shù)據(jù),并發(fā)送身份認(rèn)證信息;
步驟1.4:TPM密鑰管理中心響應(yīng)后,返回該TPM密鑰對應(yīng)的TPM_ID,以及保護(hù)密鑰的公