鄧建鋒,賴宇陽(yáng),馮國(guó)聰,吳昊,王依云
(南方電網(wǎng)數(shù)字電網(wǎng)研究院有限公司平臺(tái)安全分公司網(wǎng)絡(luò)安全事業(yè)部,廣東廣州 510000)
云存儲(chǔ)器通過(guò)網(wǎng)絡(luò)提供存儲(chǔ)服務(wù),在數(shù)據(jù)基礎(chǔ)管理方面,增加了關(guān)于數(shù)據(jù)訪問(wèn)和數(shù)據(jù)安全的功能[1]。一些云存儲(chǔ)服務(wù)還提供簡(jiǎn)單的訪問(wèn)控制功能,如文件訪問(wèn)等,但這些安全機(jī)制完全依賴于服務(wù)器控制,安全性基于服務(wù)提供商的信任。而在網(wǎng)絡(luò)環(huán)境中,數(shù)據(jù)的安全性并不能得到充分保證[2]。目前常用的基于訪問(wèn)控制列表的加密方法是將數(shù)據(jù)存儲(chǔ)在信任的服務(wù)器上,通過(guò)認(rèn)證服務(wù)器身份控制不同服務(wù)器訪問(wèn)[3]。然而,該方法的公鑰加密是一一對(duì)應(yīng)的,當(dāng)多個(gè)服務(wù)器共享訪問(wèn)時(shí),密鑰管理和數(shù)據(jù)加密工作比較復(fù)雜[4]。由于數(shù)據(jù)文件的類型和大小不同,解密的服務(wù)器并不固定,因此在分布式環(huán)境下,傳統(tǒng)的加密方法不安全,訪問(wèn)效率較低。為此,提出了一種基于屬性代理的多層云存儲(chǔ)數(shù)據(jù)加密方法。
基于屬性代理的云存儲(chǔ)數(shù)據(jù)多層加密方法,具體工作流程可概括如下。
步驟一:參數(shù)生成。在公有域中,設(shè)置兩層密鑰,從這兩層密鑰中隨機(jī)選擇密鑰;在私有域中,僅設(shè)置一層密鑰,從這一層密鑰中隨機(jī)選擇密鑰。步驟二:生成私鑰。如果是私有域,則應(yīng)采用屬性代理方式生成密鑰[5-7]。如果是公有域,則由最高可信機(jī)構(gòu)生成密鑰,然后再授權(quán)給低可信機(jī)構(gòu)。步驟三:數(shù)據(jù)訪問(wèn)。對(duì)于私有域的云存儲(chǔ)數(shù)據(jù)訪問(wèn)請(qǐng)求,需向相應(yīng)服務(wù)器發(fā)送明文,該明文是經(jīng)過(guò)加密處理后得到的。在公有域中,數(shù)據(jù)訪問(wèn)采用樹結(jié)構(gòu),確認(rèn)訪問(wèn)需求得到滿足,然后從葉節(jié)點(diǎn)訪問(wèn)根節(jié)點(diǎn)。步驟四:數(shù)據(jù)撤銷。當(dāng)請(qǐng)求取消數(shù)據(jù)時(shí),數(shù)據(jù)和簽名被發(fā)送到模型終端,當(dāng)模型終端確認(rèn)請(qǐng)求后,數(shù)據(jù)將被取消。
基于屬性代理的云存儲(chǔ)數(shù)據(jù)多層加密工作流程,分為兩個(gè)主要部分,解決了私有域的隱私保護(hù)問(wèn)題,并采用分層多信任機(jī)構(gòu)的方法對(duì)公有域數(shù)據(jù)進(jìn)行保護(hù)[8]。
1.2.1 基于屬性代理的訪問(wèn)控制規(guī)則建立
通過(guò)訪問(wèn)控制樹ATree 對(duì)云存儲(chǔ)數(shù)據(jù)多層加密訪問(wèn)[9-11],訪問(wèn)樹的非葉子節(jié)點(diǎn)表示一個(gè)門限,每個(gè)子節(jié)點(diǎn)都表示數(shù)據(jù)未經(jīng)授權(quán),即遭到訪問(wèn)風(fēng)險(xiǎn)的數(shù)據(jù)屬性[12]。
針對(duì)確定的訪問(wèn)控制樹,設(shè)numx為節(jié)點(diǎn)x的子節(jié)點(diǎn)數(shù)量,kx為子節(jié)點(diǎn)數(shù)量的閾值,并且滿足0 ≤kx≤numx。如果存在至少kx個(gè)子節(jié)點(diǎn)為真,那么這些節(jié)點(diǎn)將被賦予實(shí)際值,尤其是當(dāng)kx=1 時(shí),這些節(jié)點(diǎn)為訪問(wèn)控制的OR 門;當(dāng)kx=numx時(shí),這些節(jié)點(diǎn)為訪 問(wèn) 控 制 的AND 門[13]。
如果數(shù)據(jù)經(jīng)過(guò)授權(quán)后的集合S滿足訪問(wèn)控制樹或者節(jié)點(diǎn)要求時(shí),則定義ATree(S)=1 或x(S)=1。訪問(wèn)控制樹使用的規(guī)則為:如果節(jié)點(diǎn)x表示控制樹的子節(jié)點(diǎn),當(dāng)且僅當(dāng)訪問(wèn)節(jié)點(diǎn)全部屬于經(jīng)過(guò)授權(quán)后的數(shù)據(jù)集合,此時(shí)x(S)=1;如果x表示控制樹的非子節(jié)點(diǎn),子節(jié)點(diǎn)數(shù)量中至少有kx個(gè)子節(jié)點(diǎn)返回時(shí),x(S)=1[14]。
1.2.2 全方位公鑰加密
對(duì)于云存儲(chǔ)數(shù)據(jù)集合Y={y1,y2,…,yn},為了實(shí)現(xiàn)全方位加密訪問(wèn),需要先構(gòu)造數(shù)據(jù)安全索引λ,如圖1 所示。

