一種云計算平臺完整性證明方法及其系統的制作方法
【專利摘要】本發明公開了一種云計算平臺完整性證明方法及其系統,該方法基于混合式信任鏈對平臺完整性進行證明,混合式信任鏈包含由云端虛擬機提供的靜態信任鏈和遠程驗證方構建的動態信任鏈系統,該方法包括:靜態信任鏈構建步驟和動態信任鏈系統構建與驗證步驟,靜態信任鏈構建步驟為通過云端虛擬機提供的虛擬化可信平臺模塊構建靜態信任鏈;動態信任鏈系統構建與驗證步驟為通過遠程驗證方構建一動態信任鏈系統,在可信執行環境中進行平臺完整性驗證,并且遠程驗證方生成可信執行環境的運行證據,使虛擬機更安全地信任接收到的驗證結果。
【專利說明】 一種云計算平臺完整性證明方法及其系統
【技術領域】
[0001]該發明所屬的【技術領域】是:系統安全和可信計算領域。本發明涉及云計算平臺完整性證明,其中涉及可信計算組織(Trusted Computing Group,簡稱TCG)的可信平臺模塊和Intel的可信執行技術,屬于可信計算與云計算安全領域,特別涉及一種云計算平臺完整性證明方法及其系統。
【背景技術】
[0002]云計算是一種基于互聯網的計算方式,通過這種方式,共享的軟硬件資源和信息可以按需求提供給計算機和其他設備。作為一種新型的計算模式,云計算在給用戶提供便利服務的同時,由于其第三方計算特征對其安全與可信也提出了新的挑戰。而虛擬化技術為云計算提供了很好的底層技術平臺,本發明就云端虛擬機的完整性證明問題提出一種基于混合式信任鏈的云計算平臺完整性證明系統。
[0003]完整性證明是可信計算提供的核心功能之一,可信計算的概念最初由TCG引入到計算平臺中。該技術試圖從完整性證明的角度來解決大規模計算平臺的安全性問題。可信平臺模塊(Trusted Platform Module,簡稱TPM)作為可信計算的核心,它能夠提供三個功能:1)平臺數據保護;2)身份標識;3)平臺完整性存儲與報告,TPM在內部開辟了專門的完整性值存儲空間——平臺配置寄存器(Platform Configure Register,簡稱PCR)。
[0004]2004年 IBM華盛頓研究中心的 Reiner Sailer、Xiaolan Zhang 以及Trent Jaeger等人提出了 IMA完整性度量架構,在文獻Design and Implementation of a TCG-basedIntegrity Measurement Architecture (Proceedings of the 13th USENIX SecuritySymposium, August, 2004)”中,公開了將信任傳遞從BIOS延伸到應用層。它從平臺加電開始,建立一個從底層硬件到應用程序的信任鏈系統,這種信任鏈被稱為靜態信任鏈系統。
[0005]IMA最大的問題就是不能對系統運行時的完整性做出任何的保證。2006年,TrentJaeger、Reiner Sailer 和 Umesh Shankar 公開的另一篇文章 PRIMA:Policy-ReducedIntegrity Measurement Architecture (ACM Symposium on Access Control Models andTechnologies, June,2006)”結合強制訪問控制提出了一種基于信息流的完整性度量方法PRIMA,對不同類型實體間的信息流進行完整性度量。
[0006]上述這些工作都需要一個遠程的第三方驗證系統(以下稱為遠程驗證方),但是它們都沒有對遠程驗證方的驗證過程添加任何保護措施,而且驗證代碼在遠程驗證方平臺的執行對用戶完全不可見。用戶會一直保持對驗證結果的信任。事實上,如果遠程驗證方被攻擊,那么驗證過程的輸出結果就可能會被篡改。但是,用戶并不知道驗證結果已經被篡改,仍然堅持信任收到的驗證結果,就會導致對完整性狀態的誤判,從而造成經濟損失或者隱私泄密等安全問題。
[0007]近年來,順應對動態化可信環境構建需求,Intel和AMD分別推出了自己的動態可信度量根技術,如Intel TXT (Trusted eXecution Technology,可信執行技術)和AMDPresidio等。它們通過增強CPU和主板芯片組,使得平臺系統可以隨時進入可信的執行環境。
[0008]最后,虛擬化可信平臺模塊(virtual Trusted Platform Module,簡稱νΤΡΜ)作為虛擬可信平臺中具有代表性的架構,它通過虛擬化ΤΡΜ,實現了虛擬計算系統中虛擬機的安全可信。νΤΡΜ架構通過νΤΡΜ管理器為平臺上的每個虛擬機維護著一個νΤΡΜ實例,使平臺上的每個虛擬機都可以利用硬件TPM的功能,又能讓每個需要TPM功能的虛擬機都感覺是在訪問自己私有的TPM —樣。目前,νΤΡΜ在主流的虛擬化架構中都有支持,如Xen等。
【發明內容】
[0009]本發明要解決的技術問題在于提供一種云計算平臺完整性證明方法及其系統,以克服現有技術中的驗證過程的安全性和可見性問題。
[0010]為達上述目的,本發明提供了一種云計算平臺完整性證明方法,其特征在于,所述方法基于混合式信任鏈對平臺完整性進行證明,所述混合式信任鏈包含由云端虛擬機提供的靜態信任鏈和遠程驗證方構建的動態信任鏈系統,所述方法包括:
[0011]靜態信任鏈構建步驟:通過所述云端虛擬機提供的虛擬化可信平臺模塊構建所述靜態信任鏈;
[0012]動態信任鏈系統構建與驗證步驟:通過所述遠程驗證方構建一動態信任鏈系統,在可信執行環境中進行平臺完整性驗證,并且所述遠程驗證方生成一所述可信執行環境的運行證據,使虛擬機更安全地信任接收到的驗證結果。
[0013]上述云計算平臺完整性證明方法,其特征在于,所述靜態信任鏈構建步驟還包括:
[0014]初始化步驟:創建并初始化一個新的虛擬化可信平臺模塊實例;
[0015]信任鏈建立和配置度量值計算步驟:建立啟動過程的所述靜態信任鏈,并通過可信平臺模塊的度量機制度量引導配置的可信性,計算所述引導配置的度量值,并將度量結果擴展到虛擬平臺配置寄存器中;
[0016]內核鏡像度量值計算步驟:通過可信平臺模塊的度量機制度量內核鏡像的可信性,計算所述內核鏡像的度量值,并將度量結果擴展到虛擬平臺配置寄存器中;
[0017]加載階段度量值計算步驟:通過可信平臺模塊的度量機制度量動態鏈接庫、內核模塊、用戶空間可執行程序和可執行腳本各個加載階段的可信性,計算所述各個加載階段的度量值,并將度量結果擴展到虛擬平臺配置寄存器中。
[0018]上述云計算平臺完整性證明方法,其特征在于,所述動態信任鏈系統構建與驗證步驟還包括:
[0019]遠程驗證請求步驟:所述云端虛擬機向所述遠程驗證方發送完整性證明請求,并接收所述遠程驗證方發送的證明挑戰隨機數nonce ;
[0020]響應證明挑戰步驟:所述云端虛擬機對收到的所述證明挑戰隨機數nonce進行簽名和加密后,將密文發送給所述遠程驗證方進行平臺完整性驗證;
[0021]完整性驗證步驟:所述遠程驗證方動態構建可信執行環境,并在所述可信執行環境中進行平臺完整性驗證;
[0022]結果分析步驟:用戶收到所述遠程驗證方的驗證結果進行解密和分析,得出所述云端虛擬機平臺是否具有完整性的結論。[0023]上述云計算平臺完整性證明方法,其特征在于,所述遠程驗證請求步驟還包括:
[0024]完整性證明請求步驟:所述云端虛擬機向所述遠程驗證方發送完整性證明請求;
[0025]證明挑戰隨機數步驟:所述遠程驗證方收到所述完整性證明請求后,生成證明挑戰隨機數nonce,并將所述證明挑戰隨機數nonce發給所述云端虛擬機。
[0026]上述云計算平臺完整性證明方法,其特征在于,所述響應證明挑戰步驟還包括:
[0027]簽名步驟:所述云端虛擬機收到所述證明挑戰隨機數nonce后記錄到全局靜態變量nonCe_a*,通過AIK私鑰對虛擬平臺配置寄存器中的度量值和所述證明挑戰隨機數nonce產生的隨機數集進行簽名,生成簽名數據;
[0028]加密步驟:所述云端虛擬機用遠程驗證方的AIK公鑰將所述內核鏡像度量值計算步驟和所述加載階段度量值計算步驟產生的度量值和所述簽名步驟產生的所述簽名數據進行加密,然后將密文發送給所述遠程驗證方,驗證平臺的完整性;
[0029]上述云計算平臺完整性證明方法,其特征在于,所述完整性驗證步驟還包括:
[0030]掛起當前執行環境步驟:所述遠程驗證方收到所述云端虛擬機發送的所述密文后,所述遠程驗證方保存當前執行上下文,并掛起當前的執行環境;
[0031]構建可信執行環境步驟:所述遠程驗證方通過特殊安全指令構建可信執行環境,建立DMA (直接存儲器訪問,Direct Memory Access,簡稱DMA)保護機制,并禁用中斷和重置平臺配置寄存器;
[0032]執行安全敏感代碼步驟:所述遠程驗證方對接收到的所述密文進行解密,并對解密結果進行判斷比較,得出平臺完整性結論;
[0033]擴展平臺配置寄存器步驟:所述遠程驗證方生成度量值,并將所述度量值擴展到平臺配置寄存器中;
[0034]恢復執行環境步驟:將所述虛擬機平臺完整性結論、所述平臺配置寄存器和所述證明挑戰隨機數nonce進行簽名和加密,并將得到的密文發送給所述云端虛擬機,恢復被掛起的所述當前執行環境。
[0035]上述云計算平臺完整性證明方法,其特征在于,所述結果分析步驟還包括:
[0036]云端虛擬機解密比較步驟:所述云端虛擬機收到所述遠程驗證方的密文后,進行解密,并將解密后得到的所述證明挑戰隨機數nonce與所述全局靜態變量nonce_a進行比較判斷收到的密文是否可以信任;
[0037]度量值比較步驟:所述云端虛擬機將本地生成的度量值與解密后得到的所述遠程驗證方的平臺配置寄存器進行比較,判斷所述執行安全敏感代碼步驟是否在可信執行環境中完成;
[0038]結論輸出步驟:通過所述云端虛擬機解密比較步驟與所述度量值比較步驟中得到的判斷結果,得出虛擬機平臺完整性的結論,并返回給用戶。
[0039]上述云計算平臺完整性證明方法,其特征在于,所述執行安全敏感代碼步驟還包括:
[0040]解密步驟:所述遠程驗證方在所述可信執行環境中利用自身的AIK私鑰對收到的所述密文進行解密,得到度量值和簽名數據,并通過所述云端虛擬機的AIK公鑰對所述簽名數據進行解密,得到所述度量值和所述證明挑戰隨機數nonce ;
[0041]判斷比較步驟:所述遠程驗證方將所述解密步驟得到的所述度量值與系統預留的可信程序列表進行比較,判斷是否存在不可信的度量值,并得出虛擬機平臺完整性的結論。
[0042]本發明還提供一種云計算平臺完整性證明系統,所述系統采用如所述的云計算平臺完整性證明方法,其特征在于,所述系統包括:
[0043]靜態信任鏈構建模塊:通過所述云端虛擬機提供的虛擬化可信平臺模塊構建所述靜態信任鏈;
[0044]動態信任鏈系統構建與驗證模塊:通過所述遠程驗證方構建一動態信任鏈系統,在可信執行環境中進行平臺完整性驗證,并且所述遠程驗證方生成一所述可信執行環境的運行證據,使虛擬機更安全地信任接收到的驗證結果。
[0045]上述云計算平臺完整性證明系統,其特征在于,所述靜態信任鏈構建模塊還包括:
[0046]初始化模塊:創建并初始化一個新的虛擬化可信平臺模塊實例;
[0047]信任鏈建立和配置度量值計算模塊:建立啟動過程的所述靜態信任鏈,并通過可信平臺模塊的度量機制度量引導配置的可信性,計算所述引導配置的度量值,并將度量結果擴展到虛擬平臺配置寄存器中;
[0048]內核鏡像度量值計算模塊:通過可信平臺模塊的度量機制度量內核鏡像的可信性,計算所述內核鏡像的度量值,并將度量結果擴展到虛擬平臺配置寄存器中;
[0049]加載階段度量值計算模塊:通過可信平臺模塊的度量機制度量動態鏈接庫、內核模塊、用戶空間可執行程序和可執行腳本各個加載階段的可信性,計算所述各個加載階段的度量值,并將度量結果擴展到虛擬平臺配置寄存器中。
[0050]上述云計算平臺完整性證明系統,其特征在于,所述動態信任鏈系統構建與驗證模塊還包括:
[0051]遠程驗證請求模塊:所述云端虛擬機向所述遠程驗證方發送完整性證明請求,并接收所述遠程驗證方發送的證明挑戰隨機數nonce ;
[0052]響應證明挑戰模塊:所述云端虛擬機對收到的所述證明挑戰隨機數nonce進行簽名和加密后,將密文發送給所述遠程驗證方進行平臺完整性驗證;
[0053]完整性驗證模塊:所述遠程驗證方動態構建可信執行環境,并在所述可信執行環境中進行平臺完整性驗證;
[0054]結果分析模塊:用戶收到所述遠程驗證方的驗證結果進行解密和分析,得出所述云端虛擬機平臺是否具有完整性的結論。
[0055]上述云計算平臺完整性證明系統,其特征在于,所述遠程驗證請求模塊還包括:
[0056]完整性證明請求模塊:所述云端虛擬機向所述遠程驗證方發送完整性證明請求;
[0057]證明挑戰隨機數模塊:所述遠程驗證方收到所述完整性證明請求后,生成證明挑戰隨機數nonce,并將所述證明挑戰隨機數nonce發給所述云端虛擬機。
[0058]上述云計算平臺完整性證明系統,其特征在于,所述響應證明挑戰模塊還包括:
[0059]簽名模塊:所述云端虛擬機收到所述證明挑戰隨機數nonce后記錄到全局靜態變量nonCe_a*,通過AIK私鑰對虛擬平臺配置寄存器中的度量值和所述證明挑戰隨機數nonce產生的隨機數集進行簽名,生成簽名數據;
[0060]加密模塊:所述云端虛擬機用遠程驗證方的AIK公鑰將所述內核鏡像度量值計算模塊和所述加載階段度量值計算模塊產生的度量值和所述簽名步驟產生的所述簽名數據進行加密,然后將密文發送給所述遠程驗證方,驗證平臺的完整性;
[0061]上述云計算平臺完整性證明系統,其特征在于,所述完整性驗證模塊還包括:
[0062]掛起當前執行環境模塊:所述遠程驗證方收到所述云端虛擬機發送的所述密文后,所述遠程驗證方保存當前執行上下文,并掛起當前的執行環境;
[0063]構建可信執行環境模塊:所述遠程驗證方通過特殊安全指令構建可信執行環境,建立DMA保護機制,并禁用中斷和重置平臺配置寄存器;
[0064]執行安全敏感代碼模塊:所述遠程驗證方對接收到的所述密文進行解密,并對解密結果進行判斷比較,得出平臺完整性結論;
[0065]擴展平臺配置寄存器模塊:所述遠程驗證方生成度量值,并將所述度量值擴展到平臺配置寄存器中;
[0066]恢復執行環境模塊:將所述虛擬機平臺完整性結論、所述平臺配置寄存器和所述證明挑戰隨機數nonce進行簽名和加密,并將得到的密文發送給所述云端虛擬機,恢復被掛起的所述當前執行環境。
[0067]上述云計算平臺完整性證明系統,其特征在于,所述結果分析模塊還包括:
[0068]云端虛擬機解密比較模塊:所述云端虛擬機收到所述遠程驗證方的密文后,進行解密,并將解密后得到的所述證明挑戰隨機數nonce與所述全局靜態變量nonce_a進行比較判斷收到的密文是否可以信任;
[0069]度量值比較模塊:所述云端虛擬機將本地生成的度量值與解密后得到的所述遠程驗證方的平臺配置寄存器進行比較,判斷所述執行安全敏感代碼模塊是否在可信執行環境中完成;
[0070]結論輸出模塊:通過所述云端虛擬機解密比較模塊與所述度量值比較模塊中得到的判斷結果,得出虛擬機平臺完整性的結論,并返回給用戶。
[0071]上述云計算平臺完整性證明系統,其特征在于,所述執行安全敏感代碼模塊還包括:
[0072]解密模塊:所述遠程驗證方在所述可信執行環境中利用自身的AIK私鑰對收到的所述密文進行解密,得到度量值和簽名數據,并通過所述云端虛擬機的AIK公鑰對所述簽名數據進行解密,得到所述度量值和所述證明挑戰隨機數nonce ;
[0073]判斷比較模塊:所述遠程驗證方將所述解密模塊得到的所述度量值與系統預留的可信程序列表進行比較,判斷是否存在不可信的度量值,并得出虛擬機平臺完整性的結論。
[0074]與現有技術的完整性證明系統相比,本發明的有益效果在于,可以提高驗證過程的安全性和可見性,具體有益效果如下:
[0075]安全性:即使遠程驗證方的操作系統、應用程序都是惡意的,利用Intel TXT技術構建的強隔離的可信的執行環境,也能夠保證完整性驗證過程的安全;
[0076]可見性:虛擬機能夠收到由動態信任鏈系統生成的可信執行環境運行證據,該證據表明完整性驗證過程是在相應的保護措施下進行的。也就是說,用戶對遠程驗證方驗證的代碼執行過程是可見的,避免了盲目地相信來自遠程驗證方發送過來的驗證結果。
【專利附圖】
【附圖說明】
[0077]圖1為本發明云計算平臺完整性證明方法的步驟示意圖;[0078]圖2為本發明遠程驗證請求步驟示意圖;
[0079]圖3為本發明響應證明挑戰步驟示意圖;
[0080]圖4為本發明完整性驗證步驟示意圖;
[0081]圖5為本發明結果分析步驟示意圖;
[0082]圖6為本發明具體實施例云端虛擬機和遠程驗證方交互流程示意圖;
[0083]圖7為本發明實施例構建可信執行環境方法流程示意圖;
[0084]圖8為本發明云端虛擬機驗證結果步驟示意圖;
[0085]圖9為本發明云計算平臺完整性證明系統結構示意圖;
[0086]圖10為本發明遠程驗證請求模塊結構示意圖;
[0087]圖11為本發明響應證明挑戰模塊結構示意圖;
[0088]圖12為本發明完整性驗證模塊結構示意圖;
[0089]圖13為本發明結果分析模塊結構示意圖。
[0090]其中,附圖標記:
[0091]
【權利要求】
1.一種云計算平臺完整性證明方法,其特征在于,所述方法基于混合式信任鏈對平臺完整性進行證明,所述混合式信任鏈包含由云端虛擬機提供的靜態信任鏈和遠程驗證方構建的動態信任鏈系統,所述方法包括: 靜態信任鏈構建步驟:通過所述云端虛擬機提供的虛擬化可信平臺模塊構建所述靜態信任鏈; 動態信任鏈系統構建與驗證步驟:通過所述遠程驗證方構建一動態信任鏈系統,在可信執行環境中進行平臺完整性驗證,并且所述遠程驗證方生成一所述可信執行環境的運行證據,使所述云端虛擬機更安全地信任接收到的驗證結果。
2.根據權利要求1所述的云計算平臺完整性證明方法,其特征在于,所述靜態信任鏈構建步驟還包括: 初始化步驟:創建并初始化一個新的虛擬化可信平臺模塊實例; 信任鏈建立和配置度量值計算步驟:建立啟動過程的所述靜態信任鏈,并通過可信平臺模塊的度量機制度量引導配置的可信性,計算所述引導配置的度量值,并將度量結果擴展到虛擬平臺配置寄存器中; 內核鏡像度量值計算步驟:通過可信平臺模塊的度量機制度量內核鏡像的可信性,計算所述內核鏡像的度量值,并將度量結果擴展到虛擬平臺配置寄存器中; 加載階段度量值計算步驟:通過可信平臺模塊的度量機制度量動態鏈接庫、內核模塊、用戶空間可執行程序和可執行腳本各個加載階段的可信性,計算所述各個加載階段的度量值,并將度量結果擴展到虛擬平臺配置寄存器中。
3.根據權利要求1所述的云計算平臺完整性證明方法,其特征在于,所述動態信任鏈系統構建與驗證步驟還包括: 遠程驗證請求步驟:所述云端虛擬機向所述遠程驗證方發送完整性證明請求,并接收所述遠程驗證方發送的證明挑戰隨機數nonce ; 響應證明挑戰步驟:所述云端虛擬機對收到的所述證明挑戰隨機數nonce進行簽名和加密后,將密文發送給所述遠程驗證方進行平臺完整性驗證; 完整性驗證步驟:所述遠程驗證方動態構建可信執行環境,并在所述可信執行環境中進行平臺完整性驗證; 結果分析步驟:用戶收到所述遠程驗證方的驗證結果進行解密和分析,得出所述云端虛擬機平臺是否具有完整性的結論。
4.根據權利要求3所述的云計算平臺完整性證明方法,其特征在于,所述遠程驗證請求步驟還包括: 完整性證明請求步驟:所述云端虛擬機向所述遠程驗證方發送完整性證明請求;證明挑戰隨機數步驟:所述遠程驗證方收到所述完整性證明請求后,生成證明挑戰隨機數nonce,并將所述證明挑戰隨機數nonce發給所述云端虛擬機。
5.根據權利要求3所述的云計算平臺完整性證明方法,其特征在于,所述響應證明挑戰步驟還包括: 簽名步驟:所述云端虛擬機收到所述證明挑戰隨機數nonce后記錄到全局靜態變量nonCe_a*,通過AI K私鑰對虛擬平臺配置寄存器中的度量值和所述證明挑戰隨機數nonce產生的隨機數集進行簽名,生成簽名數據;加密步驟:所述云端虛擬機用遠程驗證方的AIK公鑰將所述內核鏡像度量值計算步驟和所述加載階段度量值計算步驟產生的度量值和所述簽名步驟產生的所述簽名數據進行加密,然后將密文發送給所述遠程驗證方,驗證平臺的完整性。
6.根據權利要求3所述的云計算平臺完整性證明方法,其特征在于,所述完整性驗證步驟還包括: 掛起當前執行環境步驟:所述遠程驗證方收到所述云端虛擬機發送的所述密文后,所述遠程驗證方保存當前執行上下文,并掛起當前的執行環境; 構建可信執行環境步驟:所述遠程驗證方通過特殊安全指令構建可信執行環境,建立DMA保護機制,并禁用中斷和重置平臺配置寄存器; 執行安全敏感代碼步驟:所述遠程驗證方對接收到的所述密文進行解密,并對解密結果進行判斷比較,得出平臺完整性結論; 擴展平臺配置寄存器步驟:所述遠程驗證方生成度量值,并將所述度量值擴展到平臺配置寄存器中; 恢復執行環境步驟:將所述虛擬機平臺完整性結論、所述平臺配置寄存器和所述證明挑戰隨機數nonce進行簽名和加密,并將得到的密文發送給所述云端虛擬機,恢復被掛起的所述當前執行環境。
7.根據權利要求3所述的云計算平臺完整性證明方法,其特征在于,所述結果分析步驟還包括: 云端虛擬機解密比較步驟:所述云端虛擬機收到所述遠程驗證方的密文后,進行解密,并將解密后得到的所述證明挑戰隨機數nonce與所述全局靜態變量nonce_a進行比較判斷收到的密文是否可以信任; 度量值比較步驟:所述云端虛擬機將本地生成的度量值與解密后得到的所述遠程驗證方的平臺配置寄存器進行比較,判斷所述執行安全敏感代碼步驟是否在可信執行環境中完成; 結論輸出步驟:通過所述云端虛擬機解密比較步驟與所述度量值比較步驟中得到的判斷結果,得出虛擬機平臺完整性的結論,并返回給用戶。
8.根據權利要求6所述的云計算平臺完整性證明方法,其特征在于,所述執行安全敏感代碼步驟還包括: 解密步驟:所述遠程驗證方在所述可信執行環境中利用自身的AIK私鑰對收到的所述密文進行解密,得到度量值和簽名數據,并通過所述云端虛擬機的AIK公鑰對所述簽名數據進行解密,得到所述度量值和所述證明挑戰隨機數nonce ; 判斷比較步驟:所述遠程驗證方將所述解密步驟得到的所述度量值與系統預留的可信程序列表進行比較,判斷是否存在不可信的度量值,并得出虛擬機平臺完整性的結論。
9.一種云計算平臺完整性證明系統,所述系統采用如權利要求1-8中任一項所述的云計算平臺完整性證明方法,其特征在于,所述系統包括: 靜態信任鏈構建模塊:通過所述云端虛擬機提供的虛擬化可信平臺模塊構建所述靜態信任鏈; 動態信任鏈系統構建與驗證模塊:通過所述遠程驗證方構建一動態信任鏈系統,在可信執行環境中進行平臺完整性驗證,并且所述遠程驗證方生成一所述可信執行環境的運行證據,使虛擬機更安全地信任接收到的驗證結果。
10.根據權利要求9所述的云計算平臺完整性證明系統,其特征在于,所述靜態信任鏈構建模塊還包括: 初始化模塊:創建并初始化一個新的虛擬化可信平臺模塊實例; 信任鏈建立和配置度量值計算模塊:建立啟動過程的所述靜態信任鏈,并通過可信平臺模塊的度量機制度量引導配置的可信性,計算所述引導配置的度量值,并將度量結果擴展到虛擬平臺配置寄存器中; 內核鏡像度量值計算模塊:通過可信平臺模塊的度量機制度量內核鏡像的可信性,計算所述內核鏡像的度量值,并將度量結果擴展到虛擬平臺配置寄存器中; 加載階段度量值計算模塊:通過可信平臺模塊的度量機制度量動態鏈接庫、內核模塊、用戶空間可執行程序和可執行腳本各個加載階段的可信性,計算所述各個加載階段的度量值,并將度量結果擴展到虛擬平臺配置寄存器中。
11.根據權利要求9所述的云計算平臺完整性證明系統,其特征在于,所述動態信任鏈系統構建與驗證模塊還包括: 遠程驗證請求模塊:所述云端虛擬機向所述遠程驗證方發送完整性證明請求,并接收所述遠程驗證方發送的證明挑戰隨機數nonce ; 響應證明挑戰模塊:所述云端虛擬機對收到的所述證明挑戰隨機數nonce進行簽名和加密后,將密文發送給所述遠程驗證方進行平臺完整性驗證; 完整性驗證模塊:所述遠程驗證方動態構建可信執行環境,并在所述可信執行環境中進行平臺完整性驗證; 結果分析模塊:用戶收到所述遠程驗證方的驗證結果進行解密和分析,得出所述云端虛擬機平臺是否具有完整性的結論。
12.根據權利要求11所述的云計算平臺完整性證明系統,其特征在于,所述遠程驗證請求模塊還包括: 完整性證明請求模塊:所述云端虛擬機向所述遠程驗證方發送完整性證明請求;證明挑戰隨機數模塊:所述遠程驗證方收到所述完整性證明請求后,生成證明挑戰隨機數nonce,并將所述證明挑戰隨機數nonce發給所述云端虛擬機。
13.根據權利要求11所述的云計算平臺完整性證明系統,其特征在于,所述響應證明挑戰模塊還包括: 簽名模塊:所述云端虛擬機收到所述證明挑戰隨機數nonce后記錄到全局靜態變量nonCe_a*,通過AIK私鑰對虛擬平臺配置寄存器中的度量值和所述證明挑戰隨機數nonce產生的隨機數集進行簽名,生成簽名數據; 加密模塊:所述云端虛擬機用遠程驗證方的AIK公鑰將所述內核鏡像度量值計算模塊和所述加載階段度量值計算模塊產生的度量值和所述簽名步驟產生的所述簽名數據進行加密,然后將密文發送給所述遠程驗證方,驗證平臺的完整性。
14.根據權利要求11所述的云計算平臺完整性證明系統,其特征在于,所述完整性驗證模塊還包括: 掛起當前執行環境模塊:所述遠程驗證方收到所述云端虛擬機發送的所述密文后,所述遠程驗證方保存當前執行上下文,并掛起當前的執行環境;構建可信執行環境模塊:所述遠程驗證方通過特殊安全指令構建可信執行環境,建立DMA保護機制,并禁用中斷和重置平臺配置寄存器; 執行安全敏感代碼模塊:所述遠程驗證方對接收到的所述密文進行解密,并對解密結果進行判斷比較,得出平臺完整性結論; 擴展平臺配置寄存器模塊:所述遠程驗證方生成度量值,并將所述度量值擴展到平臺配置寄存器中; 恢復執行環境模塊:將所述虛擬機平臺完整性結論、所述平臺配置寄存器和所述證明挑戰隨機數nonce進行簽名和加密,并將得到的密文發送給所述云端虛擬機,恢復被掛起的所述當前執行環境。
15.根據權利要求11所述的云計算平臺完整性證明系統,其特征在于,所述結果分析模塊還包括: 云端虛擬機解密比較模塊:所述云端虛擬機收到所述遠程驗證方的密文后,進行解密,并將解密后得到的所述證明挑戰隨機數nonce與所述全局靜態變量nonce_a進行比較判斷收到的密文是否可以信任; 度量值比較模塊:所述云端虛擬機將本地生成的度量值與解密后得到的所述遠程驗證方的平臺配置寄存器進行比較,判斷所述執行安全敏感代碼模塊是否在可信執行環境中完成; 結論輸出模塊:通過所述云端虛擬機解密比較模塊與所述度量值比較模塊中得到的判斷結果,得出虛擬機平臺完整性的結論,并返回給用戶。
16.根據權利要求14所述的云計算平臺完整性證明系統,其特征在于,所述執行安全敏感代碼模塊還包括: 解密模塊:所述遠程驗證方在所述可信執行環境中利用自身的AIK私鑰對收到的所述密文進行解密,得到度量值和簽名數據,并通過所述云端虛擬機的AIK公鑰對所述簽名數據進行解密,得到所述度量值和所述證明挑戰隨機數nonce ; 判斷比較模塊:所 述遠程驗證方將所述解密模塊得到的所述度量值與系統預留的可信程序列表進行比較,判斷是否存在不可信的度量值,并得出虛擬機平臺完整性的結論。
【文檔編號】H04L29/06GK103795717SQ201410031284
【公開日】2014年5月14日 申請日期:2014年1月23日 優先權日:2014年1月23日
【發明者】曾令, 孫毓忠 申請人:中國科學院計算技術研究所