一種密鑰處理方法及裝置的制造方法
【專利摘要】本發(fā)明實(shí)施例提供一種密鑰處理方法及裝置,涉及通信領(lǐng)域,能夠避免在密鑰裝載時(shí)返回空間已滿的錯(cuò)誤碼,保證密鑰裝載的順利進(jìn)行。該密鑰處理方法包括:獲取密鑰裝載命令,密鑰裝載命令指示在可信平臺(tái)模塊TPM芯片裝載第一密鑰;若TPM芯片內(nèi)的所有密鑰插槽均處于非空閑狀態(tài),則釋放TPM芯片內(nèi)所有密鑰插槽中的第一密鑰插槽;根據(jù)密鑰裝載命令,在第一密鑰插槽上裝載第一密鑰。
【專利說(shuō)明】
—種密鑰處理方法及裝置
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及通信領(lǐng)域,尤其涉及一種密鑰處理方法及裝置。
【背景技術(shù)】
[0002]在通信系統(tǒng)中,為了保證數(shù)據(jù)的安全,終端設(shè)備(TerminalDevice)通常需要使用密鑰對(duì)數(shù)據(jù)進(jìn)行加密,這些密鑰一旦泄露,與其相關(guān)的被加密數(shù)據(jù)的機(jī)密性將受到嚴(yán)重影響。因此必須提供安全保護(hù)機(jī)制,防止密鑰以明文的形式保存在系統(tǒng)或代碼中。TPM(Trusted Platform Module,可信平臺(tái)模塊)是常用的一種密鑰保護(hù)方案,通過(guò)集成密鑰和加解密運(yùn)算引擎,能夠提供基于硬件的敏感信息安全存儲(chǔ)功能。TPM芯片是一種符合TPM標(biāo)準(zhǔn)的芯片,其中,TPM標(biāo)準(zhǔn)是由TCG(Trusted Computing Group,可信計(jì)算組織)提出的,該標(biāo)準(zhǔn)通過(guò)在計(jì)算機(jī)系統(tǒng)中嵌入一個(gè)包含密鑰生成、加解密計(jì)算、安全存儲(chǔ)和防篡改功能的芯片,使非法用戶無(wú)法對(duì)其內(nèi)部的數(shù)據(jù)進(jìn)行訪問(wèn)更改,從而確保了數(shù)據(jù)加密的安全性。
[0003]現(xiàn)有技術(shù)中,通常一個(gè)TPM芯片內(nèi)具有5至10個(gè)密鑰插槽,密鑰只有裝載在密鑰插槽內(nèi),才能被應(yīng)用程序調(diào)用。若TPM芯片的密鑰插槽已被占滿,且仍有應(yīng)用程序試圖進(jìn)行密鑰裝載時(shí),TPM芯片就會(huì)返回空間已滿的錯(cuò)誤碼。
【發(fā)明內(nèi)容】
[0004]本發(fā)明實(shí)施例提供一種密鑰處理方法及裝置,能夠避免在密鑰裝載時(shí)返回空間已滿的錯(cuò)誤碼,保證密鑰裝載的順利進(jìn)行。
[0005]為達(dá)到上述目的,本發(fā)明的實(shí)施例采用如下技術(shù)方案:
[0006]第一方面,本發(fā)明實(shí)施例提供一種密鑰處理方法,包括:
[0007]首先,獲取密鑰裝載命令,密鑰裝載命令指示在可信平臺(tái)模塊TPM芯片裝載第一密鑰;其次,判斷TPM芯片內(nèi)的所有密鑰插槽是否均處于非空閑狀態(tài),若TPM芯片內(nèi)的所有密鑰插槽均處于非空閑狀態(tài),則釋放TPM芯片內(nèi)所有密鑰插槽中的第一密鑰插槽;最后,根據(jù)密鑰裝載命令,在第一密鑰插槽上裝載第一密鑰。
[0008]本發(fā)明實(shí)施例提供的密鑰處理方法中,由于在獲取指示在可信平臺(tái)模塊TPM芯片裝載第一密鑰的密鑰裝載命令,且TPM芯片內(nèi)的所有密鑰插槽均處于非空閑狀態(tài)時(shí),密鑰處理裝置能夠釋放所述TPM芯片內(nèi)所有密鑰插槽中的第一密鑰插槽,并根據(jù)密鑰裝載命令,在所述第一密鑰插槽上裝載所述第一密鑰。因此,能夠避免在密鑰裝載時(shí)返回空間已滿的錯(cuò)誤碼,保證密鑰裝載的順利進(jìn)行,合理地使用TPM芯片內(nèi)存空間資源。
[0009]可選的,所述方法還包括:
[0010]在釋放所述第一密鑰插槽前,確認(rèn)TPM芯片內(nèi)的所有密鑰插槽與密鑰的映射關(guān)系。[0011 ]可選的,釋放TPM芯片內(nèi)所有密鑰插槽中的第一密鑰插槽,具體包括:
[0012]獲取第一密鑰插槽的標(biāo)識(shí),其中,占用第一密鑰插槽的密鑰為占用所有密鑰插槽的密鑰中使用次數(shù)最少的密鑰,或者,占用第一密鑰插槽的密鑰為占用所有密鑰插槽的密鑰中最早裝載的密鑰;以及根據(jù)第一密鑰插槽的標(biāo)識(shí),指示TPM芯片釋放第一密鑰插槽。
[0013]本發(fā)明實(shí)施例提供的密鑰處理方法中,占用所述第一密鑰插槽的密鑰為占用所有密鑰插槽的密鑰中使用次數(shù)最少的密鑰,或者,占用所述第一密鑰插槽的密鑰為占用所有密鑰插槽的密鑰中最早裝載的密鑰。通過(guò)合理的方式選擇第一密鑰插槽,盡可能地保證在裝載第一密鑰時(shí)其他密鑰插槽不受影響。
[0014]可選的,所述方法還包括:
[0015]在釋放第一密鑰插槽前,保存占用第一密鑰插槽的密鑰的現(xiàn)場(chǎng)記錄。
[0016]本發(fā)明實(shí)施例提供的密鑰處理方法中,在釋放第一密鑰插槽前,保存占用第一密鑰插槽的密鑰的現(xiàn)場(chǎng)記錄,以使得下次再裝載該密鑰時(shí),能夠直接恢復(fù)該密鑰的現(xiàn)場(chǎng)記錄,實(shí)現(xiàn)密鑰的快速裝載。
[0017]可選的,所述方法還包括:
[0018]在第一插槽上裝載第一密鑰時(shí),確認(rèn)存儲(chǔ)器中存儲(chǔ)有第一密鑰的現(xiàn)場(chǎng)記錄,獲取并恢復(fù)第一密鑰的現(xiàn)場(chǎng)記錄。
[0019]本發(fā)明實(shí)施例提供的密鑰處理方法中,在第一插槽上裝載第一密鑰時(shí),若存儲(chǔ)器中存儲(chǔ)有第一密鑰的現(xiàn)場(chǎng)記錄,也可以直接恢復(fù)第一密鑰的現(xiàn)場(chǎng)記錄,實(shí)現(xiàn)密鑰的快速裝載。
[0020]可選的,所述方法還包括:
[0021]在第一密鑰插槽上裝載第一密鑰時(shí),記錄第一密鑰插槽與第一密鑰的映射關(guān)系,以便根據(jù)映射關(guān)系從第一密鑰插槽獲取到第一密鑰。
[0022]可選的,所述方法還包括:
[0023]獲取密鑰釋放命令,密鑰釋放命令用于觸發(fā)TPM芯片釋放占用TPM芯片內(nèi)的第二密鑰插槽的第二密鑰;
[0024]根據(jù)密鑰釋放命令,在第二密鑰插槽上釋放第二密鑰;
[0025]在第二密鑰插槽上釋放第二密鑰時(shí),刪除第二密鑰插槽與第二密鑰的映射關(guān)系。
[0026]在第一種可能的實(shí)現(xiàn)方式中,在獲取密鑰裝載命令前,所述方法還包括:
[0027]判斷TPM芯片內(nèi)處于空閑狀態(tài)的密鑰插槽的個(gè)數(shù)是否大于或等于預(yù)設(shè)門(mén)限;若TPM芯片內(nèi)處于空閑狀態(tài)的密鑰插槽的個(gè)數(shù)大于或等于預(yù)設(shè)門(mén)限,則從接收到的至少一個(gè)命令中獲取第一命令,第一命令為至少一個(gè)命令中的任意一個(gè)命令,第一命令包括密鑰裝載命令。
[0028]在第二種可能的實(shí)現(xiàn)方式中,在獲取密鑰裝載命令前,所述方法還包括:
[0029]判斷TPM芯片內(nèi)處于空閑狀態(tài)的密鑰插槽的個(gè)數(shù)是否小于預(yù)設(shè)門(mén)限;若TPM芯片內(nèi)處于空閑狀態(tài)的密鑰插槽的個(gè)數(shù)小于預(yù)設(shè)門(mén)限,則從接收到的至少一個(gè)命令中獲取第一命令,第一命令為所述至少一個(gè)命令中優(yōu)先級(jí)最高的命令,第一命令包括密鑰裝載命令。
[0030]本發(fā)明實(shí)施例提供的密鑰處理方法中,通過(guò)判斷芯片內(nèi)處于空閑狀態(tài)的密鑰插槽的個(gè)數(shù)是否大于或者等于預(yù)設(shè)門(mén)限,并在所述芯片內(nèi)處于空閑狀態(tài)的密鑰插槽的個(gè)數(shù)大于或等于預(yù)設(shè)門(mén)限時(shí),從接收到的至少一個(gè)命令中獲取第一命令,所述第一命令為所述至少一個(gè)命令中的任意一個(gè)命令;在所述芯片內(nèi)處于空閑狀態(tài)的密鑰插槽的個(gè)數(shù)小于預(yù)設(shè)門(mén)限時(shí),從接收到的至少一個(gè)命令中獲取第一命令,所述第一命令為所述至少一個(gè)命令中優(yōu)先級(jí)最高的命令,保證合理地利用TPM芯片內(nèi)的密鑰插槽。
[0031 ]第二方面,本發(fā)明實(shí)施例提供一種密鑰處理裝置,密鑰處理裝置包括獲取模塊、確認(rèn)模塊、釋放模塊和裝載模塊;
[0032]獲取模塊,用于獲取密鑰裝載命令,密鑰裝載命令指示在可信平臺(tái)模塊TPM芯片裝載第一密鑰;
[0033]確認(rèn)模塊,用于在獲取模塊獲取密鑰裝載命令后,確認(rèn)TPM芯片內(nèi)的所有密鑰插槽均處于非空閑狀態(tài);
[0034]釋放模塊,用于若TPM芯片內(nèi)的所有密鑰插槽均處于非空閑狀態(tài),則釋放TPM芯片內(nèi)所有密鑰插槽中的第一密鑰插槽;
[0035]裝載模塊,用于在釋放模塊釋放TPM芯片內(nèi)所有密鑰插槽中的第一密鑰插槽后,根據(jù)密鑰裝載命令,在第一密鑰插槽上裝載第一密鑰。
[0036]本發(fā)明實(shí)施例提供的密鑰處理裝置的技術(shù)效果可以參見(jiàn)上述第一方面密鑰處理裝置執(zhí)行的密鑰處理方法中描述的密鑰處理裝置的技術(shù)效果,此處不再贅述。
[0037]可選的,確認(rèn)模塊,還用于在釋放模塊釋放第一密鑰插槽前,確認(rèn)TPM芯片內(nèi)的所有密鑰插槽與密鑰的映射關(guān)系。
[0038]可選的,釋放模塊,具體用于獲取第一密鑰插槽的標(biāo)識(shí),其中,占用第一密鑰插槽的密鑰為占用所有密鑰插槽的密鑰中使用次數(shù)最少的密鑰,或者,占用第一密鑰插槽的密鑰為占用所有密鑰插槽的密鑰中最早裝載的密鑰;以及根據(jù)第一密鑰插槽的標(biāo)識(shí),指示TPM芯片釋放第一密鑰插槽。
[0039]可選的,密鑰處理裝置還包括保存模塊;
[0040]保存模塊,用于在釋放模塊釋放第一密鑰插槽前,保存占用第一密鑰插槽的密鑰的現(xiàn)場(chǎng)記錄。
[0041]可選的,裝載模塊,具體用于在裝載模塊在第一插槽上裝載第一密鑰時(shí),確認(rèn)存儲(chǔ)器中存儲(chǔ)有第一密鑰的現(xiàn)場(chǎng)記錄,獲取并恢復(fù)第一密鑰的現(xiàn)場(chǎng)記錄。
[0042]可選的,密鑰處理裝置還包括記錄模塊;
[0043]記錄模塊,用于在裝載模塊在第一密鑰插槽上裝載第一密鑰時(shí),記錄第一密鑰插槽與第一密鑰的映射關(guān)系,以便根據(jù)映射關(guān)系從第一密鑰插槽獲取到第一密鑰。
[0044]可選的,獲取模塊,還用于獲取密鑰釋放命令,密鑰釋放命令用于觸發(fā)TPM芯片釋放占用TPM芯片內(nèi)的第二密鑰插槽的第二密鑰;
[0045]所述釋放模塊,還用于在所述獲取模塊獲取密鑰釋放命令后,根據(jù)密鑰釋放命令,在第二密鑰插槽上釋放第二密鑰;
[0046]所述記錄模塊,還用于在所述釋放模塊在第二密鑰插槽上釋放第二密鑰時(shí),刪除第二密鑰插槽與第二密鑰的映射關(guān)系。
[0047]可選的,確認(rèn)模塊,還用于在獲取模塊獲取密鑰裝載命令前,確認(rèn)TPM芯片內(nèi)處于空閑狀態(tài)的密鑰插槽的個(gè)數(shù)大于或等于預(yù)設(shè)門(mén)限;
[0048]獲取模塊,還用于在確認(rèn)模塊確認(rèn)TPM芯片內(nèi)處于空閑狀態(tài)的密鑰插槽的個(gè)數(shù)大于或等于預(yù)設(shè)門(mén)限后,從接收到的至少一個(gè)命令中獲取第一命令,第一命令為至少一個(gè)命令中的任意一個(gè)命令,第一命令包括密鑰裝載命令。
[0049]可選的,確認(rèn)模塊,還用于在獲取模塊獲取密鑰裝載命令前,確認(rèn)TPM芯片內(nèi)處于空閑狀態(tài)的密鑰插槽的個(gè)數(shù)小于預(yù)設(shè)門(mén)限;
[0050]獲取模塊,還用于在確認(rèn)模塊確認(rèn)TPM芯片內(nèi)處于空閑狀態(tài)的密鑰插槽的個(gè)數(shù)小于預(yù)設(shè)門(mén)限后,從接收到的至少一個(gè)命令中獲取第一命令,第一命令為至少一個(gè)命令中優(yōu)先級(jí)最高的命令,第一命令包括密鑰裝載命令。
[0051]第三方面,本發(fā)明實(shí)施例還提供一種終端設(shè)備,所述終端設(shè)備包括存儲(chǔ)器、處理器、通信接口和系統(tǒng)總線;
[0052]所述存儲(chǔ)器、所述處理器和所述通信接口通過(guò)所述系統(tǒng)總線連接,所述存儲(chǔ)器用于存儲(chǔ)計(jì)算機(jī)指令,所述處理器用于執(zhí)行所述存儲(chǔ)器存儲(chǔ)的計(jì)算機(jī)指令,以使所述終端設(shè)備執(zhí)行如上述第一方面所述的密鑰處理方法。
[0053]本發(fā)明實(shí)施例提供的終端設(shè)備的技術(shù)效果可以參見(jiàn)上述第一方面密鑰處理裝置執(zhí)行的密鑰處理方法中描述的密鑰處理裝置的技術(shù)效果,此處不再贅述。
[0054]第四方面,本發(fā)明實(shí)施例還提供一種軟件產(chǎn)品,所述軟件產(chǎn)品包括實(shí)現(xiàn)密鑰處理方法的計(jì)算機(jī)指令。
[0055]所述計(jì)算機(jī)指令可以存儲(chǔ)在可讀存儲(chǔ)介質(zhì)上;處理器可以從該可讀存儲(chǔ)介質(zhì)上讀取到計(jì)算機(jī)指令并執(zhí)行,使得處理器實(shí)現(xiàn)密鑰處理方法。
[0056]本發(fā)明實(shí)施例提供一種密鑰處理方法及裝置,通過(guò)獲取密鑰裝載命令,密鑰裝載命令指示在可信平臺(tái)模塊TPM芯片裝載第一密鑰;若TPM芯片內(nèi)的所有密鑰插槽均處于非空閑狀態(tài),則釋放TPM芯片內(nèi)所有密鑰插槽中的第一密鑰插槽;根據(jù)密鑰裝載命令,在第一密鑰插槽上裝載第一密鑰。基于上述實(shí)施例的描述,由于在獲取指示在可信平臺(tái)模塊TPM芯片裝載第一密鑰的密鑰裝載命令,且TPM芯片內(nèi)的所有密鑰插槽均處于非空閑狀態(tài)時(shí),密鑰處理裝置能夠釋放所述TPM芯片內(nèi)所有密鑰插槽中的第一密鑰插槽,并根據(jù)密鑰裝載命令,在所述第一密鑰插槽上裝載所述第一密鑰。因此,能夠避免在密鑰裝載時(shí)返回空間已滿的錯(cuò)誤碼,保證密鑰裝載的順利進(jìn)行,合理地使用TPM芯片內(nèi)存空間資源。
【附圖說(shuō)明】
[0057]為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例。
[0058]圖1為本發(fā)明實(shí)施例提供的一種基于TSS1.2版本的芯片的系統(tǒng)架構(gòu)圖一;
[0059]圖2為本發(fā)明實(shí)施例提供的一種基于TSS2.0版本的芯片的系統(tǒng)架構(gòu)圖一;
[0060]圖3為本發(fā)明實(shí)施例提供的一種密鑰處理方法的流程示意圖一;
[0061]圖4為本發(fā)明實(shí)施例提供的一種密鑰處理方法的流程示意圖二;
[0062]圖5為本發(fā)明實(shí)施例提供的一種密鑰處理方法的流程示意圖三;
[0063]圖6為本發(fā)明實(shí)施例提供的一種密鑰處理方法的流程示意圖四;
[0064]圖7為本發(fā)明實(shí)施例提供的一種密鑰處理方法的流程示意圖五;
[0065]圖8為本發(fā)明實(shí)施例提供的一種密鑰處理裝置的結(jié)構(gòu)示意圖一;
[0066]圖9為本發(fā)明實(shí)施例提供的一種密鑰處理裝置的結(jié)構(gòu)示意圖二;
[0067]圖10為本發(fā)明實(shí)施例提供的一種密鑰處理裝置的結(jié)構(gòu)示意圖三;
[0068]圖11本發(fā)明實(shí)施例提供的一種基于TSS1.2版本的芯片的系統(tǒng)架構(gòu)圖二;
[0069]圖12為本發(fā)明實(shí)施例提供的一種基于TSS2.0版本的芯片的系統(tǒng)架構(gòu)圖二;
[0070]圖13為本發(fā)明實(shí)施例提供的一種終端設(shè)備的硬件示意圖。
【具體實(shí)施方式】
[0071]下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行詳細(xì)地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。
[0072]本發(fā)明實(shí)施例中描述的技術(shù)可以用于各種芯片,尤其是TPM芯片。TCG除了提出TPM標(biāo)準(zhǔn)外,還定義了TSS(TPM Software Stack,TPM軟件棧),其中,TSS是一種為上層可信計(jì)算應(yīng)用提供訪問(wèn)TPM接口的軟件系統(tǒng)。
[0073]圖1是本發(fā)明實(shí)施例提供的一種基于TSS1.2版本的芯片的系統(tǒng)架構(gòu),包括:精簡(jiǎn)API (Applicat1n Program Interface,應(yīng)用編程接口)、TDDL(TPM Device DriverLibrary,TPM設(shè)備驅(qū)動(dòng)庫(kù))、TCS(TCG Core Service,核心服務(wù))和TSP(TCG ServiceProvider,服務(wù)提供者)四層。其中,精簡(jiǎn)API為各種應(yīng)用程序提供兼容性服務(wù);TDDL為不同的TPM設(shè)備提供一個(gè)統(tǒng)一的驅(qū)動(dòng)程序庫(kù)函數(shù)接口; TCS負(fù)責(zé)將以字節(jié)流的形式發(fā)送TPM命令和接收TPM命令響應(yīng),并為T(mén)PM命令的并發(fā)調(diào)用基本的排隊(duì)處理;TSP負(fù)責(zé)密鑰管理和為應(yīng)用程序提供API接口。
[0074]圖2是本發(fā)明實(shí)施例提供的一種基于TSS2.0版本的芯片的系統(tǒng)架構(gòu),包括:精簡(jiǎn)AP1、特征AP1、增強(qiáng)系統(tǒng)AP1、系統(tǒng)AP1、TCTI(TPM Command Transmiss1n Interface,TPM命令傳輸接口)、TAB(TPM Access Broker,TPM訪問(wèn)代理)和資源管理器。其中,精簡(jiǎn)API為各種應(yīng)用程序提供兼容性服務(wù);資源管理器主要提供TPM對(duì)象(例如密鑰)、上下文的管理;TAB用于處理多進(jìn)程對(duì)TPM訪問(wèn)的同步,保證一個(gè)進(jìn)程調(diào)用一個(gè)TPM命令時(shí)不被其他進(jìn)程干擾;TCTI用于處理底層所有TPM的通信方式,如本地TPM、TPM模擬器、虛擬TPM、遠(yuǎn)程TPM等;系統(tǒng)API用于通過(guò)字節(jié)流的形式發(fā)送TPM命令和接收TPM命令;增強(qiáng)系統(tǒng)AP1、特征API為應(yīng)用程序提供更好的底層抽象。
[0075]本發(fā)明實(shí)施例提供的密鑰處理方法既可以應(yīng)用于圖1所示的TSS 1.2,也可以應(yīng)用于圖2所示的TSS 2.0,本發(fā)明可應(yīng)用的TSS不做限制,TSS 1.2和TSS 2.0僅是示例。
[0076]TSS可以部署到TPM芯片,也可以部署到終端設(shè)備中,部署形式可以是中間件形式。TSS如果是部署到TPM芯片,由TPM芯片的處理器基于TSS來(lái)執(zhí)行密鑰處理方法。TSS如果是部署到終端設(shè)備,由終端設(shè)備的處理器基于TSS來(lái)執(zhí)行密鑰處理方法。
[0077]另外,本發(fā)明實(shí)施例所描述的終端設(shè)備,可以是無(wú)線終端也可以是有線終端,無(wú)線終端可以是指向用戶提供語(yǔ)音和/或數(shù)據(jù)連通性的設(shè)備,具有無(wú)線連接功能的手持式設(shè)備、或連接到無(wú)線調(diào)制解調(diào)器的其他處理設(shè)備。無(wú)線終端可以經(jīng)無(wú)線接入網(wǎng)(例如,RAN,rad1access network)與一個(gè)或多個(gè)核心網(wǎng)進(jìn)行通信,無(wú)線終端可以是移動(dòng)終端,如移動(dòng)電話(或稱為“蜂窩”電話)和具有移動(dòng)終端的計(jì)算機(jī),例如,可以是便攜式、袖珍式、手持式、計(jì)算機(jī)內(nèi)置的或者車載的移動(dòng)裝置,它們與無(wú)線接入網(wǎng)交換語(yǔ)言和/或數(shù)據(jù)。例如,個(gè)人通信業(yè)務(wù)(PCS,personal communicat1n service)電話、無(wú)繩電話、會(huì)話發(fā)起協(xié)議(SIP)話機(jī)、無(wú)線本地環(huán)路(WLL,wireless local loop)站、個(gè)人數(shù)字助理(PDA,personal digitalassistant)等設(shè)備。無(wú)線終端也可以稱為系統(tǒng)、訂戶單元(subscriber unit)、訂戶站(subscriber stat1n),移動(dòng)站(mobile stat1n)、移動(dòng)臺(tái)(mobile)、遠(yuǎn)程站(remotestat1n)、接入點(diǎn)(access point)、遠(yuǎn)程終端(remote terminal)、接入終端(accessterminal)、用戶終端(user terminal)、用戶代理(user agent)、用戶設(shè)備(user device)、或用戶裝備(user equipment)。
[0078]還需要說(shuō)明的是,本文中術(shù)語(yǔ)“和/或”,僅僅是一種描述關(guān)聯(lián)對(duì)象的關(guān)聯(lián)關(guān)系,表示可以存在三種關(guān)系,例如,A和/SB,可以表示:單獨(dú)存在A,同時(shí)存在A和B,單獨(dú)存在B這三種情況。另外,本文中字符,一般表示前后關(guān)聯(lián)對(duì)象是一種“或”的關(guān)系。
[0079]本發(fā)明實(shí)施例提供一種密鑰處理方法,如圖3所示,具體的,該方法包括:
[0080]SlOl、TSS獲取密鑰裝載命令。
[0081]其中,密鑰裝載命令指示在可信平臺(tái)模塊TPM芯片裝載第一密鑰。
[0082]需要說(shuō)明的是,本發(fā)明實(shí)施例所提供的密鑰處理方法的是在TSS軟件層面上實(shí)現(xiàn)的,具體的,TSS部署在密鑰處理裝置中,其中,密鑰處理裝置可以是TPM芯片,也可以是終端設(shè)備中,本發(fā)明對(duì)此并不做限制。
[0083]本發(fā)明實(shí)施例所提到的TPM芯片可以處理的命令通常分為四類:密鑰裝載命令、密鑰釋放命令、長(zhǎng)作業(yè)命令和短作業(yè)命令。其中,密鑰裝載命令是指在空閑狀態(tài)的密鑰插槽內(nèi)裝載密鑰的命令;密鑰釋放命令是指釋放密鑰插槽被裝載的密鑰的命令;長(zhǎng)作業(yè)命令和短作業(yè)命令均是指應(yīng)用程序調(diào)用密鑰插槽內(nèi)裝載的密鑰的命令。TPM芯片獲取其他類型的命令(如密鑰釋放命令、長(zhǎng)作業(yè)命令或者短作業(yè)命令)的情況將在下述實(shí)施例中進(jìn)行詳細(xì)描述,此處不再贅述。
[0084]S102、若TPM芯片內(nèi)的所有密鑰插槽均處于非空閑狀態(tài),則TSS釋放TPM芯片內(nèi)所有密鑰插槽中的第一密鑰插槽。
[0085]TSS釋放TPM芯片內(nèi)的第一密鑰插槽,具體實(shí)現(xiàn)可以是:TSS指示所述TPM芯片釋放第一密鑰插槽。
[0086]TSS獲取密鑰裝載命令后,首先需要確認(rèn)TPM芯片內(nèi)的所有密鑰插槽是否均處于非空閑狀態(tài)。具體的,TSS確認(rèn)TPM芯片內(nèi)的所有密鑰插槽是否均處于非空閑狀態(tài)的方法可以為:TSS確認(rèn)TPM芯片內(nèi)的所有密鑰插槽與密鑰的映射關(guān)系。若TPM芯片內(nèi)的所有密鑰插槽各自映射不同密鑰,則說(shuō)明TPM芯片內(nèi)的所有密鑰插槽均處于非空閑狀態(tài);若TPM芯片內(nèi)的至少一個(gè)密鑰插槽沒(méi)有與任何一個(gè)密鑰存在映射關(guān)系,則說(shuō)明TPM芯片內(nèi)的沒(méi)有與任何一個(gè)密鑰存在映射關(guān)系的密鑰插槽處于空閑狀態(tài)。
[0087]若TPM芯片內(nèi)的所有密鑰插槽中有至少一個(gè)密鑰插槽處于空閑狀態(tài),則表明該至少一個(gè)密鑰插槽為空閑的密鑰插槽,此時(shí)直接在任意一個(gè)空閑的密鑰插槽上裝載第一密鑰即可;若TPM芯片內(nèi)的所有密鑰插槽均處于非空閑狀態(tài),則表明TPM芯片內(nèi)所有的密鑰插槽均被占滿,此時(shí),TSS需要釋放TPM芯片內(nèi)的第一密鑰插槽。
[0088]需要說(shuō)明的是,第一密鑰插槽可以是TPM芯片內(nèi)所有密鑰插槽中的任意一個(gè)密鑰插槽。優(yōu)選的,占用第一密鑰插槽的密鑰為占用所有密鑰插槽的密鑰中使用次數(shù)最少的密鑰,或者,占用所述第一密鑰插槽的密鑰為占用所有密鑰插槽的密鑰中最早裝載的密鑰。
[0089]S103、TSS根據(jù)密鑰裝載命令,在第一密鑰插槽上裝載第一密鑰。
[0090]TSS在所述第一密鑰插槽上裝載所述第一密鑰,具體實(shí)現(xiàn)可以是:TSS指示所述TPM芯片在所述第一密鑰插槽上裝載所述第一密鑰。
[0091]具體的,TSS根據(jù)密鑰裝載命令,在第一密鑰插槽上裝載第一密鑰的過(guò)程可以包括:TSS根據(jù)第一密鑰,獲取第一密鑰的父密鑰,其中,第一密鑰的父密鑰是指第一密鑰的上一級(jí)密鑰;若第一密鑰的父密鑰為SRK(Storage Root Key,存儲(chǔ)根密鑰),則TSS使用SRK對(duì)密鑰數(shù)據(jù)進(jìn)行解密,解密得到第一密鑰的明文,再將第一密鑰裝載在第一密鑰插槽上,生成第一密鑰句柄。需要說(shuō)明的是,若第一密鑰的父密鑰不為SRK,則TSS繼續(xù)獲取第一密鑰的祖父密鑰,其中,第一密鑰的祖父密鑰是指第一密鑰的父密鑰的上一級(jí)密鑰,直到獲取到SRK為止;假設(shè)第一密鑰的父密鑰為SRK,本實(shí)施例首先使用SRK獲得第一密鑰的父密鑰的明文,在空閑的密鑰插槽上裝載第一密鑰的父密鑰,并使用第一密鑰的父密鑰對(duì)密鑰數(shù)據(jù)進(jìn)行解密,解密得到第一密鑰的明文,再將第一密鑰裝載在第一密鑰插槽上,生成第一密鑰句柄。從而使得應(yīng)用程序能夠根據(jù)第一密鑰句柄,調(diào)用接受執(zhí)行加密、簽名、驗(yàn)證或者HMAC(HashMessage Authenticat1n Code,哈希消息認(rèn)證碼)計(jì)算等操作。
[0092]具體的,如圖4所示,本發(fā)明實(shí)施例提供的密鑰處理方法的完整流程包括:
[0093]S201、TSS判斷TPM芯片內(nèi)處于空閑狀態(tài)的密鑰插槽的個(gè)數(shù)是否大于或等于預(yù)設(shè)門(mén)限。
[0094]可以理解的是,在步驟S201執(zhí)行之前,TSS首先在同一時(shí)間可能會(huì)接受到至少一個(gè)應(yīng)用程序發(fā)出的至少一個(gè)命令,那么,需要對(duì)至少一個(gè)命令的執(zhí)行順序做出定義。其中,一個(gè)應(yīng)用程序能夠發(fā)出一個(gè)命令,也能夠發(fā)出多個(gè)命令,本發(fā)明不做限制。
[0095]可選的,TSS能夠?qū)邮盏降闹辽僖粭l命令按照命令類型進(jìn)行分類。即TSS將密鑰裝載命令分為一類,將密鑰釋放命令分為一類,將長(zhǎng)作業(yè)命令分為一類,以及將短作業(yè)命令分為一類,同一類型的命令的執(zhí)行先后根據(jù)TSS接收命令的時(shí)間先后決定。
[0096]TSS判斷TPM芯片內(nèi)處于空閑狀態(tài)的密鑰插槽的個(gè)數(shù)是否大于或等于預(yù)設(shè)門(mén)限。其中,預(yù)設(shè)門(mén)限可以小于或等于芯片內(nèi)密鑰插槽的總個(gè)數(shù)。通常的,預(yù)設(shè)門(mén)限小于芯片內(nèi)密鑰插槽的總個(gè)數(shù),假設(shè)TPM芯片內(nèi)具有6個(gè)密鑰插槽,可以設(shè)置預(yù)設(shè)門(mén)限為2。
[0097]S202、若TPM芯片內(nèi)處于空閑狀態(tài)的密鑰插槽的個(gè)數(shù)大于或等于預(yù)設(shè)門(mén)限,則TSS從接收到的至少一個(gè)命令中獲取第一命令,第一命令為至少一個(gè)命令中的任意一個(gè)命令。
[0098]若TPM芯片內(nèi)處于空閑狀態(tài)的密鑰插槽的個(gè)數(shù)大于或等于預(yù)設(shè)門(mén)限,則說(shuō)明TPM芯片內(nèi)處于空閑狀態(tài)的密鑰插槽還有很多,此時(shí)TSS從接收到的至少一個(gè)命令中獲取第一命令,第一命令為至少一個(gè)命令中的任意一個(gè)命令。
[0099]S203、若TPM芯片內(nèi)處于空閑狀態(tài)的密鑰插槽的個(gè)數(shù)小于預(yù)設(shè)門(mén)限,則TSS從接收到的至少一個(gè)命令中獲取第一命令,第一命令為至少一個(gè)命令中優(yōu)先級(jí)最高的命令。
[0100]若TPM芯片內(nèi)處于空閑狀態(tài)的密鑰插槽的個(gè)數(shù)小于預(yù)設(shè)門(mén)限,則說(shuō)明TPM芯片內(nèi)處于空閑狀態(tài)的密鑰插槽很少,甚至可能沒(méi)有處于空閑狀態(tài)的密鑰插槽,此時(shí)TSS從接收到的至少一個(gè)命令中獲取第一命令,第一命令為至少一個(gè)命令中優(yōu)先級(jí)最高的命令,如此能夠保證優(yōu)先級(jí)高的命令能夠優(yōu)先執(zhí)行。
[0101]通常的,TSS可以處理的四類命令的優(yōu)先級(jí)從高到低依次為:密鑰釋放命令、短作業(yè)命令、長(zhǎng)作業(yè)命令,以及密鑰裝載命令。
[0102]需要說(shuō)明的是,TSS在處理命令時(shí)是依次執(zhí)行的,因此,TSS每次從接收到的至少一個(gè)命令中獲取的第一命令都是一個(gè)單獨(dú)的命令。在執(zhí)行完第一命令后,TSS可以返回執(zhí)行步驟S202或步驟S203,直至接收到的所有命令執(zhí)行完畢。
[0103]S204、TSS判斷第一命令是否為密鑰裝載命令。
[0104]其中,密鑰裝載命令指示在TPM芯片裝載第一密鑰。
[0105]S205、若第一命令為密鑰裝載命令,則TSS判斷第一密鑰是否已經(jīng)裝載。
[0106]若第一密鑰已經(jīng)裝載,則無(wú)需再裝載第一密鑰,下述步驟無(wú)須執(zhí)行。
[0107]S206、若第一密鑰未裝載,則TSS獲取TPM芯片內(nèi)的所有密鑰插槽的狀態(tài)。
[0108]若第一密鑰未裝載,則TSS需要獲取TPM芯片內(nèi)的所有密鑰插槽的狀態(tài),判斷TPM芯片內(nèi)的所有密鑰插槽是否均處于非空閑狀態(tài)。具體的,TSS確認(rèn)TPM芯片內(nèi)的所有密鑰插槽是否均處于非空閑狀態(tài)的方法可以為:TSS確認(rèn)TPM芯片內(nèi)的所有密鑰插槽與密鑰的映射關(guān)系。若TPM芯片內(nèi)的至少一個(gè)密鑰插槽處于空閑狀態(tài),則表明TPM芯片內(nèi)至少有一個(gè)空閑的密鑰插槽,此時(shí)直接在任意一個(gè)空閑的密鑰插槽上裝載第一密鑰即可。
[0109]S207、若TPM芯片內(nèi)的所有密鑰插槽均處于非空閑狀態(tài),則TSS釋放芯片內(nèi)所有密鑰插槽中的第一密鑰插槽。
[0110]具體的,如圖5所示,步驟S207可以包括S207a和S207b:
[0111]S207a、若TPM芯片內(nèi)的所有密鑰插槽均處于非空閑狀態(tài),TSS獲取第一密鑰插槽。
[0112]其中,TSS獲取第一密鑰插槽是指TSS獲取滿足預(yù)設(shè)條件的第一密鑰插槽,其中,滿足預(yù)設(shè)條件的第一密鑰插槽是指:占用第一密鑰插槽的密鑰為占用所有密鑰插槽的密鑰中使用次數(shù)最少的密鑰,或者,占用第一密鑰插槽的密鑰為占用所有密鑰插槽的密鑰中最早裝載的密鑰。
[0113]S207b、TSS釋放第一密鑰插槽。具體實(shí)現(xiàn)是,TSS是指示TPM芯片釋放第一密鑰插槽。
[0114]可選的,如圖6所示,在步驟S207a和步驟S207b之間,方法還包括步驟S207c:
[0115]S207c、TSS保存占用第一密鑰插槽的密鑰的現(xiàn)場(chǎng)記錄。
[0116]需要說(shuō)明的是,本發(fā)明實(shí)施例提供的密鑰處理方法中,與TPM芯片連接的存儲(chǔ)器或者TPM芯片內(nèi)部的存儲(chǔ)器可以保存密鑰的現(xiàn)場(chǎng)記錄,其中,密鑰的現(xiàn)場(chǎng)記錄是指密鑰裝載時(shí)所需的文件、狀態(tài)等信息,以保證下次裝載該密鑰時(shí)能夠快速地從存儲(chǔ)器中讀取到該密鑰的現(xiàn)場(chǎng)記錄,恢復(fù)密鑰。
[0117]因此,在TSS釋放第一密鑰插槽之前,TSS需要保存占用第一密鑰插槽的密鑰的現(xiàn)場(chǎng)記錄。
[0118]S208、TSS在第一密鑰插槽上裝載第一密鑰。具體實(shí)現(xiàn)是,TSS是指示TPM芯片在第一密鑰插槽上裝載第一密鑰。
[0119]具體的,如圖7所示,步驟S208可以包括S208a和S208b:
[0120]S208a、TSS判斷存儲(chǔ)器中是否存儲(chǔ)有第一密鑰的現(xiàn)場(chǎng)記錄。
[0121]TSS在第一密鑰插槽上裝載第一密鑰時(shí),首先判斷存儲(chǔ)器中是否存儲(chǔ)有第一密鑰的現(xiàn)場(chǎng)記錄,若存儲(chǔ)器中未存儲(chǔ)有第一密鑰的現(xiàn)場(chǎng)記錄,則TSS在第一密鑰插槽上裝載第一密鑰。具體的裝載過(guò)程已經(jīng)在上述實(shí)施例中進(jìn)行了詳細(xì)描述,此處不再贅述。
[0122]S208b、若存儲(chǔ)器中存儲(chǔ)有第一密鑰的現(xiàn)場(chǎng)記錄,則TSS獲取并恢復(fù)第一密鑰的現(xiàn)場(chǎng)記錄。
[0123]若存儲(chǔ)器中存儲(chǔ)有第一密鑰的現(xiàn)場(chǎng)記錄,則TSS獲取并恢復(fù)第一密鑰的現(xiàn)場(chǎng)記錄,實(shí)現(xiàn)快速裝載密鑰。
[0124]S209、TSS在密鑰裝載記錄中記錄第一信息。
[0125]其中,第一信息至少包括第一密鑰插槽與第一密鑰的映射關(guān)系。
[0126]需要說(shuō)明的是,在密鑰裝載記錄中實(shí)時(shí)記錄著當(dāng)前時(shí)刻TPM芯片內(nèi)所有密鑰插槽的狀態(tài)。當(dāng)TSS在第一密鑰插槽上裝載第一密鑰后,TSS在密鑰裝載記錄中記錄第一信息,第一信息至少包括第一密鑰插槽與第一密鑰的映射關(guān)系。
[0127]S210、若第一命令不為密鑰裝載命令,則TSS判斷第一命令是否為密鑰釋放命令。
[0128]步驟S210是與步驟S205并列的步驟。
[0129]其中,密鑰釋放命令用于觸發(fā)芯片釋放第二密鑰,第二密鑰為占用芯片內(nèi)的第二密鑰插槽的密鑰。
[0130]S211、若第一命令為密鑰釋放命令,則TSS在第二密鑰插槽上釋放第二密鑰。
[0131]S212、TSS在密鑰裝載記錄中刪除第二信息。
[0132]其中,第二信息至少包括第二密鑰插槽與第二密鑰的映射關(guān)系。
[0133]需要說(shuō)明的是,在密鑰裝載記錄中實(shí)時(shí)記錄著當(dāng)前時(shí)刻TPM芯片內(nèi)所有密鑰插槽的狀態(tài)。當(dāng)TSS在第二密鑰插槽上釋放第二密鑰后,TSS在密鑰裝載記錄中刪除第二信息,第二信息至少包括第二密鑰插槽與第二密鑰的映射關(guān)系。
[0134]需要補(bǔ)充的是,若第一命令既不為密鑰裝載命令,也不為密鑰釋放命令,則說(shuō)明第一命令為長(zhǎng)作業(yè)命令或者短作業(yè)命令,由于長(zhǎng)作業(yè)命令或者短作業(yè)命令請(qǐng)求使用的一定是密鑰插槽中已經(jīng)裝載了的密鑰,因此只需在密鑰裝載記錄中對(duì)長(zhǎng)作業(yè)命令或者短作業(yè)命令請(qǐng)求使用的密鑰的使用次數(shù)進(jìn)行記錄即可。
[0135]本發(fā)明實(shí)施例提供一種密鑰處理方法,通過(guò)獲取密鑰裝載命令,密鑰裝載命令指示在可信平臺(tái)模塊TPM芯片裝載第一密鑰;若TPM芯片內(nèi)的所有密鑰插槽均處于非空閑狀態(tài),則釋放TPM芯片內(nèi)所有密鑰插槽中的第一密鑰插槽;根據(jù)密鑰裝載命令,在第一密鑰插槽上裝載第一密鑰?;谏鲜鰧?shí)施例的描述,由于在獲取指示在可信平臺(tái)模塊TPM芯片裝載第一密鑰的密鑰裝載命令,且TPM芯片內(nèi)的所有密鑰插槽均處于非空閑狀態(tài)時(shí),密鑰處理裝置能夠釋放所述TPM芯片內(nèi)所有密鑰插槽中的第一密鑰插槽,并根據(jù)密鑰裝載命令,在所述第一密鑰插槽上裝載所述第一密鑰。因此,能夠避免在密鑰裝載時(shí)返回空間已滿的錯(cuò)誤碼,保證密鑰裝載的順利進(jìn)行,合理地使用TPM芯片內(nèi)存空間資源。
[0136]本發(fā)明實(shí)施例提供一種密鑰處理裝置,如圖8所示,密鑰處理裝置用于執(zhí)行以上方法中的密鑰處理裝置所執(zhí)行的步驟。密鑰處理裝置可以包括相應(yīng)步驟所對(duì)應(yīng)的模塊。示例性的,密鑰處理裝置可以包括獲取模塊10、確認(rèn)模塊11、釋放模塊12和裝載模塊13。
[0137]獲取模塊10,用于獲取密鑰裝載命令,密鑰裝載命令指示在可信平臺(tái)模塊TPM芯片裝載第一密鑰。
[0138]確認(rèn)模塊11,用于在獲取模塊10獲取密鑰裝載命令后,確認(rèn)TPM芯片內(nèi)的所有密鑰插槽均處于非空閑狀態(tài)。
[0139]釋放模塊12,用于在確認(rèn)模塊11確認(rèn)TPM芯片內(nèi)的所有密鑰插槽均處于非空閑狀態(tài)后,則釋放TPM芯片內(nèi)滿足預(yù)設(shè)條件的第一密鑰插槽。
[0140]裝載模塊13,用于在釋放模塊12釋放TPM芯片內(nèi)所有密鑰插槽中的第一密鑰插槽后,根據(jù)所述密鑰裝載命令,在第一密鑰插槽上裝載第一密鑰。
[0141]可選的,確認(rèn)模塊11,還用于在釋放模塊12釋放所述第一密鑰插槽前,確認(rèn)TPM芯片內(nèi)的所有密鑰插槽與密鑰的映射關(guān)系。
[0142]可選的,釋放模塊12,具體用于獲取第一密鑰插槽的標(biāo)識(shí),其中,占用第一密鑰插槽的密鑰為占用所有密鑰插槽的密鑰中使用次數(shù)最少的密鑰,或者,占用第一密鑰插槽的密鑰為占用所有密鑰插槽的密鑰中最早裝載的密鑰;以及根據(jù)第一密鑰插槽的標(biāo)識(shí),指示TPM芯片釋放第一密鑰插槽。
[0143]可選的,如圖9所示,密鑰處理裝置還包括保存模塊14。
[0144]保存模塊14,用于在釋放模塊12釋放第一密鑰插槽前,保存占用第一密鑰插槽的密鑰的現(xiàn)場(chǎng)記錄。
[0145]可選的,裝載模塊13,具體用于在裝載模塊13在第一插槽上裝載所述第一密鑰時(shí),確認(rèn)存儲(chǔ)器中存儲(chǔ)有第一密鑰的現(xiàn)場(chǎng)記錄,獲取并恢復(fù)第一密鑰的現(xiàn)場(chǎng)記錄。
[0146]可選的,如圖10所示,密鑰處理裝置還包括記錄模塊15。
[0147]記錄模塊15,用于在裝載模塊13在第一密鑰插槽上裝載第一密鑰時(shí),記錄第一密鑰插槽與第一密鑰的映射關(guān)系,以便根據(jù)映射關(guān)系從第一密鑰插槽獲取到第一密鑰。
[0148]可選的,獲取模塊10,還用于獲取密鑰釋放命令,密鑰釋放命令用于觸發(fā)密鑰處理裝置釋放占用TPM芯片內(nèi)的第二密鑰插槽的第二密鑰。
[0149]釋放模塊12,還用于在獲取模塊10獲取密鑰釋放命令后,在第二密鑰插槽上釋放第二密鑰。
[0150]記錄模塊15,還用于在釋放模塊12在第二密鑰插槽上釋放第二密鑰后,在密鑰裝載記錄中刪除第二信息,第二信息至少包括第二密鑰插槽與第二密鑰的映射關(guān)系。
[0151]可選的,確認(rèn)模塊11,還用于在獲取模塊10獲取密鑰裝載命令前或者獲取密鑰釋放命令前,確認(rèn)TPM芯片內(nèi)處于空閑狀態(tài)的密鑰插槽的個(gè)數(shù)大于或等于預(yù)設(shè)門(mén)限。
[0152]獲取模塊10,還用于在確認(rèn)模塊11確認(rèn)TPM芯片內(nèi)處于空閑狀態(tài)的密鑰插槽的個(gè)數(shù)大于或等于預(yù)設(shè)門(mén)限后,從接收到的至少一個(gè)命令中獲取第一命令,第一命令為至少一個(gè)命令中的任意一個(gè)命令,第一命令包括密鑰裝載命令或者密鑰釋放命令。
[0153]可選的,確認(rèn)模塊11,還用于在獲取模塊10獲取密鑰裝載命令前或者獲取密鑰釋放命令前,確認(rèn)TPM芯片內(nèi)處于空閑狀態(tài)的密鑰插槽的個(gè)數(shù)小于預(yù)設(shè)門(mén)限。
[0154]獲取模塊10,還用于在確認(rèn)模塊11確認(rèn)TPM芯片內(nèi)處于空閑狀態(tài)的密鑰插槽的個(gè)數(shù)小于預(yù)設(shè)門(mén)限后,從接收到的至少一個(gè)命令中獲取第一命令,第一命令為至少一個(gè)命令中優(yōu)先級(jí)最高的命令,第一命令包括密鑰裝載命令或者密鑰釋放命令。
[0155]可以理解的是,本實(shí)施例的密鑰處理裝置可對(duì)應(yīng)于上述如圖3-圖7任意之一的實(shí)施例的密鑰處理方法中的密鑰處理裝置,并且本實(shí)施例的密鑰處理裝置中的各個(gè)模塊的劃分和/或功能等均是為了實(shí)現(xiàn)如圖3-圖7任意之一所示的方法流程,為了簡(jiǎn)潔,在此不再贅述。
[0156]示例性的,TSS部署在密鑰處理裝置中,如圖11所示,基于TSS1.2版本的芯片的系統(tǒng)架構(gòu)具體可以包括:精簡(jiǎn)AP1、TDDL、TCS和TSP四層。其中,TSP層可以包括父密鑰裝載釋放模塊和父密鑰存儲(chǔ)模塊,父密鑰裝載釋放模塊和父密鑰存儲(chǔ)模塊對(duì)應(yīng)于上述密鑰處理裝置中的裝載模塊13;TCS層可以包括多級(jí)隊(duì)列調(diào)度模塊、密鑰裝載釋放模塊、現(xiàn)場(chǎng)記錄存儲(chǔ)模塊、密鑰裝載記錄模塊,現(xiàn)場(chǎng)記錄存儲(chǔ)模塊內(nèi)存儲(chǔ)著現(xiàn)場(chǎng)記錄,密鑰裝載記錄模塊內(nèi)存儲(chǔ)著密鑰裝載記錄,多級(jí)隊(duì)列調(diào)度模塊對(duì)應(yīng)于上述密鑰處理裝置中的獲取模塊10,密鑰裝載釋放模塊對(duì)應(yīng)于上述密鑰處理裝置中的裝載模塊13,現(xiàn)場(chǎng)記錄存儲(chǔ)模塊對(duì)應(yīng)于上述密鑰處理裝置中的保存模塊14,密鑰裝載記錄模塊對(duì)應(yīng)于上述密鑰處理裝置中的記錄模塊15。
[0157]又示例性的,如圖12所示,基于TSS2.0版本的芯片的系統(tǒng)架構(gòu)具體可以包括:精簡(jiǎn)AP1、特征AP1、增強(qiáng)系統(tǒng)AP1、系統(tǒng)AP1、TCT1、TAB和資源管理器。其中,特征API可以包括父密鑰裝載釋放模塊和父密鑰存儲(chǔ)模塊,父密鑰裝載釋放模塊和父密鑰存儲(chǔ)模塊對(duì)應(yīng)于上述密鑰處理裝置中的裝載模塊13;資源管理器可以包括多級(jí)隊(duì)列調(diào)度模塊、密鑰裝載釋放模塊、現(xiàn)場(chǎng)記錄存儲(chǔ)模塊、密鑰裝載記錄模塊,現(xiàn)場(chǎng)記錄存儲(chǔ)模塊內(nèi)存儲(chǔ)著現(xiàn)場(chǎng)記錄,密鑰裝載記錄模塊內(nèi)存儲(chǔ)著密鑰裝載記錄,多級(jí)隊(duì)列調(diào)度模塊對(duì)應(yīng)于上述密鑰處理裝置中的獲取模塊10,密鑰裝載釋放模塊對(duì)應(yīng)于上述密鑰處理裝置中的裝載模塊13,現(xiàn)場(chǎng)記錄存儲(chǔ)模塊對(duì)應(yīng)于上述密鑰處理裝置中的保存模塊14,密鑰裝載記錄模塊對(duì)應(yīng)于上述密鑰處理裝置中的記錄模塊15。
[0158]本發(fā)明實(shí)施例提供一種密鑰處理裝置,包括獲取模塊、確認(rèn)模塊、釋放模塊和裝載模塊;獲取模塊,用于獲取密鑰裝載命令,密鑰裝載命令指示在可信平臺(tái)模塊TPM芯片裝載第一密鑰;確認(rèn)模塊,用于在獲取模塊獲取密鑰裝載命令后,確認(rèn)TPM芯片內(nèi)的所有密鑰插槽均處于非空閑狀態(tài);釋放模塊,用于若TPM芯片內(nèi)的所有密鑰插槽均處于非空閑狀態(tài),則釋放TPM芯片內(nèi)所有密鑰插槽中的第一密鑰插槽;裝載模塊,用于在釋放模塊釋放TPM芯片內(nèi)所有密鑰插槽中的第一密鑰插槽后,根據(jù)密鑰裝載命令,在第一密鑰插槽上裝載第一密鑰?;谏鲜鰧?shí)施例的描述,由于在獲取指示在可信平臺(tái)模塊TPM芯片裝載第一密鑰的密鑰裝載命令,且TPM芯片內(nèi)的所有密鑰插槽均處于非空閑狀態(tài)時(shí),密鑰處理裝置能夠釋放所述TPM芯片內(nèi)所有密鑰插槽中的第一密鑰插槽,并根據(jù)密鑰裝載命令,在所述第一密鑰插槽上裝載所述第一密鑰。因此,能夠避免在密鑰裝載時(shí)返回空間已滿的錯(cuò)誤碼,保證密鑰裝載的順利進(jìn)行,合理地使用TPM芯片內(nèi)存空間資源。
[0159]本發(fā)明實(shí)施例還提供一種終端設(shè)備,如圖13所示,該終端設(shè)備包括:存儲(chǔ)器20、處理器21、通信接口 22和系統(tǒng)總線23。
[0160]存儲(chǔ)器20、處理器21和通信接口 22通過(guò)系統(tǒng)總線23連接,存儲(chǔ)器20用于存儲(chǔ)一些計(jì)算機(jī)指令,處理器21用于執(zhí)行計(jì)算機(jī)指令,以使終端設(shè)備執(zhí)行如圖3-圖7任意之一的密鑰處理方法。具體的密鑰處理方法可參見(jiàn)上述如圖3-圖7任意之一所示的實(shí)施例中的相關(guān)描述,此處不再贅述。
[0161]具體的,處理器21可以是如圖8-圖10任意之一所示的實(shí)施例中描述的密鑰處理裝置,也可以是包括如圖8-圖10任意之一所示的實(shí)施例中描述的密鑰處理裝置的其他能夠?qū)崿F(xiàn)處理器功能的硬件結(jié)構(gòu)。
[0162]處理器21可以為中央處理器(central processing unit’CF^J)。處理器21還可以為其他通用處理器、數(shù)字信號(hào)處理器(digital signal processing,DSP)、專用集成電路(applicat1n specific integrated circui t,ASIC)、現(xiàn)場(chǎng)可編程門(mén)陣列(fie Id-programmable gate array,F(xiàn)PGA)或者其他可編程邏輯器件、分立門(mén)或者晶體管邏輯器件、分立硬件組件等。通用處理器可以是微處理器或者該處理器也可以是任何常規(guī)的處理器等。
[0163]處理器21可以為專用處理器,該專用處理器可以包括基帶處理芯片、射頻處理芯片等中的至少一個(gè)。進(jìn)一步地,該專用處理器還可以包括具有終端設(shè)備其他專用處理功能的芯片。
[0164]存儲(chǔ)器20可以包括易失性存儲(chǔ)器(volatile memory ),例如隨機(jī)存取存儲(chǔ)器(random-access memory ,RAM);存儲(chǔ)器20也可以包括非易失性存儲(chǔ)器(non-volatilememory),例如只讀存儲(chǔ)器(read-only memory,ROM),快閃存儲(chǔ)器(flash memory),硬盤(pán)(hard disk drive,HDD)或固態(tài)硬盤(pán)(solid-state drive,SSD);存儲(chǔ)器20還可以包括上述種類的存儲(chǔ)器的組合。
[0165]系統(tǒng)總線23可以包括數(shù)據(jù)總線、電源總線、控制總線和信號(hào)狀態(tài)總線等。本實(shí)施例中為了清楚說(shuō)明,在圖13中將各種總線都示意為系統(tǒng)總線23。
[0166]通信接口22可以包括接收器和發(fā)送器。并且在終端設(shè)備的具體實(shí)現(xiàn)中,接收器和發(fā)送器具體可以是終端設(shè)備上的收發(fā)器。該收發(fā)器可以為無(wú)線收發(fā)器。
[0167]在具體實(shí)現(xiàn)過(guò)程中,上述如圖3-圖7任意之一所示的方法流程中的各步驟均可以通過(guò)硬件執(zhí)行軟件形式的計(jì)算機(jī)執(zhí)行指令實(shí)現(xiàn)。為避免重復(fù),此處不再贅述。
[0168]本發(fā)明實(shí)施例提供一種終端設(shè)備?;谏鲜鰧?shí)施例的描述,由于在獲取指示在可信平臺(tái)模塊TPM芯片裝載第一密鑰的密鑰裝載命令,且TPM芯片內(nèi)的所有密鑰插槽均處于非空閑狀態(tài)時(shí),密鑰處理裝置能夠釋放所述TPM芯片內(nèi)所有密鑰插槽中的第一密鑰插槽,并根據(jù)密鑰裝載命令,在所述第一密鑰插槽上裝載所述第一密鑰。因此,能夠避免在密鑰裝載時(shí)返回空間已滿的錯(cuò)誤碼,保證密鑰裝載的順利進(jìn)行,合理地使用TPM芯片內(nèi)存空間資源。
[0169]本發(fā)明實(shí)施例還提供一種軟件產(chǎn)品,該軟件產(chǎn)品可以包括實(shí)現(xiàn)密鑰處理方法的計(jì)算機(jī)指令。
[0170]計(jì)算機(jī)指令可以存儲(chǔ)在可讀存儲(chǔ)介質(zhì)上;處理器可以從該可讀存儲(chǔ)介質(zhì)上讀取到計(jì)算機(jī)指令并執(zhí)行,使得處理器實(shí)現(xiàn)密鑰處理方法。
[0171]所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為描述的方便和簡(jiǎn)潔,僅以上述各功能模塊的劃分進(jìn)行舉例說(shuō)明,實(shí)際應(yīng)用中,可以根據(jù)需要而將上述功能分配由不同的功能模塊完成,即將裝置的內(nèi)部結(jié)構(gòu)劃分成不同的功能模塊,以完成以上描述的全部或者部分功能。上述描述的系統(tǒng),裝置和單元的具體工作過(guò)程,可以參考前述方法實(shí)施例中的對(duì)應(yīng)過(guò)程,在此不再贅述。
[0172]在本申請(qǐng)所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的裝置和方法,可以通過(guò)其它的方式實(shí)現(xiàn)。例如,以上所描述的裝置實(shí)施例僅僅是示意性的,例如,模塊或單元的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,例如多個(gè)單元或組件可以結(jié)合或者可以集成到另一個(gè)系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過(guò)一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機(jī)械或其它的形式。
[0173]另外,在本發(fā)明各個(gè)實(shí)施例中的各功能單元可以集成在一個(gè)處理單元中,也可以是各個(gè)單元單獨(dú)物理存在,也可以兩個(gè)或兩個(gè)以上單元集成在一個(gè)單元中。上述集成的單元既可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能單元的形式實(shí)現(xiàn)。
[0174]集成的單元如果以軟件功能單元的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時(shí),可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中。基于這樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說(shuō)對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái),該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)或處理器(processor)執(zhí)行本發(fā)明各個(gè)實(shí)施例方法的全部或部分步驟。而前述的存儲(chǔ)介質(zhì)包括:U盤(pán)、移動(dòng)硬盤(pán)、只讀存儲(chǔ)器(ROM,Read-Only Memory)、隨機(jī)存取存儲(chǔ)器(RAM,Random Access Memory)、磁碟或者光盤(pán)等各種可以存儲(chǔ)程序代碼的介質(zhì)。
[0175]以上,僅為本發(fā)明的【具體實(shí)施方式】,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)以權(quán)利要求的保護(hù)范圍為準(zhǔn)。
【主權(quán)項(xiàng)】
1.一種密鑰處理方法,其特征在于,包括: 獲取密鑰裝載命令,所述密鑰裝載命令指示在可信平臺(tái)模塊TPM芯片裝載第一密鑰;若所述TPM芯片內(nèi)的所有密鑰插槽均處于非空閑狀態(tài),則釋放所述TPM芯片內(nèi)所有密鑰插槽中的第一密鑰插槽; 根據(jù)所述密鑰裝載命令,在所述第一密鑰插槽上裝載所述第一密鑰。2.根據(jù)權(quán)利要求1所述的密鑰處理方法,其特征在于,所述方法還包括: 在所述釋放所述第一密鑰插槽前,確認(rèn)所述TPM芯片內(nèi)的所有密鑰插槽與密鑰的映射關(guān)系。3.根據(jù)權(quán)利要求1或2所述的密鑰處理方法,其特征在于,所述釋放所述TPM芯片內(nèi)所有密鑰插槽中的第一密鑰插槽,具體包括: 獲取所述第一密鑰插槽的標(biāo)識(shí),其中,占用所述第一密鑰插槽的密鑰為占用所有密鑰插槽的密鑰中使用次數(shù)最少的密鑰,或者,占用所述第一密鑰插槽的密鑰為占用所有密鑰插槽的密鑰中最早裝載的密鑰; 根據(jù)所述第一密鑰插槽的標(biāo)識(shí),指示所述TPM芯片釋放所述第一密鑰插槽。4.根據(jù)權(quán)利要求1至3任一項(xiàng)所述的密鑰處理方法,其特征在于,所述方法還包括: 在所述釋放所述第一密鑰插槽前,保存占用所述第一密鑰插槽的密鑰的現(xiàn)場(chǎng)記錄。5.根據(jù)權(quán)利要求1至4任一項(xiàng)所述的密鑰處理方法,其特征在于,所述方法還包括: 在所述第一插槽上裝載所述第一密鑰時(shí),確認(rèn)存儲(chǔ)器中存儲(chǔ)有第一密鑰的現(xiàn)場(chǎng)記錄,獲取并恢復(fù)所述第一密鑰的現(xiàn)場(chǎng)記錄。6.根據(jù)權(quán)利要求1至5任一項(xiàng)所述密鑰處理方法,其特征在于,所述方法還包括: 在所述第一密鑰插槽上裝載所述第一密鑰時(shí),記錄所述第一密鑰插槽與所述第一密鑰的映射關(guān)系,以便根據(jù)所述映射關(guān)系從所述第一密鑰插槽獲取到所述第一密鑰。7.根據(jù)權(quán)利要求1至6任一項(xiàng)所述的密鑰處理方法,其特征在于,在所述獲取密鑰裝載命令前,所述方法還包括: 確認(rèn)所述TPM芯片內(nèi)處于空閑狀態(tài)的密鑰插槽的個(gè)數(shù)大于或等于預(yù)設(shè)門(mén)限; 從接收到的至少一個(gè)命令中獲取第一命令,所述第一命令為所述至少一個(gè)命令中的任意一個(gè)命令,所述第一命令包括密鑰裝載命令。8.根據(jù)權(quán)利要求1至7任一項(xiàng)所述的密鑰處理方法,其特征在于,在所述獲取密鑰裝載命令前,所述方法還包括: 確認(rèn)所述TPM芯片內(nèi)處于空閑狀態(tài)的密鑰插槽的個(gè)數(shù)小于預(yù)設(shè)門(mén)限; 從接收到的至少一個(gè)命令中獲取第一命令,所述第一命令為所述至少一個(gè)命令中優(yōu)先級(jí)最高的命令,所述第一命令包括密鑰裝載命令。9.一種密鑰處理裝置,其特征在于,所述密鑰處理裝置包括獲取模塊、確認(rèn)模塊、釋放模塊和裝載模塊; 所述獲取模塊,用于獲取密鑰裝載命令,所述密鑰裝載命令指示在可信平臺(tái)模塊TPM芯片裝載第一密鑰; 所述確認(rèn)模塊,用于在所述獲取模塊獲取密鑰裝載命令后,確認(rèn)所述TPM芯片內(nèi)的所有密鑰插槽均處于非空閑狀態(tài); 所述釋放模塊,用于若所述TPM芯片內(nèi)的所有密鑰插槽均處于非空閑狀態(tài),則釋放所述TPM芯片內(nèi)所有密鑰插槽中的第一密鑰插槽; 所述裝載模塊,用于在所述釋放模塊釋放所述TPM芯片內(nèi)所有密鑰插槽中的第一密鑰插槽后,根據(jù)所述密鑰裝載命令,在所述第一密鑰插槽上裝載所述第一密鑰。10.根據(jù)權(quán)利要求9所述的密鑰處理裝置,其特征在于, 所述確認(rèn)模塊,還用于在所述釋放模塊釋放所述第一密鑰插槽前,確認(rèn)所述TPM芯片內(nèi)的所有密鑰插槽與密鑰的映射關(guān)系。11.根據(jù)權(quán)利要求9或10所述的密鑰處理裝置,其特征在于, 所述釋放模塊,具體用于獲取所述第一密鑰插槽的標(biāo)識(shí),其中,占用所述第一密鑰插槽的密鑰為占用所有密鑰插槽的密鑰中使用次數(shù)最少的密鑰,或者,占用所述第一密鑰插槽的密鑰為占用所有密鑰插槽的密鑰中最早裝載的密鑰;以及根據(jù)所述第一密鑰插槽的標(biāo)識(shí),指示所述TPM芯片釋放所述第一密鑰插槽。12.根據(jù)權(quán)利要求9至11任一項(xiàng)所述的密鑰處理裝置,其特征在于,所述密鑰處理裝置還包括保存t旲塊; 所述保存模塊,用于在所述釋放模塊釋放所述第一密鑰插槽前,保存占用所述第一密鑰插槽的密鑰的現(xiàn)場(chǎng)記錄。13.根據(jù)權(quán)利要求9至12任一項(xiàng)所述的密鑰處理裝置,其特征在于, 所述裝載模塊,具體用于在所述裝載模塊在第一插槽上裝載所述第一密鑰時(shí),確認(rèn)存儲(chǔ)器中存儲(chǔ)有第一密鑰的現(xiàn)場(chǎng)記錄,獲取并恢復(fù)所述第一密鑰的現(xiàn)場(chǎng)記錄。14.根據(jù)權(quán)利要求9至13任一項(xiàng)所述的密鑰處理裝置,其特征在于,所述密鑰處理裝置還包括記錄模塊; 所述記錄模塊,用于在所述裝載模塊在所述第一密鑰插槽上裝載所述第一密鑰時(shí),記錄所述第一密鑰插槽與所述第一密鑰的映射關(guān)系,以便根據(jù)所述映射關(guān)系從所述第一密鑰插槽獲取到所述第一密鑰。15.根據(jù)權(quán)利要求9至14任一項(xiàng)所述的密鑰處理裝置,其特征在于, 所述確認(rèn)模塊,還用于在所述獲取模塊獲取密鑰裝載命令前,確認(rèn)所述TPM芯片內(nèi)處于空閑狀態(tài)的密鑰插槽的個(gè)數(shù)大于或等于預(yù)設(shè)門(mén)限; 所述獲取模塊,還用于在所述確認(rèn)模塊確認(rèn)所述TPM芯片內(nèi)處于空閑狀態(tài)的密鑰插槽的個(gè)數(shù)大于或等于預(yù)設(shè)門(mén)限后,從接收到的至少一個(gè)命令中獲取第一命令,所述第一命令為所述至少一個(gè)命令中的任意一個(gè)命令,所述第一命令包括密鑰裝載命令。16.根據(jù)權(quán)利要求9至15任一項(xiàng)所述的密鑰處理裝置,其特征在于, 所述確認(rèn)模塊,還用于在所述獲取模塊獲取密鑰裝載命令前,確認(rèn)所述TPM芯片內(nèi)處于空閑狀態(tài)的密鑰插槽的個(gè)數(shù)小于預(yù)設(shè)門(mén)限; 所述獲取模塊,還用于在所述確認(rèn)模塊確認(rèn)所述TPM芯片內(nèi)處于空閑狀態(tài)的密鑰插槽的個(gè)數(shù)小于預(yù)設(shè)門(mén)限后,從接收到的至少一個(gè)命令中獲取第一命令,所述第一命令為所述至少一個(gè)命令中優(yōu)先級(jí)最高的命令,所述第一命令包括密鑰裝載命令。17.—種終端設(shè)備,其特征在于,所述終端設(shè)備包括存儲(chǔ)器、處理器、通信接口和系統(tǒng)總線; 所述存儲(chǔ)器、所述處理器和所述通信接口通過(guò)所述系統(tǒng)總線連接,所述存儲(chǔ)器用于存儲(chǔ)計(jì)算機(jī)指令,所述處理器用于執(zhí)行所述存儲(chǔ)器存儲(chǔ)的計(jì)算機(jī)指令,以使所述終端設(shè)備執(zhí)行權(quán)利要求1-8任一項(xiàng)所述的密鑰處理方法。
【文檔編號(hào)】H04L9/08GK105871539SQ201610156470
【公開(kāi)日】2016年8月17日
【申請(qǐng)日】2016年3月18日
【發(fā)明人】施迅, 余發(fā)江, 趙波
【申請(qǐng)人】華為技術(shù)有限公司