多地理位置存儲的云端數據完整性驗證方法
【專利摘要】本發明公開了一種多地理位置存儲的云端數據完整性驗證方法,主要解決現有技術驗證效率低,且驗證次數受限的問題。其實現步驟是:(1)用戶加密原文件,并為其添加冗余碼;(2)用戶選擇存儲服務器并上傳文件;(3)用戶在存儲服務器最近位置設置地標服務器,地標服務器對存儲服務器進行挑戰,存儲服務器對挑戰進行響應;(4)地標服務器驗證存儲服務器的響應,判斷云端數據的完整性;(5)地標服務器根據挑戰響應的時間,測量云存儲數據的地理位置;(6)用戶對存儲服務器的測量位置做出判斷。本發明能實現多地理位置存儲的云端數據完整性驗證,減少了驗證過程中的計算和傳輸數據量,可用于云端存儲數據的安全性和可靠性檢測。
【專利說明】多地理位置存儲的云端數據完整性驗證方法
【技術領域】
[0001] 本發明屬于信息安全【技術領域】,特別涉及多地理位置存儲的云端數據完整性驗證 方法,可用于云存儲服務中,驗證云存儲服務商是否按協議要求在不同地理位置存儲數據 及存儲數據是否完整。
【背景技術】
[0002] 在當今時代,人們越來越多的使用和依賴云。無論在計算資源還是存儲資源上,使 用云都能夠使人們的工作更高效、方便。
[0003] 當用戶將文件存儲在云端時,是希望文件可以在云端完整的保存,從而保證用戶 不需要在本地計算機存儲文件的備份。而當用戶需要使用文件時,能夠方便地隨時隨地獲 得其之前存儲的文件。因此,用戶往往希望云存儲服務商能夠為其完整的保存文件,并保證 文件的安全性。
[0004] 在某些情況下,為了確保文件的安全,用戶會要求云存儲服務商存儲文件的多個 備份。然而即便如此,在有些情況下,知道文件被存儲多份還是不夠的。例如,如果多份文 件被存儲在同一塊硬盤上,而這塊硬盤發生損壞;或者存儲在同一個數據中心,而此數據中 心發生了大規模停電。這兩種情況都會使用戶無法獲取其存儲在云端的文件。因此,很多 情況下用戶會要求云存儲服務商在多個地理位置為其文件存儲多個文件備份。將文件存儲 在不同地理位置有多個優點:首先,當某個存儲數據中心地區發生大規模停電或嚴重自然 災害時,可以保證文件不丟失,仍然可以被用戶獲得;其次,在多個地理位置進行備份,當用 戶請求數據時,可以根據請求的地理位置選擇距離最近的文件備份,并將其發送給用戶,從 而縮短用戶獲取文件的時間。
[0005] 在用戶存儲數據時,可能與存儲服務商訂立協議,存儲服務商需要按照協議,將用 戶數據進行多備份保存。而在這樣的情況下,用戶只能選擇被動相信存儲服務商的協議,而 無法主動進行驗證。如果存儲服務器存在欺騙行為,即沒有將文件按照協議要求進行多備 份存儲,用戶只有在事故真正發生時,即產生實際損失時才能發現。雖然,可以依據協議要 求存儲服務商進行相應的賠償,但是,有時候造成的損失卻是無法恢復的。因此,需要設計 一種方案,在損失未發生時,對云端的多個文件備份進行驗證。確保存儲服務商按照協議要 求為用戶存儲了多個數據備份。
[0006] 為了解決上述問題,業界提出了以下解決方案:
[0007] -. Karyn Benson等人使用基于傳輸時間的方法。他們使用多個地標服務器,向多 個數據中心進行數據請求。由于假設已知所有數據中心的位置,如果能夠在某個指定時間 內獲得數據,可以判定此數據中心存儲有數據備份。此方案的問題是,必須知道所有數據中 心的準確位置,因為需要在數據中心附近設置地標服務器進行驗證,并且需要地標服務器 與數據中心通信以得到標準的傳輸時間,此過程中可能存在欺騙行為;另外,此方案在驗證 文件時,要求服務器將部分驗證文件發回到地標服務器進行驗證,因此該方法會占用很大 的帶寬。
[0008] 二.基于對稱密碼學的方案以RSA公司的Juels和EMC公司的Kaliski提出的基 于崗哨的可恢復證明系統P0R為典型代表。其基本思想是首先用對稱加密體制將文件加密 并用糾錯碼編碼,然后在編碼后的文件中的一些隨機位置插入和文件數據不可區分的"崗 哨";檢查者在挑戰時要求服務器返回一些隨機位置的崗哨。作者證明只有服務器以大于一 定值的概率做出有效的應答,則文件是可以恢復的。這種方法具有計算開銷小的優點,但其 缺點在于每次需要消耗掉一個崗哨,因此只能執行有限次的挑戰。此外,如果文件需要更新 時,這種方案需要找出所有未經使用的崗哨,然后重新編碼,重新插入文件中,效率較低。
[0009] 三.幾乎與P0R同時,Ateniese等人提出了可證明數據持有(provable data possession,TOP)模型。該模型主要原理是:令N為一個RSA模數,F為代表文件的大整 數,檢查者保持k = Fmod ( Φ N);在挑戰中,檢查者發送ZN中的隨機元素 g,服務器返回s = gFmodN ;檢查者驗證是否存在gkmodN = s,從而確定原始文件是否存在。元素的PDP技術也 只能處理靜態數據,且計算開銷較大,效率不高。
【發明內容】
[0010] 本發明的目的在于針對上述已有技術的不足,提出一種多地理位置存儲的云端數 據完整性驗證方法,以不受限制的、高效的對云存儲數據進行完整性和多地理位置的驗證。
[0011] 本發明的技術方案是:采用基于時間延遲的地理位置判定方法對多地理位置進行 驗證,采用基于數據可恢復性證明方法對數據的完整性進行驗證。其實現步驟如下:
[0012] 一 ·技術原理:
[0013] 為了解決"多地理位置存儲的云端數據"場景中的完整性驗證問題,本發明提出一 個基于時延的、高效的證明方案。在該方案包括兩個部分,分別是該方案包括兩個部分:
[0014] 1.利用基于時延的方法對數據段地理位置進行判定。本方案采用基于時延的方 法,即利用數據的傳輸時延在一定程度上與數據發送和接收端的距離成正相關的規律,來 估計發送端到接收端之間的距離。為了測量時延,需要在每個數據中心附近部署一個位置 已知的地標服務器,并用其請求兩個數據中心的數據,根據請求時延以及兩個地標服務器 的位置,對數據中心的可能位置進行判斷。最后通過驗證兩個數據中心可能位置是否重合, 來判斷兩個數據中心是否位于不同的地理位置。
[0015] 2.利用數據可恢復性驗證方法來確保文件的完整性。本方案采用數據可恢復性驗 證方案,即按照規則對云端數據進行挑戰,并根據響應結果對云端存儲數據的完整性進行 驗證。使用P0R方案,在數據存儲到數據中心之前,向數據中添加冗余碼,并將數據進行對 稱加密處理。然后將數據分塊,并對每一塊數據計算標簽,最后將文件與標簽一起發送到數 據中心進行存儲。在驗證過程中,要求數據中心將文件指定塊以及數據標簽與某個隨機值 進行運算,并將兩者的計算結果都返回,進行數據的可恢復性驗證。
[0016] 二·實現步驟:
[0017] 1. 一種多地理位置存儲的云端數據完整性驗證方法,包括如下步驟:
[0018] (1)文件擁有者User處理原始文件F及生成密鑰ktag :
[0019] la)文件擁有者User利用對稱加密算法,對其希望存儲在云端的原始文件F進行 加密,并為加密后的文件添加冗余碼得到密文文件P ;
[0020] lb)文件擁有者User將密文文件Γ分為η塊,并將每塊文件分為s節,利用偽隨 機數生成算法生成計算密文文件標簽時需要的密鑰ktag,并根據對密文文件Γ的指定分節 數s,生成計算標簽時需要的s個加鹽數據{ α ρ α 2, . . .,a s};
[0021] lc)文件擁有者User利用生成的密鑰ktag及s個加鹽數據{ α ρ α 2,. . .,a J,分 別計算密文文件P的n塊數據所對應的標簽σ i ;
[0022] (2)文件擁有者User選擇存儲服務器并上傳密文文件F'及標簽〇 i :
[0023] 2a)文件擁有者User根據其對要存儲的文件的地理位置要求,從云存儲服務商 Provider提供的文件存儲服務器中選擇滿足其要求的一個服務器集合C ;
[0024] 2b)文件擁有者User將密文文件F'及其標簽〇 i -起上傳云儲存服務商,云存 儲服務商將密文文件F'及其標簽〇 ,發送至服務器集合C中的每一個文件存儲服務器;
[0025] (3)文件存儲服務器Storage對文件標簽〇 i進行重編碼:
[0026] 3a)云存儲服務商Provider為每個文件存儲服務器Storage分配一個唯一的服務 器標記P ;
[0027] 3b)文件存儲服務器Storage使用其服務器標記P,對文件標簽〇 ,進行重編碼, 得到此存儲服務器獨有的文件標簽σ p>i,并將該文件標簽σ p i和密文文件Γ同時存儲;
[0028] (4)地標服務器L對文件存儲服務器Storage進行挑戰,并記錄挑戰和響應的時間 差:
[0029] 4a)用戶根據文件存儲服務器的位置,在每個存儲服務器的最近位置設置一個地 標服務器L,根據兩地標服務器之間的距離Len,測量兩個地標服務器之間時延為t,得到兩 地標服務器間數據傳輸速率
【權利要求】
1. 一種多地理位置存儲的云端數據完整性驗證方法,包括如下步驟: (1) 文件擁有者User處理原始文件F及生成密鑰ktag : la) 文件擁有者User利用對稱加密算法,對其希望存儲在云端的原始文件F進行加密, 并為加密后的文件添加冗余碼得到密文文件P ; lb) 文件擁有者User將密文文件Γ分為η塊,并將每塊文件分為s節,利用偽隨機 數生成算法生成計算密文文件標簽時需要的密鑰k tag,并根據對密文文件Γ的指定分節數 s,生成計算標簽時需要的s個加鹽數據
lc) 文件擁有者User利用生成的密鑰ktag及s個加鹽數據'
'分別計 算密文文件P的η塊數據所對應的標簽σ i ; (2) 文件擁有者User選擇存儲服務器并上傳密文文件F'及標簽〇i: 2a)文件擁有者User根據其對要存儲的文件的地理位置要求,從云存儲服務商 Provider提供的文件存儲服務器中選擇滿足其要求的一個服務器集合C ; 2b)文件擁有者User將密文文件F'及其標簽σ i -起上傳云儲存服務商,云存儲服 務商將密文文件F'及其標簽〇i發送至服務器集合C中的每一個文件存儲服務器; (3) 文件存儲服務器Storage對文件標簽σ ,進行重編碼: 3a)云存儲服務商Provider為每個文件存儲服務器Storage分配一個唯一的服務器標 記P ; 3b)文件存儲服務器Storage使用其服務器標記P,對文件標簽〇 ,進行重編碼,得到 此存儲服務器獨有的文件標簽σ p,i,并將該文件標簽σ p i和密文文件Γ同時存儲; (4) 地標服務器L對文件存儲服務器Storage進行挑戰,并記錄挑戰和響應的時間差: 4a)用戶根據文件存儲服務器的位置,在每個存儲服務器的最近位置設置一個地標服 務器L,根據兩地標服務器之間的距離Len,測量兩個地標服務器之間時延為t,得到兩地標 服務器間數據傳輸速率
4b)地標服務器L使用偽隨機數生成算法,生成一組挑戰數據Q發送給文件存儲服務器 Storage,并記錄發送挑戰的時間tA,該挑戰數據Q包括要挑戰的文件塊號i和參與挑戰的 隨機值Vi ; 4c)文件存儲服務器Storage在接到挑戰數據Q后,將其存儲的密文文件Γ的數據塊 及文件標簽σ p 與挑戰中的偽隨機值Vi進行乘法求和運算,并將文件響應值{ μ }和標簽 響應值σ ρ發送給地標服務器L,地標服務器L記錄接收響應的時間; (5) 地標服務器L服務器判斷文件的完整性和地理位置: 5a)地標服務器L使用收到的文件響應值{ μ },與密鑰ktag及加鹽數據{ α ρ α 2,..., as}進行計算,得到結果標簽驗證結果標簽h是否與收到的標簽響應值ο ρ相同,如 果驗證通過,執行步驟5b),否則結束驗證; 5b)地標服務器L根據發送挑戰時間和接收響應的時間,計算存儲服務器與地標 服務器L的距離為
并將該距離r發送給文件擁有者User ; 5c)使用另一地標服務器L'對同一文件存儲服務器Storage進行挑戰,按照5b)的方 法得到存儲服務器與地標服務器L'的距離為r',并將r'發送給文件擁有者User 5d)文件擁有者User分別以所述的地標服務器L、L'的位置為圓心,以r與r'為半徑 作圓,用該兩圓的交匯區域作為存儲服務器Storage的測量位置; (6)文件擁有者User按照步驟5b)-5d),計算服務器集合C中所有存儲服務器的測量 位置,判斷所有存儲服務器測量位置是否滿足User對地理位置的要求,若滿足,則證明云 存儲服務商按照協議內容存儲密文文件F',否則,說明云存儲服務商違反協議內容,則退 出驗證并向云存儲服務商提出申訴。
2. 根據權利要求1所述的多地理位置存儲的云端數據完整性驗證方法,其特征在于, 所述步驟lc)中計算每一塊文件對應的標簽〇 i,通過如下公式計算:
其中,i e [l,n],表示n個文件塊中的第i塊,j e [l,s],表示s節文件中的第j節, Hli,」表示第i塊文件的第j節數據,叫是文件第j節的加鹽數據,//^.?表示使用kprf作 為密鑰,以i為輸入的偽隨機數生成器,σ i表示計算得到的密文文件第i塊數據的標簽。
3. 根據權利要求1所述的多地理位置存儲的云端數據完整性驗證方法,其特征在于, 所述步驟3b)中對文件標簽進行重新編碼,得到此存儲服務器獨有的文件標簽 〇 p,i,通過 如下公式計算:
其中,是文件標簽進行重編碼時使用的密鑰,P是存儲服務器的標簽是以 P為輸入的哈希算法,〇1是文件上傳者生成的第i塊文件的文件標簽,〇p,i是存儲服務 器P對文件標簽進行重編碼后得到的新文件標簽。
4. 根據權利要求1所述的多地理位置存儲的云端數據完整性驗證方法,其特征在于, 所述步驟4b)的地標服務器L使用偽隨機數生成方法,生成一組挑戰Q,其表示如下:
其中,(i,vj表示挑戰文件塊號和挑戰值組合,
表示對第i塊文件進行挑 戰,Vi是地標服務器L生成的偽隨機數。
5. 根據權利要求1所述的多地理位置存儲的云端數據完整性驗證方法,其特征在于, 所述步驟4c)的文件存儲服務器Storage對接收到的挑戰數據Q進行響應,按如下步驟進 行: 4cl)文件存儲服務器Storage根據收到的挑戰數據Q,使用文件標簽σ p,i計算得到標 簽的響應值σ p :
其中,(i,vj表示挑戰文件塊號和挑戰值組合,
表示對第i塊文件進行挑 戰,Vi是地標服務器L生成的偽隨機數; 4c2)文件存儲服務器Storage根據收到的挑戰數據Q,使用文件塊計算文件的響應值 {μ},其中
是第j節文件的響應值,μ ^的計算公 式如下:
其中,my表示第i塊文件的第j節數據; 4c3)文件存儲服務器Storage將計算得到的標簽響應值σ p和文件響應值{μ}發送 給發出挑戰的地標服務器L。
6.根據權利要求1所述的多地理位置存儲的云端數據完整性驗證方法,其特征在于, 所述步驟5a)中的結果標簽通過下式計算:
其中,σ p和μ」表示從存儲服務器收到的標簽響應和文件響應,i e [l,n],表示n個 文件塊中的第i塊,j e [1,s],表示s節文件中的第j節,Vi表示挑戰Q中的偽隨機值, //W(〇表示使用^乍為密鑰,以i作為輸入的偽隨機數生成器,h&(p)表示存儲服務器 P進行標簽重編碼的函數,表示文件第j節的加鹽數據。
【文檔編號】H04L29/08GK104052819SQ201410299677
【公開日】2014年9月17日 申請日期:2014年6月27日 優先權日:2014年6月27日
【發明者】周洪丞, 楊超, 馬建峰, 董超, 張明月, 張坤, 姚亮, 張鵬 申請人:西安電子科技大學