圖1 索引矩陣
圖1 中的α、β分別表示輸入關(guān)鍵字集合和數(shù)據(jù)索引,基于此設(shè)計(jì)全方位公鑰加密步驟如下所示。
步驟一:初始化
通過(guò)循環(huán)群生成一個(gè)雙線性對(duì)映射e,從數(shù)據(jù)經(jīng)過(guò)授權(quán)后的集合S中選擇元素s1,s2,s3,s4,在循環(huán)群中隨機(jī)選取兩個(gè)密鑰生成元素a、b[15]。結(jié)合這兩個(gè)密鑰,生成一個(gè)私有域云存儲(chǔ)密鑰R(r1,r2),其中r1、r2表示偽隨機(jī)密鑰,由此獲取主密鑰
步驟二:本地代理屬性密鑰生成
隨機(jī)從數(shù)據(jù)經(jīng)過(guò)授權(quán)后的集合S中選擇元素,并計(jì)算每個(gè)元素對(duì)應(yīng)的生成元,有:
依據(jù)每個(gè)元素對(duì)應(yīng)的生成元Di,1,可得到輸出數(shù)據(jù)經(jīng)過(guò)授權(quán)后的密鑰
步驟三:數(shù)據(jù)加密
數(shù)據(jù)經(jīng)過(guò)授權(quán)后,擁有對(duì)稱密鑰、加密數(shù)據(jù)生成加密文件。為了加密密鑰R,結(jié)合訪問(wèn)控制樹ATree,從云存儲(chǔ)數(shù)據(jù)集合Y={y1,y2,…,yn}中隨機(jī)選擇數(shù)據(jù),如果數(shù)據(jù)出現(xiàn)在訪問(wèn)控制樹ATree 上,那么說(shuō)明數(shù)據(jù)是安全數(shù)據(jù),否則不安全。輸出安全數(shù)據(jù),并上傳到公共服務(wù)器上。
等級(jí)多信任機(jī)構(gòu)是一種組織形式,其將公有域、私有域中的云服務(wù)器分成多層。各級(jí)別的組織都擁有自己的權(quán)力,并由一個(gè)可信組織管理,而父可信組織則負(fù)責(zé)子組織的關(guān)鍵任務(wù)[16]。多信任機(jī)構(gòu)通過(guò)一個(gè)密鑰分配過(guò)程來(lái)管理權(quán)限級(jí)別,從而能夠處理每一級(jí)別的數(shù)據(jù)。
采用代理重加密技術(shù)對(duì)敏感數(shù)據(jù)進(jìn)行進(jìn)一步加密,實(shí)現(xiàn)敏感數(shù)據(jù)脫敏處理。加密后的敏感數(shù)據(jù)一方面不能與業(yè)務(wù)數(shù)據(jù)形成清晰的映射關(guān)系,另一方面在保證數(shù)據(jù)主體隱私權(quán)的前提下實(shí)現(xiàn)業(yè)務(wù)數(shù)據(jù)的應(yīng)用。
基于代理重加密的數(shù)據(jù)脫敏處理方法如圖2所示。

