王杰昌,張 平,常琳林,趙新輝
(1.鄭州大學(xué)體育學(xué)院 計(jì)算機(jī)教研室,河南 鄭州 450044;2.河南科技大學(xué) 數(shù)學(xué)與統(tǒng)計(jì)學(xué)院,河南 洛陽(yáng) 471023)
云存儲(chǔ)有很多優(yōu)點(diǎn),但也面臨安全、性能、質(zhì)量等[1-5]問(wèn)題和挑戰(zhàn)。對(duì)于用戶來(lái)說(shuō),云存儲(chǔ)服務(wù)器是半可信的,所以Ali等[6]提出云環(huán)境數(shù)據(jù)安全系統(tǒng)(DaSCE),通過(guò)引入半可信第三方(密鑰管理器)對(duì)數(shù)據(jù)加密后再上傳至云存儲(chǔ)服務(wù)器;Akhila等[7]也提出了云環(huán)境下基于半可信第三方的數(shù)據(jù)安全系統(tǒng)協(xié)議。雖然他們均認(rèn)為密鑰管理器是半可信的并做出防范,但密鑰管理器仍可截獲并解密用戶數(shù)據(jù),且方案缺少對(duì)數(shù)據(jù)消費(fèi)者的訪問(wèn)控制。
Xia等[8]、SHIRAISHI等[9]、劉鵬等[10]均提出各自的均視權(quán)威機(jī)構(gòu)為完全可信的ABE方案,過(guò)于理想化。雷麗楠等[11]及楊小東等[12]提出多授權(quán)中心ABE方案,李龍等[13]提出去中心化ABE機(jī)制,雖視權(quán)威機(jī)構(gòu)(授權(quán)中心)為半可信的,但卻無(wú)法防止多數(shù)或全部權(quán)威機(jī)構(gòu)的串謀攻擊。
本文在現(xiàn)有云存儲(chǔ)應(yīng)用基礎(chǔ)上,借鑒文獻(xiàn)[6],引入半可信權(quán)威機(jī)構(gòu)——密鑰生成中心(可由網(wǎng)絡(luò)運(yùn)營(yíng)商提供)對(duì)數(shù)據(jù)進(jìn)行加密上傳,同時(shí)完全摒除來(lái)自密鑰生成中心方的安全威脅,提出可證明安全的用戶云數(shù)據(jù)訪問(wèn)控制協(xié)議(user cloud data access control,UCDAC),實(shí)現(xiàn)了用戶文件加密上傳、好友下載請(qǐng)求、用戶授權(quán)好友下載等完備的訪問(wèn)控制功能。
一個(gè)參與者稱為半可信的,它可以正確地遵守協(xié)議的指令,但在協(xié)議執(zhí)行期間能得到中間結(jié)果,并企圖根據(jù)中間結(jié)果得到額外信息。
如果α=β, 則稱四元組 (g1,g2,u1,u2) 為DH四元組。
利用G上的雙線性映射e可容易解決DDH問(wèn)題:已知 (g1,g2,u1,u2)∈G4, 則
α=β?e(g1,u2)=e(g2,u1)
CDH問(wèn)題:已知 (g,ga,h)∈G3, 計(jì)算ha。
如果G上的DDH問(wèn)題是容易的,但CDH是困難的,G稱為GDH群。
大整數(shù)分解問(wèn)題(IF問(wèn)題)[15]:奇合數(shù)N,至少有兩個(gè)素因子,求素?cái)?shù)q滿足q|N。
如圖1所示,UCDAC模型使用四元組
(1)Us表示用戶(數(shù)據(jù)擁有者),將其數(shù)據(jù)文件通過(guò)密鑰生成中心加密后存儲(chǔ)在云端。
(2)KGC表示密鑰生成中心(權(quán)威機(jī)構(gòu)),生成部分密鑰,為用戶提供部分加密和解密服務(wù)。功能與前述文獻(xiàn)中的密鑰管理器或加密服務(wù)器類似,但使用方法又有所不同。
(3)Cloud表示云,存儲(chǔ)Us加密的文件及相關(guān)數(shù)據(jù)。
(4)Fr表示好友(數(shù)據(jù)消費(fèi)者),需要用戶的云數(shù)據(jù),向用戶申請(qǐng)文件下載授權(quán)。
圖1 UCDAC模型
本文中的UCDAC系統(tǒng)將面臨3種類型的敵手攻擊,將這3種敵手分別簡(jiǎn)寫為A1、A2、A3這3類。
A1:此類敵手掌握部分密鑰,輔助用戶進(jìn)行加密解密數(shù)據(jù)文件,但是仍可能會(huì)攻擊系統(tǒng)中其它實(shí)體間的通信,截獲并嘗試解密用戶數(shù)據(jù)文件;A1為具有半可信KGC能力的敵手。
A2:此類敵手存儲(chǔ)用戶的加密數(shù)據(jù)文件,但是仍可能會(huì)攻擊系統(tǒng)中其它實(shí)體間的通信,并嘗試解密其存儲(chǔ)的用戶數(shù)據(jù)文件;A2為掌握半可信Cloud資源的敵手。
A3:此類敵手向用戶發(fā)出文件下載授權(quán)請(qǐng)求,但仍可能會(huì)偽造用戶文件授權(quán),不經(jīng)用戶同意直接下載并解密用戶數(shù)據(jù)文件;A3類敵手為半可信的Fr。
下面通過(guò)敵手A1、A2與挑戰(zhàn)者之間的交互游戲來(lái)定義協(xié)議中加密算法的IND-CCA安全:
(1)初始化。挑戰(zhàn)者產(chǎn)生系統(tǒng)UCDAC,敵手A獲得UCDAC的公開鑰。
(2)詢問(wèn)。敵手A向挑戰(zhàn)者做解密詢問(wèn),挑戰(zhàn)者解密后,將明文給敵手A。
(3)挑戰(zhàn)。敵手A輸出兩個(gè)長(zhǎng)度相同的消息F0和F1, 再?gòu)奶魬?zhàn)者接受密文Fβ, 其中隨機(jī)值β←{0,1}。
(4)猜測(cè)。敵手輸出β′, 如果β′=β, 則敵手A攻擊成功。
通過(guò)敵手A3與挑戰(zhàn)者之間的交互游戲來(lái)定義協(xié)議中的數(shù)字簽名(即授權(quán))在適應(yīng)性選擇消息攻擊下具有存在性不可偽造性:
(1)挑戰(zhàn)者運(yùn)行系統(tǒng)得到公私鑰,選擇一個(gè)隨機(jī)函數(shù)H。敵手A3得到公開鑰。
(2)敵手A3可以向挑戰(zhàn)者詢問(wèn)H(·)和對(duì)消息的授權(quán)。
(3)A3輸出一個(gè)消息及其簽名,其中A3沒(méi)有向挑戰(zhàn)者請(qǐng)求過(guò)該消息的簽名。如果簽名(授權(quán))通過(guò)驗(yàn)證,則敵手攻擊成功。
定義2 如果任何多項(xiàng)式有界時(shí)間的攻擊者A3攻破上述安全模型的優(yōu)勢(shì)Adv=|Pr[Exp=1]| 是可忽略的,那么我們就說(shuō)本文協(xié)議中的授權(quán)在適應(yīng)性選擇消息攻擊下具有存在性不可偽造性(EUF-CMA安全)。
引入密鑰生成中心KGC,用戶利用其將文件加密后再上傳至Cloud,可防止Cloud泄露用戶數(shù)據(jù),比普通的云盤應(yīng)用更安全;同時(shí),KGC輔助用戶加密解密數(shù)據(jù),分擔(dān)了用戶的計(jì)算壓力。
實(shí)際應(yīng)用中,KGC可由網(wǎng)絡(luò)運(yùn)營(yíng)商(如電信、聯(lián)通、移動(dòng)等)提供,文獻(xiàn)[16]將其視為可信的,但網(wǎng)絡(luò)運(yùn)營(yíng)商同樣也會(huì)出于商業(yè)目的解密并泄露用戶數(shù)據(jù),所以將KGC視為半可信的更具實(shí)用性。本節(jié)使用的相關(guān)符號(hào)及含義見表1。
表1 符號(hào)及含義
圖2 UCDAC協(xié)議架構(gòu)
(2)用戶Us收到好友Fr的請(qǐng)求后,若不同意則拒絕;若同意其下載文件,則用戶Us隨機(jī)選擇xKGC,xcl, 計(jì)算yKGC=gxKGC,ycl=gxcl
sigKGC=H(RKGC)sk+xKGC
(1)
sigcl=H(Rcl)sk+xcl
(2)
然后
,
這里EPK(·) 及DSK(·) 為IND-CCA安全的公鑰密碼算法。
(6)KGC判斷 (g,H(RKGC),yKGCpk,sigKGC) 是否為DH四元組。若不是,則拒絕請(qǐng)求。若是,授權(quán)驗(yàn)證通過(guò),則KGC利用私鑰di解密 (siri)ei, KGC將siri返回給Fr。Fr利用ri分解出si, 最終 {{Fi}si}si=Fi。
云端Cloud根據(jù)從用戶Us處得到的ycl,Rcl,pk,H(·), 以及從Fr處獲得sigcl, 計(jì)算
(g,H(Rcl),yclpk,sigcl)= (g,H(Rcl),gxclgsk,H(Rcl)sk+xcl)= (g,H(Rcl),gsk+xcl,H(Rcl)sk+xcl)
(3)
所以 (g,H(Rcl),yclpk,sigcl) 為DH四元組,授權(quán)sigcl為真。
密鑰生成中心KGC根據(jù)從用戶Us處得到的yKGC,RKGC,pk,H(·), 以及從Fr處獲得sigKGC計(jì)算
(g,H(RKGC),yKGCpk,sigKGC)= (g,H(RKGC),gxKGCgsk,H(RKGC)sk+xKGC)= (g,H(RKGC),gsk+xKGC,H(RKGC)sk+xKGC)
(4)
所以 (g,H(RKGC),yKGCpk,sigKGC) 為DH四元組,授權(quán)sigKGC為真。
定理1 在IF假設(shè)成立的條件下,對(duì)于A1類敵手的攻擊,本協(xié)議的文件加密算法是IND-CCA安全的。
證明:
A1類敵手即半可信的KGC,可能會(huì)通過(guò)攻擊Fr和Cloud之間的通信截獲Pi,(siri)ei,{Fi}si, 并嘗試解密得到用戶文件Fi; 也可能會(huì)通過(guò)攻擊Fr和Us之間的通信截獲EPK(ri), 并嘗試解密得到用戶的盲化因子ri。 下面將分別對(duì)這兩種可能的情形進(jìn)行證明。
情形1:A1攻擊Fr和Cloud之間的通信
采用反證法,假設(shè)一個(gè)IND-CCA敵手A1(KGC)以不可忽略的優(yōu)勢(shì)ε攻破UCDAC協(xié)議中的加密算法,那么一定存在一個(gè)模擬器B1至少以不可忽略的優(yōu)勢(shì)2ε解決IF問(wèn)題。
令C=(C1,C2)=((siri)ei,{Fi}si)
(ni,ei,di) 是已知的, (si,ri) 是未知的;
A1→(Fi0,Fi1);
β←{0,1},C*=((siri)ei,{Fiβ}si);
β′←A1(ni,ei,di,C*);
如果β′=β則返回1,否則返回0。
(5)
下面證明UCDAC協(xié)議可歸約為IF(大整數(shù)分解)問(wèn)題。
(3)解密詢問(wèn)
(6)
(7)
所以
(8)
即Pr[G]≥2ε。
情形2:A1攻擊Fr和Us之間的通信
由于EPK(·) 為IND-CCA安全的公鑰密碼算法,所以A1攻破加密算法的優(yōu)勢(shì)也是可忽略的。
綜上可得,UCDAC協(xié)議中的加密算法是IND-CCA安全的,定理證畢。
定理2 在IF問(wèn)題困難的情況下,對(duì)于A2的攻擊,本協(xié)議的文件加密算法是IND-CCA安全的。
證明:由定理1可知在IF假設(shè)成立的條件下,對(duì)于半可信KGC(A1)的攻擊,本協(xié)議中的加密算法是IND-CCA安全的。
并且A2(即半可信Cloud)并不知道KGC的私鑰di, A2破解Fi的難度是大于A1的。
本定理剩余的證明過(guò)程與定理1的類似,不再贅述。
證畢。
定理3 設(shè)H是一個(gè)隨機(jī)預(yù)言機(jī),如果G是一個(gè)GDH群,則本協(xié)議中的簽名(即授權(quán))在適應(yīng)性選擇消息攻擊下具有存在性不可偽造性(EUF-CMA安全)。
證明:
本協(xié)議中有兩個(gè)簽名sigKGC,sigcl, 但是它們的構(gòu)造方法是一樣的,我們只需證明他們的簽名算法在適應(yīng)性選擇消息攻擊下具有存在性不可偽造性即可,下面為了表示方便及更具普遍性,我們把協(xié)議中的xcl,xKGC,ycl,yKGC,Rcl,RKGC,sigcl,sigKGC去掉下標(biāo)KGC和cl,將協(xié)議中的簽名算法按如下方式表示出來(lái):pk=gsk,y=gx, 令h=H(R),sig=hsk+x。
模擬器B3已知 (g,u=ga+b,h), 以A3(攻擊簽名算法)作為子程序,目標(biāo)是計(jì)算ha+b。
為了簡(jiǎn)化,且不失一般性,假設(shè):
(1)A3不會(huì)對(duì)隨機(jī)預(yù)言機(jī)發(fā)起兩次相同的詢問(wèn);
(2)如果A3請(qǐng)求消息R的一個(gè)簽名,則它之前已經(jīng)詢問(wèn)過(guò)H(R);
(3)如果A3輸出 (R,sig), 則它之前已經(jīng)詢問(wèn)過(guò)H(R)。
B3將u=ga+b看作其公開鑰,a+b為秘密鑰(B3其實(shí)不知道a+b),則ha+b為B3對(duì)某一消息的簽名,即sig=H(R)=ha+b, 其中 (R,sig) 由A3偽造產(chǎn)生。B3可將h作為某一消息RJ的哈希值,但B3并不知道A3對(duì)哪個(gè)消息偽造簽名,所以要猜測(cè)。
B3為了將問(wèn)題 (g,u=ga+b,h) 隱藏起來(lái),就選擇一個(gè)隨機(jī)數(shù)v∈Zq, 以u(píng)·gv作為公開要發(fā)送給A3。
歸約過(guò)程如下:
(1)B3將群G的生成元g及公開鑰u·gv∈G發(fā)送給A3,其中u·gv=ga+b+v對(duì)應(yīng)的秘密鑰是a+b+v。 此外隨機(jī)選擇J∈{1,…,qH} 作為它的一個(gè)猜測(cè)值:A3這次的H詢問(wèn)對(duì)應(yīng)著A3最終的偽造結(jié)果。
(2)H詢問(wèn)(最多進(jìn)行qH次)。B3建立一個(gè)列表L3,初始為空,元素類型為四元組 (RI,wI,cI,tI)。 當(dāng)A3發(fā)起第I次詢問(wèn)(設(shè)詢問(wèn)值為RI)時(shí),B3回答如下:①如果L3中已有RI對(duì)應(yīng)的項(xiàng) (RI,wI,cI,tI), 則以wI應(yīng)答;②否則,B3隨機(jī)選擇cI,tI∈Zq
如果I=J,則計(jì)算wI=hgcI+tI∈G;
否則,計(jì)算wI=gcI+tI∈G。
以wI作為對(duì)該詢問(wèn)的應(yīng)答,并在表中存儲(chǔ) (RI,wI,cI,tI)。
(3)簽名詢問(wèn)(最多進(jìn)行qH次)。當(dāng)A3請(qǐng)求消息R的一個(gè)授權(quán)時(shí),設(shè)I滿足R=RI,RI表示第I次H詢問(wèn)的詢問(wèn)值。B3如下回答該詢問(wèn):①如果I≠J, 則L3中有一個(gè)四元組 (RI,wI,cI,tI), 計(jì)算sigI=(ugv)cI+tI應(yīng)答A3。因?yàn)?/p>
(9)
所以sigI為以秘密鑰a+b+v對(duì)RI的簽名;②如果I=J,則模擬中斷。
(10)
如果B3的猜測(cè)是正確的,且A3輸出一個(gè)偽造,那么B3就在第(4)步解決了CDH問(wèn)題。
B3成功由以下3個(gè)事件決定:①E1:B3在A3的簽名詢問(wèn)中不中斷;②E2:A3產(chǎn)生一個(gè)有效的消息-簽名對(duì) (R,sig); ③E3:E2發(fā)生且R對(duì)應(yīng)的四元組 (RI,wI,cI,tI) 中下標(biāo)I=J
(11)
(12)
所以
(13)
如表2所示,文獻(xiàn)[10-12]、文獻(xiàn)[16]和本協(xié)議將解密過(guò)程中計(jì)算量較大的運(yùn)算外包出去,能有效減少用戶終端的計(jì)算開銷。
表2 訪問(wèn)控制協(xié)議功能特征比較
文獻(xiàn)[16]利用HLPN、SMT-Lib及Z3解算器驗(yàn)證了其協(xié)議的安全性,文獻(xiàn)[8-13]都基于相關(guān)困難問(wèn)題假設(shè),并在安全模型下給出形式化證明,證明所提出的協(xié)議是IND-CPA安全的,而本文基于IF問(wèn)題困難假設(shè),證明協(xié)議中的加密算法是IND-CCA安全的,比其它文獻(xiàn)的安全性更高。另外,本協(xié)議中的簽名算法也已證明在適應(yīng)性選擇消息攻擊下具有存在性不可偽造性。
文獻(xiàn)[16]和ABE類協(xié)議[8-10]均假定權(quán)威機(jī)構(gòu)KGC是完全可信的,過(guò)于理想化,不切實(shí)際;雖然多授權(quán)中心ABE類協(xié)議[11,12]及去中心化ABE類協(xié)議[13]假定權(quán)威機(jī)構(gòu)是半可信的,但是它們卻無(wú)法防止多數(shù)或全部權(quán)威機(jī)構(gòu)的合謀攻擊,仍不夠安全。
本文不存在上述問(wèn)題,首先本協(xié)議視權(quán)威機(jī)構(gòu)KGC為半可信的,更符合實(shí)際應(yīng)用場(chǎng)景;其次,無(wú)論是在上傳階段的文件加密,還是在下載階段的文件解密,均需要用戶掌握的盲化因子ri, 未經(jīng)用戶授權(quán),任何實(shí)體(包括KGC)均無(wú)法獲取用戶的盲化因子ri, 即使實(shí)體間聯(lián)合發(fā)動(dòng)合謀攻擊也不可行,更無(wú)法進(jìn)一步解密用戶文件,且本協(xié)議的安全性已證明,所以本文更具安全性、實(shí)用性和應(yīng)用前景。
我們對(duì)本協(xié)議進(jìn)行了仿真實(shí)驗(yàn),用兩臺(tái)服務(wù)器分別充當(dāng)云存儲(chǔ)和密鑰生成中心,部署在某大學(xué)里,用兩臺(tái)筆記本電腦分別充當(dāng)用戶和好友,部署在兩個(gè)不同的家庭里。其中,云服務(wù)器的配置為:16核CPU,64 GB內(nèi)存,8 TB存儲(chǔ),IP地址為59.69.208.201;密鑰生成中心服務(wù)器性能參數(shù)為:32核CPU,128 GB內(nèi)存,1 TB存儲(chǔ),IP地址為59.69.208.202;這兩臺(tái)筆記本電腦硬件配置均為:英特爾酷睿i3-4030U處理器、4 GB內(nèi)存、機(jī)械硬盤,用戶Us和好友Fr的家庭網(wǎng)絡(luò)帶寬均為15 M。本協(xié)議分別選用大小為1 KB、3 KB、10 KB、30 KB、100 KB、300 KB、1 MB、3 MB、10 MB的文件進(jìn)行上傳和下載操作,圖3和圖4是用MATLAB做出的仿真。
圖3 用戶文件上傳階段各操作時(shí)間開銷
圖4 好友Fr文件下載階段各操作時(shí)間開銷
仿真圖3和圖4中,橫軸為文件大小,單位為KB,刻度值為100,101,102,103,104,105; 縱軸為時(shí)間開銷,單位為s,其中圖3的刻度值為10-2,10-1,100,101, 圖4的刻度值為10-2,10-1,100,101,102。
從圖3可以看出,在用戶文件上傳階段,隨著文件的增大,文件傳輸時(shí)間在不斷增大且逼近10 s,但密鑰傳輸和加密運(yùn)算時(shí)間幾乎一直處于0.15 s以下,維持不變或變化較小。從圖4可以看出,在好友文件下載階段,隨著文件的增大,文件傳輸時(shí)間在不斷增大以致最后超過(guò)10 s,但生成授權(quán)時(shí)間、驗(yàn)證授權(quán)時(shí)間、密鑰傳輸時(shí)間、解密運(yùn)算時(shí)間幾乎一直處于0.15 s以下,維持不變或變化較小。
由仿真結(jié)果可知,本協(xié)議較現(xiàn)有云存儲(chǔ)應(yīng)用增加的運(yùn)算(如生成授權(quán)、驗(yàn)證授權(quán)、密鑰傳輸、加/解密運(yùn)算等)時(shí)間開銷很小,且隨著文件的增大變化較小,本協(xié)議主要的時(shí)間開銷就是文件傳輸時(shí)間(即現(xiàn)有云存儲(chǔ)應(yīng)用運(yùn)行的時(shí)間開銷),與現(xiàn)有云存儲(chǔ)應(yīng)用相比較,用戶體驗(yàn)相差無(wú)幾。
UCDAC是在現(xiàn)有云存儲(chǔ)應(yīng)用(例如云盤)基礎(chǔ)上引入半可信KGC而提出的改進(jìn)協(xié)議,較現(xiàn)有云存儲(chǔ)應(yīng)用增加了一些密碼運(yùn)算,可以更安全地實(shí)現(xiàn)用戶對(duì)其文件的訪問(wèn)控制,從而提升了協(xié)議的安全性。因此,本協(xié)議具有很好的理論與應(yīng)用價(jià)值,可為目前流行的云存儲(chǔ)應(yīng)用升級(jí)服務(wù)提供有意義的參考。
云數(shù)據(jù)的安全問(wèn)題影響著云技術(shù)應(yīng)用的發(fā)展,合理有效的訪問(wèn)控制方法能夠提高用戶對(duì)云存儲(chǔ)服務(wù)的信任。本文基于目前流行的云存儲(chǔ)技術(shù)(例如云盤)提出一種訪問(wèn)控制協(xié)議,通過(guò)改進(jìn)盲化因子的用法,有效地阻止了密鑰生成中心截獲并解密用戶數(shù)據(jù),并克服了ABE類協(xié)議因權(quán)威機(jī)構(gòu)權(quán)力過(guò)大導(dǎo)致的密鑰濫用、隱私數(shù)據(jù)泄露、招致合謀攻擊等問(wèn)題,尤其適合(個(gè)人或企業(yè))用戶存儲(chǔ)比較隱私的數(shù)據(jù),具有更強(qiáng)的安全性、實(shí)用性和可操作性,可以快速投入實(shí)際應(yīng)用。