劉 錚,吳柯樺,葉春曉
(1.重慶醫(yī)科大學附屬第一醫(yī)院信息中心,重慶 400016; 2.重慶市生態(tài)環(huán)境大數(shù)據(jù)應(yīng)用中心,重慶 401147;3.重慶大學計算機學院,重慶 400044)
云存儲為數(shù)據(jù)所有者提供了方便的數(shù)據(jù)存儲服務(wù)和面向普通用戶的24小時不間斷數(shù)據(jù)訪問服務(wù)。但是由于云服務(wù)器是不完全可信的,租用云服務(wù)器的企業(yè)無法直接對它們的數(shù)據(jù)進行直接控制,而一些非法的云服務(wù)商可能因為利益而非法出售用戶的數(shù)據(jù)資源。云存儲中的數(shù)據(jù)機密性與訪問控制問題是一個急需解決的問題。云上保障數(shù)據(jù)安全的常用方法是在存儲數(shù)據(jù)之前對數(shù)據(jù)進行加密。基于密文的策略屬性加密(CP-ABE)[1]是云上數(shù)據(jù)訪問控制的主要技術(shù)之一,該技術(shù)在支持數(shù)據(jù)加密的基礎(chǔ)上,可以進行細粒度訪問控制策略,又支持數(shù)據(jù)加密,且在CP-ABE中,訪問策略由數(shù)據(jù)所有者決定,數(shù)據(jù)所有者可以直接控制數(shù)據(jù)。CP-ABE可分為2類:一類是具有單屬性的CP-ABE(SACP-ABE),其中所有屬性都由屬性權(quán)威機構(gòu)管理[1-3];另一類是具有多屬性權(quán)限的CPABE(MACP-ABE),不同的屬性權(quán)威機構(gòu)負責管理不同的屬性集[4-7]。與SACP-ABE相比,MACP-ABE不僅減輕了密鑰管理和密鑰分配的壓力,而且避免了單點故障的風險,因此更適用于在云存儲中進行數(shù)據(jù)的訪問控制。
為了實現(xiàn)動態(tài)的云數(shù)據(jù)訪問控制,需要考慮屬性撤銷和策略更新。由于用戶訪問的時間和地點的不同,可能獲得不同的屬性集合,進而導致不同的訪問權(quán)限。由于不同的用戶可能具有相同的屬性,因此在撤銷屬性時需要考慮2個安全問題[8]:一個是后向安全,即被撤銷的用戶不能解密包含被撤銷屬性的密文;另一個是前向安全,只要分配給新用戶的屬性集符合數(shù)據(jù)訪問策略,則新用戶仍然可以解密系統(tǒng)中已經(jīng)存在的密文。由于云服務(wù)是半可信的[8-12],因此云服務(wù)與用戶可能存在合謀攻擊。根據(jù)屬性撤銷的粒度不同,撤銷可以分為用戶級用戶撤銷和屬性級屬性吊銷,用戶撤銷是指撤銷用戶的所有權(quán)限;屬性撤銷則只撤銷用戶的部分權(quán)限。一個用戶可以撤銷所有的屬性來實現(xiàn)用戶撤銷,本文主要研究屬性撤銷問題。
本文首先在文獻[13]中發(fā)現(xiàn)NEDAC-MACS的一個安全漏洞,然后,對NEDAC-MACS中的部分算法進行改進,提高了系統(tǒng)的安全性。本文的主要工作歸納為以下3點:
1)發(fā)現(xiàn)了NEDAC-MACS的安全漏洞,并給出一種攻擊方法,證明被撤銷的用戶仍然可以通過與云服務(wù)器串通來解密更新的密文。
2)提出一種基于NEDAC-MACS的安全增強型數(shù)據(jù)訪問控制方案(SEDAC-MACS),該方案對NEDAC-MACS的模型進行改進,解決了云服務(wù)器與用戶的合謀問題。
3)通過形式化的密碼分析,證明本文的方案能夠抵抗未授權(quán)用戶之間以及云服務(wù)器與用戶之間的合謀攻擊,保證前向安全性、后向安全性和數(shù)據(jù)保密性。
傳統(tǒng)的基于屬性的加密方案中,Sahai等人[14]首次將IBE和ABAC技術(shù)結(jié)合,提出了基于屬性的加密(ABE)。Goyal等人[15]首先將ABE分為2類:密鑰策略ABE和密文策略ABE,同時給出了第一個密鑰策略ABE方案。相應(yīng)地,Bethencourt等人[1]提出了第一種基于密文策略的方案。Ostrovsky等人[16]提出了一種支持非單調(diào)訪問策略的ABE方案,以提高ABE的表達能力。Lewko等人[17]提出了一種完全安全的密文策略ABE方案。在文獻[18]中,Waters提出了一種在標準模型下基于非交互假設(shè)的CP-ABE方案,該方案采用線性秘密共享方案擴大了CP-ABE的應(yīng)用范圍。Rouselakis等人[19]利用素數(shù)階群構(gòu)造了一個基于CP-ABE的支持大規(guī)模屬性域的方案。以上解決方案都是針對單屬性授權(quán)的應(yīng)用場景。為了提高密鑰分配的效率,便于密鑰管理,降低單點攻擊的風險,Chase[6]第一次提出了多屬性權(quán)威的ABE方案;隨后,Chase等人[7]提出了一個增強安全的多屬性權(quán)威ABE方案,以解決CA權(quán)力過大的問題。在文獻[20]中,Lewko等人在隨機預(yù)言模型中構(gòu)造了一個基于MACP-ABE的方案。然而,上述基于多屬性權(quán)威的ABE方案中均未考慮撤銷問題。
具有撤銷機制的屬性加密方案。為了解決屬性撤銷問題,Pirretti等人[21]為屬性設(shè)置了過期時間,當過期時可以撤銷用戶權(quán)限。Bethencourt等人[1]設(shè)置了密鑰的過期時間來實現(xiàn)屬性撤銷。然而,由于這種撤銷不能及時進行,無法保證前向安全和后向安全。Hur等人[22]通過引入密鑰加密密鑰樹和屬性組的概念提出了一種具有屬性撤銷功能的ABE方案,但是該方案是基于單屬性權(quán)威,且存在用戶與屬性撤銷用戶之間進行合謀攻擊的安全漏洞。Chen等人[23]通過發(fā)送部分密文非撤銷用戶來實現(xiàn)用戶撤銷,但是這種方法引入了巨大的計算和通信開銷。Li等人[24]提出了雙因子加密的ABE方案,該方案通過2次加密來實現(xiàn)用戶撤銷和屬性撤銷。Li等人[11]對該方案進行了改進,并給出了一種能夠抵抗合謀攻擊的屬性撤銷方案。Yang等人[8]使用屬性版本號來實現(xiàn)屬性撤銷,提出了一種具有屬性撤銷機制的多屬性權(quán)威的云存儲數(shù)據(jù)共享方案。Wu[13]等人對Yang等人[8]的方案進行了2次攻擊,并提出了一種新的擴展方案NEDAC-MACS。然而,該方案沒有考慮到云服務(wù)商是不可信的,存在與用戶進行合謀的可能性。Yu等人[25]首先提出了將代理重加密與CP-ABE結(jié)合實現(xiàn)屬性撤銷,但該方案沒有考慮用戶隱私問題。Kawai等人[26]提出了一種完全匿名的代理重加密方案實現(xiàn)數(shù)據(jù)共享,然而該方案沒有實現(xiàn)外包解密,因此效率不高。Chaudhari等人[27]提出了一種基于屬性的密文策略代理重加密方案(CP-ABPRE),該方案能保證訪問策略的隱私,同時實現(xiàn)屬性撤銷與高效率解密。Ziegler等人[28]提出了一種有效的可撤銷的屬性加密方案,實現(xiàn)了策略隱藏、用戶與屬性撤銷。Wang等人[29]針對云數(shù)據(jù)共享方案中密文搜索問題,提出了多值獨立快速搜索的密文策略屬性基加密方案,提升搜索效率與保護用戶隱私。Zhang等人[30]針對大數(shù)據(jù)發(fā)布平臺中用戶動態(tài)集中管理與用戶隱私保護的問題,提出了一種可擴展與可動態(tài)更新的基于屬性隱私保護方案。Ziegler等人[28]針對具有復(fù)雜層次結(jié)構(gòu)的組織中數(shù)據(jù)安全共享與用戶管理問題,提出了基于權(quán)限的多層次組織的云數(shù)據(jù)共享方案,有效提升用戶管理的效率。
本節(jié)主要介紹雙線性對(Bilinear Maps)和線性秘密共享方案(Linear Secret Sharing Schemes, LSSS)的定義。
定義1 雙線性對。選取3個階數(shù)均為素數(shù)p乘法循環(huán)群G1、G2和G3。令映射e:G1×G2→G3為一個雙線性對,當映射滿足下列的3個性質(zhì):
1)雙線性:?(u,v)∈G1×G2,a,b∈Zp,有e(ua,vb)=e(u,v)ab。
2)非退化性:?(u,v)∈G1×G2,使得e(u,v)≠1。
3)可計算性:存在有效的算法來計算出e(u,v), ?(u,v)∈G1×G2。本文中映射e是對稱的,e(ga,hb)=e(g,h)ab=e(gb,ha), ?(g,h)∈G1×G2。
在本文中G1=G2,即雙線性映射是對稱的。
ga·s·bk/bj,…,gaq·s·bk/bj)
其中,?1≤j,k≤q,k≠j,有難以區(qū)分的隨機元素R∈G與e(g,g)aq+1∈GT。算法β解決q-parallel BDHE問題的優(yōu)勢為ε,如果:
定義3 當沒有多項式時間算法的敵手以不可忽略的優(yōu)勢解決q-parallel BDHE問題時,q-parallel BDHE假設(shè)成立。該假設(shè)在文獻[18]中被證明。
NEDAC-MACS包含5個階段:系統(tǒng)初始化、密鑰生成、加密、解密和屬性撤銷。
2.2.1 系統(tǒng)初始化
CA Setup。CA運行CA Setup算法進行系統(tǒng)初始化,CA首先選擇2個素數(shù)階為p的乘法循環(huán)群G和GT,然后選擇一個雙線性映射G×G→GT。選擇一個Hash函數(shù)使H:{0,1}*→G,最后隨機選擇一個a∈Zp作為系統(tǒng)主密鑰MSK。計算出系統(tǒng)參數(shù)SP=(g,ga,G,GT,H)。
CA為每個合法的AA(屬性權(quán)威機構(gòu))分配一個全局身份aid,為每個合法的用戶分配全局唯一的身份標識uid。然后CA隨機選擇2個數(shù)uuid,zuid∈Zp為每個用戶計算出對應(yīng)的全局公私鑰對GPKuid=guuid和GSKuid=zuid,為用戶生成數(shù)字證書Cert(uid)=Enc(uid,uuid,g1/zuid)。
AA Setup。屬性權(quán)威機構(gòu)AAy隨機選擇3個數(shù)字αy,βy,γy∈Zp作為自己的私鑰SΚy=(αy,βy,γy)。對于每個屬性xy∈SAy, AAy將會選擇一個版本的VKxy=uxy,生成屬性公鑰PKxy=(guxyH(xy))γy。AAy的屬性公鑰計算為:
2.2.2 密鑰生成
每個用戶首先要提交自己的數(shù)字證書Certuid到AAy,然后AAy使用驗證密鑰ukCA驗證用戶合法性之后,AAy為用戶分配一組屬性Sj,y,否則AAy拒絕為用戶提供服務(wù)。之后AAy隨機選擇2個數(shù)tj,y,hj,y∈Zp,計算生成用戶密鑰SKj,y:
其中,j∈SU,y∈SA。
2.2.3 數(shù)據(jù)加密
2.2.4 數(shù)據(jù)解密
令I(lǐng)={IAy}y∈IA表示密文中包含的屬性的索引集合,其中IAy?{1,2,…,l}表示屬性權(quán)威AAy管理的屬性的索引集合,定義為IAy={i:ρ(i)∈SAy}。令NA=|IA|表示密文中涉及的屬性權(quán)威的數(shù)量。解密算法選擇一個常數(shù)集{ωi∈Zp}i∈I,當集合{λi}是指數(shù)s的合法共享時,恢復(fù)加密指數(shù)s=∑b∈Iωbλb,算法解密指令TK的計算方法為:
接下來算法計算密鑰k,k=C/(TKzj),最后用戶Uj使用內(nèi)容密鑰k解密密文。
2.2.5 屬性撤銷
=gαλb((guρ(b)H(ρ(b)))γy)-rb
=grb/βy
=g-rbγy/βy
根據(jù)以上分析,被撤銷的用戶仍然可以通過與云服務(wù)器合謀來解密更新的密文數(shù)據(jù)。這個結(jié)論與文獻[13]中只有新版本的密鑰才能解密更新密文的說法相矛盾。因此在NEDAC-MACS中的屬性撤銷機制不能抵抗云服務(wù)器與撤銷用戶的合謀攻擊,這造成了NEDAC-MACS方案的安全漏洞,進而使方案無法滿足后向安全的要求。
在本章中,將基于文獻[8,13]給出本文方案的系統(tǒng)模型、安全假設(shè)和安全模型。
系統(tǒng)模型中有6個角色,如圖1所示。
圖1 系統(tǒng)模型
1)全局認證中心(Certificate Authority, CA)。CA是一個全局可信的認證機構(gòu),主要職責為負責用戶和屬性權(quán)威的注冊以及系統(tǒng)初始化。
2)屬性權(quán)威機構(gòu)(Attribute Authority, AA)。每個屬性權(quán)威機構(gòu)只負責管理所管轄區(qū)域的屬性集,生成與分發(fā)相對應(yīng)的屬性公鑰。同時接受用戶的私鑰請求,為合法用戶生成與分發(fā)屬性集對應(yīng)的私鑰。
3)云存儲服務(wù)器(Cloud Storage Server, CS)。CS是半可信的服務(wù)器,主要負責為用戶提供數(shù)據(jù)存儲與數(shù)據(jù)訪問服務(wù)。
4)代理服務(wù)器(Proxy Server, PS)。PS是一個全局可信服務(wù)器,負責為用戶提供密文更新服務(wù),以及為合法用戶生成解密口令。
5)數(shù)據(jù)所有者(Data Owner, DO)。DO負責制定數(shù)據(jù)訪問策略和加密數(shù)據(jù),并將加密的密文數(shù)據(jù)上傳到云端。
6)用戶(User)。每個用戶都有一個全局的身份標識,合法的用戶可以向PS請求密文,只有當用戶的屬性集滿足數(shù)據(jù)訪問策略時才能解密密文數(shù)據(jù)。
在SEDAC-MACS中,本文有如下假設(shè):
1)CA是可信的,但不允許CA解密任何密文。
2)每個AA也是可信的,但它可能會被攻擊導致服務(wù)不可用。
3)云服務(wù)器是半可信的,它不會拒絕向任何授權(quán)用戶提供服務(wù),并且會正確執(zhí)行用戶分配的任務(wù),但云服務(wù)器可能對云上存儲的數(shù)據(jù)內(nèi)容或接收到的數(shù)據(jù)內(nèi)容好奇。
4)用戶是不可信的,用戶可能通過合謀來獲取未經(jīng)授權(quán)的數(shù)據(jù)訪問。
5)代理服務(wù)器是可信的,不會與被撤銷的用戶以及云服務(wù)器合謀。
與文獻[8]、文獻[6]、文獻[20]、文獻[9]和文獻[13]中的安全模型類似,屬性權(quán)威機構(gòu)只能被靜態(tài)地破壞。敵手被允許查詢密鑰,但查詢得到的密鑰不能解密將要挑戰(zhàn)的密文。密文不能用來解密這些密鑰。本方案的安全模型基于文獻[13]。
在本章中,介紹SEDAC-MACS方案。SEDAC-MACS包括5個階段:系統(tǒng)初始化、密鑰生成、加密、解密和屬性撤銷。在SEDAC-MACS的系統(tǒng)初始化、密鑰生成、加密過程中,所有相應(yīng)的算法與NEDAC-MACS相同。
在SEDAC-MACS的數(shù)據(jù)解密階段,該方案與NEDAC-MACS略有不同。當用戶向云服務(wù)發(fā)送數(shù)據(jù)請求時,云服務(wù)首先驗證用戶的身份信息。如果用戶證書是合法的,并且用戶的屬性集合滿足密文中的訪問控制策略時,云服務(wù)器將用戶所需的密文發(fā)送給代理服務(wù)器。代理服務(wù)器在收到密文后根據(jù)收到的密文密鑰來更新密文,根據(jù)解密算法獲得解密口令。如果用戶是非法的,云服務(wù)器將拒絕用戶的請求。
SEDAC-MACS的主要改動在屬性撤銷階段,步驟如下:
1)更新密鑰生成。
2)密鑰更新。
3)密文更新。
在密文更新后以及密文不包含撤銷屬性的情況下,PS使用用戶上傳的私鑰SK執(zhí)行解密算法計算出解密口令,并將TK發(fā)送給用戶。
如表1所示,本文對文獻[5]、文獻[13]和SEDAC-MACS在撤銷安全、合謀攻擊和抗屬性權(quán)威被破壞的可證明安全等方面進行了比較。
表1 CP-ABE方案安全性對比
1)后向安全和前向安全。
在屬性撤銷的過程中,屬性權(quán)威機構(gòu)會對每個非撤銷用戶根據(jù)他們的身份標識來生成對應(yīng)的密鑰更新密鑰以便更新他們自己的私鑰,而被撤銷的用戶無法獲得更新密鑰也就不能將他們的私鑰更新到最近的版本。同時,由于密文更新密鑰與屬性更新密鑰不能被撤銷的用戶或云服務(wù)獲得或計算出,因此本文的方案滿足后向安全。另外,屬性權(quán)威機構(gòu)將密文更新密鑰安全地轉(zhuǎn)發(fā)給代理服務(wù)器,然后代理服務(wù)器將密文更新到最近的版本,擁有新版本屬性的用戶就能夠解密之前的密文從而獲得明文數(shù)據(jù),因此本文的方案也滿足前向安全。
2)抗合謀攻擊。
每個用戶都有一個全局身份標識,并且用戶與屬性相關(guān)的密鑰組件是與屬性權(quán)威機構(gòu)選擇的隨機數(shù)相關(guān)的,因此每個用戶的密鑰組件都不相同,用戶無法將他們的密鑰通過結(jié)合的方式實現(xiàn)非授權(quán)訪問。另外,云存儲服務(wù)只負責提供存儲服務(wù),可信的代理服務(wù)器提供可靠計算服務(wù),因此撤銷的用戶或者敵手無法通過與半可信的云服務(wù)合謀進行非授權(quán)的訪問。
3)可證明安全。
本文在4.3節(jié)中所描述的安全模型可被以下理論證明SEDAC-MACS是安全的。
定理1 當q-parallel BDHE假設(shè)成立時,多項式時間內(nèi)敵手有一個大小為Mi(1
證明:由于SEDAC-MACS是在NEDAC-MACS方案的基礎(chǔ)上改進的,并未給NEDAC-MACS帶來新的安全漏洞,而NEDAC-MACS已被證明是安全的,因此SEDAC-MACS能夠抵抗屬性權(quán)威機構(gòu)的靜態(tài)合謀攻擊。
在本章,將從存儲代價與通信代價等方面通過與文獻[5]方案和文獻[13]方案比較來分析本文方案的性能。令|p|為群G、GT、Zp的元素的個數(shù)。假設(shè)系統(tǒng)有NA個屬性權(quán)威機構(gòu),每個權(quán)威機構(gòu)AAy管理na,k個屬性。令用戶uid從屬性權(quán)威機構(gòu)AAy獲得的屬性數(shù)量記為nuid,y=|Suid,y|,令tc為密文中訪問結(jié)構(gòu)相關(guān)聯(lián)的屬性總數(shù),nc,x為云存儲中包含撤銷屬性x的密文總數(shù),nr為要被撤銷的屬性總數(shù),nc為云存儲中密文總數(shù)。
1)存儲開銷。
存儲代價是云存儲系統(tǒng)中數(shù)據(jù)訪問控制方案最重要的問題之一。如表2所示,本文分析了系統(tǒng)中每個實體的存儲代價。當系統(tǒng)中密文數(shù)或者與撤銷屬性相關(guān)聯(lián)的密文數(shù)很大時,本文方案的存儲代價幾乎與文獻[13]方案相同,優(yōu)于文獻[5]方案。
表2 CP-ABE存儲開銷比較
對于屬性權(quán)威機構(gòu)來說,每個屬性權(quán)威機構(gòu)都應(yīng)該存儲它所管理的屬性的相關(guān)信息。本文的方案和文獻[13]方案的存儲代價均比文獻[5]方案的代價小,因為3個方案均要求屬性權(quán)威機構(gòu)存儲每個用戶的公鑰與私鑰以及屬性公鑰,然而文獻[13]方案需要額外存儲所管理屬性的屬性密鑰。
對于數(shù)據(jù)擁有者來說,存儲代價主要來源于公共參數(shù)。本文的方案與文獻[13]方案都比文獻[5]方案的存儲代價小,因為文獻[5]方案需要數(shù)據(jù)所有者除了存儲公共參數(shù)外還要存儲密文。
對于數(shù)據(jù)共享用戶來說,存儲代價主要來源于屬性權(quán)威機構(gòu)發(fā)布的與用戶自己相關(guān)的私鑰。本文的方案與文獻[13]方案都比文獻[5]方案的存儲代價小,因為文獻[5]方案要求用戶既要存儲私鑰也要存儲與撤銷屬性相關(guān)聯(lián)的密文組件。
對于云服務(wù)來說,3個方案中云存儲服務(wù)器有著相同的存儲代價,存儲代價都來源于密文的數(shù)目,在這里本文沒有考慮要被加密的明文的長度。
對于代理服務(wù)器來說,本文的方案需要代理服務(wù)器存儲密文更新密鑰,而其他方案不需要。
2)通信開銷。
本文只比較在屬性撤銷階段的通信代價,因為3個方案在加密與解密階段的通信代價幾乎相同。如表3所示,文獻[5]方案中屬性撤銷階段的通信代價是與包含撤銷屬性的密文數(shù)目線性相關(guān)的。而本文的方案與文獻[13]方案在屬性撤銷階段都有著固定的通信代價。
表3 CP-ABE通信開銷比較
本文指出了NEDAC-MACS的安全漏洞,提出了一種安全增強的多權(quán)限云存儲數(shù)據(jù)訪問控制方案。與NEDAC-MACS相比,該方案在滿足NEDAC-MACS的安全要求的同時,還能抵抗云服務(wù)器與被撤銷用戶之間的合謀攻擊,更適合于云數(shù)據(jù)訪問控制。最后證明了SEDAC-MACS能夠保證數(shù)據(jù)安全和撤銷安全。