?

基于數據標簽的云存儲用戶數據存在感知方法研究?

2018-09-28 02:30吳邱涵魏國珩
計算機與數字工程 2018年9期
關鍵詞:副本可用性運算

胡 衛 吳邱涵 魏國珩

(1.武漢大學計算機學院 武漢 430072)(2.海軍工程大學信息安全系 武漢 430033)

1 引言

隨著云計算技術的迅速發展和普及,隨之帶來了大量數據的存儲問題,云存儲(Cloud Storage)的概念應運而生,云存儲是在云計算(Cloud Computing)概念上延伸和發展出來的一個新的概念,它是指通過服務器集群應用、網格或分布式文件系統和虛擬化技術等,將網絡中不同類型的海量存儲設備通過網絡和應用軟件集合起來協同工作,共同對外提供數據存儲和業務訪問功能的一個系統[1~2]。與傳統數據管理技術相比,云存儲具有海量性、異構性、外包性和混雜性等特點,使得傳統數據管理技術不再適用[3]。

云存儲技術在展現資源共享、便捷高效、快速可伸縮等優勢的同時,也面臨許多關鍵性問題,其安全性、可靠性及服務水平等眾多問題仍亟待解決[4]。云存儲服務提供商的信譽往往受到質疑,因為出于利益的考慮,云存儲服務提供商有時會刻意隱瞞數據的失效,不讓用戶掌握數據真實的可用性信息。即數據實際上丟失了,或者某個時段不可用,或者當前數據副本有效的數量達不到事先協定的數量,但是服務商卻不讓用戶知曉,或者欺騙用戶該數據有效。當前還沒有較適用的技術能夠完全解決這一欺騙行為。

當用戶將數據存放在云服務器中,他們突然感覺對數據失去了掌控能力,他們無法掌握數據是否真實存在、是否完整可用、是否安全可靠、刪除的數據是否真正消失,用戶完全失去了對數據的感知。目前對云存儲數據感知方面的研究還處于起步階段,數據存在感知是數據感知的最基本的要求,通常的做法是通過數據持有性證明來達到感知數據存在效果[5]。本文即針對云存儲中用戶數據存在感知方法進行研究。

2 相關工作

目前數據存在感知方面,研究工作主要集中在可證明數據持有(Provable Data Possession,PDP)方案[5~8]和可恢復證明(Proof of Retrievability,POR)方案[9]。其主要過程如下:證實者Verifier(例如客戶端)將某個大文件F以分片的方式保存在驗證者Prover(例如云服務提供商)一方,并插入一些驗證元數據;在Verifier需要驗證F可用性時,Prover根據存儲的數據和元數據計算獲得一個高度壓縮的證據并提供給Verifier,Verifier通過開銷很小的計算就可以相信F是完整可用的。此外,Yun等在分析傳統Merkle hash tree的基礎上,提出一種基于Nonce的MAC Tree方案,將文件塊加密后組織為樹形結構,以保證數據的保密性和完整性[10]。Wang等提出一種基于BLS同態簽名和RS糾錯碼方法[11]。但是這些技術處理對象的規模有限,處理海量云數據時會帶來嚴重的效率問題。另外,這些技術本身并不具有容錯和恢復數據的功能。即使其中只有一個文件分片被修改或者損壞,則整個F將不可獲取,從而導致Prover丟失該數據。

與他們的工作相比,本文將存在性驗證與數據完整性、冗余可用性[12]結合起來考慮,采用密碼學中的知識證明方法,研究計算開銷小、置信度高并且帶冗余備份功能的存在性驗證技術。

3 云存儲數據存在與可用性驗證方案

3.1 密碼學符號列表

本文所使用的基本密碼學符號及描述如表1所示。

表1 密碼學符號列表

3.2 單文件存在性驗證

對于單文件主要是驗證其存在性與數據完整性。驗證過程主要由4個階段組成:文件預處理階段、數據標簽生成階段、挑戰應答階段和證據驗證階段。其中挑戰應答階段由用戶向云存儲服務器發出挑戰,請求返回持有某些數據塊的證據,服務器響應用戶生成持有文件的證據[13]。

3.2.1 文件預處理過程

