1.一種Java程序可信執(zhí)行環(huán)境的構(gòu)建方法,其特征在于,包括步驟:
A、構(gòu)建協(xié)處理器板卡,協(xié)處理器板卡設(shè)置在主板上:
所述協(xié)處理器板卡包括協(xié)處理器芯片、均與協(xié)處理器芯片連接的內(nèi)存芯片和閃存芯片;
主板上插有主處理器、TPM芯片,所述主處理器、協(xié)處理器板卡、TPM芯片相互連接;
B、配置主處理器上部署的Java應(yīng)用安全性需求等級(jí)和協(xié)處理器上的Java應(yīng)用度量經(jīng)驗(yàn)表:
將每個(gè)Java應(yīng)用的安全性需求等級(jí)填到Java應(yīng)用安全性需求等級(jí)配置表中:
將Java應(yīng)用名稱和散列值寫入?yún)f(xié)處理器板卡閃存芯片中的Java應(yīng)用度量經(jīng)驗(yàn)表;
C、當(dāng)判斷Java應(yīng)用有網(wǎng)絡(luò)通信需求,且未在主處理器中運(yùn)行過時(shí),TPM芯片獲取該Java應(yīng)用的度量值;
若度量值與協(xié)處理器讀取的Java應(yīng)用度量經(jīng)驗(yàn)表中存儲(chǔ)的該Java應(yīng)用的Java應(yīng)用字節(jié)碼SHA1散列值相等,則將Java應(yīng)用加載到協(xié)處理器運(yùn)行的刪減版Linux操作系統(tǒng)中執(zhí)行。
2.根據(jù)權(quán)利要求1所述的構(gòu)建方法,其特征在于,步驟C中,當(dāng)判斷Java應(yīng)用無網(wǎng)絡(luò)通信需求,則主處理器直接執(zhí)行Java應(yīng)用。
3.根據(jù)權(quán)利要求1所述的構(gòu)建方法,其特征在于,步驟C中,當(dāng)判斷Java應(yīng)用有網(wǎng)絡(luò)通信需求,且在主處理器中運(yùn)行過時(shí),則主處理器與協(xié)處理器同步Java應(yīng)用運(yùn)行數(shù)據(jù),主處理器通過協(xié)處理器驅(qū)動(dòng)程序?qū)⑦\(yùn)行時(shí)數(shù)據(jù)傳輸給協(xié)處理器板卡上的內(nèi)存芯片,主處理器終止該Java應(yīng)用運(yùn)行并轉(zhuǎn)發(fā)請(qǐng)求到協(xié)處理器,協(xié)處理器中的主控程序讀取Java應(yīng)用字節(jié)碼,并將Java應(yīng)用字節(jié)碼提交給TPM芯片,TPM芯片得到Java應(yīng)用的度量值;
若度量值與協(xié)處理器讀取的Java應(yīng)用度量經(jīng)驗(yàn)表中存儲(chǔ)的該Java應(yīng)用的Java應(yīng)用字節(jié)碼SHA1散列值相等,則將Java應(yīng)用加載到協(xié)處理器運(yùn)行的刪減版Linux操作系統(tǒng)中執(zhí)行。
4.根據(jù)權(quán)利要求1所述的構(gòu)建方法,其特征在于,步驟C中,當(dāng)度量值與協(xié)處理器讀取的Java應(yīng)用度量經(jīng)驗(yàn)表中存儲(chǔ)的該Java應(yīng)用的Java應(yīng)用字節(jié)碼SHA1散列值不相等,則向主處理器運(yùn)行的Linux操作系統(tǒng)報(bào)告錯(cuò)誤。
5.根據(jù)權(quán)利要求1所述的構(gòu)建方法,其特征在于,步驟B中,所述Java應(yīng)用度量經(jīng)驗(yàn)表有N項(xiàng),每項(xiàng)有2個(gè)域,分別為Java應(yīng)用名稱和Java應(yīng)用字節(jié)碼SHA1散列值;
所述Java應(yīng)用安全性需求等級(jí)配置表有N項(xiàng),每項(xiàng)有2個(gè)域,分別為Java應(yīng)用名稱和安全性需求等級(jí),N是Java應(yīng)用的個(gè)數(shù)。
6.根據(jù)權(quán)利要求1所述的構(gòu)建方法,其特征在于,步驟A中,主處理器與TPM芯片相連,主處理器將協(xié)處理器驅(qū)動(dòng)程序二進(jìn)制數(shù)據(jù)送給TPM芯片,TPM芯片將協(xié)處理器驅(qū)動(dòng)程序二進(jìn)制數(shù)據(jù)進(jìn)行計(jì)算得到度量值送給主處理器;協(xié)處理器板卡與TPM芯片相連,協(xié)處理器板卡將Java應(yīng)用字節(jié)碼送給TPM芯片進(jìn)行度量,TPM芯片將度量值送回給協(xié)處理器板卡;協(xié)處理器板卡與主處理器相連,主處理器向協(xié)處理器板卡發(fā)送Java應(yīng)用運(yùn)行的映像和數(shù)據(jù),協(xié)處理器板卡向主處理器報(bào)告Java應(yīng)用運(yùn)行結(jié)果。
7.根據(jù)權(quán)利要求1所述的構(gòu)建方法,其特征在于,步驟C具體還包括步驟:
D1、主處理器運(yùn)行的Linux操作系統(tǒng)接收J(rèn)ava應(yīng)用請(qǐng)求;
D2、主處理器運(yùn)行的Linux操作系統(tǒng)查詢Java應(yīng)用安全性需求等級(jí)配置表,若用戶請(qǐng)求為低安全性需求應(yīng)用則主處理器執(zhí)行Java應(yīng)用,執(zhí)行完后轉(zhuǎn)4.11;若為高安全性需求應(yīng)用則轉(zhuǎn)D3;
D3、主控程序?qū)闹魈幚砥鹘邮盏腏ava應(yīng)用進(jìn)行判定,若是在主處理器中運(yùn)行過的Java應(yīng)用,則執(zhí)行D4,若是未在主處理器中運(yùn)行過的Java應(yīng)用,則執(zhí)行D5;
D4、主處理器與協(xié)處理器同步Java應(yīng)用運(yùn)行數(shù)據(jù),主處理器通過協(xié)處理器驅(qū)動(dòng)程序?qū)⑦\(yùn)行時(shí)數(shù)據(jù)傳輸給協(xié)處理器板卡上的內(nèi)存芯片;主處理器終止該Java應(yīng)用運(yùn)行并轉(zhuǎn)發(fā)請(qǐng)求到協(xié)處理器,由協(xié)處理器中的Java應(yīng)用繼續(xù)為客戶端提供服務(wù);
D5、協(xié)處理器中的主控程序讀取Java應(yīng)用字節(jié)碼,并將Java應(yīng)用字節(jié)碼提交給TPM芯片,TPM芯片得到Java應(yīng)用的度量值;用得到的Java應(yīng)用的度量值與協(xié)處理器讀取的Java應(yīng)用度量經(jīng)驗(yàn)表中存儲(chǔ)的該Java應(yīng)用的Java應(yīng)用字節(jié)碼SHA1散列值進(jìn)行比對(duì)驗(yàn)證,如果不相等,則向主處理器報(bào)告錯(cuò)誤,轉(zhuǎn)D1;若相等,將Java應(yīng)用加載到協(xié)處理器運(yùn)行的刪減版Linux操作系統(tǒng)中執(zhí)行。
8.根據(jù)權(quán)利要求1所述的構(gòu)建方法,其特征在于,所述內(nèi)存芯片要求具有1GB以上運(yùn)行內(nèi)存,閃存芯片要求具有4GB以上固化閃存。
9.一種Java程序可信執(zhí)行環(huán)境的構(gòu)建系統(tǒng),其特征在于,包括相互連接的主處理器、協(xié)處理器板卡和TPM芯片,所述協(xié)處理器板卡包括協(xié)處理器芯片、均與協(xié)處理器芯片連接的內(nèi)存芯片和閃存芯片;
主處理器上存儲(chǔ)有Java應(yīng)用安全性需求等級(jí)配置表,Java應(yīng)用安全性需求包含Java應(yīng)用名稱和安全性需求等級(jí),協(xié)處理器上存儲(chǔ)有Java應(yīng)用度量經(jīng)驗(yàn)表,Java應(yīng)用度量經(jīng)驗(yàn)表包含Java應(yīng)用名稱和散列值。
10.根據(jù)權(quán)利要求9所述的構(gòu)建系統(tǒng),其特征在于,所述閃存芯片中存有經(jīng)過刪減的僅保留Linux內(nèi)核的刪減版Linux操作系統(tǒng)、主控程序、Java應(yīng)用度量經(jīng)驗(yàn)表和Java固化應(yīng)用程序;刪減版Linux操作系統(tǒng)指刪減了Linux操作系統(tǒng)中關(guān)于用戶應(yīng)用軟件、圖形用戶接口的功能模塊,只剩下Linux內(nèi)核的Linux操作系統(tǒng)。