王杰昌,劉玉嶺,張 平
(1.鄭州大學體育學院 體育大數(shù)據中心,河南 鄭州 450000;2.中國科學院信息工程研究所,北京100190;3.河南科技大學 數(shù)學與統(tǒng)計學院,河南 洛陽471023)
云存儲可以使單位和個人省去基礎設施的維護,還具有可擴展性和靈活性,這些特點具有很大的吸引力[1]。云服務在企業(yè)、教育機構和政府機構的業(yè)務中得到了廣泛的認可[2]。在云環(huán)境下,用戶數(shù)據不存儲在本地,而是存儲在互聯(lián)網的數(shù)據中心,同時運營商的硬件和軟件服務也可供一般公眾和商業(yè)市場使用[3]。云存儲有很多優(yōu)點,但是它也面臨著一些問題和挑戰(zhàn),例如文獻[4-10]提到的云的安全、性能和質量等問題,而且經常需要外包一些機密數(shù)據,這些數(shù)據的隱私性最為重要[11]。
針對云存儲的數(shù)據共享問題,ALI等人[1]提出了一種安全的云數(shù)據共享(SeDaSC)方法。針對云外包大數(shù)據系統(tǒng)安全問題,ZHAN等[12]構建可信數(shù)據計算環(huán)境,為了防止驗證過程中敏感信息的泄露,提出了云環(huán)境下基于可信第三方的多層大數(shù)據系統(tǒng)可信驗證器。王威等人[13]提出了一套基于可信第三方平臺的公有云數(shù)據安全解決方案,該方案以獨立的可信第三方平臺為核心,在數(shù)據加密、密鑰管理、數(shù)據感知、數(shù)據共享和事故責任等方面具有一定的優(yōu)勢。然而在真實環(huán)境中,基于可信第三方屬于理想狀態(tài),基于半可信第三方的云存儲訪問控制協(xié)議要比基于可信第三方的協(xié)議有更強的實用性和可操作性。
AKHILA等[14]提出了云環(huán)境下基于半可信第三方的數(shù)據安全系統(tǒng)協(xié)議,提供密鑰管理、訪問控制和文件確認刪除,使用沙米爾門限秘密共享算法來管理密鑰。金瑜等[15]提出了一種基于半可信第三方的動態(tài)云數(shù)據更新審計方案BTDA,采用了數(shù)據盲化和代理重簽名技術,來防止半可信第三方和云服務器獲取用戶敏感數(shù)據。TANG等[16]利用半可信密鑰管理員,設計了一個安全的云存儲系統(tǒng)FADE,該系統(tǒng)提供用戶文件加密上傳至云存儲、下載至本地解密和密鑰管理等一系列功能,且充分節(jié)省了本地存儲空間。ALI等[17]認為FADE協(xié)議中客戶端和密鑰管理員KM之間存在中間人攻擊,就為KM和Client之間的通信加入密鑰交換和數(shù)字簽名,提出了一個基于半可信第三方的云環(huán)境數(shù)據安全系統(tǒng)(DaSCE),其中密鑰管理員為半可信第三方,該系統(tǒng)也提供密鑰管理、訪問控制和文件保證刪除等功能。在DaSCE中,雖然ALI將密鑰管理員視為半可信第三方,防范了客戶端與KM間的中間人攻擊,但是卻無法阻止KM截獲客戶端與云之間的通信數(shù)據并解密,即使在多密鑰管理員的情形下,若它們合謀攻擊,這一威脅依然存在。
為解決DaSCE協(xié)議不能阻止密鑰管理員KM截獲并解密用戶數(shù)據的問題,同時防范中間人攻擊,本文改進了DaSCE,提出了基于半可信第三方的云用戶數(shù)據安全存儲協(xié)議(UKC),解決自半可信第三方KM的安全威脅;構建安全模型,證明UKC協(xié)議的安全性,同時對協(xié)議進行仿真實驗,測試其時間開銷。
大整數(shù)分解問題(IF問題)[18]:奇合數(shù)M,至少有2個素因子,求素數(shù)q滿足q|M。
大整數(shù)分解困難假設(IF假設):一個整數(shù)分解器是一個PPT算法Λ,滿足概率ω>0:ω=Prob[Λ(M)|M,1<Λ(M)
公鑰加密體制的安全性可以按攻擊目標和攻擊模型分類。攻擊目標分類中的一種為不可區(qū)分性(Indistinguishability,IND)安全,即給定2個已知明文,隨機選擇其中一個加密,敵手無法從密文中獲知是哪個明文的密文。攻擊模型分類中的一種為選擇密文攻擊(Chosen Ciphertext Attack,CCA),即敵手可以通過訪問解密預言機,在不知道密鑰的情況下,獲取一個或多個己知密文相對應的明文信息,以獲得與密鑰相關的信息[19]。IND-CCA即為選擇密文攻擊的不可區(qū)分性。
ALI等[17]認為,F(xiàn)ADE協(xié)議在文件上傳階段客戶端和KM間存在中間人(intruder)攻擊,客戶端無法判斷收到的(ej,nj)是來自KM還是其他方;在文件下載階段,中間人就可以利用其私鑰(dj,nj)截獲并解密數(shù)據。因此ALI等提出DaSCE,在文件上傳階段,客戶端和KM利用密鑰協(xié)商及數(shù)字簽名,確保它們之間的通信免受中間人攻擊;在文件下載階段為了防止中間人攻擊,在客戶端和KM之間先確立會話密鑰,然后通過會話密鑰加密通信。
本文的系統(tǒng)模型為UKC模型,如圖1所示,包含用戶、密鑰管理員、云等實體,使用三元組
圖1 UKC系統(tǒng)模型Fig.1 UKC system model
(1) Us表示用戶(功能類似于DaSCE中的Client,但又不完全相同,因為用戶可以更換Client),向KM(s)發(fā)送策略文件Pi請求,利用KM(s)為其加密或解密盲化的數(shù)據密鑰,向Cloud上傳或下載加密的文件及相關數(shù)據。可利用不同的客戶端上傳或下載數(shù)據,僅用UKey保存其盲化因子Ri。
(2) KM(s)表示(單個或多個)密鑰管理員,生成公鑰(ei,ni)(發(fā)送至Us)和私鑰(di,ni)(秘密保存),為Us盲化的數(shù)據密鑰提供加密和解密服務。
(3) Cloud表示云,存儲Us加密的文件及相關數(shù)據。
UKC系統(tǒng)運行大致可分為以下幾步:① 當數(shù)據要上傳至云端時,用戶向KM(s)發(fā)送策略文件;② KM(s)根據策略文件生成一對公私鑰,秘密保存私鑰,將公鑰返回給用戶;③ 用戶本地生成數(shù)據密鑰加密文件,之后盲化數(shù)據密鑰,然后利用公鑰加密盲化的數(shù)據密鑰,最后將加密的盲化數(shù)據密鑰和文件上傳至云存儲以節(jié)省本地空間,僅在UKey秘密保存盲化因子;④ 當用戶需要文件時,可從云存儲下載加密的盲化數(shù)據密鑰和文件;⑤ 將加密的盲化數(shù)據密鑰發(fā)送至KM(s);⑥ KM(s)利用私鑰解密,并將解密后的盲化數(shù)據密鑰返回給用戶;⑦ 用戶利用UKey除去盲化數(shù)據密鑰的盲化因子,再利用數(shù)據密鑰解密文件。
在UKC中,KM是半可信的,它有可能對用戶和云之間的通信發(fā)動主動攻擊,去截獲用戶上傳或下載的數(shù)據,并解密用戶數(shù)據。當然,中間人也可發(fā)動同樣的攻擊。在有多密鑰管理員的情形下,若密鑰管理員合謀攻擊,也有可能截獲并解密用戶數(shù)據。在UKC安全模型中,將KM或中間人稱為攻擊者A,要求新協(xié)議能抵抗A的攻擊。下面通過攻擊者A與挑戰(zhàn)者的交互游戲來定義協(xié)議的IND-CCA安全:
(1) 初始化。挑戰(zhàn)者產生系統(tǒng)UKC,敵手A獲得UKC的公開鑰。
(2) 詢問。敵手A向挑戰(zhàn)者做解密詢問,挑戰(zhàn)者解密后,將明文給敵手A。
(3) 挑戰(zhàn)。敵手A輸出2個長度相同的消息F0和F1,再從挑戰(zhàn)者接受密文Fβ,其中隨機值β←{0,1}。
(4) 猜測。敵手輸出β′,如果β′=β,則敵手A攻擊成功。
為彌補DaSCE的不足,徹底消除KM的安全威脅,本文提出UKC協(xié)議。Ki是用戶Us生成隨機的對稱密鑰,與Pi相對應。Us用數(shù)據密鑰Ki來加密文件Fi,用KM生成公私鑰對(ei,ni)來加密Ki,{·}KEY表示利用對稱密鑰KEY進行加密的加密算法,是IND-CCA安全的。本協(xié)議用戶在文件上傳前加入盲化因子Ri,具體操作為用戶先在本地生成Ri,并計算(KiRi)ei后將它和其他數(shù)據一起上傳至云存儲。之后在用戶和云進行通信時(無論是上傳文件還是下載文件),僅用戶掌握Ri,KM或中間人即使截獲數(shù)據,也很難通過KiRi分解出Ki(Ki和Ri為隨機的大素數(shù))[20]。在多密鑰管理員的情形下,若密鑰管理員合謀攻擊,也會遇到同樣的困難。
與DaSCE相比,在文件上傳階段,本協(xié)議增加了盲化計算和UKey存數(shù),省去密鑰交換(包含數(shù)字簽名)和一次加密計算{K}Si;在文件下載階段,本協(xié)議增加了用戶從UKey讀數(shù),省去盲化計算、密鑰交換(包含數(shù)字簽名)和一次加密計算{K}Si。
UKC單密鑰管理員文件上傳過程如圖2所示,當數(shù)據要上傳到云端時,用戶向KM發(fā)送一個策略文件Pi,請求生成一對公私鑰。KM生成和Pi相關聯(lián)的公私鑰對,并將公鑰(ei,ni)發(fā)送給用戶。與DaSCE協(xié)議不同的是,用戶用Ki加密文件Fi生成{Fi}Ki,同時生成帶時間戳t的隨機盲化因子Ri,并計算KiRi,再用(ei,ni)加密得到(KiRi)ei,之后用戶將Pi,(KiRi)ei,{Fi}Ki,t上傳至云端,最后用戶清除本地所有的密鑰和文件,僅在其個人UKey中利用函數(shù)save(·)秘密保存相互關聯(lián)的策略文件Pi,盲化因子Ri及時間戳t。
圖2 UKC單KM文件上傳Fig.2 UKC single KM file upload
多密鑰管理員的情形如圖3所示。與單個密鑰管理員最大的不同是,用戶利用Shamir(b,N)門限秘密共享算法(其中1≤b≤N),將盲化密鑰KiRi利用函數(shù)divide(·)分成Ki1Ri1,…,KiNRiN共N份,然后再加密上傳。
圖3 UKC多KM文件上傳Fig.3 UKC multi-KM file upload
從云端下載文件和加密密鑰后,用戶將Pi,(KiRi)ei發(fā)送給密鑰管理員KM解密。KM用di解密(KiRi)ei,并將KiRi返回給用戶。用戶通過策略文件Pi和時間戳t利用函數(shù)find(·)從其UKey中找到對應的盲化因子Ri,然后從KiRi中分解出Ki,最終解密得到Fi。具體文件下載過程如圖4所示。
圖4 UKC單KM文件下載Fig.4 UKC single KM file download
多密鑰管理員的情形如圖5所示,用戶從云端下載Pi,(Ki1Ri1)ei1,…,(KiNRiN)eiN,{Fi}Ki,t后,分別將Pi,(Ki1Ri1)ei1,…,Pi,(KiNRiN)eiN發(fā)送給KM1,…,KMN解密。至少有b個密鑰管理員執(zhí)行解密并將b個KiiRii返回給用戶,然后用戶可以利用Shamir(b,N)從KiiRii,…,Ki,i+b-1Ri,i+b-1中恢復出KiRi,用戶通過策略文件Pi和時間戳t從其UKey中找到對應的盲化因子Ri,然后KiRi中分解出Ki,最終用Ki解密{Fi}Ki。
圖5 UKC多KM文件下載Fig.5 UKC multi-KM file download
定理1在大整數(shù)分解困難的情況下,對于半可信第三方KM的攻擊或中間人攻擊,UKC協(xié)議是IND-CCA安全的。
具體來說,假設一個IND-CCA敵手A(KM或中間人)以不可忽略的優(yōu)勢ε攻破UKC,那么一定存在一個敵手B至少以不可忽略的優(yōu)勢2ε解決IF問題。
證明:
令C=(C1,C2)=((KiRi)ei,{Fi}Ki),
UKC的IND-CCA游戲如下:
式中,(ni,ei,di)是已知的;(Ki,Ri)是未知的,
如果β′=β,則返回1;否則返回0。
其中敵手不能對目標密文C*進行解密詢問。敵手A的優(yōu)勢定義為:
下面證明UKC協(xié)議可歸約為大整數(shù)分解(IF)問題。
① 如果L中有一項(Ri,C1,Ki),則以Ki回答。
② 如果L中有一項(*,C1,Ki),則以Ki應答并在L中以(Ri,C1,Ki)替換(*,C1,Ki)。
③ 否則,選取一個隨機數(shù)Ki,以Ki應答并在表中存儲(Ri,C1,Ki)。
所以,
即,Pr[G]≥2ε。
由定理1可知,本協(xié)議可以阻止KM截獲并解密用戶數(shù)據,也能抵御中間人攻擊,安全性高于DaSCE。
本協(xié)議進行仿真實驗,其中云服務器Cloud的性能參數(shù)為:16核CPU,64 GB內存,8 TB存儲;密鑰管理員服務器KM性能參數(shù)為:32核CPU,128 GB內存,1 TB存儲,均部署在某所大學內。分別利用2臺電腦模擬用戶Us進行上傳和下載,這2臺電腦均為臺式機(4核CPU,8 GB內存,500 GB硬盤),網絡帶寬為15 Mb/s。本協(xié)議分別選用大小為1,3,10,30,100,300 KB和1,3,10 MB的文件進行上傳和下載操作。
UKC與DaSCE協(xié)議在文件上傳階段的時間開銷統(tǒng)計如表1所示,在表1統(tǒng)計數(shù)據基礎上使用Matlab做出的仿真圖如圖6所示。
表1 文件上傳階段時間開銷統(tǒng)計
圖6 2個協(xié)議文件上傳階段時間開銷對比Fig.6 Time overhead comparison between the two protocols in the file upload phase
從表1和圖6可以看出,隨著文件的增大,2個協(xié)議在文件上傳階段的時間開銷都在增大,但本協(xié)議UKC的時間始終比DaSCE協(xié)議少。
在本階段,與DaSCE協(xié)議相比,本協(xié)議增加了UKey存數(shù)和一次盲化計算(即乘法運算),省去密鑰交換(包含數(shù)字簽名)和一次加密計算{K}Si;UKey存數(shù)和盲化計算顯然比密鑰交換和加密計算花費的時間少,這些運算的時間與密鑰及盲化因子的長度等因素有關,與文件大小無關。文件加密{Fi}Ki及文件傳輸?shù)臅r間與文件大小有關,但在本實驗中兩協(xié)議每次均使用相同大小的文件測試。因此,隨著文件的增大,雖然本協(xié)議與DaSCE的時間都在增大,但是雙方的差距幾乎不變;圖6中隨著時間軸數(shù)據的增大,雙方的時間差距通過肉眼觀察會越來越不明顯,但仍存在著一定的差距。
UKC與DaSCE協(xié)議在文件下載階段的時間開銷統(tǒng)計如表2所示,在表2統(tǒng)計數(shù)據基礎上使用Matlab做出的仿真圖如圖7所示。
表2 文件下載階段時間開銷統(tǒng)計
圖7 2個協(xié)議文件下載時間階段開銷對比Fig.7 Time overhead comparison between the two protocols in the file download phase
從表2和圖7可以看出,隨著文件的增大,2個協(xié)議在文件下載階段的時間開銷都在增大,但本協(xié)議UKC的時間始終比DaSCE協(xié)議的少。
在該階段,與DaSCE相比,本協(xié)議增加了用戶從UKey讀數(shù),省去一次盲化計算、密鑰交換(包含數(shù)字簽名)、一次加密計算{K}Si;UKey存數(shù)顯然比盲化計算、密鑰交換和加密計算花費的總時間少,這些運算的時間與密鑰及盲化因子的長度等因素有關,與文件大小無關。文件解密{{Fi}Ki}Ki及文件傳輸?shù)臅r間與文件大小有關,但本實驗中兩協(xié)議每次均使用相同大小的文件測試。因此,隨著文件的增大,雖然本協(xié)議與DaSCE的時間都在增大,但是雙方的差距幾乎不變;圖7中隨著時間軸數(shù)據的增大,雙方的時間差距通過肉眼觀察會越來越不明顯,但仍存在著一定的差距。
云數(shù)據的安全問題影響著云技術應用的發(fā)展,合理有效的安全算法及訪問控制方法能夠提高用戶對云存儲服務的信任,同時也應考慮云存儲系統(tǒng)的性能代價。本文充分考慮來自半可信第三方KM的安全威脅,改進DaSCE協(xié)議,提出UKC協(xié)議。分析和仿真表明,本協(xié)議的安全性高于DaSCE,運行時間比DaSCE短,具有更高的實用性和可操作性。本文主要考慮用戶對其文件的上傳和下載,下一步工作考慮在UKC基礎上,用戶如何控制他人對其云存儲文件的訪問。