在文件上傳到云存儲服務器之前,需要進行一些預處理操作,包括數據分塊、加密處理和數據標簽的生成。首先將文件F分割為m個長度相等的部 分 f1,f2,…,fm,每 部 分 的 長 度 為 Lbit,即利用密鑰K對源文件 F進行加密處理形成密態的文件,其中bi=EK(fi),1≤i≤m。

3.2.2 數據標簽的生成

文件預處理完畢后,利用密態的文件塊計算其對應的數據標簽,第i塊數據的標簽計算公式為Ti=(h(Wi)?gbi)dmodN。其中Wi={v||i},i為文件塊的索引,v為隨機安全素數,將v與文件塊索引i相加,是為了增加Wi的不可預測性。h(?)為哈希函數,這里采用MD5哈希摘要算法。g為安全素數,滿足 gmodN=1,,(e,d)是以N為模數RSA算法的公私鑰。標簽的計算公式中bi和d都是大數模冪運算的指數,其值的大小直接決定了系統的計算開銷。數據標簽生成后將密態的文件塊及對應的數據標簽一并上傳至云存儲服務器。

3.2.3 挑戰應答過程

當客戶需要驗證云服務器上所存儲的數據是否存在和完整時,可以向服務器發起安全詢問。安全詢問的信息Q由三個參數組成(c,k,s),現對這三個參數的使用作出具體說明:

參數c:客戶詢問的文件塊的數量。

參數k:k是偽隨機置換σ的密鑰,用來隨機選擇文件塊,ji=σk(i),ji與…,bm中的 i有對應關系,且1≤i≤c<m。

參數s:定義gs=gsmodN,其中 gs用于隨后的驗證計算。

安全詢問信息Q=(c,k,s)生成后,傳輸給云服務端,云服務端在收到詢問信息之后,取出相應的數據塊和數據標簽進行數據存在性證據V=(T,ρ)的計算:

最后生成驗證信息V=(T,ρ),并傳送給客戶端。

3.2.4 數據標簽的驗證

客戶端在收到驗證信息后,計算:

3.2.5 方案的效用分析

根據驗證的過程可以看出:

1)驗證信息的生成無需讀取所有的文件塊,也不需要傳輸文件。

2)驗證信息ν=(T,ρ)相比文件本身而言要小的多,因此極大地節省了網絡傳輸開銷,提高了驗證的效率。

3)由于不是所有數據塊及其標簽都參與計算,因此不能保證100%的置信度,詢問文件塊的數量c越大,其置信度越高,計算開銷越大。具體的c的取值是由文件塊的數量和用戶所要求的置信度,以及考慮計算開銷的情況下綜合選定,一般要求置信度不低于99%。

3.3 多副本文件驗證方法

對于文件的多個副本,不僅需要考慮文件的存在性和完整性,還要考慮多個副本的冗余可用性。

3.3.1 多副本冗余可用性

為了提高數據的可用性,現有云存儲平臺多采用副本技術,即將數據的多個拷貝同時分散存儲于系統的不同物理位置,它們可以同時提供數據的訪問服務。通過這種部署方式可以有效應對可能出現的宕機、斷電、網絡錯誤等故障,從而提高數據可用性[14]。

用戶將數據存入云存儲平臺,云服務商承諾為用戶的每份數據保留若干數量的副本。對于用戶而言,這些副本的存在對于提高數據的可用性,保證數據的高效、快速訪問具有重要的意義。但是在信任受限的數據環境中,存儲平臺在某些時候出于一些原因不愿意或者不能維持多個副本的同時存在。以云存儲應用背景為例,出于對公司聲譽的影響,或者對經濟因素的考慮,云存儲服務提供商不會主動公布自己不能夠按照預先承諾維持足夠數量的副本。

3.3.2 多副本存在性驗證方案

對于用戶而言,目前缺乏對多副本存在性驗證的方法。本文3.2節中針對單一文件的存在性驗證技術并不適用于多副本的存在性驗證問題。簡單地采用單個數據存在性驗證方案分別對每個副本進行驗證是不可行的,因為各個副本內容相同,服務提供方的多個服務器可以通過“合謀”的方式,以單一副本的存在偽造生成多個副本存在的證據。多副本驗證時若每個副本不做處理,服務商出于成本考慮可能用一個文件多次引用造成多副本的假象。原始方法采用每個副本分別加密作為不同文件,這樣每個副本都要生成一次同態標簽,副本數目較多時會造成極大的運算開銷。

