国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種JAVA虛擬機及其中的信任鏈延伸方法與流程

      文檔序號:11729693閱讀:229來源:國知局
      一種JAVA虛擬機及其中的信任鏈延伸方法與流程

      本發(fā)明涉及一種信任鏈延伸方法,能將傳統(tǒng)信任鏈從可信硬件延伸到j(luò)ava應用,從而提高java應用安全性。



      背景技術(shù):

      隨著計算機和互聯(lián)網(wǎng)技術(shù)的飛速發(fā)展,人類已經(jīng)進入了“信息時代”。信息系統(tǒng)越來越廣泛的應用于政治、經(jīng)濟、教育和軍事領(lǐng)域中。然而,系統(tǒng)缺陷、策略漏洞、惡意攻擊等問題一直嚴重威脅著信息系統(tǒng)的安全性。如何有效抵御多種安全威脅,提升信息系統(tǒng)可靠性一直是信息安全領(lǐng)域廣泛關(guān)注的熱點問題。

      java技術(shù)利用java虛擬機(javavirtualmachine,jvm)實現(xiàn)了平臺無關(guān)、前端設(shè)計語言無關(guān)程序設(shè)計。這一特性能夠有效地為遺留系統(tǒng)的改造接入、異構(gòu)系統(tǒng)的互連互通提供支持,使得java技術(shù)廣泛地應用于各種信息系統(tǒng)構(gòu)建。ibm、oracle等知名企業(yè)均廣泛采用java技術(shù)作為其企業(yè)級業(yè)務(wù)系統(tǒng)構(gòu)建的核心技術(shù)。google在其云計算服務(wù)中部署定制的jvm,為各種采用python、java等語言實現(xiàn)的應用提供統(tǒng)一的執(zhí)行環(huán)境。知名手機操作系統(tǒng)android的核心部分也是基于jvm技術(shù)規(guī)范實現(xiàn)的dalvik虛擬機,其應用開發(fā)也是采用java語言。目前,越來越多的軟件系統(tǒng)開始直接面向jvm開發(fā),jvm和基于jvm技術(shù)規(guī)范實現(xiàn)的語言級虛擬機已經(jīng)成為各種應用運行的基礎(chǔ)性平臺。因此,從jvm層次提供有效的信任與安全保障機制具有非常重要的意義。

      針對信息安全問題,可信計算組織(trustedcomputinggroup,tcg)提出了一種可信計算機系統(tǒng)的構(gòu)建方法。該方法的基本思想是:首先通過構(gòu)建信任根,信任根即tcg提出的可信平臺模塊tpm(trustedplatformmodule,tpm),也就是一種安全芯片。以tpm芯片作為信任的基點,建立一條從信任根到硬件平臺、到操作系統(tǒng)、再到應用程序的信任鏈。在tpm芯片中存儲有bios度量值,用來認證bios的完整性;bios中存儲有操作系統(tǒng)加載器(osloader)度量值,用來認證osloader的完整性;osloaer中存儲有可信操作系統(tǒng)度量值,用來認證可信操作系統(tǒng)的完整性。這樣就可以一級度量認證一級(這里度量指的是用張煥國所著《可信計算》(武漢大學出版社)一書中第26頁的度量方法,即采用哈希函數(shù)來檢測數(shù)據(jù)完整性是否遭受破壞,哈希函數(shù)運算得到的結(jié)果即為度量值),一級信任一級,最終把這種信任擴展到整個計算機系統(tǒng),從而確保整個系統(tǒng)的可信。為了便于使用tpm的安全功能,可信計算組織tcg提出了可信軟件棧(tcgsoftwarestack,tss)的概念。tss作為可信平臺的核心軟件,是應用程序與tpm進行交互的接口。采用可信計算技術(shù)在理論上能夠保證應用程序的完整性。但是對于java應用而言,直接為每一個程序建立信任鏈仍然存在一些安全性和可用性問題:第一,java應用以java字節(jié)碼的形式存在,在執(zhí)行時由jvm實時翻譯執(zhí)行,不與操作系統(tǒng)直接關(guān)聯(lián)。通??尚挪僮飨到y(tǒng)只度量直接相關(guān)的應用,例如jvm,而不會單獨度量每一個java程序;第二,jvm中的系統(tǒng)類一般會被多個java程序調(diào)用,如果直接度量java應用,就會重復度量系統(tǒng)類,產(chǎn)生額外開銷;第三,jvm和java應用的完整性易遭受破壞。因此,現(xiàn)有信任鏈建立方法難以有效保障java應用的可信性,需要將信任鏈延伸到j(luò)ava應用。



      技術(shù)實現(xiàn)要素:

      本發(fā)明目的在于提供一種java虛擬機及其中的信任鏈延伸方法,以解決在java虛擬機上運行的java應用可信性沒有保證、java程序信任保障中存在的度量邊界不清、度量開銷大的技術(shù)問題。

      為實現(xiàn)上述目的,本發(fā)明提供了一種java虛擬機中的信任鏈延伸方法,包括步驟:

      a、在可信jvm中構(gòu)建可信根應用,并在可信jvm中添加jvm度量模塊,得到集成了可信根應用的jvm;

      b、tpm芯片對bios、操作系統(tǒng)加載器、可信操作系統(tǒng)進行可信認證;

      c、可信操作系統(tǒng)接收并處理java應用請求;

      d、集成了可信根應用的jvm對java應用作完整性檢測:

      d1、jvm度量模塊對請求的java應用二進制數(shù)據(jù)進行sha1運算,得到運算結(jié)果q,發(fā)送給java應用可信認證模塊;

      d2、tss訪問驅(qū)動模塊對第j個鍵值對進行讀取,得到靜態(tài)java應用度量值的鍵值對<sj,nj>,發(fā)送給java應用可信認證模塊;sj為第j個java應用的名稱,nj為第j個java應用的度量值;

      d3、java應用可信認證模塊對q和nj進行對比:若相等,加載java應用并執(zhí)行。

      優(yōu)選的,在步驟c之前還包括:

      c1、可信操作系統(tǒng)對集成了可信根應用的jvm二進制數(shù)據(jù)作sha1運算,將sha1運算得到的結(jié)果m1存放到所述tpm芯片中;

      c2、可信操作系統(tǒng)對集成了可信根應用的jvm二進制數(shù)據(jù)重新進行sha1運算得到結(jié)果m2;

      若m1與m2相等,繼續(xù)處理java應用。

      優(yōu)選的,所述可信根應用采用java語言編寫。

      優(yōu)選的,包括由可信根應用服務(wù)接口、java應用可信認證模塊、jvm交互接口、tss訪問驅(qū)動模塊、jvm度量模塊組成的可信根應用;

      其中,所述java應用可信認證模塊、tss訪問驅(qū)動模塊均與所述可信根應用服務(wù)接口連接;所述jvm交互接口與所述java應用可信認證模塊連接;所述jvm度量模塊與所述jvm交互接口連接;

      所述java應用可信認證模塊從tss訪問驅(qū)動模塊獲取tpm芯片中靜態(tài)java應用度量值,同時從jvm交互接口得到實時java應用度量值,對兩者進行對比后將對比結(jié)果發(fā)送給可信根應用服務(wù)接口;

      所述可信根應用服務(wù)接口是可信根應用的外部訪問接口;可信根應用服務(wù)接口從tss訪問驅(qū)動模塊獲取tpm芯片中的java應用度量值,并從java應用可信認證模塊獲取java應用可信認證結(jié)果,再將兩者發(fā)送給可信操作系統(tǒng);

      所述jvm交互接口是可信根應用和jvm度量模塊之間的交互接口,從jvm度量模塊獲取實時java應用度量值,將結(jié)果送給java應用可信認證模塊,從而控制jvm是否進一步加載執(zhí)行該應用;

      所述tss訪問驅(qū)動模塊從tss中獲取tpm芯片中的靜態(tài)java應用度量值,發(fā)送給java應用可信認證模塊和可信根應用服務(wù)接口;

      所述jvm度量模塊對請求的java應用二進制數(shù)據(jù)進行sha1運算,得到運算結(jié)果q,發(fā)送給java應用可信認證模塊。

      優(yōu)選的,所述tss訪問驅(qū)動模塊通過tss與tpm芯片連接。

      本發(fā)明具有以下有益效果:

      本發(fā)明構(gòu)建一個“可信根應用”,并將此可信根應用集成到j(luò)vm中。tpm芯片對bios(basicinputoutputsystem)、操作系統(tǒng)加載器(osloader)、可信操作系統(tǒng)進行可信認證,構(gòu)成可信環(huán)境。tpm芯片首先度量集成了可信根應用的jvm,并將度量值存入tpm芯片中,之后通過集成了可信根應用的jvm對可信操作系統(tǒng)中所有java程序進行度量,并將度量值存入tpm芯片中,為后面java應用運行時判定java應用完整性作參考。當有java應用請求后,首先對集成了可信根應用的jvm完整性進行檢測,然后對請求的java應用作完整性檢測。通過上述方法可以實現(xiàn)在java應用加載時對其他java應用進行度量和認證,保證在jvm中的java應用的可信性,使得信任鏈能夠從可信jvm延伸到j(luò)ava應用。

      除了上面所描述的目的、特征和優(yōu)點之外,本發(fā)明還有其它的目的、特征和優(yōu)點。下面將參照圖,對本發(fā)明作進一步詳細的說明。

      附圖說明

      構(gòu)成本申請的一部分的附圖用來提供對本發(fā)明的進一步理解,本發(fā)明的示意性實施例及其說明用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的不當限定。在附圖中:

      圖1是本發(fā)明優(yōu)選實施例的流程圖;

      圖2是本發(fā)明優(yōu)選實施例的構(gòu)建的java虛擬機模塊示意圖。

      具體實施方式

      以下結(jié)合附圖對本發(fā)明的實施例進行詳細說明,但是本發(fā)明可以根據(jù)權(quán)利要求限定和覆蓋的多種不同方式實施。

      參見圖1、圖2,本發(fā)明java虛擬機信任鏈延伸方法包括步驟:

      第一步,構(gòu)建一個可信根應用和jvm度量模塊,得到集成了可信根應用的jvm:

      1.1在可信jvm中構(gòu)建可信根應用,可信根應用是一個采用java語言編寫的可信服務(wù)應用程序??尚鸥鶓貌捎胘ava語言編寫??尚鸥鶓糜煽尚跑浖ss(tcgsoftwarestack)訪問驅(qū)動模塊、jvm交互接口、java應用可信認證模塊和可信根應用服務(wù)接口組成。

      tss訪問驅(qū)動模塊與tss相連,tss訪問驅(qū)動模塊通過tss獲取tpm芯片中的靜態(tài)java應用度量值,將靜態(tài)java應用度量值送給java應用可信認證模塊和可信根應用服務(wù)接口;jvm交互接口是可信根應用和jvm度量模塊之間的交互接口。jvm交互接口與jvm度量模塊相連,從jvm度量模塊獲取實時java應用的度量值,將實時java應用的度量值送給java應用可信認證模塊,從而控制jvm是否進一步加載執(zhí)行該應用;java應用可信認證模塊與tss訪問驅(qū)動模塊、jvm交互接口、可信根應用服務(wù)接口相連。java應用可信認證模塊從tss訪問驅(qū)動模塊獲取靜態(tài)java應用度量值,同時從jvm交互接口得到實時java應用度量值,java應用可信認證模塊通過對靜態(tài)java應用度量值和實時java應用度量值進行對比后將對比結(jié)果(即java應用可信認證結(jié)果)送給可信根應用服務(wù)接口;可信根應用服務(wù)接口是可信根應用的外部訪問接口,該模塊與java應用可信認證模塊和tss訪問驅(qū)動模塊相連??尚鸥鶓梅?wù)接口從tss訪問驅(qū)動模塊獲取tpm芯片中的靜態(tài)java應用度量值,并從java應用可信認證模塊獲取java應用可信認證結(jié)果,可信根應用服務(wù)接口將tpm芯片中的靜態(tài)java應用度量值和java應用可信認證結(jié)果送給可信操作系統(tǒng)。

      1.2修改jvm,在jvm中添加jvm度量模塊,得到集成了可信根應用的jvm,方法是:jvm度量模塊與jvm類加載器和jvm交互接口相連,jvm度量模塊實時地從jvm類加載器中獲取加載的java應用二進制字節(jié)流,jvm度量模塊對加載的java應用二進制字節(jié)流進行sha1值計算得到j(luò)ava應用二進制字節(jié)流的度量值,并將java應用二進制字節(jié)流的度量值送給jvm交互接口。

      第二步,tpm芯片對bios(basicinputoutputsystem)、操作系統(tǒng)加載器(osloader)、可信操作系統(tǒng)進行可信認證進行度量:

      2.1tpm芯片讀取bios的二進制數(shù)據(jù);

      2.2tpm芯片將bios的二進制數(shù)據(jù)作為哈希函數(shù)sha1的輸入?yún)?shù),得到160位的函數(shù)輸出值,與tpm芯片中存儲的bios度量值作比較,若不相等則加載失敗,提示“錯誤”,,轉(zhuǎn)2.1步,若相等則執(zhí)行2.3;

      2.3tpm芯片將操作系統(tǒng)加載器(osloader)二進制數(shù)據(jù)作為哈希函數(shù)sha1的輸入?yún)?shù),得到160位的函數(shù)輸出值,與bios中存儲的osloader度量值作比較,若不相等則加載失敗,提示“錯誤”,轉(zhuǎn)2.1步,若相等則執(zhí)行2.4步;

      2.4tpm芯片將可信操作系統(tǒng)二進制數(shù)據(jù)作為哈希函數(shù)sha1的輸入?yún)?shù),得到160位的函數(shù)輸出值,與osloader中存儲的可信操作系統(tǒng)度量值作比較,若不相等則加載失敗,提示“錯誤”,轉(zhuǎn)2.1步,若相等則執(zhí)行第三步;

      第三步,可信操作系統(tǒng)對集成了可信根應用的jvm二進制數(shù)據(jù)作sha1運算,將sha1運算得到的結(jié)果m1存放到tpm芯片中;

      第四步,可信根應用對需要在jvm中運行的其他所有java應用作度量并存儲,將信任鏈延伸到j(luò)ava應用:

      4.1java應用可信認證模塊通過可信操作系統(tǒng)獲取所有其他java應用,若其他java應用有m個,則形成一個長度為m的隊列,隊列中的元素為除可信根應用以外的其他java應用;

      4.2令i=1;

      4.3取出隊列中第i個java應用的二進制數(shù)據(jù)作sha1運算得到運算結(jié)果即靜態(tài)java應用度量值ni;

      4.4將內(nèi)容為<java應用名稱,ni>的鍵值對通過tss訪問驅(qū)動模塊存儲到tpm芯片中;

      4.5判定i是否小于m,若i小于m,表示還有java應用未處理,令i=i+1,轉(zhuǎn)4.3,若i大于或等于m則執(zhí)行第五步;

      第五步,可信操作系統(tǒng)接收并處理java應用請求,保證執(zhí)行java應用可信:

      5.1可信操作系統(tǒng)接收某個java應用運行請求,開始啟動執(zhí)行java應用環(huán)境;

      5.2可信操作系統(tǒng)對集成了可信根應用的jvm作完整性檢測:

      5.2.1可信操作系統(tǒng)重新讀取集成了可信根應用的jvm二進制數(shù)據(jù);

      5.2.2可信操作系統(tǒng)對集成了可信根應用的jvm二進制數(shù)據(jù)進行sha1運算得到結(jié)果m2;

      5.2.3可信操作系統(tǒng)讀取tpm芯片中預先存放的m1;

      5.2.3可信操作系統(tǒng)對m1和m2進行比對,若m1與m2不相等,表明集成了可信根應用的jvm遭受了篡改,則終止加載集成了可信根應用的jvm,并向可信操作系統(tǒng)報告“jvm不完整”的錯誤,轉(zhuǎn)5.1步;若m1與m2相等,表明集成了可信根應用的jvm未遭受篡改,則加載運行集成了可信根應用的jvm,執(zhí)行5.3步;

      5.3集成了可信根應用的jvm對java應用作完整性檢測:

      5.3.1jvm度量模塊讀取請求的java應用二進制數(shù)據(jù)和java應用名稱s;

      5.3.2jvm度量模塊對請求的java應用二進制數(shù)據(jù)進行sha1運算,得到運算結(jié)果q(即實時java應用度量值),將q送給java應用可信認證模塊;

      5.3.3tss訪問驅(qū)動模塊讀取tpm芯片中存儲的靜態(tài)java應用度量值的鍵值對<java應用名稱,靜態(tài)java應用度量值>;

      5.3.4令j=1;

      5.3.5tss訪問驅(qū)動模塊對第j個鍵值對進行讀取,得到<sj,nj>;sj為第j個java應用的名稱,nj為第j個java應用的度量值,將靜態(tài)java應用度量值的鍵值對送給java應用可信認證模塊;

      5.3.6java應用可信認證模塊對s和sj進行對比,若兩者相同,則表示找到了對應的java應用,轉(zhuǎn)5.3.8,若不相同表示未匹配到j(luò)ava應用,則執(zhí)行5.3.7,

      5.3.7判定j是否小于m,若j小于m,表示還有<java應用名稱,java應用度量值>鍵值對未處理,令j=j(luò)+1,轉(zhuǎn)5.3.5,若j大于或等于m則執(zhí)行5.3.8,由于開始登記了所有java應用便不存在查找java應用失敗的情況,可以根據(jù)j得到要執(zhí)行的java應用的度量值nj;

      5.3.8java應用可信認證模塊對q和nj進行對比。若不相等,表明請求的java應用遭受篡改,終止請求的java應用,向可信操作系統(tǒng)報告“java應用不完整”的錯誤,轉(zhuǎn)5.1步;若相等,表明請求的java應用未遭受篡改,加載java應用并執(zhí)行,從而保證java應用可信,

      執(zhí)行結(jié)束后也轉(zhuǎn)5.1步,可信操作系統(tǒng)一直處于等待、接收、處理java應用的循環(huán)中。

      這樣,在tpm芯片和可信操作系統(tǒng)的支持下,通過創(chuàng)建運行在jvm內(nèi)部的可信根應用,使得信任鏈能夠從tpm芯片延伸到j(luò)vm內(nèi)部,能在jvm內(nèi)部對java應用的完整性進行檢測,從而能夠有效保障java應用可信。

      根據(jù)上述的一種java虛擬機,包括由可信根應用服務(wù)接口、java應用可信認證模塊、jvm交互接口、tss訪問驅(qū)動模塊、jvm度量模塊組成的可信根應用;

      其中,所述java應用可信認證模塊、tss訪問驅(qū)動模塊均與所述可信根應用服務(wù)接口連接;所述jvm交互接口與所述java應用可信認證模塊連接;所述jvm度量模塊與所述jvm交互接口連接;

      所述java應用可信認證模塊從tss訪問驅(qū)動模塊獲取tpm芯片中靜態(tài)java應用度量值,同時從jvm交互接口得到實時java應用度量值,對兩者進行對比后將對比結(jié)果發(fā)送給可信根應用服務(wù)接口;

      所述可信根應用服務(wù)接口是可信根應用的外部訪問接口;可信根應用服務(wù)接口從tss訪問驅(qū)動模塊獲取tpm芯片中的java應用度量值,并從java應用可信認證模塊獲取java應用可信認證結(jié)果,再將兩者發(fā)送給可信操作系統(tǒng);

      所述jvm交互接口是可信根應用和jvm度量模塊之間的交互接口,從jvm度量模塊獲取實時java應用度量值,將結(jié)果送給java應用可信認證模塊,從而控制jvm是否進一步加載執(zhí)行該應用;

      所述tss訪問驅(qū)動模塊從tss中獲取tpm芯片中的靜態(tài)java應用度量值,發(fā)送給java應用可信認證模塊和可信根應用服務(wù)接口;

      所述jvm度量模塊對請求的java應用二進制數(shù)據(jù)進行sha1運算,得到運算結(jié)果q,發(fā)送給java應用可信認證模塊。

      所述tss訪問驅(qū)動模塊通過tss與tpm芯片連接。

      以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,對于本領(lǐng)域的技術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。

      當前第1頁1 2 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1