專利名稱:基于安全需求的遠程證明方法及其系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于可信計算平臺安全技術(shù)領(lǐng)域,尤其涉及一種遠程證明方法及其系統(tǒng)。
背景技術(shù):
隨著網(wǎng)絡(luò)技術(shù)的迅速發(fā)展,存儲在計算機內(nèi)的數(shù)據(jù)可能被遠程盜用或非授權(quán)訪問,僅僅依靠防火墻、防病毒軟件等外部保護機制,依靠簡單的口令等認證方式,很難抵擋住黑客、病毒、內(nèi)部竊密者的侵襲。針對這些問題,為了增強計算機平臺的內(nèi)部免疫力,近年來以可信平臺模塊(Trusted Platform Module,TPM)為核心的可信計算平臺技術(shù)迅速發(fā)展,在原有計算機平臺上引入安全芯片架構(gòu),提供對計算機平臺軟硬件配置完整性、正確性的認證,建立分布式環(huán)境下應(yīng)用程序間、計算機平臺之間的相互信任。
可信計算是構(gòu)建計算機系統(tǒng)安全、網(wǎng)絡(luò)安全的重要手段??尚庞嬎闫脚_提供了存儲保護、遠程證明、隔離機制、安全I/O等保護功能,極大地增強了平臺的數(shù)據(jù)保護能力,使得平臺內(nèi)部、平臺與平臺之間能夠建立廣泛的信任。可信計算其含義為“系統(tǒng)提供可信賴的服務(wù)能力,而且這種可信賴性是可以驗證的”。安全PC從加電的時刻起,對系統(tǒng)進行完整性度量,保證每個運行的部件都是可信賴的;TPM對系統(tǒng)中敏感數(shù)據(jù)進行加密存儲,數(shù)據(jù)封裝,防止了非法竊取敏感數(shù)據(jù);現(xiàn)有的計算機在網(wǎng)絡(luò)上是依靠不固定的也不唯一的IP地址進行活動,導致網(wǎng)絡(luò)黑客泛濫和用戶信用不足,而具備由權(quán)威機構(gòu)頒發(fā)的唯一的身份證書的可信計算平臺具備在網(wǎng)絡(luò)上的唯一的身份標識,從而能夠向外部實體提供可靠的外平臺身份證明和應(yīng)用身份證明;TPM對內(nèi)部資源進行授權(quán)訪問,其獨特功能類似于設(shè)置了權(quán)限的“防火墻”。這一系列的機制保證了系統(tǒng)能夠提供可信賴的服務(wù)能力,而對于這種可信賴的服務(wù)能力,遠程依賴方是否信任,通過遠程證明的機制進行證明實現(xiàn)。
遠程證明作為可信計算的一大特色功能,旨在認證平臺硬件、軟件堆棧中每一層運行的軟件的運行狀態(tài),向遠程依賴方證明應(yīng)用程序所在的平臺可信。遠程證明方法有四種基本模型直接證明,基于TTP(Trusted Third Party,可信第三方)驗證的證明,基于離線TTP的證明,委托證明。直接證明是證明方度量平臺自身完整性,向驗證方出示平臺完整性信息,驗證方通過完整性值數(shù)據(jù)庫驗證證明方的證明。缺陷不言而喻,這需要每個驗證方都擁有一個完整性值數(shù)據(jù)庫。基于TTP驗證的證明、基于離線TTP的證明和委托證明都是通過可信第三方來驗證完整性度量值。由于基于離線TTP的證明存在證明和驗證的時間間隔,要求證明和驗證兩者間隔時間不能太長,否則很難保證證明的可信性。委托證明要求驗證方完全信任TTP,委托TTP驗證明方的證明,TTP會成為通訊瓶頸?;赥TP驗證的證明在可信平臺上應(yīng)用比較普遍,現(xiàn)有的很多證明方法,如基于屬性的遠程證明、WebService的遠程證明等,都是采用這種模型,這是可信計算平臺遠程證明非常通用的模型。
發(fā)明內(nèi)容
本發(fā)明目的在于提供一種基于驗證方安全需求的遠程證明方法及其系統(tǒng)。與其他遠程證明方法相比,本發(fā)明擁有按安全需求度量證明、平臺隱私保護、系統(tǒng)配置靈活等特色。
本發(fā)明的遠程證明方法基于可信計算平臺,包含3個角色證明方(Attestor)、驗證方(Verifier)和證明權(quán)威機構(gòu)(AA,Attestation Authority)。驗證方根據(jù)安全需求發(fā)起證明請求,證明方按照請求度量平臺配置,證明權(quán)威機構(gòu)驗證度量結(jié)果,最終由驗證方判定是否信任證明方平臺。所謂的平臺配置度量就是可信平臺模塊(TPM)對計算機系統(tǒng)的軟件、固件和硬件的二進制數(shù)據(jù)塊進行雜湊計算,所得到的雜湊值為其度量值,度量值和度量描述信息組成了度量日志。度量值不斷地擴展TPM內(nèi)部的平臺配置寄存器(PCR)得到最終的度量結(jié)果。
上述證明方的度量和遠程證明依賴三大核心模塊證明服務(wù)模塊(AS,AttestationService)、度量代理模塊(MA,Measurement Agent)和可信平臺模塊(證明方的模塊構(gòu)成參照圖3)。證明服務(wù)模塊接收驗證方的證明請求,負責與遠程驗證方進行通信;度量代理模塊按照證明要求度量平臺配置,組建遠程證明相關(guān)的證明數(shù)據(jù);可信平臺模塊完成具體模塊的雜湊計算、加密和簽名操作。
本發(fā)明基于安全需求的遠程證明方法具體包括如下步驟1.驗證方根據(jù)從證明權(quán)威機構(gòu)獲取的證明屬性證書創(chuàng)建證明請求,并將證明請求發(fā)送給證明方;2.證明方收到驗證方發(fā)送的證明請求后,根據(jù)驗證方要求證明的內(nèi)容和證明權(quán)威機構(gòu)頒發(fā)的度量屬性證書,由TPM實施系統(tǒng)組件度量,加密度量日志,對其內(nèi)部PCR存儲的最終度量結(jié)果簽名;3.證明方將加密的度量日志、最終度量結(jié)果及其簽名結(jié)果發(fā)送給驗證方;4.驗證方保留最終度量結(jié)果及其簽名,而將加密的度量日志發(fā)送給證明權(quán)威機構(gòu);5.證明權(quán)威機構(gòu)對驗證方發(fā)送的加密度量日志進行驗證;6.證明權(quán)威機構(gòu)將以度量日志計算的最終度量結(jié)果和驗證結(jié)果發(fā)送給驗證方;7.如果證明權(quán)威機構(gòu)驗證結(jié)果為通過驗證,驗證方比較證明權(quán)威機構(gòu)計算的最終度量結(jié)果和證明方發(fā)送的最終度量結(jié)果,二者一致則驗證度量結(jié)果的簽名,從而最終確保證明方的可信性。
上述的證明屬性證書限定證明方需要證明的內(nèi)容,包含需要證明的組件列表;而度量屬性證書包含組件描述信息和組件的全部度量點聲明。證明屬性證書和度量屬性證書都是證明權(quán)威機構(gòu)按照驗證方的證明需求生成的,分別發(fā)送給驗證方和證明方。
上述遠程證明流程中,步驟2是證明方使用嵌入計算平臺主板上的TPM度量平臺組件,組件的度量方法可按照本發(fā)明自定義的MEASURE流程進行(參照具體實施方式
中的函數(shù)1),包括下列步驟2-1證明服務(wù)模塊從驗證方的證明屬性證書中,解析得到需要證明的平臺組件,將要證明的組件列表發(fā)送給度量代理模塊。
2-2度量代理模塊驗證當前的平臺組件是否與需要證明的平臺組件匹配,如果不匹配則退出證明,匹配則度量代理模塊使用TPM按照下面的MEASURE流程實施組件度量a).從需要證明的平臺組件中,選取某一組件C;b).用SHA1算法依次度量組件C的度量點,度量代理模塊保存C的度量日志,c).度量代理模塊使用TPM_Extend方法得到組件C的度量值h(C);d).如果全部需要證明的組件已經(jīng)度量完成,跳到步驟e執(zhí)行,否則跳回步驟a繼續(xù)執(zhí)行;e).度量代理模塊將步驟c得到的全部組件的度量值h(C),依次擴展TPM內(nèi)部的PCR寄存器,得到TPM的最終度量值(保存在PCR中)。
2-3度量代理模塊加密全部組件度量日志,然后將加密的度量日志發(fā)送給證明服務(wù)模塊。
2-4TPM使用平臺身份密鑰對最終的度量結(jié)果(保存在PCR中)簽名,將最終度量結(jié)果、簽名結(jié)果、TPM身份證書發(fā)送給證明服務(wù)模塊。
上述基于安全需求的遠程證明方法步驟5和7是證明權(quán)威機構(gòu)、驗證方共同驗證證明結(jié)果。其中,步驟5證明權(quán)威機構(gòu)對度量日志解密后,利用收集的標準度量值,可按照本發(fā)明自定義的VERIFY流程進行完整性驗證(參照具體實施方式
中的函數(shù)2),具體包括下列步驟5-1.依次驗證證明方組件度量日志,從證明方度量日志中選取組件C的度量日志,比較組件各個度量點的度量值是否和發(fā)布的標準值一致,如果不一致則驗證失敗。
5-2.重新計算組件C的度量值,按照TPM_Extend方法依次擴展各個度量點的值,得到組件C的度量值。
5-3.比較組件C的度量值是否與標準值一致,如果不相等則驗證失敗。如果已經(jīng)完成全部組件的驗證,跳至步驟5-4執(zhí)行,否則繼續(xù)執(zhí)行步驟5-1。
5-4.按照TPM_Extend方法依次擴展各個組件的度量值,計算出最終的平臺度量值,然后證明權(quán)威機構(gòu)將驗證結(jié)果、最終的度量值發(fā)送給驗證方。
驗證過程作為度量過程的逆操作,與度量過程相比不需要TPM參與,主要工作是驗證度量日志正確性,同時重新進行度量結(jié)果雜湊計算。證明權(quán)威機構(gòu)僅僅驗證度量日志,證明方的最終度量結(jié)果則由驗證方進行驗證,因此在證明權(quán)威機構(gòu)可信的前提下,證明方偽造度量日志、篡改中間驗證結(jié)果都能被驗證方檢測到。
上述步驟2中的加密過程為證明方生成對稱密鑰,對度量日志加密,并利用證明權(quán)威機構(gòu)的公鑰加密對稱密鑰。相應(yīng)的,證明權(quán)威機構(gòu)收到驗證方發(fā)送來的加密度量日志后,首先使用自己的私鑰解密加密的對稱密鑰,然后再使用對稱密鑰解密經(jīng)過加密的度量日志。
本發(fā)明基于安全需求的遠程證明系統(tǒng)包括證明方、驗證方和證明權(quán)威機構(gòu)三方,三者之間的通訊經(jīng)過互聯(lián)網(wǎng)(Internet)進行,其中證明方計算機主板物理上嵌入安全芯片TPM,驗證方、權(quán)威機構(gòu)不需要帶有TPM。驗證方根據(jù)安全需求發(fā)起證明請求,證明方按照請求度量平臺配置,證明權(quán)威機構(gòu)驗證度量結(jié)果,最終由驗證方判定是否信任證明方平臺。其中,證明方又包括證明服務(wù)模塊、度量代理模塊和可信平臺模塊,其中證明服務(wù)模塊接收驗證方的證明請求,負責與遠程驗證方進行通信;度量代理模塊按照證明要求度量平臺配置,組建遠程證明相關(guān)的證明數(shù)據(jù);可信平臺模塊完成具體的雜湊計算、加密和簽名操作。可信平臺模塊(TPM)位于計算機系統(tǒng)的硬件層,內(nèi)嵌于主板上,度量代理模塊是操作系統(tǒng)的內(nèi)核模塊,度量代理模塊調(diào)用TPM進行度量、簽名都是通過安裝在操作系統(tǒng)的TPM驅(qū)動完成,而證明服務(wù)模塊運行于應(yīng)用服務(wù)層,在操作系統(tǒng)之上,與TPM無直接關(guān)聯(lián),證明服務(wù)模塊通過操作系統(tǒng)的消息通訊機制進行數(shù)據(jù)的傳遞。
上述的驗證方可由驗證方服務(wù)器和資源服務(wù)器構(gòu)成,運行在一個相對獨立的受保護網(wǎng)絡(luò)中,該受保護網(wǎng)絡(luò)通過網(wǎng)絡(luò)接入點控制一切來自外部的網(wǎng)絡(luò)請求,驗證方服務(wù)器負責驗證來自證明方的完整性度量,驗證完畢后,向網(wǎng)絡(luò)接入點給出訪問控制判定結(jié)果,從而控制證明方的網(wǎng)絡(luò)訪問連接,只有經(jīng)過驗證的證明方的訪問才允許訪問資源服務(wù)器。
本發(fā)明基于安全需求的遠程證明系統(tǒng)中,在證明方(服務(wù)請求者)請求驗證方(服務(wù)提供者)的某種服務(wù)前,證明方利用可信平臺的安全特性向驗證方證明平臺運行環(huán)境滿足服務(wù)所限定的安全要求。電子銀行應(yīng)用中的用戶和銀行,VPN應(yīng)用中的遠程用戶和VPN服務(wù)器,這些實際應(yīng)用實例對應(yīng)該遠程證明系統(tǒng)的證明方和驗證方。
證明權(quán)威機構(gòu)是一個具有公信力的可信第三方,負責輔助驗證方驗證平臺的完整性度量日志。系統(tǒng)平臺的軟硬件生產(chǎn)商對外發(fā)布其組建度量標準值,證明權(quán)威機構(gòu)收集組件度量標準值,驗證過程時核實證明方度量日志的正確性。若遇到未知組件的度量日志驗證,證明權(quán)威機構(gòu)要么直接向組件生產(chǎn)者查詢,要么間接向其他證明權(quán)威機構(gòu)詢問完成驗證。
證明權(quán)威機構(gòu)的另一重要功能便是實現(xiàn)遠程證明中的度量和證明相互分離。證明方匯總平臺組件信息,向證明權(quán)威機構(gòu)申請度量屬性證書。度量屬性證書包含組件描述信息和組件的全部度量點聲明,若驗證方請求證明組件A,那么按照組件A的描述信息和度量點聲明TPM就能完成組件A的度量。驗證方根據(jù)實際應(yīng)用的安全需求,從證明權(quán)威處獲取證明屬性證書,證明屬性證書中包含需要證明的組件列表。度量屬性證書和證明屬性證書都由證明權(quán)威機構(gòu)發(fā)布,兩者既分開創(chuàng)建又相互關(guān)聯(lián),由證明權(quán)威機構(gòu)保證其真實性。
本發(fā)明基于安全需求的遠程證明的平臺度量過程和驗證過程都進行嚴格的定義,度量和證明在證明方、驗證方、證明權(quán)威機構(gòu)三方中相互協(xié)同完成。該遠程證明方法將度量和證明分離,由證明方平臺的TPM按照驗證方的安全需求度量,證明平臺配置信息,證明過程中只需進行簡單的度量證明匹配,避免了無效平臺信息的度量和驗證,減少了度量和證明的復雜度。度量的平臺配置信息以加密形式傳輸,防止了平臺配置隱私的泄露。該遠程證明易于證明方、驗證方靈活配置,無需進行證明協(xié)商。該方法不但可應(yīng)用于單向的遠程證明,經(jīng)過簡單擴展還可應(yīng)用于雙向遠程證明。具體而言,該方法的優(yōu)點在于1)由驗證方發(fā)起,遠程證明的內(nèi)容是由驗證方的安全需求所確定,不同的安全需求,證明內(nèi)容和平臺度量不同。而證明方發(fā)起的遠程證明的內(nèi)容則是證明方平臺的整個運行環(huán)境,與之相比,避免了眾多與安全需求無關(guān)的無效證明信息,同時也避免了整個平臺配置信息的泄漏。
2)度量時由證明方按照特有的度量函數(shù)進行度量,證明時則由證明權(quán)威機構(gòu)和驗證方按照專用的驗證函數(shù)進行驗證,不需要度量和驗證的協(xié)商。這將遠程證明中度量和證明兩者分離,證明過程只進行簡單度量證明匹配,就保證了證明方度量內(nèi)容和驗證方驗證要求的一致性。
3)采用加密平臺完整性度量結(jié)果的方法,保護平臺配置隱私,避免在驗證方泄漏平臺配置信息。而加密的平臺度量結(jié)果在可信第三方能夠解密驗證。
4)采用協(xié)同驗證的方法,驗證完整性度量中間結(jié)果是在可信第三方進行,而完整性簽名,可信平臺身份標識,驗證完整性度量最終結(jié)果是在驗證方進行,這能防止證明方偽造證明消息,篡改通訊消息欺騙驗證方,同時也能防止可信第三方給出錯誤的驗證結(jié)果欺騙驗證方。
圖1是本發(fā)明基于安全需求的遠程證明方法步驟示意圖。
圖2是本發(fā)明基于安全需求的遠程證明方法流程圖。
圖3是本發(fā)明的證明方系統(tǒng)模塊構(gòu)成圖。
圖4是本發(fā)明實施例基于安全需求的遠程證明系統(tǒng)結(jié)構(gòu)示意圖。
具體實施例方式
下面通過實施例,結(jié)合附圖進一步說明本發(fā)明,但不以任何方式限制本發(fā)明的范圍。
基于安全需求的遠程證明流程,結(jié)合可信計算平臺的可信引導、平臺組件度量、可信網(wǎng)絡(luò)連接,我們實現(xiàn)基于安全需求的可信網(wǎng)絡(luò)連接遠程證明系統(tǒng)。詳細的系統(tǒng)結(jié)構(gòu)參照圖4,該遠程系統(tǒng)的應(yīng)用場景是,證明方試圖訪問受保護網(wǎng)絡(luò)中的資源服務(wù)器R,首先必須經(jīng)過驗證方服務(wù)器完整性驗證后,才允許訪問。證明系統(tǒng)的證明方是一臺帶有TPM安全芯片的計算機,在系統(tǒng)內(nèi)核層運行作度量代理內(nèi)核模塊,按照證明需求完成平臺配置完整性收集,度量代理之上是負責與驗證方服務(wù)器通訊的證明服務(wù)模塊。證明方通過開放的Internet訪問受保護網(wǎng)絡(luò)P。驗證方則是由驗證方服務(wù)器V,資源服務(wù)器R構(gòu)成,驗證方位于受保護網(wǎng)絡(luò)P中。受保護網(wǎng)絡(luò)P由網(wǎng)絡(luò)接入點C、驗證方服務(wù)器V、資源服務(wù)器R構(gòu)成。C控制一切外部的網(wǎng)絡(luò)請求,未經(jīng)驗證的網(wǎng)絡(luò)請求一律轉(zhuǎn)發(fā)至驗證服務(wù)器V進行安全驗證,被拒絕的證明方A的網(wǎng)絡(luò)連接將被禁止,只有經(jīng)過驗證的證明方A的訪問才允許訪問資源服務(wù)器R。驗證方服務(wù)器V負責驗證來自請求方的完整性度量,驗證完畢后,向網(wǎng)絡(luò)接入點C給出訪問控制判定結(jié)果,控制證明方的網(wǎng)絡(luò)訪問連接。
基于安全的遠程證明系統(tǒng)實現(xiàn)中,驗證方選取的安全需求是驗證證明方的安全啟動流程、操作系統(tǒng)補丁、防病毒軟件、防火墻軟件的安全性,通過TPM度量系統(tǒng)啟動過程和系統(tǒng)組件,向遠程方證明計算機系統(tǒng)運行環(huán)境是可信的,驗證是否允許計算機接入受保護網(wǎng)絡(luò)。
系統(tǒng)的各臺計算機和網(wǎng)絡(luò)設(shè)備布置完畢后,緊接著初始化整個證明系統(tǒng)。首先驗證方V向證明權(quán)威AA請求證明屬性證書,AA頒發(fā)X.509 v4.0的屬性證書,屬性證書中的屬性域包含可信引導、操作系統(tǒng)補丁、防病毒軟件、防火墻軟件等4項要求證明的組件。然后是證明方獲取度量證書,證明方向AA系統(tǒng)請求度量屬性證書,度量屬性證書中包含系統(tǒng)常用組件的度量點,上面所提到的4個組件的度量點必須包括在內(nèi)。
證明方并不是隨意度量,驗證方都能驗證成功的,還得遵循一定的約定或規(guī)則。基于安全需求的遠程證明,度量流程和證明流程必須要制定明確的規(guī)則,這個系統(tǒng)中我們制定了組件級的度量流程和驗證流程,把度量(驗證)請求作為輸入,度量(驗證)結(jié)果作為輸出,定義了MEASURE和VERIFY函數(shù)描述度量流程和驗證流程。平臺度量的基礎(chǔ)是組件的度量,下面首先定義組件的度量,然后定義平臺的度量過程為函數(shù)MEASURE。
假定可信計算平臺配置為CONF={C1,C2,C3,...,CN};Ci的度量點集合為MP_SET(Ci)={MCi,1,MCi,2,...,MCi,Ki};Ci的度量值列表集合為ML_SET(Ci)={ICi,1,ICi,2,...,ICi,ki},其中ICi,j=SHA1(MCi,j),是度量點MCi,j的度量值,j=1,2,...,Ki。
定義組件Ci的度量函數(shù)MEASURE(Ci,MP_SET(Ci)),度量函數(shù)描述如下函數(shù)輸入Ci,MP_SET(Ci)={MCi,1,MCi,2,...,MCi,ki},ML_SET(Ci)={};初始化組件Ci的度量PCR設(shè)為virtPCR(Ci)=0;度量點標號j=1;PCR的擴展運算為PCR_Extend;輸出ML_SET(Ci),virtPCR(Cj)。
1.從MP_SET(Ci)中選取MCi,j,組件Ci的度量點MCi,j,ICi,j=SHA1(MCi,j);2.ML_SET(Ci)=ML_SET(Ci)∪{ICi,j};3.virtPCR(Ci)=PCR_Extend(virtPCR(Ci),ICi,j);4.IF j==Ki;THEN完成組件Ci的度量,結(jié)束;ELSE j=+1,跳到第(1)步繼續(xù)度量。
在對組件進行度量的基礎(chǔ)上,對于整個平臺配置,證明方實現(xiàn)的平臺的度量函數(shù)為MEASURE(CONF,MP_SET(CONF))={MEASURE(Ci,MP_SET(Ci))},i=1,2,...,N。整個平臺的度量結(jié)果是MEASURE(CONF,MP_SET(CONF))={ML,virtPCR};其中ML={ML_SET(C1),virtPCR(C1),ML_SET(C2),virtPCR(C2),...,ML_SET(CN),virtPCR(CN)}總的PCR值virtPCR(對virtPCR(Ci)值的綜合擴展),virtPCR按如下方法計算virtPCR=0;FOR i=1TO N DOvirtPCR=PCR_Extend(virtPCR,virtPCR(Ci))所以度量函數(shù)定義為MEASURE(CONF,MP_SET(CONF))={ML,virtPCR}-----------------------函數(shù)1證明權(quán)威機構(gòu)AA進行平臺的完整性值的驗證過程定義驗證函數(shù)為VERIFY(ML)1.驗證完整性值ML={ML_SET(C1),virtPCR(C1),ML_SET(C2),virtPCR(C2),...,ML_SET(CN),virtPCR(CN)};i=1,2,...,L,依次驗證ML_SET(Ci),驗證組件Ci的度量值是否和完整性值數(shù)據(jù)庫中存儲的標準值一致。
2.驗證PCR值步驟1的驗證結(jié)果如果不一致,vRet=false,停止驗證;如果一致,ML_SET(Ci)={ICi,1,ICi,2,...,ICi,Ki},驗證virtPCR(Ci)tPCR=0FOR j=1TO KiDOtPCR=PCR_Extend(tPCR,ICi,j);3.比較tPCR與virtPCR(Ci)是否一致,如果不一致,vRet=false,停止驗證。
計算總的PCR值如果所有組件都驗證成功,vRet=true,計算平臺總的PCRvPCR=0;FOR i=1TO L DOvPCR=PCR_Extend(vPCR,virtPCR(Ci));驗證函數(shù)返回VERIFY(ML)={vRet,vPCR}。
所以驗證函數(shù)定義為VERIFY(ML)={vRet,vPCR}--------------------------------------函數(shù)2基于上述的度量和驗證函數(shù),本發(fā)明安全需求的遠程證明方法整個過程七個步驟可分為兩個階段度量階段和證明階段,詳述如下(參見圖1和圖2,其中簡記證明方--A;驗證方--V;證明權(quán)威機構(gòu)--AA;證明服務(wù)--AS;度量代理--MA)度量階段只有證明方和驗證方參與,其功能是證明方按照驗證方的證明請求,通過底層可信平臺模塊TPM對可信計算平臺進行度量。度量階段包括下列步驟1~31 V---->A隨機數(shù)RN,證明屬性證書(1)A認證V的身份,只有V是A的合法用戶,A的內(nèi)部模塊AS才有必要提供遠程證明。
(2)V向AS發(fā)送隨機數(shù)RN和證明屬性證書。
2 A度量過程(1)證明服務(wù)AS驗證度量代理MA的完整性,AS從證明屬性證書中獲取需要證明的平臺配置reqCONF,AS將reqCONF發(fā)送給MA;(2)MA從度量屬性證書中獲取度量點列表MP_SET(CONF);如果reqCONFCONF,CONF為整個證明方平臺組件配置,reqCONFCONF表明平臺配置滿足證明屬性證書的要求,否則終止證明,通知V證明失敗。MA對請求的平臺配置reqCONF,使用TPM采用MEASURE度量方法(函數(shù)1)進行度量,其結(jié)果為MEASURE(reqCONF,MP_SET(reqCONF))={ML,virtPCR}。
該步驟中,TPM度量的不是全部平臺組件配置CONF,而是僅僅度量了與驗證方安全需求相關(guān)的平臺配置reqCONF,這大大減少了無效配置信息的度量和驗證,提高了遠程證明的效率。
(3)MA產(chǎn)生一個對稱密鑰s_key,用s_key加密度量結(jié)果,用AA的公鑰加密對稱密鑰,sML=Encs_key(ML),sKey=EncAA_pubkey(s_key)。MA驗證AS的完整性,將sML,sKey發(fā)送給AS。度量日志ML是被加密傳送的,僅僅只有證明權(quán)威機構(gòu)AA才能解密度量日志進行驗證,驗證方V僅僅獲得的是度量日志的密文,不會泄露平臺配置信息。
(4)AS將隨機數(shù)m發(fā)送給TPM,TPM對度量結(jié)果進行簽名Quote=SignAIK_priv{virtPCR,m},將簽名結(jié)果和TPM身份證書CertTPM返回給AS。
TPM對平臺度量最終結(jié)果PCR值進行簽名,保證證明結(jié)果的不可篡改。
3 A---->VQuote,sML,sKey,CertTPMA將加密的度量結(jié)果sML,sKey,TPM簽名結(jié)果Quote=SignAIK_priv{virtPCR,rn},TPM證書CertTPM發(fā)送給V。
證明階段只有驗證方和證明權(quán)威機構(gòu)參與,其功能是證明權(quán)威機構(gòu)驗證平臺完整性度量結(jié)果,驗證方驗證平臺度量的最終結(jié)果。證明階段包括下列步驟4~74 V---->AAsML,sKeyV保留TPM的簽名結(jié)果Quote,CertTPM,作為最終驗證,將加密的度量結(jié)果sML,sKey發(fā)送給AA。
5 AA驗證(1)AA用私鑰解密對稱密鑰s_key,再用對稱密鑰s_key解密度量結(jié)果ML,s_key=DecAA_priv(sKey),ML=Decs_key(sML);(2)AA利用收集的度量標準值驗證度量列表ML,采用VERIFY驗證方法(函數(shù)2)進行平臺完整性值的驗證,VERIFY(ML)={vRet,vPCR}。
6 AA---->VvRet,vPCRAA將驗證結(jié)果發(fā)送給V。
7 V最終驗證(1)V用Privacy-CA的根證書驗證TPM證書,VeriryCert(CertTPM,CertPrivacyCA);(2)V驗證AA的證明結(jié)果vRet,vRet是否為真;(3)V使用TPM的公鑰驗證TPM簽名,VerifyAIK_pubkey{(virtPCR,rn),Quote},驗證成功后比較總的PCR值virtPCR是否與AA計算結(jié)果vPCR一致;(4)V驗證TPM簽名用的隨機數(shù)rn是否和請求時的隨機數(shù)RN相同。
只有通過了上述4步驗證,才能說明證明方A遠程證明成功。
綜上所述,基于安全需求的可信網(wǎng)絡(luò)連接遠程證明系統(tǒng)中,驗證方首先發(fā)送證明請求和防止重放攻擊的隨機數(shù),證明服務(wù)解析證明請求,從證明屬性證書中提取需要度量的組件,將請求轉(zhuǎn)發(fā)給度量代理,度量代理從度量屬性證書中提取度量點,按照函數(shù)1MEASURE對請求的組件進行度量,完整性日志以XML消息格式構(gòu)建。度量代理產(chǎn)生RC4密碼算法密鑰,對度量日志進行加密,RC4密鑰再用AA的公鑰進行加密。證明方平臺可信引導采用的是Grub,操作系統(tǒng)是Windows XP,防病毒軟件是Norton Antivirus,防火墻是NortonInternet Security。度量完成后,證明服務(wù)請求TPM對平臺配置狀態(tài)進行簽名,最后證明服務(wù)將證明數(shù)據(jù)發(fā)送給驗證方。驗證方接收到證明數(shù)據(jù),首先向AA請求驗證度量日志,AA使用自己的私鑰解密RC4對稱密鑰,再解密日志按照函數(shù)2VERIFY進行驗證,AA將中間驗證結(jié)果返回給驗證者。驗證方V最終驗證證明方A的身份證書鏈,驗證TPM的簽名,計算出PCR值驗證最終結(jié)果。V根據(jù)驗證結(jié)果給出是否允許接入網(wǎng)絡(luò),驅(qū)使網(wǎng)絡(luò)接入點C控制證明方的網(wǎng)絡(luò)連接。
權(quán)利要求
1.一種遠程證明方法,包括如下步驟(1)驗證方根據(jù)從證明權(quán)威機構(gòu)獲取的證明屬性證書創(chuàng)建證明請求,并將證明請求發(fā)送給證明方;(2)證明方收到驗證方發(fā)送的證明請求后,根據(jù)驗證方要求證明的內(nèi)容和證明權(quán)威機構(gòu)頒發(fā)的度量屬性證書,由證明方的可信平臺模塊實施系統(tǒng)組件度量,加密度量日志,對其內(nèi)部平臺配置寄存器存儲的最終度量結(jié)果簽名;(3)證明方將加密的度量日志、最終度量結(jié)果及其簽名結(jié)果發(fā)送給驗證方;(4)驗證方保留最終度量結(jié)果及其簽名,而將加密的度量日志發(fā)送給證明權(quán)威機構(gòu);(5)證明權(quán)威機構(gòu)對驗證方發(fā)送的加密度量日志進行驗證;(6)證明權(quán)威機構(gòu)將以度量日志計算的最終度量結(jié)果和驗證結(jié)果發(fā)送給驗證方;(7)如果證明權(quán)威機構(gòu)驗證結(jié)果為通過驗證,驗證方比較證明權(quán)威機構(gòu)計算的最終度量結(jié)果和證明方發(fā)送的最終度量結(jié)果,二者一致則驗證度量結(jié)果的簽名,從而最終確保證明方的可信性。
2.如權(quán)利要求1所述的遠程證明方法,其特征在于,所述步驟(2)具體包括下列步驟2-1.證明方的證明服務(wù)模塊從驗證方的證明屬性證書中,解析得到需要證明的平臺組件,將要證明的組件列表發(fā)送給度量代理模塊;2-2.度量代理模塊驗證當前的平臺組件是否與需要證明的平臺組件匹配,如果不匹配則退出證明,匹配則度量代理模塊使用可信平臺模塊按照下述步驟a~e實施組件度量a).從需要證明的平臺組件中,選取某一組件C;b).用SHA1算法依次度量組件C的度量點,度量代理模塊保存C的度量日志;c).度量代理模塊使用TPM_Extend方法得到組件C的度量值h(C);d).如果全部需要證明的組件已經(jīng)度量完成,跳到步驟e執(zhí)行,否則跳回步驟a繼續(xù)執(zhí)行;e).度量代理模塊將步驟c得到的全部組件的度量值h(C),依次擴展可信平臺模塊內(nèi)部的平臺配置寄存器,得到最終度量值;2-3.度量代理模塊加密全部組件度量日志,然后將加密的度量日志發(fā)送給證明服務(wù)模塊;2-4.可信平臺模塊使用平臺身份密鑰對最終的度量結(jié)果簽名,將最終度量結(jié)果、簽名結(jié)果、可信平臺模塊身份證書發(fā)送給證明服務(wù)模塊。
3.如權(quán)利要求2所述的遠程證明方法,其特征在于,所述步驟(5)證明權(quán)威機構(gòu)對度量日志解密后,利用收集的標準度量值,按照下列步驟進行完整性驗證5-1.依次驗證證明方組件度量日志,從證明方度量日志中選取組件C的度量日志,比較組件各個度量點的度量值是否和發(fā)布的標準值一致,如果不一致則驗證失?。?-2.重新計算組件C的度量值,按照TPM_Extend方法依次擴展各個度量點的值,得到組件C的度量值;5-3.比較組件C的度量值是否與標準值一致,如果不相等則驗證失敗,如果已經(jīng)完成全部組件的驗證,跳至步驟5-4執(zhí)行,否則繼續(xù)執(zhí)行步驟5-1;5-4.按照TPM_Extend方法依次擴展各個組件的度量值,計算出最終的平臺度量值,然后證明權(quán)威機構(gòu)將驗證結(jié)果、最終的度量值發(fā)送給驗證方。
4.如權(quán)利要求1~3中任一項權(quán)利要求所述的遠程證明方法,其特征在于,所述步驟2中的加密過程為證明方生成對稱密鑰,對度量日志加密,并利用證明權(quán)威機構(gòu)的公鑰加密對稱密鑰,相應(yīng)的,在步驟5證明權(quán)威機構(gòu)收到驗證方發(fā)送來的加密度量日志后,首先使用自己的私鑰解密加密的對稱密鑰,然后再使用對稱密鑰解密經(jīng)過加密的度量日志。
5.一種遠程證明系統(tǒng),包括證明方、驗證方和證明權(quán)威機構(gòu)三方,三者之間通過互聯(lián)網(wǎng)進行通訊連接,由驗證方根據(jù)安全需求發(fā)起證明請求,證明方按照請求度量平臺配置,證明權(quán)威機構(gòu)驗證度量結(jié)果,最終由驗證方判定是否信任證明方,所述證明方包括證明服務(wù)模塊、度量代理模塊和可信平臺模塊,其中證明服務(wù)模塊運行于應(yīng)用服務(wù)層,在操作系統(tǒng)之上,通過操作系統(tǒng)的消息通訊機制進行數(shù)據(jù)的傳遞,接收驗證方的證明請求,負責與遠程驗證方進行通信;度量代理模塊是操作系統(tǒng)的內(nèi)核模塊,可信平臺模塊在度量代理模塊的驅(qū)動下按照證明要求度量平臺配置,組建遠程證明相關(guān)的證明數(shù)據(jù);可信平臺模塊位于證明方計算機系統(tǒng)的硬件層,內(nèi)嵌于主板上,完成具體的雜湊計算、加密和簽名操作。
6.如權(quán)利要求5所述的遠程證明系統(tǒng),其特征在于,所述的驗證方由驗證方服務(wù)器和資源服務(wù)器構(gòu)成,運行在一個相對獨立的受保護網(wǎng)絡(luò)中,該受保護網(wǎng)絡(luò)通過網(wǎng)絡(luò)接入點控制一切來自外部的網(wǎng)絡(luò)請求,驗證方服務(wù)器負責驗證來自證明方的完整性度量,驗證完畢后,向網(wǎng)絡(luò)接入點給出訪問控制判定結(jié)果,只有通過驗證的證明方才允許訪問資源服務(wù)器。
全文摘要
本發(fā)明提供了一種基于驗證方安全需求的遠程證明方法及其系統(tǒng),該遠程證明方法基于可信計算平臺,對其平臺度量過程和驗證過程都進行嚴格的定義,度量和證明在證明方、驗證方、證明權(quán)威機構(gòu)三方中相互協(xié)同完成驗證方根據(jù)安全需求發(fā)起證明請求,證明方按照請求度量平臺配置,證明權(quán)威驗證度量結(jié)果,最終由驗證方判定是否信任證明方平臺。與其他遠程證明方法相比,本發(fā)明將度量和證明分離,證明過程中只需進行簡單的度量證明匹配,擁有按安全需求度量證明、平臺隱私保護、系統(tǒng)配置靈活等特色,不但應(yīng)用于單向的遠程證明,經(jīng)過簡單擴展還可應(yīng)用于雙向遠程證明。
文檔編號H04L12/24GK101043338SQ20071009881
公開日2007年9月26日 申請日期2007年4月27日 優(yōu)先權(quán)日2007年4月27日
發(fā)明者馮登國, 秦宇, 徐震 申請人:中國科學院軟件研究所