圖2 基于代理重加密的數(shù)據(jù)脫敏處理方法
由圖2 可知,數(shù)據(jù)脫敏具體步驟為增加敏感數(shù)據(jù)和查詢敏感數(shù)據(jù)。該數(shù)據(jù)由屬性數(shù)據(jù)模型、業(yè)務(wù)數(shù)據(jù)模型、關(guān)系數(shù)據(jù)模型組成,如圖3 所示。

圖3 主體數(shù)據(jù)模型示意圖
結(jié)合圖3 所示的主體數(shù)據(jù)模型,按照基于屬性本地化代理的全方位公鑰加密方法對(duì)敏感數(shù)據(jù)進(jìn)行加密處理。查詢敏感數(shù)據(jù),獲取主體A 標(biāo)識(shí)。主體A 將訪問(wèn)權(quán)限授權(quán)給B 時(shí),需按照如下步驟進(jìn)行屬性代理重加密:
通過(guò)主體A 標(biāo)識(shí)查詢屬性數(shù)據(jù),生成代理重加密秘鑰:
依據(jù)代理重加密秘鑰,解密主體B 屬性數(shù)據(jù),遍歷解密關(guān)系數(shù)據(jù),當(dāng)解密失敗時(shí),可查找所有數(shù)據(jù),進(jìn)而獲取主體A 標(biāo)識(shí)映射數(shù)據(jù)集合。加密處理后,再將數(shù)據(jù)存儲(chǔ)到云端。
由于無(wú)法根據(jù)業(yè)務(wù)數(shù)據(jù)準(zhǔn)確獲取云存儲(chǔ)屬性數(shù)據(jù),所以加密的云存儲(chǔ)屬性數(shù)據(jù)不能跟蹤云存儲(chǔ)業(yè)務(wù)數(shù)據(jù),保證了云存儲(chǔ)數(shù)據(jù)脫敏。在對(duì)主數(shù)據(jù)進(jìn)行全部加密時(shí),只針對(duì)敏感數(shù)據(jù),有利于統(tǒng)計(jì)、查詢與刪除,為業(yè)務(wù)數(shù)據(jù)的后續(xù)處理提供方便快捷的途徑。基于屬性代理重加密方法,允許授權(quán)多方使用主體數(shù)據(jù),該方法能夠有效地應(yīng)用于數(shù)據(jù)分析中,實(shí)現(xiàn)數(shù)據(jù)隱私保護(hù)與數(shù)據(jù)應(yīng)用的平衡。
測(cè)試基于屬性代理的云存儲(chǔ)數(shù)據(jù)多層加密方法[17-18],硬件配置信息為:使用Quad-Core AMD Opteron(TM)服務(wù)器,具有雙核CPU,磁盤為500 GB,內(nèi)存為8 GB。軟件環(huán)境信息為32 位Windows7 操作系統(tǒng),利用標(biāo)準(zhǔn)Miracle 密碼學(xué)庫(kù)實(shí)現(xiàn)數(shù)據(jù)多層加密。
3.2.1 訪問(wèn)密文長(zhǎng)度分析
選擇20 字節(jié)、40 字節(jié)、60 字節(jié)、80 字節(jié)、100 字節(jié)明文,分別使用基于訪問(wèn)控制列表的加密方法[19-20]和基于屬性代理的云存儲(chǔ)數(shù)據(jù)多層加密方法對(duì)比分析不同明文下的密文長(zhǎng)度,對(duì)比結(jié)果如圖4 所示。

