可信計(jì)算中的可信量技術(shù)_第1頁
可信計(jì)算中的可信量技術(shù)_第2頁
可信計(jì)算中的可信量技術(shù)_第3頁
可信計(jì)算中的可信量技術(shù)_第4頁
可信計(jì)算中的可信量技術(shù)_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

可信計(jì)算中的可信量技術(shù)

1tpm安全性能在可靠的計(jì)算技術(shù)中,信任鏈的傳輸通過可靠性計(jì)量機(jī)制進(jìn)行。在pc計(jì)算環(huán)境中,應(yīng)用程序執(zhí)行操作系統(tǒng)。要實(shí)現(xiàn)對應(yīng)用程序的度量操作,必須確保應(yīng)用程序運(yùn)行時,操作系統(tǒng)已被納入可信計(jì)算基中,即要求以TPM(TrustedPlatformModule)為信任根的初始可信計(jì)算基能夠可信地度量PC操作系統(tǒng)。但是在目前的PC計(jì)算環(huán)境下,還沒有度量操作系統(tǒng)和操作系統(tǒng)上應(yīng)用程序的有效方法。文獻(xiàn)按照用戶和平臺分離的思想,在TPM保證PC主機(jī)可信的基礎(chǔ)上,提出了在可信平臺使用U-Key增強(qiáng)用戶端可信的方案,但其并沒有解決復(fù)雜操作系統(tǒng)和應(yīng)用無法度量的問題。本文將Java智能卡與PC計(jì)算機(jī)相結(jié)合,并在卡內(nèi)設(shè)計(jì)出可信度量模塊,不僅從底層驗(yàn)證了用戶端身份可信,同時基于虛擬機(jī)的可信計(jì)算環(huán)境大大降低度量操作的復(fù)雜度,有效地解決在不可信操作系統(tǒng)中確保應(yīng)用程序可信的技術(shù)難題。2基于web-tables的應(yīng)用可信計(jì)算組(TCG)提出了在PC中基于硬件TPM的信任鏈傳遞機(jī)制,按照可信計(jì)算的思想,對于引入了Java智能卡的可信平臺體系結(jié)構(gòu)和引導(dǎo)過程如圖2.1所示:PC主機(jī)端引導(dǎo)時,在GrubStage1.5與GrubStage2之間需加入與Java智能卡通信的Smart-CardRealModeDriver(智能卡底層驅(qū)動程序)用于用戶端底層身份認(rèn)證,并由GrubStage1.5對其進(jìn)行完整性度量。用戶端Java智能卡環(huán)境包括本地方法集、Java卡虛擬機(jī)(JCVM)、Java卡應(yīng)用編程接口(JCAPI)、Java卡安全下載、身份認(rèn)證和可信度量等模塊、Java卡運(yùn)行時環(huán)境(JCRE)以及下載到卡內(nèi)的Applet應(yīng)用程序。其中安全下載模塊保證了從PC不可信環(huán)境到卡內(nèi)的下載通道的可信,身份認(rèn)證模塊保證了用戶身份的可信,可信度量模塊保證了下載到卡內(nèi)的Applet的完整性和內(nèi)容的可信,下面主要介紹可信度量模塊的設(shè)計(jì)。3java智能可靠模塊方案的設(shè)計(jì)3.1btmm的使用與PC計(jì)算環(huán)境相比,基于Java智能卡平臺的計(jì)算環(huán)境相對簡單,因此本方案采用傳統(tǒng)的字節(jié)碼哈希值度量方法。根據(jù)Java智能卡計(jì)算平臺的特點(diǎn)結(jié)合可信度量思想,卡內(nèi)度量根RTM(RootofTrustedMeasurement)為Java卡上電后首先啟動的BootLoader,卡內(nèi)度量模塊分為基礎(chǔ)類庫可信度量模塊BTMM(BasicTrustedMeasurementModule)和Applet應(yīng)用程序可信度量模塊ATMM(AppletTrustedMeasurementModule),BTMM被固化于BootLoader中,從而確保了度量根的實(shí)體完整性。BTMM只用于每次Java智能卡加電時,對Java智能卡本地方法集、基本應(yīng)用編程接口等進(jìn)行完整性度量。本方案中JCAPI被保存于E2PROM中,而其它核心部件,如JCRE和JCVM等被保存于只讀存儲器ROM中,因而為JCAPI的升級和維護(hù)提供了靈活性;另一方面,位于E2PROM中的JCAPI字節(jié)碼,可能會受到邊通道分析等手段的攻擊。因此,為確保Java智能卡計(jì)算平臺的核心部件的實(shí)體完整性,應(yīng)在設(shè)備加電時,從卡內(nèi)度量根BootLoader開始對它們的字節(jié)碼進(jìn)行逐級度量。ATMM用于度量下載到Java卡內(nèi)的Java智能卡Applet應(yīng)用程序的字節(jié)碼,以確保其在運(yùn)行前的實(shí)體完整性。它將度量對象指定為Applet的方法組件,這是因?yàn)榉椒ńM件中包含著一個Applet需要執(zhí)行的所有字節(jié)碼指令,Applet的方法組件就相當(dāng)于PC環(huán)境中應(yīng)用程序進(jìn)程在內(nèi)存中展開的二進(jìn)制代碼,JCVM的解釋器正是通過對方法組件中的字節(jié)碼進(jìn)行解析執(zhí)行來驅(qū)動Applet應(yīng)用程序的。在解釋器解釋執(zhí)行這些字節(jié)碼之前對它們進(jìn)行度量,則可確保相應(yīng)Applet應(yīng)用程序的實(shí)體完整性和可信性。按照TCG可信計(jì)算機(jī)制,對于實(shí)體完整性的度量應(yīng)發(fā)生于應(yīng)用程序被啟動前,即應(yīng)采用動態(tài)度量時序。對于面向堆棧的、單進(jìn)程Java智能卡計(jì)算平臺而言,Applet應(yīng)用程序想要運(yùn)行,首先需要等待當(dāng)前的Applet應(yīng)用程序運(yùn)行完畢,其次還需要被JCRE選中即執(zhí)行Select方法時才行。一個Applet一旦被選中,將一直占用Java棧,直至Java棧為空,其間受防火墻機(jī)制的保護(hù),并維持一個指定的Context上下文環(huán)境。只有Applet需要訪問共享對象時,才會發(fā)生上下文切換現(xiàn)象。因此本方案設(shè)計(jì)的度量操作將在JCRE選擇Applet時和JCRE訪問共享對象而出現(xiàn)上下文切換時兩種情況發(fā)生。3.2度量操作基本步驟為建立度量機(jī)制,JavaApplet應(yīng)用程序提供方應(yīng)該提供度量方案(包括下載包中Applet的基本度量信息)并被簽名和下載到Java智能卡平臺中。圖3.1為一個基本的度量方案結(jié)構(gòu):當(dāng)JCRE接收到Select命令選擇指定的Applet時,需要按照度量方案中“本包度量域”中給出的度量方法(計(jì)算被度量對象的摘要值)對度量對象進(jìn)行度量。由Select方法觸發(fā)的度量操作基本步驟如下:(1)當(dāng)JCRE選擇指定的Applet時,將啟動應(yīng)用程序度量模塊,度量模塊將根據(jù)所選Applet對應(yīng)的上下文查找與之關(guān)聯(lián)的包注冊表項(xiàng),并從中獲取對應(yīng)于該包的度量方案;(2)按照度量方案中指定的度量方法依次對指定的對象進(jìn)行度量,其中包括JavaApplet所屬包和導(dǎo)入包(JCAPI除外)的方法組件,這些組件由各自所屬包的AID號惟一標(biāo)識;(3)將待度量包作為一個度量點(diǎn),并依此執(zhí)行度量值的擴(kuò)展操作:其中mi表示待度量的第i個包,而MM()表示使用MM算法計(jì)算度量點(diǎn)的度量值,例如,MM可以是SHA1或SM3等;(4)比較Value’與度量方案中的可信期望值Value是否相同,以確定度量是否成功。當(dāng)出現(xiàn)跨包訪問對象而引發(fā)上下文切換時,度量操作的基本步驟如下:(1)首先度量要訪問的服務(wù)器Applet的方法組件;(2)如果失敗,整個度量操作將失敗,如果成功則繼續(xù)下面的操作;(3)根據(jù)客戶端Applet的AID在度量方案的“外包度量域”中查找與之匹配的度量項(xiàng);(4)若未找到,仍可繼續(xù)執(zhí)行訪問操作,但需設(shè)置指定的可信評估狀態(tài)字;若找到,如前所述,則應(yīng)按照該項(xiàng)指定的度量方法對客戶端Applet所屬包的方法組件進(jìn)行度量;如果與參考值匹配則成功,否則失敗。3.3參數(shù)估計(jì)和度量事件Java智能卡BTMM和ATMM在度量時序和實(shí)現(xiàn)上略有不同,但采用的度量方法相同,即使用摘要算法計(jì)算指定Java包(基礎(chǔ)類庫包,或Applet應(yīng)用程序包)中方法組件的摘要值。Java智能卡BTMM度量流程如圖3.2所示:(1)Java智能卡上電后,即啟動可信度量根BootLoader,執(zhí)行BTMM;(2)BTMM獲取系統(tǒng)基礎(chǔ)類庫所占的最大包號以及各應(yīng)用基礎(chǔ)包對應(yīng)的可信期望值(保存于每個包的包注冊表中);(3)依次獲取每個系統(tǒng)基礎(chǔ)類庫的方法組件;(5)若度量值與可信期望值不相符,則記錄異常信息,并直接退出;(6)若度量正確,開始初始化Java卡平臺,繼續(xù)向上層傳遞信任鏈,并進(jìn)入JCRE。Java智能卡ATMM的啟動分為兩種情況,即當(dāng)JCRE啟動解釋器執(zhí)行Select方法時和JCVM獲悉用戶調(diào)用JCSystem.getShareableAppletInterfaceObject請求訪問其他Applet提供的共享訪問接口時,ATMM度量流程如圖3.3所示。JCRE啟動解釋器執(zhí)行Select方法時的度量事件包含以下步驟:(1)啟動ATMM,獲取待選擇Applet所在包的方法組件物理地址;(2)通過該包的方法組件獲取與該包相關(guān)的度量方案;(3)從度量方案中獲取本次度量的度量點(diǎn)個數(shù)(一個度量點(diǎn),對應(yīng)于該包導(dǎo)入的一個外包,基礎(chǔ)類庫除外);(4)按順序?qū)Φ谝粋€度量點(diǎn)進(jìn)行度量;(5)對度量值進(jìn)行迭代操作;(6)重復(fù)(4),(5)兩步,對度量方案中給定的度量點(diǎn)一一進(jìn)行度量;(7)完成所有度量點(diǎn)的度量操作后與可信期望值進(jìn)行對比;(8)如果匹配,則執(zhí)行被選擇Applet的相應(yīng)代碼,否則寫入異常信息,并向JCRE拋出異常。JCVM獲悉用戶的JCSystem.getShareableAppletInterfaceObject請求時的度量事件包含以下步驟:(1)啟動ATMM,獲取要訪問的服務(wù)器Applet所在的包號;(2)按照上面介紹的方法對服務(wù)器Applet所在包的方法組件進(jìn)行度量;(3)獲取要訪問服務(wù)器Applet所在包中度量方案內(nèi)的外包度量域;(4)查找與客戶端Applet相對應(yīng)的度量項(xiàng),如果不存在,記錄該度量事件的信任度;(5)如果有與之匹配的度量方案,則按照該度量方案對客戶端Applet度量;(6)如果對客戶端Applet度量成功,則允許客戶端的訪問請求;(7)否則拒絕其訪問請求,記錄度量失敗事件。4增強(qiáng)了不可信的可信在原有可信計(jì)算平臺中引入具有可信度量模塊的Java智能卡可信計(jì)算環(huán)境后,解決了信任鏈傳遞問題,提高了Java智能卡計(jì)算環(huán)境的安全性,主要表現(xiàn)在以下方面:(1)增加了Java智能卡用戶身份驗(yàn)證,將用戶與平臺分離驗(yàn)證,增強(qiáng)了用戶安全性;(2)在Java卡中引入度量機(jī)制后,保證了從底層BootLoader到上層Applet應(yīng)用的代碼實(shí)體完整性,使信任鏈得以傳遞,同時也增加針對Java語言類型系統(tǒng)攻擊的難度;(3)在增加對字節(jié)碼的度量后,獲取共享接口對象的操作實(shí)際上已經(jīng)不再是以前的單因子認(rèn)證

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論