王惠清++周雷
摘要:伴隨著云計算和存儲技術的發(fā)展,越來越多的用戶把自己的敏感數據存儲在云服務器上,與此同時,用戶的數據面臨安全的考驗,針對這種情況,為了更好的實現數據完整性驗證技術,幫助用戶更好的使用云存儲服務,提出一種支持合作方式的數據完整性驗證方法,通過引入分布式多TPA系統可以同時處理不同用戶的數據驗證請求,運用代數簽名和同態(tài)標簽的性質對數據進行審計,并且支持公開可驗證。最后實驗結果顯示了該方法在數據完整性驗證方面的性能和高效性。
關鍵詞:云存儲;數據完整性驗證;代數簽名;同態(tài);多TPA
中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2015)01-0019-05
Research on Collaborative Approach Data Integrity Verification on Cloud Storage
WANG Hui-qing1,ZHOU Lei2
(1.Department of Luzhou Medical College, Luzhou Medical College, Luzhou 646000,China;2.College of Information Science and Engineering, Central South University, Changsha 410083, China)
Abstract: More and more have chosen cloud for their storage demands for its low cost, high availability and reliability. In the meantime, a great challenge for data security is also brought in the spotlight, and some security incidents have decreased users trust in cloud services. For this kind of situation, in order to better implement the data integrity verification technology, help users to better use cloud storage service, In the paper, Put forward a way to support the cooperation of data integrity verification method, by introducing a distributed multiple TPA system can handle data validation request of different users at the same time, using algebra signatures and homomorphism tags to the nature of the audit data, and support the publicly verifiable.
Key words: cloud storage; Data integrity verification; algebraic signature; homomorphic TAG; multiple TPA
云計算最近幾年成為學術和工業(yè)界關注的熱點,隨著云計算的發(fā)展,云計算的安全也成為大家關注家關注的一個焦點。但是云存儲并非無懈可擊它面臨一些內在和外在的安全威脅。在云存儲服務中,服務提供商(CSP)也是不可信的。為牟取更大的利益,CSP可能將用戶很少訪問的數據轉移到非在線存儲設備上,甚至將這些數據刪除以節(jié)省存儲開銷。甚至篡改敏感數據導致數據完整性問題,這樣,就產生了云存儲中的數據完整性的缺失。
云存儲數據的完整性檢測是驗證不可信的云存儲服務器是否能保證數據的完好無損,避免云用戶存儲在其中的數據被篡改或刪除。云存儲數據完整性研究主要集中在可證明數據持有(provable data possession, PDP)方案和可恢復證明(proof of retrievability, POR)方案。POR與PDP的主要區(qū)別是:PDP支持檢測數據完整性,但無法保證數據可恢復性;POR可以確保存儲數據的可恢復性[1]。
Ateniese等人[2]提出基于對稱密碼技術構造PDP方案。該方案由用戶設定挑戰(zhàn)次數和待檢測數據塊, 把響應作為云數據存儲在客戶端, 因此更新和檢測次數是有限的。 Erway等人[3] 提出了兩種動態(tài)的數據持有性證明方案, 一種是基于等級的鑒別跳表, 另一種是RSA加密算法的樹結構。肖達等人[4]在國內最早提出了使用數據持有性檢測方法, 其思想是在一個挑戰(zhàn)-應答協議, 用戶要求服務器計算其隨機指定文件中的若干個數據塊的hash值,并與對應的校驗塊一起返回。但其數據完整性檢測是在客戶端進行的,這樣無形之中就增加了用戶的計算成本和通信成本。Shacham等人[5]提出一個基于偽隨機函數的數據完整性檢測方案, 不支持公開性驗證。Boneh等人[6]提出了一個基于BLS簽名的數據完整性驗證方案,支持數據的公開性驗證。 RSA實驗室的Bowers等人[7]提出了一個POR的理論架構,用于改進已有的方案。
綜上所述,分析對比這些方法,這些方案的數據驗證都有單一的可信第三方驗證(Third Party Auditors),單獨的TPA不能為數據擁有和易于發(fā)生的單點故障處理SLA和法律問題。對于這些方法,發(fā)生錯誤的位置是很難發(fā)現的,它們都不支持分布式多TPA對數據完整性進行交叉檢查和交叉驗證。支持的僅僅是對數據動態(tài)性、隱私保護和公開可驗證性之間的權衡。基于以上研究,該文提出分布式多TPA系統的數據完整性驗證方案,該方案中每個TPA都可以同時處理來自不同用戶對于所存儲數據文件的各種審計會話,使用代數簽名和同態(tài)標簽進行驗證極大的提高了驗證效率;代數標簽僅僅使用很小的挑戰(zhàn)和回應,TPA集群僅需要存儲兩個密鑰和幾個隨即數,這使得TPA集群的工作非常容易和計算密集,代數方案的效率允許建立大規(guī)模的分布式存儲系統,在該分布式系統中存儲的大量數據能夠以最大的效率和最小的過載被驗證。代數簽名的聚合和代數性質對在方案中的批量數據驗證提供了額外的效益。最后通過實驗結果證明了該方案的安全性和性能的合理性。
1 分布式多TPA系統模型
針對數據存儲中的數據驗證問題,該文提出分布式多第三方數據驗證技術。在這個技術中,通過負載均衡技術,多個TPA共同承擔巨大的負載壓力,與單一TPA相比較可以極大提高數據驗證的效率。圖1顯示了分布式多TPA數據驗證技術的云數據存儲網絡體系架構。
圖1 系統模型
2 分布式多TPA數據完整性驗證方案
2.1 同態(tài)標簽
在代數中,同態(tài)是兩個代數結構(例如群、環(huán)、域或向量空間)之間的保持結構不變的映射,即存在映射[Φ]: [X→Y], 滿足[1] :
[Φ(x?y)=Φ(x)?Φ(y)] (1)
其中:[?]是[X]上的運算,[?]是[Y]上的運算。
在數據完整性檢測過程中,可以利用同態(tài)標簽的同態(tài)性來驗證數據是否完整。同態(tài)標簽有兩個性質:a)通過使用同態(tài)標簽,可使用少量特定的數據塊進行數據的完整性檢測,而無需對所有的數據塊進行檢測,降低了通行開銷和計算開銷;b)對于任意兩個數據塊[mi]和[mj],[mi+mj]的標簽信息[T(mi+mj)]可以有它們各自的標簽信息[T(mi)]、[T(mj)]生成,即
[T(mi+mj)=T(mi)?T(mj)]。
2.2 數據完整性驗證算法
數據完整性驗證方案一般由密鑰生成、標簽生成、挑戰(zhàn)、證據生成和證據驗證五個階段。該文依據圖1所示系統模型中各部分的協同工作關系,將數據完整性驗證算法分為8個部分。其每個部分分別如下。
1) 請求數據完整性檢測:在數據驗證期間,云用戶(Cloud Users)向TPA集群發(fā)送對數據文件F的驗證請求。通過負載均衡和批量審核的方式,TPA集群中的某一TPA服務器共享和分發(fā)負載給其他的TPA服務器。
2) 轉發(fā)請求: TPA集群對生成的一些初始化參數進行設置,如主密鑰[k←R{0,1}k]、加密的同態(tài)標簽密鑰[kt←R{0,1}k]和隨機數[r1←R{0,1}k],[r2←R{0,1}k]。這些初始化參數對于所有的TPA服務器都是一樣的。然后,TPA集群轉發(fā)請求給云存儲服務器(Cloud Service Provider),請求對物理數據中心的樣本塊進行數據完整性檢測
3) 請求響應:云存儲服務器從整個數據庫中選取一些與文件F相關的隨機樣本塊,并且將選取的塊數[c]返回給TPA集群。
4) 同態(tài)標簽生成階段:TPA集群使用同態(tài)標簽生成算法如表1所示。每個TPA服務器獨立的從返回的塊數[c]中隨機選取樣本塊[c1,c2,……cn],并且計算這些樣本塊代數簽名總數[ASg(S)=x=1nASg(sx)],就如[ASg(S1),ASg(S2),……ASg(Sn)]。通過負載均衡,同態(tài)標簽生成過程分發(fā)在所有TPA服務器中。最后TPA集群發(fā)送整個映射表[(F,T)]到云存儲服務器中存儲。
表1 同態(tài)標簽生成算法
[Input:[c1,c2,……cn]
Output:[(F,T)]
1:for [0
[ki=fk(r1+i)][sx=0]
for [0 [lj=σki(r2+j)] [sx=sx+F[lj]] [ASg(sx)] /*計算*/ 2: [ASg(S)=x=1nASg(sx)]/*n 是TPA的總個數*/ 3: [?i=ASg(S)] /*同態(tài)驗證標簽*/ 4: [Ti=Ekt(?i)] 5:end for\&] 5) 挑戰(zhàn)階段:用戶隨機輸入一個系數[c],云存儲服務器根據收到的挑戰(zhàn)系數[c]去找到對應的[c]個文件子塊,依據文件字塊包含的標簽信息計算出標簽[Ti]。然后,TPA集群使用主密鑰[k]對第[i]次驗證計算[ki=fk(r1+i)]。然后發(fā)送挑戰(zhàn)信息表[(r2,ki)]到云存儲服務器。 6) 證據生成階段:云存儲服務器接受到挑戰(zhàn)信息后,在證據生成過程中,云存儲服務器使用[ki]計算挑戰(zhàn)階段所請求塊數的數據塊位置[lj=σki(r2+j)],并且計算第[i]個數據塊的總數[F'i=F'i+F[lj]],然后返回映射表[(F'i,T'i)]到TPA集群,[T'i]是同態(tài)可驗證標對應于云存儲服務器上的[F'i]。 7) 證明驗證階段:TPA集群使用標簽解密密鑰[kt]和解密函數[Dkt],然后對標簽[T'i]進行解密得到[ρi=Dkt(T'i)]。同時計算[F'i]的代數簽名[ASg(F'i)] 最后驗證[ASg(F'i)=?ρi]是否相等。如果相等,文件的完整性受到保護,否則文件完整性受到破壞。 8) 結果反饋階段:通過前面幾個部分的計算,TPA集群將數據驗證的結果發(fā)送給云數據存儲用戶。 3 安全性分析 代數簽非常適合運用在遠程數據中心的大量云存儲數據驗證,因為代數標簽可以使網絡影響降到最低、合理的計算負載和抵抗惡意的修改。使用代數標簽可以把文件塊壓縮成一個非常小的實體以至于在塊中有極小的改變實體也隨之改變。對于大比特的字符串,相比較散列函數如MD5和SHA1,代數簽名加密也是安全的。 TPA集群每次從[n]個數據塊中隨機選取[c]個樣本文件塊。這些樣本塊極大地降低了服務器的工作負荷,同時也對檢測服務器的不端行為有極高的概率。這里假設服務器從塊[n]中刪除[r]塊。[X]是一個離散隨機變量,它被定義為TPA集群所選取的塊數,該塊數與被服務器刪除的塊數一樣。然后計算[PX]的概率,計算概率公式如下。
[PX=P(X≥1)=1-P{X=0}=1-{n-rn?n-1-rn-1?n-2-rn-2…n-c+1-rn-c+1}] (2)
[PX]顯示服務器不端行為被檢測到的概率,而服務器不端行為的偵測取決于文件快總數[n],刪除塊[r]和挑戰(zhàn)塊[c]。如果存儲服務器刪除文件中的[r]塊,則TPA集群將會在一個[c]塊的挑戰(zhàn)后檢測到服務器的不端行為。圖2顯示了[PX]隨[r],[c]的不同變化規(guī)律。
圖2 服務器不端行為檢測的概率
TPA集群能夠通過固定塊數的挑戰(zhàn)以確定的概率檢測到服務器不端行為,而獨立于文件塊的總數。例如:如果[r]等于總塊數的1%,那么要使[PX]分別達到至少是[99%]和[95%],則客戶端要求達到文件塊數500塊和460塊。因此,這個完整性檢測方案在概率上是安全可行的。此外,為了提高服務器不端行為檢測的概率,可以通過頻繁執(zhí)行檢測過程和要求更多的塊數作為每次的挑戰(zhàn)。對于大的位串提供抵抗相似簽名的沖突。例如,如果選擇64位的簽名,那么沖突的概率將為[2-64]。
本方案選擇256位的代數簽名最小的沖突率為[2-256]。如果有一個1GB大小的文件,文件塊[F[i]]的大小是8KB和位串的長度為L=256位,那么相對應的代數簽名是256位和[n=F[i]L=256]。因為,本方案提供的對1GB文件大小的數據壓縮率為256位,1GB大小的文件在云環(huán)境下算是很大的文件。這使得對于一個不知道如何生成一系列連貫簽名秘密的站點來說,預測工作是非常復雜的。對于1GB大小的文件額外花費的存儲是文件大小/代數簽名大小等于4MB。因此,對于1GB大小的文件額外的開銷僅僅是4MB。
4 性能分析
從性能的角度來看,我們關注用戶驗證存儲服務器如何更有效地忠實地存儲數據而沒有恢復它。在本方案中,驗證的數量和每次挑戰(zhàn)需要的塊數都能夠按照用戶的需求靈活的設定。如果數據存儲時間不長,可以為用戶設置少量的驗證數和塊數以便于進一步降低過載。
本文利用Eucalyputs技術搭建小型云平臺,使用兩臺計算機和一臺服務器作為客戶端和服務器。其中服務器作為數據文件的存儲,另兩臺計算機作為TPA集群代表云用戶來驗證所存儲的文件??梢钥吹剑?/p>
1) 在初始設置階段,TPA集群生成一些密鑰和隨機數。
2) 同態(tài)標簽生成階段,每個TPA都需要執(zhí)行[t]次的PRF,[c]次的PRP操作,[c]次的求和,[t]次的代數標簽和對稱加密操作。如果TPA的數量是[n],那么TPA集群需要執(zhí)行[t?n]次的PRF和[c?n]次的PRP操作,[c?n]次的求和,[t?n]次的代數標簽和對稱加密操作。
3) 在挑戰(zhàn)操作極端,TPA集群僅僅需要為256位密鑰傳輸512比特的信息。
4) 證據生成階段,云服務器需要執(zhí)行[c]次PRP和求和操作,然后需要傳輸8KB的返回結果集。
5) 證據驗證階段TPA集群僅僅需要一次解密和壓縮操作。
只有對稱密鑰加密和解密、求和、PRF和PRP操作被使用。所有的操作在計算上簡單高效。該文所使用的驗證方法,所驗證的數是無限的、服務器的計算是復雜的、客戶端計算是復雜的、通信復雜度和客戶端存儲復雜度是[O(1)]。因此,本方案中的方法能夠被運用到云存儲中的大數據集合。
圖3顯示了對于多用戶情況下數據驗證的延遲。對于100個用戶,驗證延遲是大約300ms。隨之用戶數量的增長,延遲快速增加。當用戶數達到1000時,延遲大約是3800ms。
圖3 多用戶的驗證延遲
圖4所示顯示的是在數據為100%,98%和94%下,對于檢測2%的數據丟失或者錯誤時,計算驗證過載的開銷。對于全部塊的情況,檢測時間與文件塊大小成線性關系。抽樣破壞了驗證時間和文件大小之間的這種關系。數據在98%置信度下,對于任何文件驗證的開銷是大約2.45ms。在94%置信度下,對于任何文件驗證過載的開銷是1.6ms.
圖4 多置信度下的驗證過載
5 結束語
本文提出一種集群TPA同對數據完整性驗證的合作方法,證明了該方法的安全性,并對通訊開銷,驗證延遲進行了性能分析。本方法運用代數標簽和同態(tài)驗證標簽進行數據完整性檢測。結合代數簽名的效益和同態(tài)標簽的高效可以得知使該方法非常適合云存儲。正如實驗結果所表明的方案性能的瓶頸問題是I/O,不是方法。幸運地是,即使服務器刪除一點文件,客戶端都能通過固定的挑戰(zhàn)塊數以非常高的概率檢測出服務器的不端行為。
本文提出一種切實可行的數據完整性驗證方法,解決用戶在數據完整性驗證消耗大量計 算資源的問題,提高用戶數據的安全性。 今后工作將集中于數據動態(tài)處理上, 提出性能更高的算法。
參考文獻:
[1] 陳蘭香.一種基于同態(tài)hash的數據持有性證明方法[J].電子與信息學報,2011,33(9):2200-2204.
[2] Ateniese G, Burns R, Curtmola R, et al. Provable data possession at untrusted store[C] //Pro of the14thACM Conference on Comuter and Communication Security.New York:ACM Press,2007:598-609.
[3] Erway C,Kupcu A,Papamanthou C, et al. Dynamic provable data possession[c]//proc of the 16 th ACM Conference on Computer and Communications Security. New York: ACM Press, 2009: 213-222.
[4] 肖達,舒繼武,陳康,等.一個網絡歸檔存儲中實用的數據持有性檢測方案[J].計算機研究與發(fā)展, 2009 , 46(10): 1600-1668.
[5] Shacham H, Water B.Compact Proofs of retrievability[C]//Proc of the 14th International Conference on the Theory and Application of Cryptology and Information Security. Berlin: Springer-Verlag, 2008: 90- 107.
[6] Boneh D,Lynn B,Shacham H. Short signatures from the Weil pairing[J]. Journal of Cryptology, 2004, 17(4): 297-319.
[7] Bowers K D, Juels A, Opre A. Proofs of retrievability: theory and implementation[C]//Proc of ACM Workshop on Cloud Computing Security. New York:ACM Press, 2009:43-54.
[8] Schwarz T J E, Miller E L.Store, forget, and check: using algebraic signatures to check remotely administered storage[C]//Proc of ICDCS,2006,12.
[9] Litwin, W, Schwarz, T J E. Algebraic signatures for scalable and distributed data structures[C]//ICDE 2004.Boston,MA, 2004:412—423.
[10] 胡德敏,余星.一種基于同態(tài)標簽的動態(tài)云存儲數據完整性驗證方法[J].計算機應用研究, 2014,31(5):1362-1365.