專利名稱:一種構(gòu)建可信java虛擬機(jī)平臺(tái)的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及信息安全領(lǐng)域,尤其是一種構(gòu)建可信JAVA虛擬機(jī)平臺(tái)的方法。
背景技術(shù):
根據(jù)TCG可信傳遞的概念,在計(jì)算平臺(tái)的運(yùn)行控制傳遞過程中,構(gòu)建ー個(gè)可信根,由可信根確定其下一級(jí)功能的執(zhí)行代碼的可信度,如果可信,系統(tǒng)將運(yùn)行控制傳遞到下一級(jí)可信執(zhí)行代碼,系統(tǒng)的可信范圍因此就從可信根擴(kuò)大到下ー級(jí)功能,同樣,第二級(jí)功能如果確定第三級(jí)功能可信,可信范圍就擴(kuò)大到第三級(jí)功能,這個(gè)過程不斷重復(fù)。通過可信傳遞,可以實(shí)現(xiàn)系統(tǒng)可信范圍的延伸。TCG的信任鏈以BIOS Boot Block和TPM芯片為可信根,經(jīng)過B10S-0S Ioader-OS-Application,信任鏈逐一傳遞,ー級(jí)測量認(rèn)證ー級(jí),ー級(jí)信任ー級(jí),以確保整個(gè)平臺(tái)的系統(tǒng)資源的完整性,構(gòu)建可信平臺(tái)。
終端計(jì)算機(jī)系統(tǒng)上,從系統(tǒng)加電開始到BIOS,再從BIOS到MBR、OS LOADER、OS、一
般應(yīng)用的可信傳遞已經(jīng)有很多相關(guān)研究,但是Java程序的執(zhí)行方式有別于一般PE文件的執(zhí)行方式,Java程序的加載執(zhí)行取決于Java虛擬機(jī)對(duì)JavaClass的加載。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供ー種適用于在信任鏈傳遞到Java虛擬機(jī)時(shí),構(gòu)建可信Java虛擬機(jī)平臺(tái)的方法。其大略技術(shù)方案是利用可信計(jì)算的觀點(diǎn),在Java虛擬機(jī)中實(shí)現(xiàn)可信傳遞,控制Java虛擬機(jī)加載類(class)的過程,建立可信的Java虛擬機(jī)平臺(tái);在Java平臺(tái)中,Java應(yīng)用通過Java虛擬機(jī)裝載執(zhí)行。終端計(jì)算機(jī)系統(tǒng)上的可信傳遞,可以保證Java虛擬機(jī)的可信。本方法把可信的Java虛擬機(jī)(JVM)作為“第二信任根”,通過可信JVM對(duì)每ー個(gè)加載的Java應(yīng)用的進(jìn)行可信驗(yàn)證,本方法可以在Java虛擬機(jī)中建立可信傳遞模型,從而建立可信Java虛擬機(jī)平臺(tái)。具體來講,本發(fā)明的目的是通過以下技術(shù)方案來實(shí)現(xiàn)JVM中,類是通過類加載器(class loader)來加載的,加載器本身也是類。第一個(gè)類加載器為初始類加載器(primordial class loader),初始類加載器由操作系統(tǒng)加載執(zhí)行,相當(dāng)于普通應(yīng)用。初始類加載器再加載其他加載器和應(yīng)用程序類,整個(gè)加載過程程樹狀。在類加載器的最底層是被稱為java. lang. ClassLoader的抽象類,除了初始類加載器之外的其他類加載器都是其生成子類?!N構(gòu)建可信Java虛擬機(jī)平臺(tái)的方法,利用JVM上述加載類的特點(diǎn),修改java.lang. Classloader抽象類中的IoadClassO方法,使其在加載類時(shí)先驗(yàn)證類的真實(shí)性和完整性。驗(yàn)證依據(jù)采用可信類白名單(TCL)的形式,在該名單中列出了系統(tǒng)所有可信的類文件及其完整性校驗(yàn)值。在類裝載器裝載類,先根據(jù)類名找到所加載類的絕對(duì)路徑,計(jì)算出類ニ進(jìn)制文件的Hash值,然后在TCL中查找。找到則說明該類可信,繼續(xù)進(jìn)行類的裝載;反之則說明該類不可信,直接進(jìn)行審計(jì)和返回異常。對(duì)于Java類和Java應(yīng)用程序,采用類文件本身hash值做可信類白名單??尚蓬惏酌麊文芨鶕?jù)用戶需求定制,并且提供專門的生成工具。系統(tǒng)組成主要模塊包括白名單生成模塊和類加載驗(yàn)證模塊。白名單生成模塊主要完成白名單的生成、添加和刪除功能,為類加載驗(yàn)證模塊提供驗(yàn)證依據(jù)(TCL)。類加載驗(yàn)證模塊主要完成類的加載,驗(yàn)證JVM加載類的可信。本方法確保在可信Java虛擬機(jī)平臺(tái)中,只有可信的Java程序才能被加載執(zhí)行,這樣可以有效抵抗Java病毒,同時(shí)還能實(shí)現(xiàn)對(duì)終端計(jì)算機(jī)上Java應(yīng)用的管理和控制。
圖I是本發(fā)明實(shí)施例所述的JVM可信傳遞示意圖。圖2是本發(fā)明實(shí)施例所述的JVM類加載驗(yàn)證樹圖。圖3是本發(fā)明實(shí)施例所述的系統(tǒng)模塊結(jié)構(gòu)圖。
具體實(shí)施例方式下面結(jié)合附圖和具體實(shí)施方式
對(duì)本發(fā)明作進(jìn)ー步的說明。如圖I所示,本發(fā)明所述的ー種構(gòu)建可信Java虛擬機(jī)平臺(tái)的方法,利用JVM類加載過程,修改JVM類加載的方法,使得Java虛擬機(jī)只加載可信的類,從而構(gòu)建可信Java虛擬機(jī)平臺(tái)。實(shí)施過程中,先由白名單生成工具對(duì)可信的Java類和Java應(yīng)用程序進(jìn)行采集,根據(jù)Java類和Java應(yīng)用程序文件本身,生成md5 hash值,作為可信類白名單。再修改java.lang. Classloader抽象類中的IoadClassO方法,使其在加載類時(shí)先驗(yàn)證類的真實(shí)性和完整性。修改后的java. lang. Classloader抽象類,布置于JVM中的Rt. jar中。如圖2所示,系統(tǒng)運(yùn)行吋,終端計(jì)算機(jī)系統(tǒng)上的可信鏈傳遞技木,可保證JVM初始類加載器的可信。本發(fā)明使用可信的初始類加載器作為“第二可信根”,由可信的初始類加載器驗(yàn)證輔助類和URLClassLoaderl的可信,再由URLClassLoaderl驗(yàn)證應(yīng)用程序類和其他URLClassLoaderf的可信。這樣信任就由可信的初始類加載器傳遞到子類加載器,再由各個(gè)類加載器傳遞到Java應(yīng)用,可以保證JVM所加載的類都是可信的,使信任從從而保證Java應(yīng)用的可信,實(shí)現(xiàn)整個(gè)Java虛擬機(jī)環(huán)境的安全可信。如圖3所示,系統(tǒng)組成和工作流程主要模塊包括白名單生成模塊和可執(zhí)行代碼驗(yàn)證模塊。白名單生成模塊主要完成可信類白名單(TCL)的生成、添加和刪除功能,為類加載驗(yàn)證模塊提供驗(yàn)證依據(jù)(TCL)。類加載驗(yàn)證模塊主要完成類的加載,驗(yàn)證JVM加載類的可信。加載驗(yàn)證過程中,根據(jù)類的名字獲得類文件的絕對(duì)路徑,計(jì)算類文件的hash值,如果該hash值存在于TCL中,則驗(yàn)證通過,加載類;如果該hash值不存在于TCL中,則驗(yàn)證失敗,進(jìn)行審計(jì)并返回異常。該方法通過修改JVM類加載的抽象類,在JVM類加載過程中驗(yàn)證Java類和Java程序的可信,杜絕不可信類在Java虛擬機(jī)平臺(tái)的加載執(zhí)行,保證整個(gè)Java執(zhí)行環(huán)境的可信,最終構(gòu)建一個(gè)可信的Java虛擬機(jī)平臺(tái)。
本技術(shù)領(lǐng)域中的相關(guān)技術(shù)人員應(yīng)當(dāng)熟悉到,以上所述實(shí)施例僅是用來說明本發(fā)明的目的,而并非用作對(duì)本發(fā)明的限定,只要在本發(fā)明的實(shí)質(zhì)范圍內(nèi),對(duì)上述實(shí)施例所做的變化、變型都將落在本發(fā)明的權(quán)利要求范圍內(nèi)。
權(quán)利要求
1.一種構(gòu)建可信Java虛擬機(jī)平臺(tái)的方法,其特征在于,利用Java虛擬機(jī)加載類的特點(diǎn),修改Java虛擬機(jī)java. lang. Classloader抽象類中的IoadClassO方法,使其在加載類時(shí)先驗(yàn)證類的真實(shí)性和完整性,保證Java虛擬機(jī)只加載執(zhí)行可信的類。
2.根據(jù)權(quán)利要求I所述的ー種構(gòu)建可信Java虛擬機(jī)平臺(tái)的方法,其特征在于采用可信類白名單(Trusted Class List,TCL),采集所有可信的類文件的hash值,作為白名單驗(yàn)證依據(jù),類文件的hash值跟類文件本身內(nèi)容相關(guān),而與類文件的名字、存放路徑無關(guān)。
3.根據(jù)權(quán)利要求1、2所述的ー種構(gòu)建可信Java虛擬機(jī)平臺(tái)的方法,其特征在于可信類白名單能根據(jù)用戶需求定制。
全文摘要
本發(fā)明涉及一種構(gòu)建可信Java虛擬機(jī)平臺(tái)的方法,其大略方案是利用可信計(jì)算的觀點(diǎn),在Java虛擬機(jī)中實(shí)現(xiàn)可信傳遞,控制Java虛擬機(jī)加載類(class)的過程,建立可信的Java虛擬機(jī)平臺(tái)。在可信Java虛擬機(jī)平臺(tái)中,只有可信的Java程序才能被加載執(zhí)行,這樣可以有效抵抗Java病毒,同時(shí)還能實(shí)現(xiàn)對(duì)終端計(jì)算機(jī)上Java應(yīng)用的管理和控制。
文檔編號(hào)G06F9/455GK102682243SQ20111005864
公開日2012年9月19日 申請(qǐng)日期2011年3月11日 優(yōu)先權(quán)日2011年3月11日
發(fā)明者孫紹鋼, 李曉勇 申請(qǐng)人:北京市國路安信息技術(shù)有限公司