田俊峰,李天樂
?
基于TPA云聯(lián)盟的數(shù)據(jù)完整性驗證模型
田俊峰1,2,李天樂1,2
(1. 河北大學(xué)網(wǎng)絡(luò)空間安全與計算機學(xué)院,河北 保定 071002; 2. 河北省高可信信息系統(tǒng)重點實驗室,河北 保定 071002)
針對公有性驗證模型中第三方審計機構(gòu)(TPA, third-party auditor)不可信問題,提出基于TPA云聯(lián)盟的數(shù)據(jù)完整性驗證模型。首先,設(shè)計TPA云聯(lián)盟的體系結(jié)構(gòu)并定義系統(tǒng)平臺的主要功能組件及作用,聯(lián)盟可以對TPA云成員進行管理和控制。其次,利用可信計算技術(shù)和區(qū)塊鏈技術(shù)對TPA進行詳細的設(shè)計,確保TPA執(zhí)行環(huán)境和工作流程的可信性。最后,利用TPA云聯(lián)盟構(gòu)建數(shù)據(jù)完整性驗證模型,并對模型的正確性、安全性和有效性進行理論和實驗分析。
數(shù)據(jù)完整性驗證;區(qū)塊鏈;可信計算;第三方審計機構(gòu)
隨著移動互聯(lián)網(wǎng)、物聯(lián)網(wǎng)、大數(shù)據(jù)時代的到來,數(shù)據(jù)量呈指數(shù)級增長趨勢,個人的存儲能力已無法滿足現(xiàn)有的存儲需求。云存儲(cloud storage)[1]是基于云計算衍生出來的概念,即為滿足云計算系統(tǒng)海量的數(shù)據(jù)存儲空間而產(chǎn)生的。其通過集群應(yīng)用、網(wǎng)絡(luò)技術(shù)或分布式文件系統(tǒng)等功能,將網(wǎng)絡(luò)中大量各種不同類型的存儲設(shè)備通過應(yīng)用軟件集成起來協(xié)同工作,共同對外提供數(shù)據(jù)存儲和業(yè)務(wù)訪問功能。通過云存儲系統(tǒng),用戶可以采用按需付費的方式,利用較小的花費即可在云端得到更強大的存儲能力。然而用戶將數(shù)據(jù)存儲在云端,并將本地數(shù)據(jù)刪除,失去了對數(shù)據(jù)的實質(zhì)性控制。云端是否完整地持有用戶的數(shù)據(jù)、怎樣證明云端持有用戶數(shù)據(jù)的正確性等問題引起了學(xué)術(shù)界的廣泛關(guān)注。
不可信云存儲服務(wù)商(CSP, cloud storage provider)是否完整地持有用戶的數(shù)據(jù),是近年來在云存儲安全領(lǐng)域內(nèi)備受關(guān)注的問題。目前,對于驗證云存儲服務(wù)商或入侵者有沒有對用戶存儲的數(shù)據(jù)進行惡意的刪除、修改等行為,研究者們提出2類校驗?zāi)P停簲?shù)據(jù)持有性證明(PDP, provable data possession)和數(shù)據(jù)可恢復(fù)性證明(POR, proof of retrievability)。前者可以驗證數(shù)據(jù)是否被云端正確地持有;后者可以對丟失、損壞的數(shù)據(jù)進行一定的恢復(fù)。此外,參照驗證者身份,驗證方案可以分為2種:私有驗證方案和公開驗證方案。相較于私有驗證,設(shè)有第三方審計機構(gòu)TPA的公開驗證更好地支持了公開審計、動態(tài)更新、驗證高效等審計特點。
Ateniese等[2]首先提出了PDP的概念,利用基于RSA的驗證方法和同態(tài)驗證標簽(HVT, homomorphic verifiable tag)來進行文件塊的完整性驗證工作,并利用概率性驗證方案,有效地減少了計算代價和通信開銷。Wang等[3]采用在同等安全條件下比RSA和DSA更短的BLS簽名技術(shù)構(gòu)造數(shù)據(jù)標簽進行驗證。由于BLS簽名機制的同態(tài)特性,可將多個簽名聚集為一個簽名進行統(tǒng)一驗證,使基于BLS簽名的驗證方案存儲代價和通信開銷大大減少。此外,基于BLS簽名的PDP機制是一種公開驗證機制,用戶可以將煩瑣的審計任務(wù)交給TPA來完成,減輕了用戶的計算開銷,提高了整個方案的效率。在公開審計過程中,第三方可能利用多次審計中的線性組合方程式進行高斯消元,從而竊取用戶的數(shù)據(jù)。針對審計過程中可能泄露用戶數(shù)據(jù)隱私的問題,Wang等[4]采用隨機掩碼技術(shù),利用隨機置換函數(shù)保證用戶的數(shù)據(jù)不會泄露給TPA或云存儲提供商。針對動態(tài)更新驗證問題,Erway等[5]首先考慮引入動態(tài)數(shù)據(jù)結(jié)構(gòu)來支持全動態(tài)操作,提出基于跳表的PDP機制來驗證動態(tài)操作。利用認證跳躍表的數(shù)據(jù)結(jié)構(gòu),根據(jù)云存儲服務(wù)器返回的認證路徑、標簽信息和本地存儲的認證元數(shù)據(jù)判斷數(shù)據(jù)塊在位置上是否正確。Wang等[6]提出基于Merkle樹的數(shù)據(jù)結(jié)構(gòu)來驗證動態(tài)更新操作。與Erway等[5]不同的是,數(shù)據(jù)標簽并沒有參與動態(tài)結(jié)構(gòu)中根節(jié)點散列值的計算,而是利用構(gòu)造的Merkle認證散列樹中的根散列值和某個葉子節(jié)點的輔助認證信息來保證云存儲提供商的動態(tài)操作更新的正確性。此外,Wang等[4]提出數(shù)據(jù)驗證文件批審計(batch auditing)的概念。TPA如果同時處理多個審計任務(wù)請求時,單個處理起來會非常煩瑣和浪費資源。如果將不同的審計請求的線性簽名聚合成一個簽名,使TPA進行一次審計,則大大提高了審計效率。
以上的公開審計驗證模型中,大多數(shù)都是在假設(shè)TPA是可信的前提下來完成整個數(shù)據(jù)完整性驗證工作的。然而在實際應(yīng)用中,TPA內(nèi)部的工作流程及其可信性都需要進一步的研究和證明。雖然可以利用加密數(shù)據(jù)塊以及隨機掩碼等技術(shù)防止原始數(shù)據(jù)在TPA中泄露。然而,對于用戶來說,TPA是一個黑盒子,其內(nèi)部構(gòu)造和運作流程都不得而知。在現(xiàn)實中,TPA有可能與CSP串謀對用戶進行攻擊,即無論CSP中用戶數(shù)據(jù)是否完整,返回給用戶的完整性驗證結(jié)果都是驗證成功的。此外,TPA還有可能與用戶進行串謀(或被其他CSP競爭者賄賂),故意驗證失敗CSP生成的證明,這時返回用戶的完整性驗證結(jié)果都是驗證失敗。
Xu等[7]利用加密的審計方案和復(fù)審方案來保證TPA在規(guī)定時間內(nèi)完成數(shù)據(jù)完整性驗證。在此基礎(chǔ)上,Huang等[8]采用多個TPA進行審計的授權(quán),如果一個TPA不能被信任,它將會被撤銷并被其他TPA替換。然而文獻[7-8]的審計方案都定義了“time sever”和“receive sever”,而這2個實體的可信性和安全性有待進一步證明。Wu等[9]提出把TPA的驗證工作分為復(fù)雜的計算過程和簡單的驗證過程,前者由第三方審計機構(gòu)處理,后者由用戶自己驗證。肖達等[10]利用部署在云存儲服務(wù)器端的可信硬件來進行審計日志的生成與存儲,由于可信硬件的性能有限以及部署在不可信云存儲提供商等風(fēng)險,其安全性和可信性也有待進一步驗證。以上方案并沒有真正解決使TPA誠實可信地完成云用戶的審計任務(wù)。
針對如何構(gòu)建可信TPA以及利用可信TPA誠實可信地完成用戶的審計任務(wù),本文做了如下工作。
1) 設(shè)計TPA云聯(lián)盟的體系架構(gòu),利用TPA云聯(lián)盟管理平臺對TPA的運行進行管理和控制。
2) 設(shè)計TPA的邏輯框架,使其進行審計任務(wù)的工作流程透明化、可視化。
3) 構(gòu)造關(guān)于TPA可信度量值以及審計任務(wù)參數(shù)的區(qū)塊鏈,使TPA的狀態(tài)和行為可追溯。
4) 完成基于TPA云聯(lián)盟的數(shù)據(jù)完整性驗證模型,在保證可信TPA行為可信的同時,驗證存儲在不可信云存儲商的用戶數(shù)據(jù)的完整性。
本節(jié)定義了TPA云聯(lián)盟的體系架構(gòu)和功能模塊,利用聯(lián)盟對TPA進行管理和控制,利用可信計算技術(shù)和區(qū)塊鏈技術(shù)對TPA進行設(shè)計,包括TPA操作層的關(guān)鍵功能模塊以及TPA區(qū)塊鏈層可信區(qū)塊鏈的形成。
TPA云聯(lián)盟(CFTPA,cloud federation of TPA),是參考歐洲SUNFISH項目中云聯(lián)盟(FaaS, federation as a service)[11]與基于TPM聯(lián)盟的可信云平臺管理模型[12],為可信TPA而設(shè)計的一種云聯(lián)盟模型。TPA云聯(lián)盟保證了TPA可信的運行環(huán)境和誠實的驗證流程。此外,TPA云聯(lián)盟可以根據(jù)業(yè)務(wù)與隱私保護等級的不同,將政務(wù)、金融、醫(yī)療等機構(gòu)的驗證任務(wù)分配給符合要求的TPA云成員來進行處理。云聯(lián)盟中,分布式云成員之間通過P2P方式進行通信和交互,并通過TPA云聯(lián)盟管理平臺進行統(tǒng)一的管理與調(diào)度。
TPA云聯(lián)盟結(jié)構(gòu)如圖1所示。虛線內(nèi)的TPA表示多個TPA構(gòu)成的TPA云聯(lián)盟,每個TPA由TPM和vTPM構(gòu)成,可信計算基,為可信度量提供存儲、驗證、計算等功能。TPM與vTPM的組合體系結(jié)構(gòu)采用Berger等[13]提出的框架模型,vTPM的采用大大擴展了TPM的應(yīng)用場景,突破了TPM的性能瓶頸。TPA在vTPM創(chuàng)建的虛擬機中執(zhí)行相應(yīng)的審計任務(wù)。TPA邏輯結(jié)構(gòu)分為操作層和區(qū)塊鏈層。操作層進行數(shù)據(jù)完整性驗證工作流程,區(qū)塊鏈層收到操作層的日志記錄,形成關(guān)于可信度量值與審計日志記錄的不可更改區(qū)塊鏈。
圖1 TPA云聯(lián)盟結(jié)構(gòu)
TPA云聯(lián)盟管理平臺系統(tǒng)對TPA進行綜合的管理與調(diào)度,包括可信執(zhí)行環(huán)境度量、組件間的認證、審計方案的分配、TPA云資源的使用與注銷等。其主要功能組件有如下定義。
1) 身份管理組件:包括一系列認證功能的集合,認證管理TPA云成員、云用戶(CU)和聯(lián)盟管理員的身份注冊、注銷等功能,以及認證和管理平臺系統(tǒng)中各個組件的身份和正常功能;認證管理TPA云聯(lián)盟與管理平臺的系統(tǒng)交互;認證云用戶任務(wù)請求并通過VM管理開啟相應(yīng)云資源;認證云用戶與TPA通過數(shù)據(jù)保護組件進行交互;認證平臺組件通過加密令牌與區(qū)塊鏈的交互??傊?,身份管理組件是平臺系統(tǒng)中必不可少的組件,是所有任務(wù)流和數(shù)據(jù)流的認證校驗基礎(chǔ)。
2) VM管理組件:即虛擬機云資源的管理組件。在身份認證通過的情況下,可以根據(jù)業(yè)務(wù)需求和節(jié)點狀態(tài)對TPA云聯(lián)盟中的云資源進行開啟、關(guān)閉和掛起等命令。聯(lián)盟管理員一旦發(fā)現(xiàn)TPA行為異常,可對該TPA進行撤銷命令,并扣除相應(yīng)積分。特別地,一旦有云用戶向TPA云聯(lián)盟發(fā)起審計任務(wù),VM管理組件會根據(jù)參數(shù)信息(如花費或SLA協(xié)議[14])在TPA云聯(lián)盟中匹配到合適的TPA資源并提供給云用戶,還能提供其他公有云、私有云的交互API。
3) 審計方案管理:可以存儲高效優(yōu)秀的審計方案,并支持用戶自定義審計方案(需要通過安全審核);提供對審計方案的加密功能[7-8]。此外,如果對安全隱私要求較強的用戶,可采用強加密方案[15]。
4) 數(shù)據(jù)保護組件:數(shù)據(jù)保護組件旨在保證云用戶數(shù)據(jù)的安全。包括用戶要存儲在TPA的元數(shù)據(jù)以及對CSP返回的證據(jù)進行強制隨機掩碼處理[4]。并采用基于屬性的訪問控制(AAC, attribute-based access control)[16]協(xié)議,保證訪問控制協(xié)議與所使用的云資源服務(wù)相匹配,進而保證組件間的隱私保護。
5) 可信度量組件:負責(zé)管理監(jiān)控各個TPA中TPM可信證據(jù)收集與對比校驗工作。利用收集到的可信證據(jù)與基準數(shù)據(jù)庫進行對比校驗,實現(xiàn)對TPA啟動時的靜態(tài)完整性度量(包括BIOS、bootloader、OS、配置文件)和系統(tǒng)運行時的動態(tài)完整性度量(包括虛擬機、進程的可執(zhí)行文件、環(huán)境變量)。
如圖1的TPA邏輯框架所示,TPA的邏輯框架分為操作層和區(qū)塊鏈層。TPA的操作層邏輯框架如圖2所示。其中,空心粗箭頭表示數(shù)據(jù)的傳輸,實心細箭頭表示指令的發(fā)送。接下來,將詳細介紹各個模塊的功能及其在業(yè)務(wù)中的作用。
圖2 TPA的操作層邏輯框架
1) 接收用戶請求模塊(AURM, accept CU request module):分析用戶發(fā)送給TPA的請求。分為3種請求類型:第一種為存儲元數(shù)據(jù)請求,1即用戶發(fā)送經(jīng)過預(yù)處理過的原始數(shù)據(jù)到TPA的元數(shù)據(jù)庫;第二種為挑戰(zhàn)請求,1即用戶要求TPA生成正確格式的挑戰(zhàn)發(fā)送給CSP;第三種為更新請求,2即用戶傳達給TPA的更新要求。
2) 接收云存儲服務(wù)提供商結(jié)果模塊(APRM, accept CSP result module):接收并處理云存儲服務(wù)提供商的結(jié)果。第一種為CSP返回給TPA的“應(yīng)答”結(jié)果,由3發(fā)送給完整性驗證模塊;第二種為CSP返回給TPA的“更新”結(jié)果,由4發(fā)送給更新驗證模塊。
3) 生成挑戰(zhàn)模塊(GCM, generate challenge module):生成用戶進行完整性驗證請求的“挑戰(zhàn)”命令,并發(fā)送給CSP。根據(jù)收到的挑戰(zhàn)請求1,向元數(shù)據(jù)庫發(fā)送相關(guān)元數(shù)據(jù)2生成“挑戰(zhàn)”,最終發(fā)送給CSP。
4) 生成更新挑戰(zhàn)模塊(GUCM, generate update challeng module):對用戶的更新請求生成更新挑戰(zhàn)操作。收到更新挑戰(zhàn)請求2后,該模塊輸入5和相應(yīng)更新數(shù)據(jù)的位置信息等,生成更新挑戰(zhàn),并發(fā)送給CSP。同時,通過5保證存儲在元數(shù)據(jù)庫與存儲在CSP中的數(shù)據(jù)的一致性。
5) 更新驗證模塊(UVM, update verification module):對CSP發(fā)送來的更新結(jié)果進行更新驗證。輸入更新結(jié)果4、更新請求、更新后的元數(shù)據(jù)4,進行三方的更新校驗對比。確認CSP的“更新操作”是否正確,將輸出對比結(jié)果發(fā)送給用戶。
6) 完整性驗證模塊(IVM, integrity verification module):是TPA的關(guān)鍵模塊,其功能是完成對數(shù)據(jù)的完整性驗證。首先,收到處理后的“應(yīng)答”結(jié)果并向元數(shù)據(jù)庫調(diào)取標簽信息3;然后,根據(jù)挑戰(zhàn)、應(yīng)答3、元數(shù)據(jù)3,進行數(shù)據(jù)的完整性驗證,并將驗證結(jié)果發(fā)送給用戶。
7) 元數(shù)據(jù)庫(MDB, metadata database):是存儲用戶經(jīng)過特殊處理之后的元數(shù)據(jù)的一種特殊數(shù)據(jù)庫,以供生成挑戰(zhàn)模塊、生成更新模塊、更新校驗?zāi)K、完整性驗證模塊調(diào)取所需數(shù)據(jù)。
8) 操作日志模塊(OLM,operation log module):在規(guī)定時間間隔內(nèi)對TPA操作層的模塊間和模塊內(nèi)的操作進行記錄,并將數(shù)據(jù)記錄進行封裝,然后發(fā)送到區(qū)塊鏈網(wǎng)絡(luò)中。
TPA內(nèi)的區(qū)塊鏈層設(shè)置在TPA操作層的邏輯底層。在區(qū)塊鏈層內(nèi),有多個基于可信TPM的區(qū)塊鏈節(jié)點。網(wǎng)絡(luò)節(jié)點在區(qū)塊鏈層內(nèi)進行關(guān)于審計消息的廣播和計算,并記錄和存儲審計狀態(tài)和結(jié)果。所有TPA云聯(lián)盟成員的區(qū)塊鏈層節(jié)點構(gòu)成區(qū)塊鏈網(wǎng)絡(luò)。可信硬件平臺保障區(qū)塊層的節(jié)點完整性,區(qū)塊鏈網(wǎng)絡(luò)中的共識算法保障網(wǎng)絡(luò)節(jié)點的一致性。
圖3所示為區(qū)塊鏈層以及區(qū)塊鏈形成的示意。每個TPA的區(qū)塊鏈層內(nèi)的節(jié)點如圖3虛線橢圓部分所示,圖3中有2種類型的節(jié)點:領(lǐng)導(dǎo)節(jié)點和普通節(jié)點。領(lǐng)導(dǎo)節(jié)點在全網(wǎng)絡(luò)中負責(zé)把TPA的度量值和某時間段的操作記錄打包進區(qū)塊鏈中;普通節(jié)點負責(zé)收集TPA的可信度量值以及審計任務(wù)相關(guān)參數(shù)。2種節(jié)點都會在區(qū)塊鏈網(wǎng)絡(luò)中進行監(jiān)聽、接收、計算驗證、廣播信息等工作。2種節(jié)點的設(shè)置可以減輕單類型節(jié)點工作任務(wù)。
圖3虛線矩形部分即為區(qū)塊鏈示意。區(qū)塊由區(qū)塊頭和區(qū)塊體構(gòu)成。區(qū)塊頭中“前區(qū)塊的散列值”是指利用SHA256對前區(qū)塊進行計算,然后保存到當(dāng)前區(qū)塊中,其可以保證區(qū)塊鏈的鏈接和數(shù)據(jù)的不可更改;領(lǐng)導(dǎo)信息指形成此區(qū)塊的領(lǐng)導(dǎo)信息,即將此輪選舉出的節(jié)點信息保存在區(qū)塊中,可供回溯查詢相關(guān)信息;時間戳確定了區(qū)塊的寫入時間,同時使區(qū)塊鏈具有時序的性質(zhì),且時間戳可以作為區(qū)塊數(shù)據(jù)的存在性證明,有助于形成不可篡改、不可偽造的分布式賬本;Merkle根表示TPA中可信證據(jù)收集到的度量值進行兩兩散列運算的最終所得結(jié)果。區(qū)塊體中除了包括在TPA中收集到的各組件、系統(tǒng)、軟件運行狀態(tài)的度量值外,還包括TPA審計任務(wù)的相關(guān)信息,例如,審計任務(wù)ID、云用戶的ID、云存儲服務(wù)商的ID以及此次審計任務(wù)的具體方案和資源花費、時間花費等。
圖3 TPA區(qū)塊鏈層和區(qū)塊鏈形成示意
基于PBFT算法[17-18]以及POS權(quán)益證明方法[19],并結(jié)合本文設(shè)計的TPA以及數(shù)據(jù)完整性驗證的特點,提出TPA領(lǐng)導(dǎo)選舉共識算法(TPA-LECA,TPA-leader election consensus algorithm),具體步驟如下。
1) 操作記錄模塊收集工作層的可信證據(jù),在區(qū)塊鏈網(wǎng)絡(luò)中持續(xù)廣播數(shù)據(jù)驗證信息(CU,CSP,TPA,int, OPR)。其中,CU表示云存儲用戶的一個度量值,由用戶所屬行業(yè)數(shù)據(jù)的機密性和重要性以及在TPA云聯(lián)盟平臺的注冊時長和良好的用戶行為決定;CSP表示云存儲提供商的一個度量值,由CSP返回“應(yīng)答”效率以及數(shù)據(jù)完整性驗證成功情況確定;TPA表示TPA云聯(lián)盟中的TPA成員的度量值,由TPA的工作效率、完整性度量結(jié)果和審計任務(wù)參數(shù)決定;int表示記錄此操作的時間間隔;OPR表示在此時間間隔內(nèi)TPA操作層進行的操作。
2) 所有節(jié)點均獨立監(jiān)聽區(qū)塊鏈網(wǎng)絡(luò)中的廣播信息并記錄。
3) 經(jīng)過時間間隔后,各節(jié)點均把自己監(jiān)聽到的廣播信息以及自己的簽名(CU,CSP,TPA,int, OPR,)發(fā)送到區(qū)塊鏈網(wǎng)絡(luò),其中,表示權(quán)值,為各特征項與權(quán)重的乘積之和。
4) 各節(jié)點根據(jù)表1自動計算各節(jié)點的權(quán)值,并將權(quán)值最大的節(jié)點信息向區(qū)塊鏈網(wǎng)絡(luò)中廣播。
表1 特征項權(quán)值參考
5) 任意節(jié)點收到超過個(與節(jié)點總數(shù)有關(guān),根據(jù)系統(tǒng)的容錯能力而定)相同回應(yīng)信息后,則達成共識。此相同信息中的簽名者即本輪共識的領(lǐng)導(dǎo),它負責(zé)將可信度量值和操作記錄等信息打包進新的區(qū)塊;作為領(lǐng)導(dǎo)節(jié)點的獎勵,包含領(lǐng)導(dǎo)節(jié)點的TPA節(jié)點池會提高相應(yīng)單個TPA的度量值TPA。
6) 新區(qū)塊完成后,各節(jié)點將之前的信息刪除,并開始下一輪的共識。
區(qū)塊鏈網(wǎng)絡(luò)中的各個節(jié)點監(jiān)聽全網(wǎng)操作記錄以及在接收到操作記錄的信息后,需要對操作記錄進行合法性的驗證。如果發(fā)現(xiàn)非法的操作記錄,則不寫入其記賬本;如果非法操作記錄包含在領(lǐng)導(dǎo)節(jié)點打包的區(qū)塊中,則放棄本輪共識結(jié)果,重新進行下一輪的共識過程。操作記錄的驗證流程如下所示。
1) 操作記錄的數(shù)據(jù)格式是否符合系統(tǒng)規(guī)則,如果不符合則判定為非法。
2) 操作記錄的行為是否符合系統(tǒng)規(guī)則,如果不符合則判定為非法。
3) 操作記錄在區(qū)塊鏈中是否已經(jīng)存在,如果存在則判定為非法。
4) 如果以上判定都不符合,則操作記錄被認為是合法的。
基于TPA云聯(lián)盟的數(shù)據(jù)完整性驗證(CFTPA-DIV, CFTPA based data integrity verification)模型的參與實體有如下3種。
1) 云用戶,也就是擁有原始數(shù)據(jù)的云存儲服務(wù)使用者,將原始數(shù)據(jù)存儲在云端服務(wù)器。
2) TPA云聯(lián)盟,代替用戶向云存儲提供商進行挑戰(zhàn),并驗證挑戰(zhàn)證據(jù)。
3) 云存儲提供商,其存儲著云用戶的數(shù)據(jù),且有可能無法保證用戶數(shù)據(jù)的完整性,所以TPA云聯(lián)盟要對其進行完整性“挑戰(zhàn)”。
基于TPA云聯(lián)盟的數(shù)據(jù)完整性驗證模型的過程示意如圖4所示。有別于一般公開審計的數(shù)據(jù)完整性驗證,圖4的TPA云聯(lián)盟執(zhí)行TPA的工作流程,其與用戶和CSP之間構(gòu)成的完整性驗證過程如下所示。
圖4 基于可信區(qū)塊鏈的數(shù)據(jù)完整性模型
1) 用戶將加密處理后的文件和數(shù)據(jù)標簽存儲到CSP,或用戶在云端對數(shù)據(jù)的操作。
2) 將處理后的認證元數(shù)據(jù)發(fā)送到TPA云聯(lián)盟,或是用戶需要進行挑戰(zhàn)命令(包括挑戰(zhàn)完整性和挑戰(zhàn)更新)。
3) 將TPA云聯(lián)盟生成的完整性挑戰(zhàn)或更新挑戰(zhàn)發(fā)送給CSP。
4) CSP將完整性應(yīng)答或更新的應(yīng)答發(fā)送給TPA云聯(lián)盟。
5) TPA云聯(lián)盟將“挑戰(zhàn)—應(yīng)答”的對比結(jié)果發(fā)送給用戶。
6) CSP提供給用戶數(shù)據(jù)操作的反饋。
CFTPA-DIV完整性驗證過程如下所示。
1) 初始化階段(setup phase)
步驟1 對TPA云聯(lián)盟中的每個TPA底層TPM模塊進行初始化設(shè)置,即進行靜態(tài)的完整性度量。如果出現(xiàn)度量值與默認值不匹配的情況,則發(fā)出警報給VM管理,后者撤銷此TPA參與此輪審計任務(wù)的分配。
步驟2 身份管理組件對TPA云聯(lián)盟中其他組件進行完整性度量以及正常功能檢測。
步驟3 云用戶對TPA云聯(lián)盟提出審計任務(wù),即“生成挑戰(zhàn)請求”(前提是已經(jīng)在TPA云聯(lián)盟管理平臺進行注冊)。
2) 挑戰(zhàn)階段(challenge phase)
步驟1 TPA云聯(lián)盟收到云用戶的審計請求后,根據(jù)請求數(shù)據(jù)保護組件執(zhí)行相應(yīng)的政策,審計方案管理組件選擇合適的審計方案。
步驟2 VM管理組件,綜合云用戶的審計請求、數(shù)據(jù)保護政策以及所選擇的審計方案和其他參數(shù)(包括云用戶身份等級、TPA在系統(tǒng)中的積分值)作為參考,將審計任務(wù)分配給合適的TPA。
3) 應(yīng)答階段(response phase)
4) 驗證階段(verification phase)
正確性證明如下所示。
1) 初始化階段(setup phase)
然后對葉子節(jié)點兩兩向上再進行散列運算(若葉子節(jié)點為奇數(shù),則直接對自己進行散列運算)生成MHT的根root,并記錄每個葉子節(jié)點的輔助認證信息[19],最后將其根root和AAI進行簽名。
2) 更新挑戰(zhàn)階段(update challenge phase)
TPA云聯(lián)盟收到用戶的更新挑戰(zhàn)請求后,要求TPA驗證CSP是否進行相應(yīng)的更新操作,包括對文件的修改、插入、刪除。
3) 更新應(yīng)答階段(update challenge phase)
4) 更新驗證階段(update verification phase)
本節(jié)從可信度量的安全性、區(qū)塊鏈的安全性以及可證明安全方面提出4個問題,并分別進行了安全性分析證明。
問題1 TPM模塊能否正確地對TPA進行完整性度量。
利用TPM模塊設(shè)置在TPA的底層硬件,可以收集TPA運行環(huán)境中靜態(tài)度量值,并與基準數(shù)據(jù)庫進行對比驗證,如果驗證不通過則通過VM管理模塊掛起此TPA的云資源。具體可信度量方法可采用樹形可信度量模型TSTM來提高度量模型的可拓展性[20]。在TPA工作層進行審計任務(wù)時,需要對其進行動態(tài)度量,包括TPA進行審計任務(wù)時的可信證據(jù)收集以及運行環(huán)境的可信性動態(tài)驗證機制。其具體實現(xiàn)可采用“流嵌入法”[21]對TPA工作流程中的命令控制流和數(shù)據(jù)流嵌入計算度量值的程序。所以根據(jù)以上方法和模型的使用,可保證TPM模塊正確地對TPA進行完整性度量。
問題2 TPA度量值和TPA操作記錄以及審計參數(shù)能否正確地保存在區(qū)塊鏈中。
在區(qū)塊鏈的形成過程中,采用TPA-LECA領(lǐng)導(dǎo)選舉共識算法選舉出領(lǐng)導(dǎo)節(jié)點,對TPA的度量值、操作記錄、審計參數(shù)的生成和保存進行監(jiān)督,并將其以正確的格式打包進區(qū)塊??尚艆^(qū)塊鏈中的領(lǐng)導(dǎo)節(jié)點由TPA的區(qū)塊鏈層全節(jié)點選舉而出,其完整性和打包信息的公正性由區(qū)塊鏈中其他節(jié)點的記賬本和計算驗證保證。此外,所有網(wǎng)絡(luò)節(jié)點都有自己的歸屬TPA,即不會有外網(wǎng)的任意節(jié)點加入此網(wǎng)絡(luò)中進行惡意的廣播虛假信息。并且,TPA云聯(lián)盟高級管理員也可以對領(lǐng)導(dǎo)節(jié)點的工作進行監(jiān)督,以此保證了TPA的度量值以及TPA的操作記錄、審計參數(shù)能夠正確完整地保存在區(qū)塊中,形成區(qū)塊鏈。
問題3 區(qū)塊鏈在一定容忍度下,是否是不可更改和不可偽造的。
問題4 基于雙線性對和Diffie-Hellman問題,CFTPA-DIV方案模型能否在隨機預(yù)言模型中保證數(shù)據(jù)的完整性。
即要證明在基于雙線性對和Diffie-Hellman困難問題的隨機預(yù)言模型中,除了回復(fù)正確驗證信息外,敵手只有可忽略不計的概率贏得敵手游戲。
證明 在這里,CSP被認為是敵手,而TPA被認為是仿真者,其控制著隨機預(yù)言機。
整理得
進一步整理和化簡得
證畢。
綜合以上4個問題和安全性分析,可以將可信計算安全性、區(qū)塊鏈安全性與完整性驗證的安全性進行有效結(jié)合,整體上達到了整個驗證模型的安全可信。
在模型分析之前,本文設(shè)定在不增加云用戶的開銷前提下(或減少云用戶開銷),在TPA和CSP上增加一定開銷是可以接受的。CFTPA-DIV模型中的主要審計過程是在TPA云聯(lián)盟環(huán)境下單個TPA的操作層完成的。相較于傳統(tǒng)公開型PDP驗證模型,本文模型增加了TPA云聯(lián)盟系統(tǒng)平臺的管理功能和TPA區(qū)塊鏈層的工作流程來保證TPA為用戶提供誠實可靠的數(shù)據(jù)完整性驗證工作。此外,TPA云聯(lián)盟系統(tǒng)平臺中的組件初始化時需要認證和交互。所以在整體的驗證過程中計算開銷、通信開銷、存儲開銷等方面會有一定的增加。
這里,本文選擇與同樣針對惡意TPA提出模型方案的Huang等[8]的方案和Wu等[9]的方案進行對比。其中,Huang等[8]的方案是對Xu等[7]的方案進行了改進,利用復(fù)審方案來核查TPA是否正確地執(zhí)行審計任務(wù)。Wu等[9]的方案采用一種安全輕量級的審計模型,令用戶對惡意TPA進行審計核查?;赥PA云聯(lián)盟的數(shù)據(jù)完整性驗證方法最大的優(yōu)勢是通過可信計算技術(shù)和區(qū)塊鏈技術(shù)保證了TPA的可信審計過程,規(guī)避了TPA的惡意行為。3種方案的特點如表2所示。
表2 相似模型方案對比
Huang等[8]的方案中利用receive server和time server來保證TPA準確準時地完成審計任務(wù),然而引入的server實體的可信性無法被證實。Wu等[9]的方案中將CSP返回的驗證結(jié)果分為復(fù)雜計算和簡單計算2個部分,前者由TPA完成專業(yè)計算,后者由用戶完成簡單驗證。然而,如果用戶最后驗證計算失敗,將會直接向CSP進行驗證。此時用戶計算負擔(dān)不但大大增加,而且TPA與CSP可能已經(jīng)串謀,用戶無法得到真實的驗證結(jié)果。
從計算開銷方面分析CFTPA-DIV模型,即對所有實體參與到數(shù)據(jù)完整性驗證方面的所有計算進行理論分析。假設(shè)只進行一次挑戰(zhàn)設(shè)定數(shù)據(jù)被分為個數(shù)據(jù)塊,TPA進行挑戰(zhàn)時隨機選取個數(shù)據(jù)塊。在CFTPA-DIV模型中,主要計算開銷分別是在初始化階段的步驟5計算式(1),云用戶要對計算文件標簽并生成用戶簽名。在應(yīng)答階段的步驟2中計算式(2)和式(3),CSP接收到TPA的挑戰(zhàn),做出應(yīng)答生成證據(jù)。在驗證階段的步驟1中計算式(4)和式(5),即TPA云聯(lián)盟中的數(shù)據(jù)保護組件對CPS發(fā)送來的證據(jù)進行隱私保護即隨機掩碼技術(shù);步驟3中驗證式(6)是否成立和進行隨機置換和隨機函數(shù)運算。定義在數(shù)據(jù)完整性驗證過程中的相關(guān)操作如表3所示,然后分別對3種方案進行計算開銷的理論分析,如表4所示。
表3 相關(guān)操作及定義
表4 模型方案計算開銷
從表4的3種模型方案的計算開銷對比來看,CFTPA-DIV模型的用戶開銷較其他2種模型少。分析原因,是因為在Huang等[8]的方案中用戶要進行審計方案的設(shè)計以及審計方案的加密等操作,從而增加了用戶的計算開銷。在Wu等[9]的方案中,用戶需要對TPA的計算結(jié)果再進行一次配對運算,進而驗證TPA是否驗證成功。在不考慮Huang的方案中引入不可信server實體和Wu等[9]的方案中如果驗證失敗用戶還需要大量計算的基礎(chǔ)上,此2種方案雖然對惡意TPA有一定效果,但是增加了用戶的計算開銷。而CFTPA-DIV方案則盡量減小用戶的開銷,使對TPA的審計工作放在TPA的云聯(lián)盟中進行,并且用戶可在TPA云聯(lián)盟平臺對TPA審計過程和狀態(tài)進行監(jiān)督。
在Wu等[9]的方案中,需要CSP重新生成簽名標簽,所以理論計算開銷較大。在TPA計算開銷方面,Wu等[9]的理論計算開銷較其他2種方案少,但是其增加了用戶計算開銷。Huang等[8]的方案與CFTPA-DIV方案的計算開銷需要利用仿真實驗來實現(xiàn)進一步的對比分析。
CFTPA-DIV模型是建立在基于可信區(qū)塊鏈的TPA基礎(chǔ)之上的,所以要首先進行基于可信區(qū)塊鏈的TPA的環(huán)境搭建。實驗物理主機采用Windows10 64位系統(tǒng),硬件配置如下:英特爾酷睿i5四核3.20 GHz處理器,DDR3 1 600 MHz,8 GB內(nèi)存,120 GB固態(tài)硬盤。在物理主機的VMwareWorkstation12虛擬機創(chuàng)建TPA實例,TPA實例采用Ubuntu 16.04 LTS 64位系統(tǒng),隨后在TPA的系統(tǒng)中,采用基于TPM2.0的軟件TPM,即ibmtpm1119代替真實的硬件TPM,并結(jié)合ibmtss1119軟件協(xié)議棧創(chuàng)建vTPM實例。
在vTPM實例中利用C語言實現(xiàn)了原型系統(tǒng),包括利用PCR寄存器進行完整性度量、對VM的開啟及注銷以及對該TPA的審計過程形成日志打包進區(qū)塊鏈中等功能。然后在搭建的系統(tǒng)中使用Pairing-Based Cryptography(PBC)庫版本0.5.14和OpenSSL版本1.0.2g對驗證過程提供加密、解密以及配對操作。
首先,對3種方案做定量的實驗分析。假設(shè)用戶的文件塊總數(shù)與TPA所選取驗證文件塊數(shù)量相同,即==300。根據(jù)表4的計算開銷對比,在5.2節(jié)中搭建好的可信區(qū)塊鏈環(huán)境中,對CFTPA-DIV中的TPA運算操作進行模擬仿真實驗,CU和CSP運算和其他2個方案實驗采用Ubuntu 16.04 LTS 64位系統(tǒng)和同樣的PBC庫、OpenSSL庫。分別對3種方案CU、TPA、CSP中的主要計算開銷進行20次模擬仿真實驗,并對實驗結(jié)果取平均值。其中,實驗中選擇橢圓曲線形式為MNT曲線,其基礎(chǔ)字段大小為159 bit,嵌入度為6,實驗中安全等級選擇80 bit,即|v|=80、||=160。選擇每個塊的大小為40 B。實驗結(jié)果即其所各自所花費的時間如表5所示。
表5 模型實際計算開銷對比
從表5可以看出,在實驗選定的數(shù)據(jù)塊數(shù)量下,CFTPA-DIV模型在用戶端較其他2種方案時間花費較低,TPA的時間花費比其他2種方案時間花費較高,CSP的時間花費相差不大。分析原因可能為,CFTPA-DIV模型在TPA工作的處理上較其他2種方案有組件間交互的影響,而CU時間消耗的較少也達到了預(yù)期的目標。
其次,對3種方案分別增加選取塊數(shù),同樣假設(shè)=,并進行多次模擬仿真,實驗結(jié)果分別如圖5和圖6所示。
圖5 3種方案選取相同塊個數(shù)下CU花費時間對比
圖6 3種方案選取相同塊個數(shù)下TPA花費時間對比
圖5和圖6表明,本文方案在減少了用戶開銷的基礎(chǔ)上,實現(xiàn)了利用TPA云聯(lián)盟中的可信計算技術(shù)與區(qū)塊鏈技術(shù)保證TPA進行審計任務(wù)的誠實可信。并且TPA云聯(lián)盟系統(tǒng)具有可擴展性,可綜合其他審計方案做出具體優(yōu)化部署在審計方案管理組件中,使原本不安全的審計方案在TPA云聯(lián)盟中變得安全可信。
本文針對數(shù)據(jù)完整性驗證的公開審計第三方審計機構(gòu)的可信性問題,提出了一種基于可信區(qū)塊鏈的數(shù)據(jù)完整性驗證模型。該模型通過設(shè)計TPA云聯(lián)盟系統(tǒng)以及在TPA云成員中構(gòu)造關(guān)于操作記錄的區(qū)塊鏈,證明了可信TPA的可信性。通過對模型的分析以及仿真實驗可以得出,本文模型在正確性的前提下不僅保障了公開審計的安全性,還有效地提高了數(shù)據(jù)完整性驗證的工作效率。該模型可根據(jù)安全等級的不同適配相應(yīng)的審計方案,適用于對安全等級需求較高的行業(yè)以及大多數(shù)需要公有驗證云端數(shù)據(jù)的用戶。并且在互聯(lián)網(wǎng)與物聯(lián)網(wǎng)的信息安全、云存儲的數(shù)據(jù)安全等領(lǐng)域的應(yīng)用研究中具有重要的意義和價值。
[1] WU J, PING L, GE X, et al. Cloud storage as the infrastructure of cloud computing[C]//IEEE International Conference on Intelligent Computing and Cognitive Informatics (ICICCI). 2010:380-383.
[2] ATENIESE G, BURNS R, CURTMOLA R, et al. Provable data possession at untrusted stores[C]//The 14th ACM Conference on Computer and Communications Security. 2007: 598-609.
[3] WANG Q, WANG C, LI J, et al. Enabling public verifiability and data dynamics for storage security in cloud computing[C]//European Conference on Research in Computer Security. 2009: 355-370.
[4] WANG C, WANG Q, REN K, et al. Privacy-preserving public auditing for data storage security in cloud computing[J]. 2010, 62(2):525-533.
[5] ERWAY C, PAPAMANTHOU C, TAMASSIA R. Dynamic provable data possession[C]//ACM Conference on Computer and Communications Security. 2009:213-222.
[6] WANG Q, WANG C, REN K, et al. Enabling public auditability and data dynamics for storage security in cloud computing[J]. IEEE Transactions on Parallel & Distributed Systems, 2011, 22(5):847-859.
[7] XU J. Auditing the auditor: secure delegation of auditing operation over cloud storage[C]//IACR Cryptology ePrint Archive. 2011: 304.
[8] HUANG K, XIAN M, FU S, et al. Securing the cloud storage audit service: defending against frame and collude attacks of third party auditor[J]. IEEE Transactions on Communication, 2014.
[9] WU Y L, LIN X, LU X C, et al. A secure light-weight public auditing scheme in cloud computing with potentially malicious third party auditor[J]. IEICE Transactions on Information & Systems, 2016(10): 2638-2642.
[10] 肖達, 楊綠茵, 孫斌, 等. 面向真實云存儲環(huán)境的數(shù)據(jù)持有性證明系統(tǒng)[J]. 軟件學(xué)報, 2016, 27(9):2400-2413.
XIAO D, YANG L Y, SUN B, et al. Provable data possession system for realistic cloud storage environments[J]. Journal of Software, 2016, 27(9):2400-2413.
[11] FRANCESCO P S , VLADIMIRO S , LUCA N I, et al. FaaS: Federation-as-a-Service[J]. 2016.
[12] 田俊峰, 常方舒. 基于TPM聯(lián)盟的可信云平臺管理模型[J]. 通信學(xué)報, 2016, 37(2):1-10.
TIAN J F, CHANG F S. Trusted cloud platform management model based on TPM alliance[J]. Journal on Communications, 2016, 37(2): 1-10.
[13] BERGER S, GOLDMAN K A, PEREZ R, et al. vTPM: virtualizing the trusted platform module[C]//Conference on Usenix Security Symposium. 2006:21.
[14] 張健. 云計算服務(wù)等級協(xié)議(SLA)研究[J].電信網(wǎng)技術(shù), 2012(2): 7-10.
ZHANG J. Study on cloud computing SLA[J]. Telecommunication network technology, 2012(2):7-10.
[15] SYED S R, KATIE C, ABDUL R. Cloud data integrity using a designated public verifier[C]//HPCC-CSS-ICESS.2015.
[16] HU V C, KUHN D R, FERRAIOLO D F. Attribute-based access control[J]. Computer, 2015, 48(2):85-88.
[17] CASTRO M, LISKOV B. Practical byzantine fault tolerance[C]// OSDI. 1999: 173-186.
[18] 范捷, 易樂天, 舒繼武. 拜占庭系統(tǒng)技術(shù)研究綜述[J]. 軟件學(xué)報, 2013(6): 1346-1360.
FAN J, YI L T, SHU J W. Research on the technologies of Byzantine system[J]. Journal of Software, 2013, 24(6): 1346-1360.
[19] WANG Q, WANG C, REN K, et al. Enabling public auditability and data dynamics for storage security in cloud computing[J]. IEEE Transactions on Parallel & Distributed Systems, 2011, 22(5):847-859.
[20] 周振吉, 吳禮發(fā), 洪征, 等. 云計算環(huán)境下的虛擬機可信度量模型[J].東南大學(xué)學(xué)報(自然科學(xué)版), 2014, 44(1): 45-50.
ZHOU Z J, WU L F, HONG Z, et al. Trustworthiness measurement model of virtual machine for cloud computing[J]. Journal of Southeast University(Natural Science Edition) , 2014, 44(1): 45-50.
[21] 吳昊, 毋國慶. 程序的動態(tài)完整性:模型和方法[J]. 計算機研究與發(fā)展, 2012, 49(9):1874-1882.
WU H, WU G Q. Dynamical integrity of codes:model and method[J]. Journal of Computer Research and Development, 2012, 49(9): 1874-1882.
Data integrity verification based on model cloud federation of TPA
TIAN Junfeng1,2, LI Tianle1,2
1. Institute of Network Technology, Hebei University, Baoding 071002, China 2. Key Lab on High Trusted Information System in Hebei Province, Baoding 071002, China
Aiming at the untrustworthiness of third-party auditor (TPA) in the publicity verification model, a data integrity verification model based on the cloud federation of TPA was proposed. Firstly, the cloud federation of TPA’s architecture was designed and the main functional components and function of the system platform was defined. The federation could manage and control the TPA cloud members. Secondly, TPA was designed in detail by using trusted computing technology and blockchain technology to ensure the credibility of the TPA execution environment and workflow. Finally, the data integrity verification model was built by using cloud federation of TPA. The correctness, security and effectiveness of the model were analyzed theoretically and experimentally.
data integrity verification, blockchain, trusted computing, third-party auditor
TP309
A
10.11959/j.issn.1000?436x.2018144
田俊峰(1965?),男,河北保定人,河北大學(xué)教授、博士生導(dǎo)師,主要研究方向為信息安全與分布式計算。
李天樂(1990?),男,河北滄州人,河北大學(xué)碩士生,主要研究方向為信息安全與分布式計算。
2017?06?11;
2018?06?14
李天樂,csscholar2017@163.com
國家自然科學(xué)基金資助項目(No.61170254,No.60873203);河北省自然科學(xué)基金資助項目(No.F2016201244)
The National Natural Science Foundation of China (No.61170254,No.60873203), The Natural Science Foundation of Hebei Province (No.F2016201244)