本文首先將數據加密,然后將加密數據與t個不同的隨機掩碼異或生成多個副本,在驗證時使用同一組同態標簽進行模指運算,一次性驗證所有副本,從而提高驗證的效率。

1)多副本數據生成

2)多副本數據標簽的生成

文件的多個副本均共用一組標簽{Tj},。標簽生成后,將標簽 {T1,T2,…,Tm} 上傳至每個云存儲服務器。

3)多副本數據存在性驗證

云存儲服務器將數據存在性證據V=(T,ρ)傳送給客戶端,客戶端在收到驗證信息后,計算:

4 方案安全性和性能分析

4.1 安全性分析

本文所提出的數據存在性驗證方案中數據標簽的計算是基于有限域上的離散對數難解性問題設計的,從數據標簽的計算公式可以看出,通過合理的選取兩個安全素數v和g,可以防止非法用戶或云存儲服務端的篡改和偽造。同時采用了RSA公鑰密碼算法的私鑰d進行簽名,進一步增強了標簽的防偽造性,RSA公鑰密碼算法是以大合數因子分解困難性為前提,本文方案中選擇了模數為2048位的RSA算法,在當前的計算能力下,能夠保證算法的安全性。

4.2 性能分析

在對數據存在性驗證過程中的各個階段的性能開銷進行分析時,我們將所有指數運算轉化為乘法運算,將中的乘法運算開銷記作MultCost(N),對于計算 yx,轉換為乘法運算需要|x|次乘法,即時間開銷約為 |x|MultCost(N)[15],如果采用快速模冪運算的方式計算,則實際的時間開銷會更小。

在數據標簽的生成過程,由標簽的計算公式Ti=(h(Wi)?gbi)dmodN,其主要的開銷為模乘運算的開銷,每塊數據的長度為Lbit,m塊數據的標簽計算總開銷為mdLMultCost(N)。

挑戰應答過程中,有c次偽隨機置換操作和c次模N乘操作,模乘運算開銷較大,為c(dL+s)MultCost(N)。標簽驗證階段運算開銷為esMultCost(N)。單文件存在性驗證方案挑戰應答和驗證階段總的計算開銷主要為(cdL+cs+es)MultCost(N)。

在實際的云存儲應用時,由于受到網絡帶寬的限制,時間開銷會稍微多一點。我們選用配置為Intel Core i5 CPU 2.2GHz,4GB RAM的計算機上進行測試,得到 MultCost(N)≈4.2μs,則對于一個1MB的文件,分塊設為8KB的塊,則m=128,設RSA算法的密鑰選用2048位,抽取的數據塊數量c為20,參數s為32位,則標簽建立階段的計算開銷約為4.3s,標簽挑戰應答和驗證階段總的計算開銷約為0.16s,這里標簽建立階段計算開銷相對大點,但是標簽只計算一次,以后主要是挑戰應答和驗證,一次驗證過程0.31s的時間開銷是可以接受的。

5 結語

本文所提出的數據存在感知方案,可以讓用戶無限次地驗證數據是否被正確持有,并且在提供數據存在感知的同時,還可以對數據進行完整性驗證。在驗證文件的多個副本的存在性和完整性時,還將多個副本的冗余可用性一并考慮。但是方案中采用數據塊參與運算,如果數據塊選取較大則很可能影響效率,下一步將研究利用數據塊的同態hash值代替數據塊本身參與標簽的生成和證據的運算,進一步提高方案的效率。

猜你喜歡
副本可用性運算
核電站DCS可用性測試應用研究
重視運算與推理,解決數列求和題
面向移動應用的軟件可用性研究綜述
機構知識庫網站可用性評價指標的計量學分析
一種基于3 階段實現的高性能云存儲計算*
使用卷影副本保護數據
長算式的簡便運算
面向流媒體基于蟻群的副本選擇算法①
“整式的乘法與因式分解”知識歸納
關于數字圖書館網站的可用性框架研究
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合