一種可信計(jì)算環(huán)境中密碼服務(wù)接口的封裝方法
【專利摘要】本發(fā)明公開了一種可信計(jì)算環(huán)境中密碼服務(wù)接口的封裝方法包括:可信對象標(biāo)識符的命名和可信接口封裝函數(shù)的調(diào)用;其中,可信對象標(biāo)識符的命名由命名對象的選擇、命名對應(yīng)信息的確定、命名計(jì)算和命名對應(yīng)信息查詢四部分組成;在該命名方法的基礎(chǔ)上,提出一種可信接口封裝函數(shù)調(diào)用方法,通過關(guān)聯(lián)信息數(shù)據(jù)庫和當(dāng)前狀態(tài)信息數(shù)據(jù)庫,實(shí)現(xiàn)了可信對象狀態(tài)信息、關(guān)聯(lián)信息、授權(quán)信息的查詢,實(shí)現(xiàn)各不同形式接口之間的可信互連。采用本發(fā)明的技術(shù)方案,實(shí)現(xiàn)不同封裝形式的可信模塊之間的相互通訊,使不同對象、不同格式的模塊能用統(tǒng)一的方式進(jìn)行處理。
【專利說明】
一種可信計(jì)算環(huán)境中密碼服務(wù)接口的封裝方法
技術(shù)領(lǐng)域
[0001] 本發(fā)明屬于信息安全和通訊接口領(lǐng)域,尤其涉及一種可信計(jì)算環(huán)境中密碼服務(wù)接 口的封裝方法。
【背景技術(shù)】
[0002] 隨著信息技術(shù)和網(wǎng)絡(luò)通訊技術(shù)的高速發(fā)展,信息安全方面暴露出的問題也層出不 窮,所以只有保證了計(jì)算機(jī)自身的信息安全才能將這些問題從根本上得到解決,在這種情 況下,可信計(jì)算技術(shù)應(yīng)運(yùn)而生。
[0003] 可信計(jì)算技術(shù)是基于硬件安全模塊支持下的可信計(jì)算平臺,目前的可信平臺模塊 如:TPM、TCM模塊已經(jīng)問世并已經(jīng)得到了應(yīng)用,TPCM模塊正在不斷的發(fā)展。開發(fā)者需要通過 可信計(jì)算開發(fā)庫提供的API函數(shù)來使用可信計(jì)算資源,但是,目前可信計(jì)算開發(fā)庫有不同的 API接口標(biāo)準(zhǔn),例如,TCG組織針對TPM1.2模塊提出了 TSS接口標(biāo)準(zhǔn),隨著TPM2.0規(guī)范的推出, TSS標(biāo)準(zhǔn)也將有巨大的變化。國內(nèi)則針對TCM模塊提出了TSM接口標(biāo)準(zhǔn)。,而TPCM模塊未來也 將提出不同的接口標(biāo)準(zhǔn)。當(dāng)前標(biāo)準(zhǔn)下的硬件接口,如TSM文檔以及TSS文檔所提供的接口,其 共同特點(diǎn)是非常復(fù)雜和繁瑣,而且不同類型的可信根的接口也缺乏兼容性,導(dǎo)致不同的可 信計(jì)算模塊之間不能進(jìn)行相互通訊,并且不能更好的交互和聯(lián)系。
[0004] 同時(shí),現(xiàn)有的可信平臺模塊的具有不同的對象和格式,不同可信平臺模塊中的處 理對象和格式不能用統(tǒng)一的方式進(jìn)行處理。因此,實(shí)現(xiàn)過程中必然涉及多種不同的標(biāo)準(zhǔn)和 管理方式,從而使得接口的功能實(shí)現(xiàn)異常復(fù)雜,導(dǎo)致了可信平臺模塊開發(fā)及通訊的困難,影 響了可信平臺模塊的開發(fā)和推廣。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明要解決的技術(shù)問題是,提供一種可信計(jì)算環(huán)境中密碼服務(wù)接口的封裝方 法,使不同封裝形式的模塊之間具有相同類型的接口從而進(jìn)行相互通訊,并能用統(tǒng)一的方 式處理不同對象和不同格式的模塊。
[0006] 為解決上述問題,本發(fā)明采用如下的技術(shù)方案:
[0007] -種可信計(jì)算環(huán)境中密碼服務(wù)接口的封裝方法包括以下步驟:
[0008] 步驟S1、在可信對象創(chuàng)建時(shí),獲取可信對象在標(biāo)準(zhǔn)接口庫中的對應(yīng)句柄,通過所述 句柄獲得可信對象的內(nèi)容信息,同時(shí)計(jì)算所述內(nèi)容信息摘要值作為可信對象的唯一標(biāo)識 符;并且基于所述可信對象唯一標(biāo)識符建立當(dāng)前狀態(tài)信息數(shù)據(jù)庫和關(guān)聯(lián)信息數(shù)據(jù)庫;
[0009] 步驟S2、根據(jù)所述可信對象唯一標(biāo)識符并且通過當(dāng)前狀態(tài)信息數(shù)據(jù)庫和關(guān)聯(lián)信息 數(shù)據(jù)庫實(shí)現(xiàn)可信對象的創(chuàng)建API、刪除API、功能執(zhí)行API和授權(quán)API函數(shù)的調(diào)用。
[0010] 作為優(yōu)選,對內(nèi)容信息在內(nèi)存中的可信對象,使用句柄獲得可信對象的內(nèi)容信息, 按固定次序打包輸出,并計(jì)算輸出數(shù)據(jù)摘要值,將摘要值轉(zhuǎn)化為字符串作為可信對象的唯 一標(biāo)識符;對內(nèi)容信息在可信根中的可信對象,以句柄為參數(shù),調(diào)用標(biāo)準(zhǔn)接口庫中的數(shù)據(jù)輸 出函數(shù),將可信對象內(nèi)容輸出為數(shù)據(jù)包并存儲(chǔ)在非易失存儲(chǔ)器上,計(jì)算其摘要值作為可信 對象的唯一標(biāo)識符。
[0011] 作為優(yōu)選,建立關(guān)聯(lián)信息數(shù)據(jù)庫如下:以可信對象的唯一標(biāo)識符為索引,并將此可 信對象的類型、屬性、內(nèi)容信息和/或本地存儲(chǔ)對象摘要值、關(guān)聯(lián)可信對象的唯一標(biāo)識符放 入所述關(guān)聯(lián)信息數(shù)據(jù)庫中;
[0012] 建立當(dāng)前狀態(tài)信息數(shù)據(jù)庫如下:以可信對象的唯一標(biāo)識符作為索引,在所述當(dāng)前 狀態(tài)信息數(shù)據(jù)庫存放可信對象在當(dāng)前環(huán)境中的可信信息,包括可信對象當(dāng)前狀態(tài),可信對 象的句柄值以及授權(quán)信息;
[0013] 其中,關(guān)聯(lián)信息數(shù)據(jù)庫向用戶提供API進(jìn)行查詢以獲得可信對象的關(guān)聯(lián)信息,當(dāng)前 狀態(tài)信息數(shù)據(jù)庫在封裝模塊中使用,不允許用戶直接訪問。
[0014] 作為優(yōu)選,創(chuàng)建API生成可信對象,存儲(chǔ)其內(nèi)容或存儲(chǔ)對象摘要值到關(guān)聯(lián)信息數(shù)據(jù) 庫并返回可信對象唯一標(biāo)識符;刪除API從關(guān)聯(lián)信息數(shù)據(jù)庫中刪除可信對象唯一標(biāo)識符為 索引的記錄;功能執(zhí)行API根據(jù)唯一標(biāo)識符檢索對應(yīng)內(nèi)容,獲取或恢復(fù)可信計(jì)算對象句柄, 并使用可信計(jì)算對象句柄完成對應(yīng)操作;可信授權(quán)API則根據(jù)可信對象標(biāo)識符獲取或建立 可信計(jì)算對象句柄,并且對可信計(jì)算句柄所指向的可信對象進(jìn)行授權(quán)操作。
[0015] 作為優(yōu)選,可信對象功能執(zhí)行API具體包括以下步驟:
[0016] 步驟2.1:為系統(tǒng)中每一類可信對象設(shè)計(jì)一個(gè)從未載入到標(biāo)準(zhǔn)接口庫狀態(tài)開始的 狀態(tài)變化軌跡圖;
[0017] 步驟2.2:為可信對象所涉及的函數(shù)操作建立函數(shù)狀態(tài)表,存入每個(gè)功能函數(shù)的執(zhí) 行步驟、輸入?yún)?shù)、執(zhí)行條件、輸出條件,根據(jù)狀態(tài)表判斷需要調(diào)用的輸入?yún)?shù)、函數(shù)執(zhí)行的 條件信息是否滿足、函數(shù)參數(shù)結(jié)果是否滿足輸出條件;
[0018] 步驟2.3:以可信對象的標(biāo)識符為索引查詢當(dāng)前狀態(tài)信息數(shù)據(jù)庫,獲得對應(yīng)可信對 象的當(dāng)前狀態(tài)信息,并對比狀態(tài)需求表;若檢查到的狀態(tài)信息為不足權(quán)限狀態(tài),從關(guān)聯(lián)關(guān)系 數(shù)據(jù)庫中獲取狀態(tài)變迀有關(guān)的其它可信對象的唯一標(biāo)識符值,檢查本對象和關(guān)聯(lián)對象對狀 態(tài)變化是否有足夠授權(quán),輸入授權(quán)口令,并與該對象在當(dāng)前狀態(tài)信息數(shù)據(jù)庫中的授權(quán)口令 進(jìn)行驗(yàn)證;若檢查到的狀態(tài)信息為足夠權(quán)限狀態(tài),進(jìn)入步驟2.4;
[0019] 步驟2.4:根據(jù)對象標(biāo)識符在函數(shù)狀態(tài)表中查詢該函數(shù)需要用到的對象參數(shù)并調(diào) 用并以此作為函數(shù)的輸入?yún)?shù)調(diào)用;
[0020] 步驟2.5:調(diào)用此系統(tǒng)可信函數(shù),并判斷此時(shí)的信息狀態(tài)是否達(dá)到函數(shù)輸出結(jié)果, 若沒有達(dá)到,則繼續(xù)執(zhí)行此函數(shù)直到達(dá)到函數(shù)輸出結(jié)果;若達(dá)到,則根據(jù)調(diào)用函數(shù)后輸出的 結(jié)果更新當(dāng)前狀態(tài)信息數(shù)據(jù)庫,存入該對象修改后的信息,以備下次的使用。
[0021] 作為優(yōu)選,步驟2.3中如出現(xiàn)口令錯(cuò)誤授權(quán)不足狀況,則返回錯(cuò)誤信息并將對象唯 一標(biāo)識符和錯(cuò)誤類型組成錯(cuò)誤記錄加入錯(cuò)誤記錄隊(duì)列。
[0022]作為優(yōu)選,在調(diào)用可信對象創(chuàng)建API時(shí),首先調(diào)用標(biāo)準(zhǔn)可信庫中的對象創(chuàng)建命令, 創(chuàng)建對應(yīng)對象并獲得其句柄,同時(shí)得到對象唯一標(biāo)識符,創(chuàng)建對象關(guān)聯(lián)信息數(shù)據(jù)項(xiàng)和當(dāng)前 狀態(tài)信息數(shù)據(jù)項(xiàng)并存放到對應(yīng)數(shù)據(jù)庫中,并返回唯一標(biāo)識符作為創(chuàng)建對象的標(biāo)識。
[0023]作為優(yōu)選,在調(diào)用可信對象刪除API時(shí),若可信對象已被載入到標(biāo)準(zhǔn)接口庫中則獲 取其句柄,并調(diào)用對應(yīng)的可信對象刪除函數(shù)從標(biāo)準(zhǔn)接口庫中清除該對象,再從關(guān)聯(lián)信息數(shù) 據(jù)庫和當(dāng)前狀態(tài)信息數(shù)據(jù)庫中刪除該可信對象的記錄項(xiàng);否則直接刪除關(guān)聯(lián)信息數(shù)據(jù)庫和 當(dāng)前狀態(tài)信息數(shù)據(jù)庫中該可信對象的記錄項(xiàng)。
[0024]作為優(yōu)選,在調(diào)用可信對象授權(quán)API時(shí),將授權(quán)秘密信息存放于當(dāng)前狀態(tài)數(shù)據(jù)庫 中;在同一調(diào)用過程中需要再次授權(quán)時(shí),則直接從當(dāng)前狀態(tài)數(shù)據(jù)庫中獲取授權(quán)秘密信息執(zhí) 行授權(quán)操作。本發(fā)明的可信計(jì)算環(huán)境中密碼服務(wù)接口的封裝方法主要分為兩個(gè)過程:可信 對象標(biāo)識符的命名和可信接口封裝函數(shù)的調(diào)用。可信對象標(biāo)識符的命名由命名對象的選 擇、命名對應(yīng)信息的確定、命名計(jì)算和命名對應(yīng)信息查詢四部分組成。在該命名方法的基礎(chǔ) 上,提出一種可信接口封裝函數(shù)調(diào)用方法,通過兩種數(shù)據(jù)庫:關(guān)聯(lián)信息數(shù)據(jù)庫和當(dāng)前狀態(tài)信 息數(shù)據(jù)庫,實(shí)現(xiàn)了可信對象狀態(tài)信息、關(guān)聯(lián)信息、授權(quán)信息的查詢,實(shí)現(xiàn)各不同形式接口之 間的可信互連。采用本發(fā)明的技術(shù)方案,實(shí)現(xiàn)不同封裝形式的可信模塊之間的相互通訊,使 不同對象、不同格式的模塊能用統(tǒng)一的方式進(jìn)行處理。
【附圖說明】
[0025]圖1為系統(tǒng)可信對象唯一標(biāo)識符命名流程圖;
[0026]圖2為系統(tǒng)調(diào)用可信對象創(chuàng)建API流程圖;
[0027]圖3為系統(tǒng)調(diào)用可信對象刪除API流程圖;
[0028] 圖4為系統(tǒng)可信對象唯一標(biāo)識符命名過程;
[0029] 圖5為系統(tǒng)調(diào)用可信對象功能執(zhí)行API流程圖。
【具體實(shí)施方式】
[0030] 為了使本領(lǐng)域人員更好地了解和使用本發(fā)明,下面對本發(fā)明進(jìn)行進(jìn)一步的說明。 本實(shí)例所描述的實(shí)施案例僅是本發(fā)明的部分案例,對于本領(lǐng)域的人員來說能夠很容易的對 下述實(shí)施案例進(jìn)行變換和修改,在不脫離本發(fā)明與案例的基礎(chǔ)上,使本發(fā)明應(yīng)用到其他可 信接口命名交互過程中。因此,該實(shí)施案例僅是用來闡述本發(fā)明的原理,而不作為本發(fā)明原 理的限定。
[0031] 本發(fā)明實(shí)施例一種可信計(jì)算環(huán)境中密碼服務(wù)接口的封裝方法,通過以中間件形式 實(shí)現(xiàn)對可信計(jì)算接口的調(diào)用封裝,中間件上層提供可信對象的創(chuàng)建API、刪除API、功能執(zhí)行 API和授權(quán)API函數(shù),函數(shù)中所有可信對象均以唯一標(biāo)識符標(biāo)識;中間件下層則調(diào)用可信根 所提供的標(biāo)準(zhǔn)接口庫,使用句柄來標(biāo)識可信授權(quán)對象。
[0032] 中間件中為每一類可信對象設(shè)置兩個(gè)數(shù)據(jù)庫:關(guān)聯(lián)信息數(shù)據(jù)庫和當(dāng)前狀態(tài)信息數(shù) 據(jù)庫,均以可信對象的唯一標(biāo)識為索引。關(guān)聯(lián)信息數(shù)據(jù)庫用來讓API調(diào)用者查詢可信對象之 間的關(guān)聯(lián)關(guān)系,提供接口供API調(diào)用者檢索,但調(diào)用者不能直接修改數(shù)據(jù)庫內(nèi)容。當(dāng)前狀態(tài) 信息數(shù)據(jù)庫用來存放可信對象當(dāng)前狀態(tài)信息供中間件實(shí)現(xiàn)調(diào)用功能,它供中間件內(nèi)部使 用,不提供外部接口,禁止用戶對其進(jìn)行訪問。其中,關(guān)聯(lián)信息數(shù)據(jù)庫在中間件首次安裝時(shí) 生成,它將系統(tǒng)中每類可信對象的類型、屬性、內(nèi)容信息和/或本地存儲(chǔ)對象摘要值、關(guān)聯(lián)可 信對象的唯一標(biāo)識符等固有信息組成數(shù)據(jù)項(xiàng),在此類對象創(chuàng)建時(shí),記錄這些固有信息,并以 對象的唯一標(biāo)識符為索引,在關(guān)聯(lián)信息數(shù)據(jù)庫中添加這些內(nèi)容作為一項(xiàng)記錄,并在本地非 易失存儲(chǔ)設(shè)備上留存?zhèn)浞?。中間件重新啟動(dòng)時(shí)從備份中載入相關(guān)信息并建立數(shù)據(jù)庫。用戶 可通過關(guān)聯(lián)信息數(shù)據(jù)庫查詢可信對象的具體屬性及其相關(guān)信息。當(dāng)前狀態(tài)信息數(shù)據(jù)庫存放 內(nèi)容為可信對象在當(dāng)前環(huán)境中的狀態(tài)信息,包括可信對象當(dāng)前狀態(tài),可信對象的句柄值以 及授權(quán)信息,當(dāng)前狀態(tài)包括但不限于可信對象未載入、可信對象已載入未授權(quán)以及可信對 象已授權(quán)。當(dāng)前狀態(tài)信息數(shù)據(jù)庫它在中間件每次啟動(dòng)時(shí)建立,建立時(shí)進(jìn)行初始化操作,獲取 系統(tǒng)中初始可信對象(包括背書密鑰、可信存儲(chǔ)根密鑰)的句柄值,將其狀態(tài)設(shè)置為已載入。 在系統(tǒng)通過唯一標(biāo)識符訪問可信對象時(shí),從關(guān)聯(lián)信息數(shù)據(jù)庫中查找到可信對象的具體內(nèi) 容,并根據(jù)這些內(nèi)容重載可信對象,將所獲得的句柄存入當(dāng)前狀態(tài)信息數(shù)據(jù)庫中,以供中間 件使用。
[0033]如圖1所示,系統(tǒng)可信對象唯一標(biāo)識符命名方法為:獲取可信對象在標(biāo)準(zhǔn)接口庫中 的對應(yīng)句柄,對內(nèi)容信息在內(nèi)存中的可信對象,使用句柄獲得可信對象的內(nèi)容信息,按固定 次序打包輸出,并計(jì)算輸出數(shù)據(jù)摘要值,將摘要值轉(zhuǎn)化為字符串作為可信對象的唯一標(biāo)識 符;對具體內(nèi)容在可信根中的可信對象,則以句柄為參數(shù),調(diào)用標(biāo)準(zhǔn)接口庫中的數(shù)據(jù)輸出函 數(shù),將可信對象內(nèi)容輸出為數(shù)據(jù)包并存儲(chǔ)在非易失存儲(chǔ)器上,計(jì)算其摘要值作為可信對象 的唯一標(biāo)識符。
[0034]如圖2所示,系統(tǒng)在調(diào)用可信對象創(chuàng)建API時(shí),首先調(diào)用標(biāo)準(zhǔn)可信庫中的對象創(chuàng)建 命令,創(chuàng)建對應(yīng)對象并獲得其句柄,而后執(zhí)行唯一標(biāo)識符計(jì)算方法,獲得對象唯一標(biāo)識符, 創(chuàng)建對象關(guān)聯(lián)信息數(shù)據(jù)項(xiàng)和當(dāng)前狀態(tài)信息數(shù)據(jù)項(xiàng)并存放到對應(yīng)數(shù)據(jù)庫中,并返回唯一標(biāo)識 符作為創(chuàng)建對象的標(biāo)識。
[0035]如圖3所示,系統(tǒng)在調(diào)用可信對象刪除API時(shí),若可信對象已被載入到標(biāo)準(zhǔn)接口庫 中則獲取其句柄,并調(diào)用對應(yīng)的可信對象刪除函數(shù)從標(biāo)準(zhǔn)接口庫中清除該對象,再從關(guān)聯(lián) 信息數(shù)據(jù)庫和當(dāng)前狀態(tài)信息數(shù)據(jù)庫中刪除該可信對象的記錄項(xiàng)。否則直接刪除關(guān)聯(lián)信息數(shù) 據(jù)庫和當(dāng)前狀態(tài)信息數(shù)據(jù)庫中可信對象的記錄項(xiàng)。
[0036] 系統(tǒng)在調(diào)用可信對象授權(quán)API時(shí),將授權(quán)秘密信息存放于當(dāng)前狀態(tài)數(shù)據(jù)庫中,在中 間件內(nèi)部執(zhí)行可信計(jì)算具體功能時(shí),對已授權(quán)的可信對象,直接從當(dāng)前狀態(tài)數(shù)據(jù)庫獲取授 權(quán)信息并進(jìn)行處理。
[0037] 系統(tǒng)在調(diào)用可信對象功能執(zhí)行API時(shí),則首先按照以下方式設(shè)計(jì)兩個(gè)內(nèi)部數(shù)據(jù)結(jié) 構(gòu):
[0038]①為系統(tǒng)中除背書密鑰和存儲(chǔ)根密鑰外每一類可信對象設(shè)計(jì)一個(gè)用標(biāo)準(zhǔn)接口庫 函數(shù)實(shí)現(xiàn)的,從存放于非易失存儲(chǔ)設(shè)備,未載入到標(biāo)準(zhǔn)接口庫中時(shí)的狀態(tài)開始,直到載入到 標(biāo)準(zhǔn)接口庫中并獲得完整授權(quán)的狀態(tài)改變過程,建立狀態(tài)變化軌跡圖;
[0039] ②對系統(tǒng)功能執(zhí)行API,確定其在各可信對象得到充分授權(quán)時(shí)用標(biāo)準(zhǔn)接口庫實(shí)現(xiàn) 的過程,確定該過程中每一次標(biāo)準(zhǔn)接口庫調(diào)用時(shí)相關(guān)可信對象所需的可信狀態(tài),并形成狀 態(tài)需求表。
[0040] 執(zhí)行功能執(zhí)行API時(shí),檢查相關(guān)對象的狀態(tài),并與狀態(tài)需求表對照,確定其是否滿 足標(biāo)準(zhǔn)接口庫調(diào)用的要求。若符合要求,則調(diào)用標(biāo)準(zhǔn)接口庫函數(shù),執(zhí)行實(shí)現(xiàn)過程。若不符合 要求,則根據(jù)狀態(tài)變化軌跡圖,檢查相關(guān)對象授權(quán)是否符合狀態(tài)改變過程的要求,若符合, 則執(zhí)行狀態(tài)改變過程并再次進(jìn)行狀態(tài)檢查;若不符合,則將錯(cuò)誤類型和錯(cuò)誤相關(guān)可信對象 的唯一標(biāo)識符組合成錯(cuò)誤信息添加到錯(cuò)誤隊(duì)列中供用戶查看并確定引發(fā)錯(cuò)誤的可信對象。
[0041] 本發(fā)明實(shí)施例一種可信計(jì)算環(huán)境中密碼服務(wù)接口的封裝方法包括:兩個(gè)過程:
[0042] 步驟S1、系統(tǒng)可信對象唯一標(biāo)識符命名;如圖4所示,具體如下:
[0043]步驟1.1:可信根相關(guān)對象中的選擇,選擇密鑰類、加密數(shù)據(jù)類、PCR合成類和HASH 類作為命名對象;將策略類此類與選擇對象有一一對應(yīng)關(guān)系的類作為命名對象的屬性處 理,不單獨(dú)命名;將文本類、TPM類此類標(biāo)定會(huì)話過程的類作為環(huán)境因素不予命名。
[0044] 步驟1.2:命名對象確定一個(gè)輸出方式,對于哈希對象、PCR寄存器,其數(shù)值均在內(nèi) 存中的對象,把對象的對應(yīng)數(shù)據(jù)輸出,并去掉輸出信息中不確定的內(nèi)容,再添加對象類型的 定義值,得到對象的命名對應(yīng)信息,確保該信息與對象間一一對應(yīng);對于密鑰對象、加密數(shù) 據(jù)對象,其主要內(nèi)容在可信計(jì)算平臺模塊根中存放的對象,則調(diào)用相關(guān)函數(shù)將其內(nèi)部信息 輸出為一個(gè)數(shù)據(jù)文件,使可信平臺模塊可以使用該數(shù)據(jù)文件,重新載入對象,把數(shù)據(jù)文件相 關(guān)摘要值和屬性值合并計(jì)算摘要作為標(biāo)識符。
[0045] 步驟1.3:通過密碼學(xué)上的哈希算法計(jì)算摘要值,對對象的命名對應(yīng)信息進(jìn)行密碼 學(xué)哈希計(jì)算,得到對應(yīng)信息的摘要值,并將其轉(zhuǎn)化為字符串,作為此對象的唯一通用標(biāo)識 符。在不同的可信計(jì)算環(huán)境下,同一對象的標(biāo)識符值都是唯一的,可以唯一標(biāo)識此對象。
[0046] 步驟1.4:在可信計(jì)算環(huán)境中建立關(guān)聯(lián)信息數(shù)據(jù)庫和當(dāng)前狀態(tài)信息數(shù)據(jù)庫,以命名 計(jì)算中生成的唯一標(biāo)識符值作為索引,在數(shù)據(jù)庫中存儲(chǔ)可信對象的類型、屬性、內(nèi)容信息 和/或本地存儲(chǔ)對象摘要值、關(guān)聯(lián)可信對象的唯一標(biāo)識符、可信對象當(dāng)前狀態(tài),可信對象的 句柄值以及授權(quán)信息。在使用可信計(jì)算對象時(shí),可根據(jù)唯一標(biāo)識符查詢到對象索引,根據(jù)索 引獲取該對象的其它參數(shù)內(nèi)容信息。
[0047]步驟S2、所述的系統(tǒng)調(diào)用可信對象功能執(zhí)行API,如圖5所示,具體步驟如下:
[0048] 步驟2.1:為系統(tǒng)中每一類可信對象(除背書密鑰和存儲(chǔ)根密鑰)設(shè)計(jì)一個(gè)從未載 入到標(biāo)準(zhǔn)接口庫狀態(tài)開始的狀態(tài)變化軌跡圖。
[0049] 步驟2.2:為可信對象建立關(guān)聯(lián)信息數(shù)據(jù)庫,以可信對象的唯一標(biāo)識符為索引,并 將此可信對象的類型、屬性、內(nèi)容信息和/或本地存儲(chǔ)對象摘要值、關(guān)聯(lián)可信對象的唯一標(biāo) 識符放入該數(shù)據(jù)庫中。
[0050] 步驟2.3:為可信對象建立當(dāng)前狀態(tài)信息數(shù)據(jù)庫,該數(shù)據(jù)庫以可信對象的唯一標(biāo)識 符作為索引,存放可信對象在當(dāng)前環(huán)境中的可信信息,包括可信對象當(dāng)前狀態(tài),可信對象的 句柄值以及授權(quán)信息。
[0051] 步驟2.4:為可信對象所涉及的函數(shù)操作建立函數(shù)狀態(tài)表,存入每個(gè)功能函數(shù)的執(zhí) 行步驟、輸入?yún)?shù)、執(zhí)行條件、輸出條件,根據(jù)狀態(tài)表判斷需要調(diào)用的輸入?yún)?shù)、函數(shù)執(zhí)行的 條件信息是否滿足、函數(shù)參數(shù)結(jié)果是否滿足輸出條件。
[0052]步驟2.5:中間件以可信對象的標(biāo)識符為索引查詢當(dāng)前狀態(tài)信息數(shù)據(jù)庫,獲得對應(yīng) 可信對象的當(dāng)前狀態(tài)信息,并對比狀態(tài)需求表,狀態(tài)信息分為兩種:足夠權(quán)限狀態(tài)和不足權(quán) 限狀態(tài)。若檢查到的狀態(tài)信息為不足權(quán)限狀態(tài),從關(guān)聯(lián)關(guān)系數(shù)據(jù)庫中獲取狀態(tài)變迀有關(guān)的 其它可信對象的唯一標(biāo)識符值,檢查本對象和關(guān)聯(lián)對象對狀態(tài)變化是否有足夠授權(quán),輸入 授權(quán)口令,并與該對象在當(dāng)前狀態(tài)信息數(shù)據(jù)庫中的授權(quán)口令進(jìn)行驗(yàn)證。
[0053]步驟2.5.1:若檢查到的狀態(tài)信息為足夠權(quán)限狀態(tài),進(jìn)入步驟2.6。
[0054]步驟2.5.2:若口令錯(cuò)誤授權(quán)不足,則返回錯(cuò)誤信息并將對象唯一標(biāo)識符和錯(cuò)誤類 型組成錯(cuò)誤記錄加入錯(cuò)誤記錄隊(duì)列。
[0055] 步驟2.6:根據(jù)對象標(biāo)識符在函數(shù)狀態(tài)表中查詢該函數(shù)需要用到的對象參數(shù)并調(diào) 用并以此作為函數(shù)的輸入?yún)?shù)調(diào)用。
[0056] 步驟2.7:調(diào)用此系統(tǒng)可信函數(shù),并判斷此時(shí)的信息狀態(tài)是否達(dá)到函數(shù)輸出結(jié)果, 若沒有達(dá)到,則繼續(xù)執(zhí)行此函數(shù)直到達(dá)到函數(shù)輸出結(jié)果;若達(dá)到,則根據(jù)調(diào)用函數(shù)后輸出的 結(jié)果更新當(dāng)前狀態(tài)信息數(shù)據(jù)庫,存入該對象修改后的信息,以備下次的使用。
[0057] 實(shí)施例1:
[0058]以TSS中的密鑰對象接口命名為例,首先,為其設(shè)計(jì)一個(gè)如下的關(guān)聯(lián)信息數(shù)據(jù)記錄 項(xiàng):
[0060]同時(shí)設(shè)計(jì)一個(gè)當(dāng)前狀態(tài)信息記錄項(xiàng):
[0062]命名計(jì)算過程具體步驟如下:
[0063]步驟1.1 :TSS對可信根(TPM)中載入的密鑰對象會(huì)給出一個(gè)密鑰句柄,假設(shè)其為 hKey,在 TSS 中通過 Tspi_SetAttribData(hKey,TSS_TSPATTRIB_KEY_BLOB,TSS_TSPATTRIB_ KRYBLOB_BLOB,&blobLength,&Blob)函數(shù),根據(jù)密鑰句柄hKey將密鑰數(shù)據(jù)輸出到Blob中,此 時(shí)輸出的密鑰數(shù)據(jù)被另一個(gè)密鑰(封裝密鑰)加密。
[0064] 步驟1.2:用密碼學(xué)哈希算法(MD5,SHA1或SM3)計(jì)算Blob數(shù)據(jù),生成其摘要值,再將 摘要值與密鑰屬性值合并后,通過密碼學(xué)哈希計(jì)算重新計(jì)算摘要值。
[0065]步驟1.3:將步驟1.2生成的摘要值轉(zhuǎn)化為16進(jìn)制字符串,并將此字符串作為此對 象的唯一標(biāo)識符保存。
[0066] 步驟1.4:將Blob數(shù)據(jù)存儲(chǔ)為一個(gè)封裝密鑰文件,可用唯一標(biāo)識符作為密鑰文件的 名稱。
[0067] 步驟1.5:根據(jù)該密鑰生成命令中的相關(guān)參數(shù),填充關(guān)聯(lián)信息數(shù)據(jù)記錄項(xiàng)中各項(xiàng)內(nèi) 容,并將關(guān)聯(lián)信息數(shù)據(jù)記錄項(xiàng)存儲(chǔ)到密鑰的關(guān)聯(lián)信息數(shù)據(jù)庫中。
[0068] 步驟1.6:將111(67寫入當(dāng)前狀態(tài)信息數(shù)據(jù)庫,調(diào)用18口;[_66七?01;^7013」6(31:(111(67, TSS_POLICY_USAGE,&hPolicy)函數(shù)獲取密鑰的策略句柄hPolicy并記錄在當(dāng)前狀態(tài)信息數(shù) 據(jù)記錄項(xiàng)中,根據(jù)密鑰是否得到授權(quán)來填寫密鑰狀態(tài)項(xiàng),并根據(jù)用戶是否已輸入秘密信息 決定是否填寫秘密信息項(xiàng)。并將當(dāng)前狀態(tài)信息記錄項(xiàng)存入密鑰的當(dāng)前狀態(tài)信息數(shù)據(jù)庫中。 [0069]所述的系統(tǒng)調(diào)用可信對象功能執(zhí)行API,其使用與函數(shù)功能直接關(guān)聯(lián)的可信根相 關(guān)對象唯一標(biāo)識符作為輸入?yún)?shù),以唯一標(biāo)識符作為句柄,在關(guān)聯(lián)信息數(shù)據(jù)庫和當(dāng)前狀態(tài) 信息數(shù)據(jù)庫中查詢對象的其他相關(guān)信息,根據(jù)函數(shù)狀態(tài)表查詢調(diào)用該函數(shù)需要用到的對象 參數(shù),并以此作為調(diào)用系統(tǒng)函數(shù)的輸入信息,完成系統(tǒng)函數(shù)調(diào)用。以TSS中密鑰對象的封裝 接口為例,來說明封裝函數(shù)接口的過程,主要分為創(chuàng)建和調(diào)用兩個(gè)部分。
[0070] 創(chuàng)建部分:
[0071] 步驟2.1:調(diào)用TSS中的創(chuàng)建函數(shù),獲得創(chuàng)建函數(shù)的句柄。
[0072] 步驟2.2:調(diào)用第一部分中的命名計(jì)算過程,獲得對象的存儲(chǔ)數(shù)據(jù)項(xiàng)和唯一標(biāo)識 符,同時(shí)生成密鑰對象的關(guān)聯(lián)信息數(shù)據(jù)項(xiàng)和當(dāng)前狀態(tài)信息數(shù)據(jù)項(xiàng)。
[0073]調(diào)用部分:
[0074] 首先要進(jìn)行預(yù)處理設(shè)置,預(yù)處理設(shè)置包括狀態(tài)化軌跡圖的預(yù)處理設(shè)置以及狀態(tài)需 求表的預(yù)處理設(shè)置。
[0075] 首先設(shè)計(jì)密鑰對象的狀態(tài)變迀軌跡圖。密鑰對象分為三種狀態(tài),狀態(tài)一為存儲(chǔ)狀 態(tài),即磁盤中有密鑰對象的存儲(chǔ)文件但密鑰尚未載入TPM中;狀態(tài)二為載入狀態(tài),即TPM已從 文件中載入密鑰但未經(jīng)授權(quán);狀態(tài)三為授權(quán)狀態(tài),即密鑰已完成授權(quán)可以正常使用。
[0076] 狀態(tài)一到狀態(tài)二需先后調(diào)用三個(gè)135函數(shù):18口;[_(]〇11丨611:_〇63丨6〇13」6〇1:()函數(shù)創(chuàng) 建一個(gè)空的密鑰對象,Tspi_SetAttribData()將密鑰數(shù)據(jù)載入到密鑰對象中密鑰對象, Tspi_Key_LoadKey輸入已載入數(shù)據(jù)的密鑰對象句柄以及該密鑰對象的封裝密鑰對象句柄, 完成載入數(shù)據(jù)的解封操作。前兩個(gè)函數(shù)不需額外授權(quán),第三個(gè)函數(shù)則要求封裝密鑰對象已 獲得授權(quán)。
[0077] 狀態(tài)二到狀態(tài)三需調(diào)用兩個(gè)TSS函數(shù):Tspi_GetPolicyObject()函數(shù)獲取密鑰對 象句柄的策略。Tspi_Policy_SetSecret()函數(shù)則使用密鑰的秘密授權(quán)信息為其設(shè)定授權(quán) 口令。
[0078] 以密鑰的綁定功能為例來說明密鑰對象相關(guān)的功能接口實(shí)現(xiàn)過程。該功能的封裝 API接口定義如下:
[0079] int TESI_Local_Bind(void氺plaintext,void氺bindtext,char氺bindkey-uuid);
[0080] 其中,第一個(gè)參數(shù)為綁定密鑰的輸入?yún)?shù)即未綁定的明文信息,第二個(gè)參數(shù)為綁 定密鑰對象信息,第三個(gè)參數(shù)為綁定密鑰對象的唯一標(biāo)識符。
[0081] 密鑰綁定功能在對象均已授權(quán)的情況下,需調(diào)用三個(gè)TSS函數(shù)來實(shí)現(xiàn):
[0082] 首先,調(diào)用18口;[_(:01^611:_063七6013」601:()函數(shù),對象類型設(shè)為綁定數(shù)據(jù)對象,以 創(chuàng)建一個(gè)綁定數(shù)據(jù)對象,該對象為臨時(shí)對象,不必存入數(shù)據(jù)庫。該函數(shù)無需授權(quán),無狀態(tài)要 求。
[0083]然后,調(diào)用Tspi_Data_Bind〇函數(shù),輸入綁定數(shù)據(jù)對象和綁定密鑰對象的句柄,執(zhí) 行綁定操作,該函數(shù)需要綁定密鑰對象為授權(quán)對象,因此可為其設(shè)置狀態(tài)需求表,設(shè)綁定密 鑰參數(shù)為需授權(quán)對象;
[0084] 最后調(diào)用Tspi_TPM_GetAttribData〇函數(shù)將綁定數(shù)據(jù)對象中的已綁定數(shù)據(jù)導(dǎo)出, 該函數(shù)無需授權(quán),無狀態(tài)要求。
[0085]綁定功能API封裝實(shí)現(xiàn)的具體步驟如下:
[0086] 步驟3.1:在系統(tǒng)調(diào)用TESI_Local_BindAPI接口時(shí),獲取綁定密鑰對象的唯一標(biāo)識 符key_uuid,
[0087]步驟3.2:根據(jù)唯一標(biāo)識符查詢當(dāng)前狀態(tài)信息數(shù)據(jù)庫,確認(rèn)該對象處于何種狀態(tài)。 若對象處于存儲(chǔ)狀態(tài)則轉(zhuǎn)步驟3.3,若對象處于載入狀態(tài)則轉(zhuǎn)3.5,若對象處于授權(quán)狀態(tài)則 轉(zhuǎn)3.
[0088]步驟3.3:若此時(shí)該對象處于存儲(chǔ)狀態(tài),密鑰尚未載入TPM中,則根據(jù)密鑰對象的狀 態(tài)變化迀移圖,讀入文件數(shù)據(jù),創(chuàng)建hKey并存入當(dāng)前狀態(tài)信息數(shù)據(jù)庫,調(diào)用Tspi_ SetAttribData(hKey,TSS_TSPATTRIB_KEY_BLOB,TSS_TSPATTRIB_KRYBLOB_BLOB,& blobLength,&Blob)函數(shù),完成該密鑰對象信息的載入。
[0089] 步驟3.4:通過關(guān)聯(lián)信息數(shù)據(jù)庫檢索到綁定密鑰對象的封裝密鑰對象唯一標(biāo)識符, 根據(jù)Tspi_Key_LoadKey ()函數(shù)的狀態(tài)需求表,確定封裝密鑰對象需要授權(quán),并檢查其授權(quán) 狀況,如已授權(quán)則調(diào)用Tspi_Key_L 〇adKey ()函數(shù)解封封裝密鑰,否則以封裝密鑰對象作為 處理對象重復(fù)進(jìn)行步驟3.2所描述的授權(quán)狀態(tài)變化迀移操作。
[0090] 步驟3.5:判斷密鑰對象是否已設(shè)置了授權(quán)秘密信息,如未設(shè)置,則返回授權(quán)秘密 未設(shè)置錯(cuò)誤,并將關(guān)聯(lián)對象唯一標(biāo)識符和錯(cuò)誤類型組成錯(cuò)誤記錄加入錯(cuò)誤記錄隊(duì)列。
[0091] 步驟3.6從當(dāng)前狀態(tài)信息數(shù)據(jù)庫中獲取密鑰對象授權(quán)秘密,執(zhí)行密鑰對象從載入 狀態(tài)到授權(quán)狀態(tài)的轉(zhuǎn)換,如轉(zhuǎn)換過程中授權(quán)秘密驗(yàn)證失敗,則返回授權(quán)秘密不匹配錯(cuò)誤,并 將關(guān)聯(lián)對象唯一標(biāo)識符和錯(cuò)誤類型組成錯(cuò)誤記錄加入錯(cuò)誤記錄隊(duì)列。
[0092] 步驟3 · 7:調(diào)用Tspi_Data_Bind()函數(shù),輸入綁定密鑰句柄和輸入數(shù)據(jù)plaintext, 執(zhí)行密鑰綁定操作,得到裝載綁定數(shù)據(jù)的綁定數(shù)據(jù)對象。
[0093] 步驟3.8:調(diào)用了8?丨_了?1_66七4七廿訃0&七&〇函數(shù),從綁定密鑰對象中導(dǎo)出綁定數(shù)據(jù) 并輸出到bindtext地址中,返回綁定密鑰成功信息。
[0094]最后應(yīng)說明的是:以上示例僅用以說明本發(fā)明而并非限制本發(fā)明所描述的技術(shù)方 案;因此,盡管本說明書參照上述的示例對本發(fā)明已進(jìn)行了詳細(xì)的說明,但是本領(lǐng)域的普通 技術(shù)人員應(yīng)當(dāng)理解,仍然可以對本發(fā)明進(jìn)行修改或等同替換;而一切不脫離發(fā)明的精神和 范圍的技術(shù)方案及其改進(jìn),其均應(yīng)涵蓋在本發(fā)明的權(quán)利要求范圍當(dāng)中。
【主權(quán)項(xiàng)】
1. 一種可信計(jì)算環(huán)境中密碼服務(wù)接口的封裝方法,其特征在于,包括以下步驟: 步驟S1、在可信對象創(chuàng)建時(shí),獲取可信對象在標(biāo)準(zhǔn)接口庫中的對應(yīng)句柄,通過所述句柄 獲得可信對象的內(nèi)容信息,同時(shí)計(jì)算所述內(nèi)容信息摘要值作為可信對象的唯一標(biāo)識符;并 且基于所述可信對象唯一標(biāo)識符建立當(dāng)前狀態(tài)信息數(shù)據(jù)庫和關(guān)聯(lián)信息數(shù)據(jù)庫; 步驟S2、根據(jù)所述可信對象唯一標(biāo)識符并且通過當(dāng)前狀態(tài)信息數(shù)據(jù)庫和關(guān)聯(lián)信息數(shù)據(jù) 庫實(shí)現(xiàn)可信對象的創(chuàng)建API、刪除API、功能執(zhí)行API和授權(quán)API函數(shù)的調(diào)用。2. 如權(quán)利要求1所述的可信計(jì)算環(huán)境中密碼服務(wù)接口的封裝方法,其特征在于,對內(nèi)容 信息在內(nèi)存中的可信對象,使用句柄獲得可信對象的內(nèi)容信息,按固定次序打包輸出,并計(jì) 算輸出數(shù)據(jù)摘要值,將摘要值轉(zhuǎn)化為字符串作為可信對象的唯一標(biāo)識符;對內(nèi)容信息在可 信根中的可信對象,以句柄為參數(shù),調(diào)用標(biāo)準(zhǔn)接口庫中的數(shù)據(jù)輸出函數(shù),將可信對象內(nèi)容輸 出為數(shù)據(jù)包并存儲(chǔ)在非易失存儲(chǔ)器上,計(jì)算其摘要值作為可信對象的唯一標(biāo)識符。3. 如權(quán)利要求1所述的可信計(jì)算環(huán)境中密碼服務(wù)接口的封裝方法,其特征在于,建立關(guān) 聯(lián)信息數(shù)據(jù)庫如下:以可信對象的唯一標(biāo)識符為索引,并將此可信對象的類型、屬性、內(nèi)容 信息和/或本地存儲(chǔ)對象摘要值、關(guān)聯(lián)可信對象的唯一標(biāo)識符放入所述關(guān)聯(lián)信息數(shù)據(jù)庫中; 建立當(dāng)前狀態(tài)信息數(shù)據(jù)庫如下:以可信對象的唯一標(biāo)識符作為索引,在所述當(dāng)前狀態(tài) 信息數(shù)據(jù)庫存放可信對象在當(dāng)前環(huán)境中的可信信息,包括可信對象當(dāng)前狀態(tài),可信對象的 句柄值以及授權(quán)信息; 其中,關(guān)聯(lián)信息數(shù)據(jù)庫向用戶提供API進(jìn)行查詢以獲得可信對象的關(guān)聯(lián)信息,當(dāng)前狀態(tài) 信息數(shù)據(jù)庫在封裝模塊中使用,不允許用戶直接訪問。4. 如權(quán)利要求1所述的可信計(jì)算環(huán)境中密碼服務(wù)接口的封裝方法,其特征在于,創(chuàng)建 API生成可信對象,存儲(chǔ)其內(nèi)容或存儲(chǔ)對象摘要值到關(guān)聯(lián)信息數(shù)據(jù)庫并返回可信對象唯一 標(biāo)識符;刪除API從關(guān)聯(lián)信息數(shù)據(jù)庫中刪除可信對象唯一標(biāo)識符為索引的記錄;功能執(zhí)行 API根據(jù)唯一標(biāo)識符檢索對應(yīng)內(nèi)容,獲取或恢復(fù)可信計(jì)算對象句柄,并使用可信計(jì)算對象句 柄完成對應(yīng)操作;可信授權(quán)API則根據(jù)可信對象標(biāo)識符獲取或建立可信計(jì)算對象句柄,并且 對可信計(jì)算句柄所指向的可信對象進(jìn)行授權(quán)操作。5. 如權(quán)利要求4所述的可信計(jì)算環(huán)境中密碼服務(wù)接口的封裝方法,其特征在于,可信對 象功能執(zhí)行API具體包括以下步驟: 步驟2.1:為系統(tǒng)中每一類可信對象設(shè)計(jì)一個(gè)從未載入到標(biāo)準(zhǔn)接口庫狀態(tài)開始的狀態(tài) 變化軌跡圖; 步驟2.2:為可信對象所涉及的函數(shù)操作建立函數(shù)狀態(tài)表,存入每個(gè)功能函數(shù)的執(zhí)行步 驟、輸入?yún)?shù)、執(zhí)行條件、輸出條件,根據(jù)狀態(tài)表判斷需要調(diào)用的輸入?yún)?shù)、函數(shù)執(zhí)行的條件 信息是否滿足、函數(shù)參數(shù)結(jié)果是否滿足輸出條件; 步驟2.3:以可信對象的標(biāo)識符為索引查詢當(dāng)前狀態(tài)信息數(shù)據(jù)庫,獲得對應(yīng)可信對象的 當(dāng)前狀態(tài)信息,并對比狀態(tài)需求表;若檢查到的狀態(tài)信息為不足權(quán)限狀態(tài),從關(guān)聯(lián)關(guān)系數(shù)據(jù) 庫中獲取狀態(tài)變迀有關(guān)的其它可信對象的唯一標(biāo)識符值,檢查本對象和關(guān)聯(lián)對象對狀態(tài)變 化是否有足夠授權(quán),輸入授權(quán)口令,并與該對象在當(dāng)前狀態(tài)信息數(shù)據(jù)庫中的授權(quán)口令進(jìn)行 驗(yàn)證;若檢查到的狀態(tài)信息為足夠權(quán)限狀態(tài),進(jìn)入步驟2.4; 步驟2.4:根據(jù)對象標(biāo)識符在函數(shù)狀態(tài)表中查詢該函數(shù)需要用到的對象參數(shù)并調(diào)用并 以此作為函數(shù)的輸入?yún)?shù)調(diào)用; 步驟2.5:調(diào)用此系統(tǒng)可信函數(shù),并判斷此時(shí)的信息狀態(tài)是否達(dá)到函數(shù)輸出結(jié)果,若沒 有達(dá)到,則繼續(xù)執(zhí)行此函數(shù)直到達(dá)到函數(shù)輸出結(jié)果;若達(dá)到,則根據(jù)調(diào)用函數(shù)后輸出的結(jié)果 更新當(dāng)前狀態(tài)信息數(shù)據(jù)庫,存入該對象修改后的信息,以備下次的使用。6. 如權(quán)利要求5所述的可信計(jì)算環(huán)境中密碼服務(wù)接口的封裝方法,其特征在于,步驟 2.3中如出現(xiàn)口令錯(cuò)誤授權(quán)不足狀況,則返回錯(cuò)誤信息并將對象唯一標(biāo)識符和錯(cuò)誤類型組 成錯(cuò)誤記錄加入錯(cuò)誤記錄隊(duì)列。7. 如權(quán)利要求4所述的可信計(jì)算環(huán)境中密碼服務(wù)接口的封裝方法,其特征在于,在調(diào)用 可信對象創(chuàng)建API時(shí),首先調(diào)用標(biāo)準(zhǔn)可信庫中的對象創(chuàng)建命令,創(chuàng)建對應(yīng)對象并獲得其句 柄,同時(shí)得到對象唯一標(biāo)識符,創(chuàng)建對象關(guān)聯(lián)信息數(shù)據(jù)項(xiàng)和當(dāng)前狀態(tài)信息數(shù)據(jù)項(xiàng)并存放到 對應(yīng)數(shù)據(jù)庫中,并返回唯一標(biāo)識符作為創(chuàng)建對象的標(biāo)識。8. 如權(quán)利要求4所述的可信計(jì)算環(huán)境中密碼服務(wù)接口的封裝方法,其特征在于,在調(diào)用 可信對象刪除API時(shí),若可信對象已被載入到標(biāo)準(zhǔn)接口庫中則獲取其句柄,并調(diào)用對應(yīng)的可 信對象刪除函數(shù)從標(biāo)準(zhǔn)接口庫中清除該對象,再從關(guān)聯(lián)信息數(shù)據(jù)庫和當(dāng)前狀態(tài)信息數(shù)據(jù)庫 中刪除該可信對象的記錄項(xiàng);否則直接刪除關(guān)聯(lián)信息數(shù)據(jù)庫和當(dāng)前狀態(tài)信息數(shù)據(jù)庫中該可 信對象的記錄項(xiàng)。9. 如權(quán)利要求4所述的可信計(jì)算環(huán)境中密碼服務(wù)接口的封裝方法,其特征在于,在調(diào)用 可信對象授權(quán)API時(shí),將授權(quán)秘密信息存放于當(dāng)前狀態(tài)數(shù)據(jù)庫中;在同一調(diào)用過程中需要再 次授權(quán)時(shí),則直接從當(dāng)前狀態(tài)數(shù)據(jù)庫中獲取授權(quán)秘密信息執(zhí)行授權(quán)操作。
【文檔編號】G06F21/62GK106096446SQ201610417911
【公開日】2016年11月9日
【申請日】2016年6月15日 公開號201610417911.3, CN 106096446 A, CN 106096446A, CN 201610417911, CN-A-106096446, CN106096446 A, CN106096446A, CN201610417911, CN201610417911.3
【發(fā)明人】胡俊, 孫夢宇, 陶政, 公備
【申請人】北京工業(yè)大學(xué)