曾德生 駱金維 高靜 劉倍雄 陳孟祥
摘 要:隨著云計(jì)算的發(fā)展,越來(lái)越多的用戶將數(shù)據(jù)存儲(chǔ)在云端,而采用傳統(tǒng)的明文存儲(chǔ)數(shù)據(jù)的方式不適合于開放的云存儲(chǔ)環(huán)境,基于對(duì)稱加密的方案也不適合于云端數(shù)據(jù)的分享及協(xié)同工作。針對(duì)用戶對(duì)云存儲(chǔ)中數(shù)據(jù)安全共享的需求,提出了采用層次化的身份加密技術(shù)(HIBE),規(guī)范身份標(biāo)識(shí)管理,提高私鑰的生成效率及密鑰管理的安全性。引入私鑰版本號(hào)的方法,改進(jìn)CP-ABE算法,提高屬性撤銷的效率。通過(guò)相應(yīng)分析,共享模型具有較好的安全性,最后采用Samkumar的HIBE和John Bethencourt的cpabe工具集進(jìn)行測(cè)試,結(jié)果表明該方案有較好的性能表現(xiàn)。
關(guān)鍵詞:云存儲(chǔ);安全共享模型;HIBE;屬性撤銷
文章編號(hào):2095-2163(2019)04-0240-08 中圖分類號(hào):TP309.2 文獻(xiàn)標(biāo)志碼:A
0 引 言
云存儲(chǔ)是云計(jì)算中的熱門應(yīng)用,通過(guò)集群技術(shù)、分布式計(jì)算等技術(shù)將異構(gòu)存儲(chǔ)設(shè)備通過(guò)網(wǎng)絡(luò)和應(yīng)用軟件等結(jié)合起來(lái)協(xié)同工作,構(gòu)建一個(gè)大型的存儲(chǔ)資源池,為企業(yè)及個(gè)人用戶提供數(shù)據(jù)存儲(chǔ)、備份、同步及共享等服務(wù)。云存儲(chǔ)可以有效地解決各類用戶對(duì)存儲(chǔ)資源需求擴(kuò)展的問(wèn)題,已成為一種成熟的服務(wù)模式,在企業(yè)及個(gè)人市場(chǎng)的應(yīng)用越來(lái)越廣泛[1-2]。云存儲(chǔ)中的數(shù)據(jù)安全性依賴于云存儲(chǔ)服務(wù)供應(yīng)商的管控,但由于云存儲(chǔ)架構(gòu)的開放性、共享性等特征,相較于傳統(tǒng)的存儲(chǔ)方式,云存儲(chǔ)中的安全需求不僅要求保證數(shù)據(jù)的安全性,還需要包含相應(yīng)的密鑰的分發(fā)及更新管理,以及如何實(shí)現(xiàn)在密文上進(jìn)行高效操作等。在多項(xiàng)調(diào)查報(bào)告中顯示,云存儲(chǔ)的安全性已經(jīng)成為用戶最關(guān)注的問(wèn)題之一[2-3]。
本文提出一種方案,結(jié)合層次化身份標(biāo)識(shí)加密技術(shù)(Hierarchical Identity-based Encryption,HIBE)和密文策略屬性基加密技術(shù)(Ciphertext Policy Attribute-based Encryption,CP-ABE)的特點(diǎn),設(shè)計(jì)云存儲(chǔ)環(huán)境下的數(shù)據(jù)安全共享模型:CP-AHI(BE)2方案。
在CP-AHI(BE)2方案中,利用HIBE技術(shù)構(gòu)建層次化的身份標(biāo)識(shí)管理模塊,規(guī)范身份認(rèn)證及標(biāo)識(shí)管理,提高屬性密鑰的生成效率;采用CP-ABE算法對(duì)云存儲(chǔ)服務(wù)器中的數(shù)據(jù)進(jìn)行加密以保證數(shù)據(jù)的機(jī)密性,實(shí)現(xiàn)細(xì)粒度的訪問(wèn)控制機(jī)制,降低合謀攻擊的風(fēng)險(xiǎn),同時(shí)改進(jìn)CP-ABE方案,采用增加密鑰版本號(hào)的方法[4-5],提高了密鑰撤銷的效率[6-7]。通過(guò)相應(yīng)驗(yàn)證,CP-AHI(BE)2方案可以提高數(shù)據(jù)共享的安全性,并提高云存儲(chǔ)系統(tǒng)密鑰管理性能。
1 相關(guān)工作
1.1 云存儲(chǔ)安全現(xiàn)狀
隨著計(jì)算機(jī)技術(shù)的發(fā)展,智能手機(jī)等設(shè)備的飛速增長(zhǎng)以及互聯(lián)網(wǎng)應(yīng)用模式的變革,用戶對(duì)數(shù)據(jù)存儲(chǔ)的容量及性能方面的要求越來(lái)越高,運(yùn)維成本也隨之快速增加。由于云計(jì)算具有成本低、效率高的優(yōu)勢(shì),結(jié)合虛擬化、分布式計(jì)算等技術(shù),將大量計(jì)算資源、異構(gòu)存儲(chǔ)資源、網(wǎng)絡(luò)及軟件等資源進(jìn)行整合,形成一個(gè)有機(jī)整體,對(duì)外提供大規(guī)模的數(shù)據(jù)存儲(chǔ)服務(wù),實(shí)現(xiàn)按需服務(wù)等應(yīng)用模式。為用戶提供數(shù)據(jù)備份、多終端數(shù)據(jù)同步、用戶間數(shù)據(jù)共享和協(xié)同工作等服務(wù),為企業(yè)和個(gè)人用戶的工作和生活帶來(lái)了極大的便利。
從應(yīng)用的角度看,云存儲(chǔ)對(duì)用戶是透明的。云存儲(chǔ)同樣具備云計(jì)算的5種特征[8]:按需自助、廣泛網(wǎng)絡(luò)接入、資源池化、快速?gòu)椥陨炜s、可計(jì)量服務(wù)。因此云存儲(chǔ)系統(tǒng)架構(gòu)通常可以分為4個(gè)層次:數(shù)據(jù)存儲(chǔ)層、數(shù)據(jù)管理層、數(shù)據(jù)接口層和用戶訪問(wèn)層,系統(tǒng)架構(gòu)如圖1所示。
(1)存儲(chǔ)層:可采用虛擬化及集群技術(shù),將網(wǎng)絡(luò)中的NAS、SAN等存儲(chǔ)設(shè)備進(jìn)行集中式管理,形成存儲(chǔ)資源池。
(2)數(shù)據(jù)管理層:利用集群系統(tǒng)、分布式文件系統(tǒng)等文件管理系統(tǒng)對(duì)底層的資源池進(jìn)行管理,并提供相應(yīng)的數(shù)據(jù)壓縮、去重和數(shù)據(jù)備份、加密等功能。
(3)應(yīng)用接口層:根據(jù)用戶的需求,提供數(shù)據(jù)接入的接口,為高層的用戶訪問(wèn)層提供用戶認(rèn)證、權(quán)限管理等功能。
(4)用戶訪問(wèn)層:通過(guò)應(yīng)用接口層提供的標(biāo)準(zhǔn)接口,提供數(shù)據(jù)訪問(wèn)服務(wù)。
在云存儲(chǔ)環(huán)境下,云存儲(chǔ)服務(wù)供應(yīng)商(Cloud Storage Service Providers,CSSP)利用虛擬化等技術(shù)手段,實(shí)現(xiàn)各類存儲(chǔ)設(shè)備資源的邏輯共享,將用戶的數(shù)據(jù)存儲(chǔ)在動(dòng)態(tài)共享的存儲(chǔ)資源池中。用戶間的數(shù)據(jù)可能存放在相同的物理存儲(chǔ)設(shè)備中,同時(shí)用戶數(shù)據(jù)的完全依賴于CSSP的保護(hù),因此也帶來(lái)了第三方依賴性問(wèn)題[9]。云存儲(chǔ)的安全風(fēng)險(xiǎn)分析,見(jiàn)表1。
1.2 云計(jì)算安全模型研究現(xiàn)狀
隨著云計(jì)算應(yīng)用的不斷深入,國(guó)內(nèi)外的研究人員都致力于云計(jì)算安全體系架構(gòu)的研究。2011年,馮登國(guó)總結(jié)了云存儲(chǔ)環(huán)境下的數(shù)據(jù)安全問(wèn)題,并提出了如圖2所示的安全參考框架[10]。
2015年,工業(yè)和信息化部辦公廳關(guān)于印發(fā)《云計(jì)算綜合標(biāo)準(zhǔn)化體系建設(shè)指南》的通知中,也明確提出了云計(jì)算綜合標(biāo)準(zhǔn)化體系框架。其中安全標(biāo)準(zhǔn),用于指導(dǎo)實(shí)現(xiàn)云計(jì)算環(huán)境下的網(wǎng)絡(luò)安全、系統(tǒng)安全、服務(wù)安全和信息安全,主要包括云計(jì)算環(huán)境下的安全管理、服務(wù)安全、安全技術(shù)和產(chǎn)品、安全基礎(chǔ)等方面的標(biāo)準(zhǔn)[8],如圖3所示。
1.3 HIBE及CP-ABE算法研究
1.3.1 HIBE
基于身份標(biāo)識(shí)的加密技術(shù)(Identity-based Encryption,IBE)是一種基于雙線性配對(duì)和橢圓曲線的公鑰密碼技術(shù)。通過(guò)可信的密鑰管理中心,將用戶標(biāo)識(shí)融入到密鑰中,可以提供加密及身份認(rèn)證等功能。與以往的公鑰加密相比,IBE方案可以減少對(duì)公鑰的查詢,提高密鑰生成中心的效率[11]。
傳統(tǒng)的IBE管理中心只有獨(dú)立的私鑰生成中心(Private Key Generator,PKG),隨著用戶數(shù)量增加,容易導(dǎo)致PKG的負(fù)載過(guò)高,產(chǎn)生系統(tǒng)瓶頸。為解決這一問(wèn)題,在基于IBE的基礎(chǔ)上構(gòu)建多個(gè)PKG,并將其層次化,將多個(gè)PKG分層構(gòu)建成一棵倒置的樹,如圖4所示。
HIBE方案相對(duì)于IBE具有更高的安全性,可以適當(dāng)縮短密文長(zhǎng)度,減少密鑰的存儲(chǔ)空間,各層PKG分擔(dān)密鑰管理任務(wù)[12],可以減少加密解密所需的時(shí)間,提高系統(tǒng)運(yùn)行的效率[13-16]。與傳統(tǒng)的PKI方案比較,HIBE方案在密鑰管理方面具有以下優(yōu)勢(shì),見(jiàn)表2。
1.3.2 CP-ABE
基于屬性的加密技術(shù)(Attribute-based Encryption,ABE),可以提供細(xì)粒度的非交互式訪問(wèn)控制機(jī)制,從而解決傳統(tǒng)對(duì)稱加密機(jī)制中一對(duì)一的加解密模式,擴(kuò)展為云存儲(chǔ)環(huán)境中一對(duì)多的多用戶分享模式。在ABE中,引入了訪問(wèn)結(jié)構(gòu)的概念,密文和密鑰根據(jù)屬性集合生成,可以提供2種關(guān)聯(lián)方案[17]:密鑰策略的屬性加密(Key-policy ABE,KP-ABE)和密文策略的屬性加密(Ciphertext-policy ABE,CP-ABE)。
在KP-ABE方案中,密鑰對(duì)應(yīng)于一個(gè)訪問(wèn)控制而密文對(duì)應(yīng)于一個(gè)屬性集合,解密當(dāng)且僅當(dāng)屬性集合中的屬性能夠滿足此訪問(wèn)結(jié)構(gòu)。這種設(shè)計(jì)比較接近靜態(tài)場(chǎng)景,此時(shí)密文用與其相關(guān)的屬性加密存放在服務(wù)器上,當(dāng)允許用戶得到某些消息時(shí),就分配一個(gè)特定的訪問(wèn)結(jié)構(gòu)給用戶。因此,KP-ABE算法更適用于查詢類的應(yīng)用。
在CP-ABE方案中,密文對(duì)應(yīng)于一個(gè)訪問(wèn)結(jié)構(gòu)而密鑰對(duì)應(yīng)于屬性集合,解密當(dāng)且僅當(dāng)屬性集合中的屬性能夠滿足此訪問(wèn)結(jié)構(gòu)。這種設(shè)計(jì)比較接近于現(xiàn)實(shí)中的應(yīng)用場(chǎng)景,每個(gè)用戶可以根據(jù)自身?xiàng)l件或者屬性從屬性機(jī)構(gòu)得到密鑰,然后加密者來(lái)制定對(duì)消息的訪問(wèn)控制。因此,CP-ABE算法更適用于云存儲(chǔ)環(huán)境下的密文訪問(wèn)控制。方便用戶在分享云存儲(chǔ)中的數(shù)據(jù),無(wú)需為每一目標(biāo)用戶分發(fā)屬性密鑰,只需要通過(guò)訪問(wèn)結(jié)構(gòu)進(jìn)行權(quán)限管理,大幅度地降低了權(quán)限管理的復(fù)雜度[7],提供了更加靈活的訪問(wèn)控制。從功能上實(shí)現(xiàn)了“一對(duì)多”的加密文件訪問(wèn)控制,解決了云存儲(chǔ)中多用戶環(huán)境應(yīng)用的瓶頸問(wèn)題[17- 18]。
2 安全共享需求
對(duì)于用戶而言,數(shù)據(jù)安全是最重要的需求之一。通常,數(shù)據(jù)安全包含機(jī)密性、完整性、可用性3個(gè)方面。在云存儲(chǔ)環(huán)境下,數(shù)據(jù)的安全包含數(shù)據(jù)存儲(chǔ)的安全性和數(shù)據(jù)傳輸?shù)陌踩?個(gè)部分。
(1)機(jī)密性。在云存儲(chǔ)中,數(shù)據(jù)的機(jī)密性體現(xiàn)在用戶對(duì)數(shù)據(jù)存儲(chǔ)和傳輸過(guò)程中要求任何個(gè)人或CSSP在未授權(quán)的情況下都無(wú)法查看到明文數(shù)據(jù),理論上不會(huì)出現(xiàn)數(shù)據(jù)泄露的情形。
(2)完整性。在云存儲(chǔ)中,數(shù)據(jù)的完整性主要體現(xiàn)在數(shù)據(jù)的存儲(chǔ)、傳輸和使用等情形。當(dāng)用戶進(jìn)行數(shù)據(jù)上傳或下載等操作時(shí),要求CSSP能夠根據(jù)用戶的指令,提供完整的數(shù)據(jù)讀寫操作,并提供相應(yīng)的檢測(cè)機(jī)制,確保用戶數(shù)據(jù)的完整,避免云端數(shù)據(jù)被偽造或篡改。
(3)可用性。用戶的數(shù)據(jù)存儲(chǔ)在CSSP中,對(duì)用戶而言,云端的存儲(chǔ)硬件、網(wǎng)絡(luò)接入都屬于不可控的環(huán)境。因此,CSSP如何為用戶提高數(shù)據(jù)的可用性是實(shí)現(xiàn)安全共享的重要需求之一。
在云計(jì)算中,為了保護(hù)用戶的數(shù)據(jù)安全和隱私,大多數(shù)方案都是采用非對(duì)稱(公鑰)加密(Public-key cryptography,PKE)技術(shù)來(lái)保證數(shù)據(jù)的安全性。PKE技術(shù)經(jīng)過(guò)多年的發(fā)展后,演化產(chǎn)生了基于身份標(biāo)識(shí)的加密技術(shù)和基于屬性的加密技術(shù)。
在云計(jì)算環(huán)境下,供應(yīng)商采用透明化的方案,用戶不需要關(guān)注云存儲(chǔ)的軟硬件系統(tǒng)的部署。相當(dāng)于用戶采用外包的方式將數(shù)據(jù)存放在CSSP的存儲(chǔ)服務(wù)器中。云存儲(chǔ)系統(tǒng)多處于海量用戶的應(yīng)用場(chǎng)景,須滿足“M對(duì)N”的多對(duì)多訪問(wèn)模式,供應(yīng)商的服務(wù)器中需要使用合理的方式保護(hù)數(shù)據(jù)加密所使用的大量密鑰,用于保障數(shù)據(jù)擁有者對(duì)數(shù)據(jù)的可控性。因此,完成云存儲(chǔ)環(huán)境下數(shù)據(jù)安全共享模型的設(shè)計(jì),需要解決以下問(wèn)題:
(1)如何解決云端存儲(chǔ)數(shù)據(jù)的安全性和可用性,云存儲(chǔ)服務(wù)供應(yīng)商(CSSP)在獲得用戶信任的同時(shí)該如何保證服務(wù)的可用性。
(2)云存儲(chǔ)中數(shù)據(jù)的機(jī)密性與算法復(fù)雜度之間存在不可調(diào)和的矛盾,CSSP該采用哪種合適的算法,既提高用戶的使用體驗(yàn)又降低服務(wù)器的投入。
(3)在用戶“M對(duì)N”的訪問(wèn)模式下,CSSP該如何解決密鑰管理問(wèn)題,每個(gè)數(shù)據(jù)擁有者都有可能面對(duì)多個(gè)不同的用戶,CSSP如何實(shí)現(xiàn)細(xì)粒度訪問(wèn)控制。
(4)當(dāng)出現(xiàn)用戶的注冊(cè)、注銷等,分享的增加、刪除、修改等操作,密鑰的分配管理都將發(fā)生變化,CSSP該如何解決動(dòng)態(tài)安全性問(wèn)題。
3 算法與模型設(shè)計(jì)
3.1 共享模型設(shè)計(jì)
3.1.1 系統(tǒng)角色
典型云存儲(chǔ)環(huán)境下的數(shù)據(jù)安全共享模型中,通常有4類實(shí)體參與云存儲(chǔ)服務(wù)供應(yīng)商(CSSP)、密鑰管理中心(Key Management Center,KMC)、數(shù)據(jù)屬主(Data Owner,DO)、數(shù)據(jù)用戶(Data Requester,Dreq)。
(1)CSSP。云存儲(chǔ)服務(wù)供應(yīng)商,管理大量的云存儲(chǔ)服務(wù)器,為用戶提供7*24小時(shí)不間斷的數(shù)據(jù)存儲(chǔ)及訪問(wèn)服務(wù)。
(2)KMC。密鑰管理中心,在本文的方案中,KMC分為層次化身份認(rèn)證中心和屬性密鑰加密中心2個(gè)部分。前者用于身份認(rèn)證及屬性的規(guī)范化管理,后者處理相應(yīng)的屬性加密。屬性密鑰加密中心,通常由一個(gè)密鑰產(chǎn)生中心(Key Generation Center,KGC)和若干個(gè)密鑰授權(quán)中心(Key Authorization Center,KAC)組成,主要完成密鑰的生成、分發(fā)、更新及撤銷等操作。
(3)DO。數(shù)據(jù)擁有者,通常為各類企業(yè)及個(gè)人用戶,其將自己的數(shù)據(jù)存儲(chǔ)在云端,并且依靠CSSP維護(hù)數(shù)據(jù)。
(4)Dreq。數(shù)據(jù)用戶是CSSP的服務(wù)對(duì)象,可以理解為云存儲(chǔ)服務(wù)的消費(fèi)者,訪問(wèn)DO在云端共享的數(shù)據(jù),并通過(guò)相應(yīng)的密鑰解密云端的密文數(shù)據(jù)。
3.1.2 模型圖
在安全共享模型中,結(jié)合HIBE和CP-ABE加密技術(shù),由CSSP和KMC完成密鑰的管理;DO制定相應(yīng)的訪問(wèn)控制策略,與CSSP協(xié)商,生成對(duì)稱參數(shù)密鑰對(duì),并利用相應(yīng)的密鑰加密數(shù)據(jù)后,將密文數(shù)據(jù)存放在云端。當(dāng)Dreq訪問(wèn)云端的共享數(shù)據(jù)時(shí),首先使用自己的賬號(hào)及密碼通過(guò)HIBE進(jìn)行身份驗(yàn)證,然后利用自己的私鑰及相應(yīng)授權(quán)的屬性密鑰,通過(guò)CSSP驗(yàn)證后,解密相應(yīng)的密文數(shù)據(jù),安全共享系統(tǒng)的模型設(shè)計(jì)如圖5所示。
3.2 CP-AHI(BE)2算法設(shè)計(jì)
在算法設(shè)計(jì)過(guò)程中,首先利用HIBE算法的優(yōu)勢(shì),實(shí)現(xiàn)統(tǒng)一規(guī)范的身份標(biāo)識(shí)管理,其次根據(jù)規(guī)范化處理后的細(xì)粒度屬性,采用改進(jìn)的CP-ABE方案,應(yīng)用于云存儲(chǔ)環(huán)境中。
3.2.1 HIBE
在共享模型中,HIBE模塊用于實(shí)現(xiàn)身份的認(rèn)證及相應(yīng)屬性私鑰的管理。進(jìn)行相應(yīng)的形式化定義后,HIBE算法加密的流程可以分解為5個(gè)步驟:
(1)根密鑰中心初始化(initSetup)。根密鑰中心選取安全參數(shù)k,產(chǎn)生主密鑰s和系統(tǒng)參數(shù)params。其中,系統(tǒng)參數(shù)params是公開使用的參數(shù),包含明文空間描述M和密文空間描述C,初始根結(jié)點(diǎn)的私鑰s(即主密鑰)是秘密信息,M=0,1n,C=Gt1×0,1n,在公開params的情況下s可以實(shí)現(xiàn)保密。
(2)分層密鑰中心初始化(levelSetup)。每個(gè)用戶設(shè)置自己的低層密鑰,為下一層用戶的私鑰生成做準(zhǔn)備。
(3)生成密鑰(keyGen)。根據(jù)用戶的ID首先為用戶產(chǎn)生公鑰Q,然后根據(jù)公鑰等信息計(jì)算出私鑰St。如果用戶是在根密鑰中心的下一層,則直接由根密鑰中心為用戶產(chǎn)生私鑰genKey(ID1);如果用戶在其它層,則由用戶的上一層密鑰生成中心為用戶產(chǎn)生。如genKey(ID1,ID2)由ID1所在的密鑰生成中心產(chǎn)生。
(4)加密(Encryption)。輸入系統(tǒng)參數(shù)params、接收方(Receiver)用戶的身份信息ID,明文m、輸出相應(yīng)的密文c。當(dāng)發(fā)送方(Sender)經(jīng)秘密安全通道從根密鑰中心接收params,使用接收方的公鑰QRec 和params對(duì)明文數(shù)據(jù)m加密,并把密文c發(fā)送給接收方,加密公式為c=EncData(params,QRec,m)。
(5)解密(Decryption)。輸入系統(tǒng)參數(shù)params、接收方(Receiver)用戶的私鑰sRec、密文c,輸出相應(yīng)的明文m。接收方依據(jù)(3)的方法從本層PKG 處得到私鑰SRec 并從根密鑰中心得到params,使用算法對(duì)密文c解密得到明文m,m=DecData(params,SRec,C)。
在共享模型中,通過(guò)HIBE的規(guī)范管理規(guī)則包含標(biāo)識(shí)管理、命名和訪問(wèn)3個(gè)方面進(jìn)行身份認(rèn)證及屬性粒度管理:
(1)規(guī)范標(biāo)識(shí)管理規(guī)則。規(guī)范用戶注冊(cè)、登錄、信息維護(hù)及注銷4種規(guī)則。
(2)規(guī)范標(biāo)識(shí)命名規(guī)則。將用戶的用戶名(ID)、電子郵箱等各種屬性按照身份標(biāo)識(shí)命名規(guī)則進(jìn)行標(biāo)識(shí)。
(3)規(guī)范標(biāo)識(shí)訪問(wèn)規(guī)則。建立標(biāo)識(shí)管理模塊,制定相應(yīng)訪問(wèn)規(guī)則及限制策略。當(dāng)系統(tǒng)接收到用戶登錄請(qǐng)求時(shí),首先驗(yàn)證接入端是否符合相應(yīng)規(guī)則,然后驗(yàn)證用戶登錄標(biāo)識(shí)是否合法,最后驗(yàn)證用戶的身份。通過(guò)用戶身份驗(yàn)證后,采用會(huì)話模式(Session)將用戶的相應(yīng)密鑰分發(fā)至其它功能模塊。此后標(biāo)識(shí)管理模塊采用周期性的檢測(cè)機(jī)制,檢查用戶標(biāo)識(shí)當(dāng)前是否有效,如果無(wú)效,則強(qiáng)制退出。
3.2.2 改進(jìn)的CP-ABE算法
用戶在CSSP中進(jìn)行注冊(cè)時(shí),在IBE體系中,完成身份標(biāo)識(shí)管理,根據(jù)規(guī)則生成細(xì)粒度的屬性集合,進(jìn)行相應(yīng)用戶屬性私鑰(Attribute Private Key,APK)分發(fā),DO可以根據(jù)屬性集合設(shè)定合適的訪問(wèn)控制策略。User通過(guò)CSSP進(jìn)行身份驗(yàn)證登錄后,KMC驗(yàn)證用戶屬性,KGC根據(jù)用戶屬性集,計(jì)算生成用戶的私鑰(Private Key,Prik),User合并Prik和DO分享的APk后解密共享的密文數(shù)據(jù)。
(1)初始化算法。初始化算法由CSSP和KMC完成。KMC為數(shù)據(jù)共享模型中的屬性密鑰生成公開參數(shù)Prik和主密鑰mk,CSSP為共享模型生成對(duì)稱參數(shù)csk和系統(tǒng)屬性集合A,為模型中的每個(gè)屬性設(shè)置一個(gè)唯一標(biāo)識(shí)ak,并且向KMC發(fā)送系統(tǒng)屬性集合A。
(2)屬性密鑰分發(fā)算法。屬性密鑰生成算法主要完成注冊(cè)用戶屬性私鑰的生成與分發(fā)。在執(zhí)行過(guò)程中,首先由CSSP為注冊(cè)用戶分配屬性集合,然后KCA根據(jù)用戶所持有的屬性集生成屬性參數(shù),最后用戶使用屬性參數(shù)計(jì)算得到最終的屬性私鑰。屬性密鑰的生成算法主要包括如下幾個(gè)步驟。
①由CSSP為注冊(cè)用戶分配用戶標(biāo)識(shí)ID=i,用戶屬性組Ai∈A并為其分發(fā)對(duì)稱參數(shù)CSK。
②在KMC中,可以設(shè)置m個(gè)KAC,管理中心根據(jù)細(xì)化后的屬性粒度情況,向其中j個(gè)KAC發(fā)起請(qǐng)求,并生成j個(gè)私鑰參數(shù),其中1≤j≤m。用戶向KAC發(fā)送密鑰授權(quán)請(qǐng)求,在請(qǐng)求信息中包含用戶從CSSP中獲取的用戶標(biāo)識(shí)和用戶自身的屬性集合{i,Ai}。
③KAC執(zhí)行相應(yīng)的生成算法產(chǎn)生屬性私鑰參數(shù)并將其返回給請(qǐng)求用戶。
④注冊(cè)用戶Useri接收到j(luò)個(gè)KGC的屬性私鑰參數(shù)集合后,執(zhí)行KeyGen3算法,生成自己的屬性私鑰。
經(jīng)過(guò)上述4個(gè)步驟后,注冊(cè)用戶取得了數(shù)據(jù)安全共享模型中的私鑰屬性SK以及對(duì)應(yīng)的CSK。
(3)加密算法。在共享模型中,加密通常由數(shù)據(jù)屬主(DO)完成。加密過(guò)程分2個(gè)步驟,首先執(zhí)行Enc.Arch算法,生成由屬性和邏輯運(yùn)算符組成的訪問(wèn)控制結(jié)構(gòu)τ,然后使用公共屬性密鑰Prik和對(duì)稱參數(shù)CSK執(zhí)行Enc.Crypt算法對(duì)明文M執(zhí)行加密運(yùn)算,生成密文CT。
(4)解密算法。在共享模型中,需要訪問(wèn)加密數(shù)據(jù)的用戶,在合法獲取云存儲(chǔ)環(huán)境中的加密數(shù)據(jù)CT,結(jié)合用戶的私有屬性密鑰SKi和CSK,執(zhí)行Decrypt解密算法,完成數(shù)據(jù)還原操作,得到明文m。
(5)改進(jìn)的密鑰更新算法。在共享模型中,當(dāng)某個(gè)用戶注銷或者撤銷分享操作時(shí),直接作廢該用戶的所有權(quán)限;撤銷分享操作時(shí),應(yīng)保證該用戶失去該屬性相對(duì)應(yīng)的權(quán)限,而具有該屬性的其它用戶仍保留此相應(yīng)的權(quán)限。
屬性撤銷即撤銷用戶屬性集合中的部分或者全部屬性,被撤銷某些屬性的用戶失去該屬性對(duì)應(yīng)的權(quán)限,不影響其它屬性的權(quán)限,同時(shí)不影響其它仍然具備該屬性的用戶的訪問(wèn)權(quán)限。如果DO需要撤銷某個(gè)uuid的部分或全部屬性時(shí),不僅僅需要對(duì)CSSP中使用該屬性的密文進(jìn)行更新,而且還要對(duì)擁有該屬性且未撤銷的用戶私鑰進(jìn)行更新。屬性撤銷的過(guò)程包含以下4個(gè)步驟:
(1)更新授權(quán)用戶列表(Authorized user list,AUL)。由DO發(fā)起請(qǐng)求,向用戶中心提出更新請(qǐng)求,將需要取消權(quán)限的用戶uuid從授權(quán)列表AUL中刪除,即:uuidAUL。
(2)更新密鑰版本號(hào)。由DO發(fā)起更新請(qǐng)求,當(dāng)CA收到更新操作指令時(shí),向?qū)傩悦荑€授權(quán)中心發(fā)送更新密鑰版本的請(qǐng)求,請(qǐng)求信息中包含更新屬性的唯一標(biāo)識(shí)ak和相應(yīng)的版本信息ver。屬性密鑰授權(quán)中心根據(jù)請(qǐng)求生成新版本的主密鑰mkver+1與公開參數(shù)prikver+1。
(3)更新密鑰。利用更新的主密鑰mkver+1與公開參數(shù)prikver+1,DO將被撤銷用戶時(shí)一并撤銷的屬性(ak)ver進(jìn)行更新,CA重新生成新的(ak)ver+1。未被撤銷并擁有該屬性的用戶,可以通過(guò)廣播的方式接收新的密鑰,或者采用懶惰更新算法,有需要時(shí)訪問(wèn)AUL,經(jīng)過(guò)AUL后,更新。
(4)重加密。CSSP中,根據(jù)原屬性ak和新生成的屬性(ak)ver+1將撤銷前的密文執(zhí)行解密后重新加密,生成新的密文CTver+1。
3.3 安全性分析
安全性分析側(cè)重于2.1節(jié)中所定義的系統(tǒng)安全需求。在CP-AHI(BE)2模型中,使用HIBE提高系統(tǒng)中用戶的安全性驗(yàn)證,降低了系統(tǒng)中惡意用戶通過(guò)分享密鑰訪問(wèn)為授權(quán)的數(shù)據(jù)時(shí)帶來(lái)的風(fēng)險(xiǎn),提高系統(tǒng)的抗合謀攻擊,改進(jìn)的CP-ABE算法,實(shí)現(xiàn)了用戶的細(xì)粒度訪問(wèn)控制,同時(shí)也解決了屬性撤銷等動(dòng)態(tài)分享帶來(lái)的風(fēng)險(xiǎn),提高系統(tǒng)的前后向安全性。
(1)機(jī)密性。云存儲(chǔ)環(huán)境下數(shù)據(jù)安全共享面臨的數(shù)據(jù)機(jī)密性問(wèn)題。主要包括以下3種情形:
①密鑰的產(chǎn)生。通過(guò)CSSP與用戶協(xié)商對(duì)稱參數(shù),因此CSSP可以通過(guò)還原用戶的屬性私鑰解密數(shù)據(jù)。
②用戶的屬性私鑰由KMC管理,因此KMC可以輕松獲取用戶的屬性私鑰,可以嘗試還原用戶與CSSP協(xié)商的對(duì)稱參數(shù),進(jìn)而解密數(shù)據(jù)。
③由于云存儲(chǔ)的分享特性,可以提供多重接入的方式,惡意用戶可以通過(guò)偽裝攻擊等多種獲取加密后的數(shù)據(jù),然后實(shí)施暴力破解等方式進(jìn)行解密。
數(shù)據(jù)安全共享模型中,使用了對(duì)稱和非對(duì)稱2種方式對(duì)數(shù)據(jù)進(jìn)行加密,假設(shè)密鑰的長(zhǎng)度為len,訪問(wèn)控制結(jié)構(gòu)中所用的屬性數(shù)量為n,對(duì)稱加密算法的數(shù)量為m。則上述3種情形被暴力破解的次數(shù)如下:
①CSSP持有對(duì)稱參數(shù),則CSSP需要破解的屬性密鑰的空間大小為:
因此,當(dāng)len、n和m都達(dá)到一定長(zhǎng)度時(shí),CSSP、KMC及惡意用戶都無(wú)法通過(guò)暴力破解的方式還原共享數(shù)據(jù)。
(2)抗合謀攻擊。在模型中,密鑰生成算法中屬性私鑰由多個(gè)密鑰授權(quán)中心共同生成,用戶的ID與用戶的屬性捆綁在一起。在加密算法中數(shù)據(jù)屬主(DO)生成的訪問(wèn)控制結(jié)構(gòu)由多個(gè)屬性組合成邏輯運(yùn)算結(jié)構(gòu),因此方案可以避免來(lái)自用戶合謀及KAC合謀2類攻擊。
(3)前向安全性。當(dāng)DO的某個(gè)屬性在某個(gè)時(shí)間點(diǎn)從某個(gè)用戶Dreq中撤銷后,相應(yīng)的屬性(ak)ver會(huì)被更新為(ak)ver+1。新的屬性只有具備相應(yīng)權(quán)限的用戶才能訪問(wèn),同時(shí)密文也被重新加密后更新,因此新生成的密文不會(huì)被舊的屬性密鑰解密,從而保證了前向安全性。
(4)后向安全性。當(dāng)一個(gè)用戶獲得新的(ak)ver+1后,相關(guān)的密文已經(jīng)被更新,只能對(duì)新的密文CTver+1進(jìn)行解密,而無(wú)法對(duì)舊的密文解密,從而保證了數(shù)據(jù)共享的后向安全性。
4 共享模型測(cè)試
4.1 測(cè)試環(huán)境
為驗(yàn)證上述的算法和共享模型,基于3.1.2節(jié)的模型圖,采用samkumar的HIBE和John Bethencourt的cpabe工具集在CentOS7.5中實(shí)現(xiàn)一個(gè)驗(yàn)證模型,使用1臺(tái)DELL PowerEdge R720xd服務(wù)器,安裝VMware ESXi6.0U3軟件構(gòu)建虛擬化平臺(tái)。實(shí)驗(yàn)環(huán)境及參數(shù)見(jiàn)表3和表4。
使用虛擬機(jī)模板,創(chuàng)建多個(gè)虛擬機(jī)后,使用其中5個(gè)虛擬機(jī)搭建5層深度的層次化身份認(rèn)證中心,使用10個(gè)虛擬機(jī)構(gòu)建屬性密鑰管理中心,每臺(tái)虛擬機(jī)獨(dú)立處理單個(gè)屬性。測(cè)試環(huán)境所使用的虛擬機(jī),部署在一臺(tái)物理服務(wù)器中,處于同一內(nèi)網(wǎng),測(cè)試中所使用的文件size較小,由SSD組成的磁盤陣列,可以提供較高的讀寫性能,可以忽略網(wǎng)絡(luò)傳輸速率及I/O讀寫對(duì)模型的影響。
4.2 密鑰生成
通過(guò)模擬不同數(shù)量的用戶,在深度為5層的HIBE模塊中進(jìn)行處理,生成屬性私鑰。相應(yīng)私鑰信息通過(guò)SSH通道,導(dǎo)入到cpabe工具集中進(jìn)行后續(xù)處理。執(zhí)行過(guò)程中,編寫相應(yīng)腳本,使用“date +%s.%N”獲取相應(yīng)時(shí)間記錄,累積密鑰處理過(guò)程的時(shí)間,如圖6所示。
4.3 加密與解密
生成屬性密鑰后,根據(jù)相應(yīng)的參數(shù)和密鑰執(zhí)行加解密過(guò)程。由于在屬性分解的數(shù)量及文件大小不同,所消耗的時(shí)間也不相同,詳情如圖7所示。
4.4 密鑰更新
在共享模型中,使用改進(jìn)的密鑰更新算法,當(dāng)發(fā)生權(quán)限撤銷或用戶注銷等操作時(shí),系統(tǒng)所消耗的時(shí)間與云存儲(chǔ)共享所關(guān)聯(lián)的用戶數(shù)量及屬性數(shù)量相關(guān),測(cè)試時(shí)用戶數(shù)量與屬性數(shù)量及時(shí)間消耗情況如圖8所示。
經(jīng)過(guò)上述的測(cè)試,證明CP-AHI(BE)2模型,有較好的性能表現(xiàn),該方案能夠解決云存儲(chǔ)中的信任依賴等問(wèn)題。
5 結(jié)束語(yǔ)
目前,云計(jì)算因其成本低、可定制性高等特點(diǎn),發(fā)展勢(shì)態(tài)良好,具有廣闊的發(fā)展前景,但安全性方面仍面臨著嚴(yán)峻的挑戰(zhàn)。本文針對(duì)云計(jì)算中的云存儲(chǔ)服務(wù),研究了IBE、ABE等算法,構(gòu)建CP-AHI(BE)2共享模型,針對(duì)屬性密鑰的生成問(wèn)題,采用構(gòu)建層次化的HIBE模塊,針對(duì)屬性撤銷的問(wèn)題,改進(jìn)CP-ABE方案,采用增加密鑰版本號(hào)的方法,提高了密
鑰撤銷的效率。通過(guò)測(cè)試,基于CP-AHI(BE)2的云存儲(chǔ)共享模型,具有較好的性能表現(xiàn),適合部署于云存儲(chǔ)共享環(huán)境中。
參考文獻(xiàn)
[1]Clutch. 企業(yè)數(shù)據(jù)存儲(chǔ)偏愛(ài)云[EB/OL]. [2017-08-02]. http://cloud.yesky.com/407/285947907.shtml.
[2] 問(wèn)卷星. 云存儲(chǔ)相關(guān)使用情況及安全性調(diào)查[EB/OL]. https://www.wjx.cn/report/4010291.aspx.
[3] 孫會(huì)峰. 2018網(wǎng)絡(luò)安全產(chǎn)業(yè)發(fā)展報(bào)告[J]. 信息安全研究, 2019,5(2):98-104.
[4] SHI Jiaoli, HUANG Chuanbe, WANG Jing, et al. An access control scheme with direct cloud-aided attribute revocation using version key SUN X H, et al. ICA3PP 2014, Part I, LNCS 8630. SwitzerLand:Springer International Publishing, 2014:429-442.
[5] LIANG Xiaohui, LU Rongxin, LIN Xiaodong, et al. Ciphertext policy attribute based encryption with efficient revocation[R]. Ontario, Canada:University of Waterloo, 2011.
[6] CHEN Genlang, XU Zhiqian, JIANG Hai, et al. Generic user revocation systems for attribute-based encryption in cloud storage[J]. Frontiers of Information Technology & Electronic Engineering, 2018,19(11):1362-1384.
[7] 王鵬翩, 馮登國(guó), 張立武. 一種支持完全細(xì)粒度屬性撤銷的CP-ABE方案[J]. 軟件學(xué)報(bào), 2012,23(10):2805-2816.
[8] 工業(yè)和信息化部. 云計(jì)算綜合標(biāo)準(zhǔn)化體系建設(shè)指南[EB/OL]. [2015-11-09]. http://www.miit.gov.cn/n1146295/n1652858/n1652930/n3757022/c4414407/content.html.
[9] 傅穎勛, 羅圣美, 舒繼武. 一種云存儲(chǔ)環(huán)境下的安全網(wǎng)盤系統(tǒng)[J]. 軟件學(xué)報(bào), 2014,25(8):1831-1843.
[10]馮登國(guó), 張敏, 張妍, 等. 云計(jì)算安全研究[J]. 軟件學(xué)報(bào), 2011,22(1):71-83.
[11]胡亮, 初劍峰, 林海群, 等. IBE體系的密鑰管理機(jī)制[J]. 計(jì)算機(jī)學(xué)報(bào), 2009,32(3):543-551.
[12]BONEH D, BOYEN X, GOH E J. Hierarchical identity based encryption with constant size ciphertext[M]. CRAMER R. Advances incryptology—Eurocrypt 2005. Lecture notes in Computer Science. Berlin/Heidelberg:Springer, 2005, 3494:440-456.
[13]梁潘, 馮朝勝. 基于HIBE的電子政務(wù)系統(tǒng)安全解決方案[J]. 計(jì)算機(jī)工程與設(shè)計(jì), 2011,32(3):842-845.
[14]唐鑫, 齊芳. 免密鑰托管的基于身份的分層加密機(jī)制研究[J]. 計(jì)算機(jī)工程與科學(xué), 2017,39(5):870-876.
[15]楊海濱. 一種新的格上基于身份的分層加密方案[J]. 武漢大學(xué)學(xué)報(bào)(理學(xué)版), 2016,62(2):155-160.
[16]計(jì)海萍, 徐磊, 蔚曉玲, 等. 云計(jì)算環(huán)境下基于身份的分層加密管理系統(tǒng)研究[J]. 信息網(wǎng)絡(luò)安全, 2016(5):30-36.
[17]馮登國(guó), 陳成. 屬性密碼學(xué)研究[J]. 密碼學(xué)報(bào), 2014,1(1):1-12.
[18]熊安萍, 許春香, 馮浩. 云存儲(chǔ)環(huán)境下支持策略變更的CP-ABE方案[J]. 計(jì)算機(jī)科學(xué), 2016,43(1):191-194.