面向云存儲服務的動態數據完整性審計方案的制作方法
【技術領域】
[0001] 本發明屬于云存儲安全技術領域,更為具體地講,設及一種面向云存儲服務的動 態數據完整性審計方案。
【背景技術】
[0002] 云存儲作為未來存儲技術的一種發展趨勢,為云計算提供便捷和低成本的海量存 儲服務。用戶將個人數據存儲在云服務器,不僅能夠減輕用戶的存儲負擔,而且能夠隨時隨 地訪問云端數據。然而用戶不具有對云端個人數據的絕對控制權,所W數據安全是一個不 可忽視的問題。
[0003] 目前,研究者已經提出了多種云存儲服務的數據完整性檢查方案,但是現有的動 態審計方案存在不安全問題和效率低下的問題。用戶的動態操作可能導致W下幾種攻擊: 重放攻擊一-惡意的云服務提供商使用已經過期版本的數據塊和標簽通過審計者的驗證, 偽造攻擊一-惡意的云服務提供商偽造一個標簽W欺騙審計者的驗證,刪除攻擊一-惡意 的云服務提供商故意刪除一部分用戶數據或預先計算聚合的數據塊和標簽。
[0004] 本發明旨在利用認證性的數據結構,提出一個適合云存儲服務的動態數據完整性 審計方案。通過對用戶更新后的數據進行驗證和簽名操作,W確信云服務提供商是誠實地 更新用戶存儲在云服務器上的個人數據。最后通過審計者對云服務提供商的數據完整性驗 證,確信用戶的數據被正確地存儲在云服務器上。
【發明內容】
[0005] 本發明的目的在于克服已有云存儲服務的數據完整性檢查方案對用戶動態操作 支持的不足,提出一種面向存儲服務的動態數據完整性檢查方案。通過使用認證性數據結 構對數據塊的位置和版本進行驗證,確信云服務提供商誠實地更新用戶的數據,W達到對 用戶存儲在云端個人數據進行完整性檢查的目的。
[0006] 為了實現上述目的,本發明所述面向云存儲服務的動態數據完整性檢查方案,包 括W下幾個步驟:
[0007] 密鑰生成階段;用戶生成公私鑰對,秘密保存私鑰,并將公鑰發送給審計者和云服 務提供商;
[000引數據外包階段:用戶將文件分割成多個數據塊,并對每個數據塊計算一個標簽,然 后將數據塊和標簽發送給云服務提供商;云服務提供商對用戶發送來的數據塊和標簽進行 驗證,如果驗證通過,則云服務提供商接受用戶的存儲請求,否則將拒絕用戶的存儲請求;
[0009] 云端數據完整性審計階段;審計者向云服務提供商發送數據完整性檢查的請求消 息,當云服務提供商接收到審計者的請求消息后,需要計算一個證據并將其發送給審計者; 審計者驗證上述證據是否正確,如果正確,就說明用戶的個人數據被正確地存儲在云服務 器上,否者就說明用戶存儲在云服務器上的個人數據已經被損;
[0010] 動態更新云端數據階段;如果用戶想要更新云端個人數據,就需要將數據塊和標 簽發送給云服務提供商;云服務提供商收到用戶的數據塊和標簽后,執行更新操作,并將更 新后的結果告知用戶。
【附圖說明】
[0011] 圖1是本發明面向云存儲服務的動態數據完整性審計方案的【具體實施方式】原理 框圖;
[0012] 圖2是圖1所示的動態更新云端數據階段4的原理框圖。
【具體實施方式】
[0013] 下面結合附圖對本發明的【具體實施方式】進行描述,圖1是本發明面向云存儲服務 的動態數據完整性審計方案的【具體實施方式】原理框圖,包括密鑰生成階段對應1、數據外包 階段2、數據審計階段3. 1和3. 2、動態更新云端數據階段4。圖2是本發明面向云服務的動 態數據完整性驗證審計方案的動態更新云端數據階段4的原理框圖,包括用戶發送更新請 求消息4. 1、云服務提供商返回響應消息4. 2、用戶驗證響應消息4. 3. 1和用戶發送更新請 求消息4. 3. 2、用戶更新數據4. 4. 1和用戶發送簽名4. 4. 2、云服務提供商更新數據和簽名 4. 5。
[0014]1.密鑰生成階段:用戶選擇隨機數s&eZ;;和UG Gi,并且計算pk=gsk,從而得到 用戶的私鑰為sk、公鑰為(pk,u);用戶秘密存儲私鑰,將公鑰發送給云服務提供商和審計 者。
[001引 2.數據外包階段;(1)用戶將文件M分成割成S個分區M= {Ml,M2,…,M,},每個分區11被分割成111個數據塊^,=機1,"!,:,...,。;,",;,其中"!&.62;、1£{1,2,...,3}和 j G {1, 2, ???,nj0
[0016] 0)用戶為每個分區Mi構造一個初始的版本向量Vi= (1,2,…,n1),其中 iG(1,2,…,s};用戶為每個數據塊計算一個同態標簽7;=(雌/)-""'")",其中*^ = FIDIIiIIV。、jG{1,2,…,叫},"FID"表示文件M的唯一標識;通過上述計算,用戶生成一 個同態標簽集合T= {T。.IiG{1,2,…,s},jG{1,2,…,叫}}。
[0017] (3)用戶構造Merkle化sh樹并計算根結點R,然后計算R的簽名〇K||?;用戶將 (M,T,N,0…piJ發送給云服務提供商,其中集合N= {ni,n2,…,nJ表示每個數據分區的數 量。
[001引 (4)云服務提供商構造Merkle化sh樹并且計算根結點R';使用R'驗證簽名 0是否有效,如果簽名有效,就將T、M和kUu. 存儲在云服務器,否則將拒絕用戶的 存儲請求。
[0019] 3.云端數據完整性審計階段;(1)審計者選擇集合{1,2,…,s}的一個子集I= (si,S,,…,S。},并選擇一個隨機數AeZ;:;將挑戰集合C= (I,k)發送給云服務提供商。
[0020] 似云服務提供商接收到挑戰集合后,為每個1GI和jG{1,2,…,叫}的 數據塊計算一個系數ay=fkO),其中函數fO是一個偽隨機函數;CSP計算聚合的 W=茲。~和a=雨。TT;Liir' ;記第1個葉結點的輔助路徑為Ki,那么輔助信息可W被 表示成A= (vi,Ki}iei;將證據P= {m,0,A}發送給審計者。
[002U (3)審計者使用I和A構造Merkle化sh樹的葉結點,然后構造Merkle化sh樹并 計算根結點R",使用R"驗證簽名0K||?是否有效;如果簽名無效,系統將輸出"0"并退 出;否則審計者為每個1eI和je{1,2,…,nj的數據塊計算一個系數ay=fk(j);驗證 下面的等式如',各塔(取,,巧11&仍01|/||,'4尸'"'",如)是否成立;如果等式成立,系統輸出"1", 否則系統輸出"0"并退出。
[0022] 4.動態更新云端數據階段;(1)如果用戶想要更新存儲在云服務器的個人數據, 那么就需要用戶將更新請求消息發送給云服務提供商。
[002引 似當云服務提供商接收到消息后,就將響應消