一種可信計算終端完整性度量、證明方法及裝置的制造方法
【技術領域】
[0001]本發(fā)明涉及可信計算領域,尤其是一種可信計算終端完整性度量、證明方法及裝置。
【背景技術】
[0002]隨著云計算、物聯(lián)網和移動互聯(lián)等計算機網絡技術的快速發(fā)展和深度應用,目前最突出的三大安全威脅是惡意代碼攻擊、信息非法竊取、數(shù)據(jù)和系統(tǒng)的非法破壞,其中,以用戶私密信息為目標的惡意代碼攻擊超過傳統(tǒng)病毒成為最大的安全威脅。
[0003]傳統(tǒng)的防火墻、入侵檢測、病毒防御和網絡隔離等網絡安全防護手段都側重于被動的保護網絡、服務器的信息安全。而相對脆弱的終端就越來越成為信息系統(tǒng)安全的薄弱環(huán)節(jié)。針對這些系統(tǒng)安全需求和各類攻擊手段,可信計算從計算機體系結構著手,從硬件安全出發(fā)通過完整性度量主動地建立一種信任傳遞體系以保證終端可信。
[0004]在具體實現(xiàn)方面,可信計算組織TCG的可信計算思想是通過硬件平臺上引入可信平臺模塊TPM(Trusted Platform Module)來提高計算機系統(tǒng)的安全性,這種思想得到了產業(yè)界的普遍認同。我國思路與TCG類似,以可信密碼模塊TCM為基礎,通過主動完整性度量構建可傳遞信任鏈,保證整個計算機終端(PC、服務器、移動手持設備)各部件版本信息、配置參數(shù)、操作系統(tǒng)和程序等的完整性,確保計算機終端按照預期的行為執(zhí)行。在保證計算終端可信的前提下,通過擴展遠程證明技術(身份證明、完整性證明)和可信網絡連接技術,進一步保證整個網絡信息環(huán)境的可信。
[0005]目前,無論是TCG規(guī)范還是我國的可信計算規(guī)范,都只描述了可信終端平臺啟動期間的完整性度量方法,即從可信終端加電開始到操作系統(tǒng)啟動之前靜態(tài)代碼和數(shù)據(jù)的度量,而對運行于操作系統(tǒng)之上的應用軟件的完整性度量卻沒有給出明確指導。AMD、Intel等公司基于動態(tài)度量根DRTM技術,通過對需要度量的程序代碼建立一個隔離的安全可執(zhí)行環(huán)境,理論上可以實現(xiàn)任意時刻對任意代碼(包括應用程序)的完整性度量。但隔離的安全可執(zhí)行環(huán)境建立需要采用支持DRTM的CPU架構和專用指令,并需為內存提供專門的硬件級保護。同時,在進行代碼度量時,禁止了頁表機制和所有中斷,導致其他應用程序無法運行。
[0006]在完整性證明過程中,目前通常采用:計算終端向驗證方發(fā)送完整性度量PCR值的簽名和相關完整性度量日志信息,驗證方通過分析度量日志信息和PCR簽名判斷該PCR值是否來自真實TCM/TPM的正確度量過程。但是黑客可以通過截取度量日志信息中記錄的實際度量值或計算終端開機啟動后生成的第一次PCR的值,并結合窮舉測試激勵的方法破譯終端的重要版本、配置和固件信息。
【發(fā)明內容】
[0007]本發(fā)明所要解決的技術問題是:針對現(xiàn)有技術存在的問題,提供一種可信計算終端完整性度量、證明方法及裝置,在不增加額外硬件要求和專用指令的情況下,為應用程序搭建了一個隔離安全的完整性動態(tài)度量環(huán)境,同時保證在度量過程中其他應用程序的并行無障礙運行。在完整性證明過程中隱藏了計算終端各部件的實際度量值,有效阻止黑客通過實際度量值破譯終端的版本、配置和固件等信息。
[0008]本發(fā)明采用的技術方案如下:
一種可信計算終端完整性度量、證明方法包括:
步驟1:將可信計算終端各部件的度量參考值和度量初始值注入可信密碼模塊TCM中;度量參考值指的是可信計算終端部件沒有被篡改時,對其進行HSAH雜湊運算得到的值;所述部件包括B1S、OS Loader、OS內核以及應用程序;度量初始值指的是驗證方與該可信計算終端的共享密鑰;
步驟2:啟動階段,首先可信密碼模塊主動對計算機終端的B1S進行完整性度量;當B1S的完整性度量成功后,CPU啟動,然后CPU調用可信密碼模塊依次對OS Loader、0S內核及應用程序進行完整性度量;當可信計算終端部件全部度量成功后,執(zhí)行步驟3;否則,開機啟動失?。?br> 步驟3:可信計算終端運行階段,應用程序在運行前將被加載到由MPU/MMU內存控制寄存器開辟的只讀存儲空間,同時度量代理模塊調用可信密碼模塊對應用程序進行度量;當度量通過后,執(zhí)行應用程序;
步驟4:當可信計算終端進行完整性證明時,將儲存于平臺配置寄存器中可信計算終端部件的擴展完整性度量值和總度量次數(shù)η進行簽名后發(fā)送給驗證方,驗證方通過執(zhí)行雜湊運算即可驗證該可信計算終端的完整性;可信計算終端部件的擴展完整性度量值為HASH(度量n-1次后擴展的完整性度量值I I第η次完整性度量值)=HASHn(HASHn-1(..-HASHi(...HASH2(HASH1(度量初始值完整性度量值I) I完整性度量值2)…完整性度量值i)…)完整性度量值n-11 I完整性度量值n),其中η=總度量次數(shù),HASHi表示第i次雜湊運算,完整性度量值i表示第i次的完整性度量值。
[0009]進一步的,所述步驟I中的度量參考值和度量初始值只在可信計算終端交付或終端部件增加、更新時通過授權數(shù)據(jù)結合物理現(xiàn)場的方式注入到可信密碼模塊的非易失性存儲器中;其中注入的度量初始值始終存儲在可信密碼模塊內不能被讀出,且每次可信計算終端開機啟動時,度量初始值將被重新寫入可信密碼模塊的平臺配置寄存器中。
[0010]進一步的,所述步驟2具體包括以下步驟:
步驟21:可信計算終端上電后,可信密碼模塊先于CPU啟動,可信密碼模塊主動讀取并度量B1S,并將得到的B1S完整性度量值與存儲于可信密碼模塊非易失性存儲器中的B1S度量參考值進行比較;若兩值相等,則B1S完整性度量成功,執(zhí)行步驟22,并將得到的B1S完整性度量值與度量初始值進行雜湊擴展得到的B1S的新PCR值,將B1S的新PCR值寫入對應的平臺配置寄存器中;否則,執(zhí)行步驟23;其中B1S的新PCR值=HASH(度量初始值I B1S完整性度量值)=(度量初始值I I B1S度量參考值);B10S度量參考值指的是B1S沒有被篡改時,對B1S程序進行HSAH雜湊運算得到的值;B1S完整性度量值指的是對該終端B1S程序進行HSAH雜湊運算得到的值。
[0011]步驟22:CPU啟動,依次執(zhí)行嵌入于B10S、0S Loader、0S內核中的度量程序,通過調用可信密碼模塊對OS Loader、0S內核及應用程序進行完整性度量,若完整性度量成功則終端啟動度量完成,并將各度量值與度量初始值進行雜湊擴展后寫入對應的平臺配置寄存器中;若度量失敗則執(zhí)行步驟23; 步驟23:退出可信計算終端的啟動度量,告警并申請可信計算終端所有者進一步授權操作。
[0012]進一步的,所述步驟3具體包括:
步驟31:位于OS內核的運行度量代理模塊獲得超級用戶權限,設置MPU/MMU內存控制寄存器將內存空間劃分為多個固定大小的塊空間,執(zhí)行步驟32;
步驟32:調用鉤子函數(shù)將待度量的應用程序映射到內存空間,執(zhí)行步驟33。
[0013]步驟33:運行度量代理模塊獲得超級用戶權限,設置MPU/MMU內存控制寄存器,將裝載有待度量應用程序的塊空間屬性設置為只讀,執(zhí)行步驟34。
[0014]步驟34:運行度量代理模塊調用可信密碼模塊TCM對應用程序進行完整性度量;若完整性度量成功,則執(zhí)行步驟35,并將得到的應用程序完整性度量值進行雜湊擴展得到應用程序新擴展完整性度量值,將該應用程序新擴展完整性度量值寫入對應的平臺配置寄存器中;否則,應用程序不能執(zhí)行,運行度量代理告警并申請終端所有者進一步授權操作;其中應用程序新擴展完整性度量值=HASHn(HASHn-l(."HASHi (…HASH2(HASH1 (應用程序度量初始值I I應用程序完整性度量值I) I I應用程序完整性度量值2)…I I應用程序完整性度量值i)...)應用程序完整性度量值n-1 I I應用程序完整性度量值n),其中η=總度量次數(shù),HASHi表示第i次雜湊運算,應用程序完整性度量值i表示第i次對該終端應用程序進行HSAH雜湊運算得到的值;度量初始值指的是驗證方與該可信計算終端的共享密鑰;
步驟35:運行度量代理模塊獲得超級用戶權限,設置MPU/MMU內存控制寄存器,將裝載有待度量應用程序的塊空間屬性設置為可讀寫,執(zhí)行步驟36;
步驟36:為應用程序建立上下文執(zhí)行環(huán)境,并跳轉到其main入口函數(shù)開始執(zhí)行,執(zhí)行步驟37;
步驟37:應用程序運行完畢后,需要定時釋放所占據(jù)的內存空間,以便下次運行時重新加載。
[0015]進一步的,所述步驟4具體包括:
步驟41:當可信計算終端需要提供完整性證明時,只需將儲存于配置寄存器PCR中的擴展完整性度量值和總度量次數(shù)進行簽名后發(fā)送給驗證方,完整性驗證方驗證PCR中的擴展完整性度量值和總度量次數(shù)的簽名,若簽名驗證通過執(zhí)行步驟42,否則執(zhí)行步驟43。
[0016]步驟42:完整性驗證方通過執(zhí)行雜湊算法判斷可信計算終端的完整性;判斷依據(jù)為:平臺配置寄存器的擴展完整性度量值是否等于HASHn(HASHn-l (…HASHi (…HASH2(HASHl(度量初始值I I度量參考值)I I度量參考值)...| I度量參考值)...)度量參考值I I度量參考值),其中η=總度量次數(shù),HASHi表示第i次雜湊運算;若兩個相等,則完整性驗證成功;否則,執(zhí)行步驟4.3;其中度量參考值指的是可信計算終端部件沒有被篡改時,對其進行HSAH雜湊運算得到的值;完整性度量值指的是對可信計算終端部件進行HSAH雜湊運算得到的值;所述部件包括B10S、0S Loader、0S內核以及應用程序。
[0017]步驟43:完整性驗證失敗,驗證方將失敗結果告知可信計算終端。
[0018]一種可信計算終端完整性度量、證明裝置包括:
可信密碼模塊,用于存儲可信計算終端各部件的度量參考值和度量初始值;度量參考值指的是可信計算終端部件沒有被篡改時,對其進行HSAH雜湊運算得到的值;所述部件包括B10S、0S Loader、0S內核以及應用程序;度量初始值指的是驗證方與該可信計算終