圖4 兩種方法不同明文下密文長(zhǎng)度對(duì)比
由圖4 可知,使用基于訪問(wèn)控制列表的加密方法,密文隨著明文長(zhǎng)度增加也隨之增加。當(dāng)明文為20字節(jié)時(shí),密文長(zhǎng)度為14字節(jié),當(dāng)明文為100字節(jié)時(shí),密文長(zhǎng)度為33 字節(jié);使用基于屬性代理的云存儲(chǔ)數(shù)據(jù)多層加密方法,密文隨著明文長(zhǎng)度增加,密文保持不變,說(shuō)明使用該方法密文不會(huì)受到任務(wù)數(shù)量增加而發(fā)生改變。不同明文下,密文保持14 字節(jié)不變。
3.2.2 訪問(wèn)消耗時(shí)間分析
在20 字節(jié)、40 字節(jié)、60 字節(jié)、80 字節(jié)、100 字節(jié)明文下,分別使用基于訪問(wèn)控制列表的加密方法和基于屬性代理的云存儲(chǔ)數(shù)據(jù)多層加密方法對(duì)比分析不同明文下的訪問(wèn)消耗時(shí)間,對(duì)比結(jié)果如圖5 所示。

圖5 兩種方法不同明文下訪問(wèn)消耗時(shí)間對(duì)比分析
由圖5 可知,使用基于訪問(wèn)控制列表的加密方法,訪問(wèn)所消耗的時(shí)間較長(zhǎng),當(dāng)明文為100 字節(jié)時(shí),訪問(wèn)所消耗的時(shí)間達(dá)到最長(zhǎng)為75 s。當(dāng)明文為80 字節(jié)時(shí),訪問(wèn)所消耗的時(shí)間達(dá)到最長(zhǎng)為65 s;使用基于屬性代理的云存儲(chǔ)數(shù)據(jù)多層加密方法,訪問(wèn)所消耗的時(shí)間較短,當(dāng)明文為20 字節(jié)時(shí),訪問(wèn)所消耗的時(shí)間達(dá)到最長(zhǎng)為29 s。當(dāng)明文為100 字節(jié)時(shí),訪問(wèn)所消耗的時(shí)間達(dá)到最長(zhǎng)為26 s。
3.2.3 訪問(wèn)安全性分析
分別使用基于訪問(wèn)控制列表的加密方法和基于屬性代理的云存儲(chǔ)數(shù)據(jù)多層加密方法對(duì)比分析不同明文下的訪問(wèn)安全性,如表1 所示。

表1 兩種方法不同明文下訪問(wèn)安全性對(duì)比分析
由表1 可知,基于屬性代理的云存儲(chǔ)數(shù)據(jù)多層加密方法能夠安全訪問(wèn)全部數(shù)據(jù)。
利用屬性代理技術(shù)對(duì)云存儲(chǔ)數(shù)據(jù)進(jìn)行多層加密,可以有效地保護(hù)數(shù)據(jù)所有者的敏感數(shù)據(jù),防止惡意或未經(jīng)授權(quán)的服務(wù)器訪問(wèn)數(shù)據(jù)?;趯傩源淼脑拼鎯?chǔ)數(shù)據(jù)多層加密方式,在保護(hù)敏感數(shù)據(jù)主體的前提下,可廣泛應(yīng)用于高效業(yè)務(wù)處理和數(shù)據(jù)應(yīng)用場(chǎng)景中。
盡管該方法提出了云存儲(chǔ)數(shù)據(jù)的訪問(wèn)安全性問(wèn)題的有效處理方法,但仍存在不完善之處,還需對(duì)授權(quán)責(zé)任的處理進(jìn)行進(jìn)一步研究。