趙鄭營(yíng),曹伯強(qiáng)
(河南大學(xué)計(jì)算機(jī)與信息工程學(xué)院,開封 475004)
現(xiàn)如今,網(wǎng)絡(luò)是人們信息交換的主要通信平臺(tái),人們可以通過網(wǎng)絡(luò)平臺(tái)進(jìn)行數(shù)據(jù)上傳、下載、搜索等操作進(jìn)行數(shù)據(jù)資源的交換,以滿足人們獲取信息的需求。大量的信息在網(wǎng)絡(luò)上傳遞、存儲(chǔ),會(huì)涉及個(gè)人隱私、數(shù)據(jù)安全保密等問題。為了解決這個(gè)問題,我們可以使用密碼學(xué)對(duì)信息進(jìn)行加密處理,達(dá)到安全防范的目的。加密技術(shù)分為私鑰加密和公鑰加密。早期的云存儲(chǔ)加密只是在網(wǎng)絡(luò)通信中采用HTTPS協(xié)議進(jìn)行加密,沒有對(duì)數(shù)據(jù)本身進(jìn)行處理。我們可以在數(shù)據(jù)加密的基礎(chǔ)上采用訪問控制策略。為了簡(jiǎn)化公鑰加密系統(tǒng)中密鑰管理,身份基加密在1984年被首次提出,即用戶以自身的身份信息作為公鑰。身份基加密減少了證書權(quán)威機(jī)構(gòu)綁定身份與公鑰的步驟。
屬性基加密(Attribute-Based Encryption,ABE)[1],是一種特殊的公鑰加密方案,既能保護(hù)數(shù)據(jù)擁有者的數(shù)據(jù)安全,還能夠?qū)崿F(xiàn)數(shù)據(jù)細(xì)粒度的訪問控制。屬性基加密可分為基于密文的屬性基加密和基于密鑰的屬性基加密。高效動(dòng)態(tài)的屬性撤銷方案是ABE的重要組成部分,是ABE應(yīng)用的難點(diǎn)之一,所以制定出適應(yīng)多種應(yīng)用環(huán)境的且高效的屬性撤銷方案是非常有意義的。GOya1等人[2]和Bethencourt等人[3]在原有ABE基礎(chǔ)上提出了基于密鑰策略的ABE加密算法KP-ABE和基于密文策略的ABE加密算法CP-ABE。KP-ABE是用戶的私鑰與訪問策略綁定在一起,密文與屬性集合綁定在一起,與密文相關(guān)的屬性集合滿足私鑰的綁定才能解密。CP-ABE是密文與訪問控制結(jié)構(gòu)綁定在一起,用戶私鑰與屬性集合綁定在一起。這是兩者的不同之處。
在實(shí)際應(yīng)用系統(tǒng)中,一個(gè)用戶可以擁有多個(gè)不同的屬性,同一個(gè)屬性可以被多個(gè)用戶所擁有。用戶根據(jù)擁有不同的屬性就獲得不同的密文訪問控制權(quán)限。在實(shí)際應(yīng)用場(chǎng)景中,往往會(huì)出現(xiàn)用戶更換,用戶權(quán)限變更及用戶私鑰泄露等情況,就需要考慮密鑰的屬性的撤銷問題。用戶屬性的撤銷就是失去所撤銷屬性的訪問控制權(quán)限。在屬性撤銷過程中,一個(gè)用戶可能需要撤銷多個(gè)不同屬性,也有可能不同用戶需要撤銷同一個(gè)屬性,用戶和屬性之間是“多對(duì)多”的關(guān)系。為了提高加密解密效率,數(shù)據(jù)擁有者可以將數(shù)據(jù)信息利用對(duì)稱加密進(jìn)行加密,然后上傳到云服務(wù)器上進(jìn)行保存,采用密文策略的加密方案CP-ABE對(duì)密鑰進(jìn)行管理,密文策略的屬性基加密,通過關(guān)聯(lián)到一個(gè)可描述的用戶屬性集合,將密文關(guān)聯(lián)到一棵訪問控制樹結(jié)構(gòu),實(shí)現(xiàn)密文的訪問控制。
如圖標(biāo)識(shí)滿足屬性為:45歲的醫(yī)師或者副醫(yī)師可以獲得密文。
圖1 樹形屬性圖
圖2 屬性基訪問控制過程
以上圖2是用戶A和用戶B按照?qǐng)D1屬性訪問控制進(jìn)行服務(wù)器的文件申請(qǐng)的圖示。很明顯只有用戶A符合要求,能夠拿到解密的文件。
理想狀態(tài)下的屬性撤銷應(yīng)達(dá)到以下三點(diǎn):(1)屬性撤銷應(yīng)具有時(shí)效性。(2)屬性撤銷應(yīng)有精確性,用戶某個(gè)屬性的撤銷應(yīng)不影響其他沒有撤銷屬性的用戶。(3)屬性撤銷應(yīng)具有高效性,在盡量減少系統(tǒng)負(fù)擔(dān)的同時(shí),減少撤銷的復(fù)雜性。
Pirretti等人[1]在2006年首次提出了可撤銷屬性加密(Revocable ABE,RABE)的概念。2006年,Goyal等人[7]提出了一種屬性間接撤銷的屬性加密方案,即給每個(gè)屬性都帶有一個(gè)有效期限,時(shí)間標(biāo)簽,當(dāng)某個(gè)屬性時(shí)間超過了帶有的時(shí)間標(biāo)簽,這個(gè)屬性就被撤銷了。Sahai等人[4]結(jié)合“密文代理”的性質(zhì),構(gòu)造了一種高效的且支持用戶撤銷的屬性密碼方案,有效解決了密文更新的問題,從而保證了數(shù)據(jù)的前向性和后向性安全。Shi等人[8]提出了一個(gè)支持可驗(yàn)證密文代理的直接可撤銷的屬性密碼方案。該方案使用完全子樹(Complete Subtree,CS)的方法實(shí)現(xiàn)了用戶的直接撤銷。同時(shí)方案給出了一種有效的方法來驗(yàn)證第三方是否正確地更新了密文。近期,Datta等人[9]給出了第一個(gè)在素?cái)?shù)階群上完全安全且無界的可撤銷屬性加密方案。該方案借助于子集差分(Subset Difference,SD)的方法實(shí)現(xiàn)了用戶的有效撤銷,提高了廣播的效率[10]。也有學(xué)者提出在云環(huán)境下基于屬性基加密,引入特殊屬性集得方法,和用戶原本所有的屬性集一起構(gòu)成新的訪問控制,達(dá)到對(duì)用戶密鑰分割的目的。密鑰的一部分發(fā)送給用戶,另一部分存放在選取的可信代理服務(wù)器上,存在代理服務(wù)器端的部分密鑰通過代理重加密并發(fā)送給用戶進(jìn)行更新,才能使用戶得到解密,提升了屬性撤銷的性能[11]。
根據(jù)屬性集合中不同的作用分類,可以分為用戶(User)、用戶屬性(User Attribute)和系統(tǒng)屬性(System Attribute)。根據(jù)撤銷執(zhí)行機(jī)構(gòu)的不同[5],可以分為直接屬性撤銷和間接屬性撤銷這兩種模式。間接屬性撤銷又可以分為授權(quán)機(jī)構(gòu)撤銷、第三方撤銷兩種模式。直接撤銷模式是指數(shù)據(jù)發(fā)送者在加密數(shù)據(jù)時(shí)在密文中設(shè)置有用戶撤銷列表,加密數(shù)據(jù)的時(shí)候直接對(duì)用戶實(shí)現(xiàn)屬性撤銷,如果用戶撤銷列表里有用戶的信息,則用戶不能訪問控制密文,大部分直接撤銷方案是將現(xiàn)有的廣播加密技術(shù)應(yīng)用到ABE中實(shí)現(xiàn)的。間接撤銷是授權(quán)機(jī)構(gòu)周期性的對(duì)未撤銷用戶發(fā)送更新密鑰,未撤銷用戶取到更新密鑰才能解密。授權(quán)機(jī)構(gòu)撤銷,是指如果要想對(duì)用戶的某個(gè)屬性撤銷,授權(quán)機(jī)可以直接不再更新該用戶的這個(gè)屬性密鑰,這樣用戶就不能對(duì)某些數(shù)據(jù)信息進(jìn)行訪問控制了。
屬性撤銷按照撤銷粒度的不同[6],可分為系統(tǒng)屬性撤銷、用戶撤銷和用戶屬性撤銷3種。(1)系統(tǒng)屬性撤銷,指的是系統(tǒng)中的某個(gè)屬性撤銷,撤銷后,擁有這個(gè)屬性的所有用戶都沒有該屬性的權(quán)限。例如某個(gè)單位中的“R部門”因工作需要撤銷,則所有滿足屬性是“R部門”的用戶都會(huì)失效。(2)用戶撤銷,就是指某個(gè)用戶失去所有訪問權(quán)限。如某單位的確定其工作人員A辭職了,系統(tǒng)即可對(duì)A進(jìn)行用戶撤銷,這樣A即會(huì)失去在這個(gè)單位原享有的所有權(quán)限。(3)用戶屬性的撤銷,是指用戶失去對(duì)其某個(gè)屬性的訪問權(quán)限。用戶沒有撤銷的原有其他屬性的訪問權(quán)限不會(huì)改變。并且不會(huì)影響其他擁有該撤銷屬性用戶的訪問權(quán)限。例如某個(gè)大學(xué),“2018年”辦理完畢業(yè)手續(xù)的“畢業(yè)生”,圖書館針對(duì)他們已經(jīng)畢業(yè)的情況,將他們的借書權(quán)限撤銷。所有擁有“2018年”和“畢業(yè)生”屬性的學(xué)生都將不能借書。
根據(jù)屬性撤銷的時(shí)效性不同,可以分為即時(shí)撤銷、周期性撤銷兩種。即時(shí)撤銷。直接撤銷就屬于即時(shí)撤銷。在間接撤銷模式下需要引入半可信第三方。周期性撤銷。密鑰以周期式更新,所以對(duì)于屬性的撤銷也是周期性的。
直接撤銷的過程是:用戶被一種屬性所標(biāo)識(shí),被撤銷的用戶,其屬性標(biāo)識(shí)為“否”并和用戶訪問的密文相關(guān)聯(lián),這樣用戶就無法訪問解密?;贏BE屬性撤銷是研究的熱點(diǎn),大部分的屬性撤銷研究都是采用間接撤銷方法。間接撤銷可以關(guān)聯(lián)多個(gè)用戶的多個(gè)屬性,間接撤銷一般會(huì)采用授權(quán)機(jī)構(gòu)或第三方代理執(zhí)行,多采用樹形屬性訪問控制結(jié)構(gòu),來有效實(shí)現(xiàn)細(xì)粒度的控制屬性撤銷的操作。
直接撤銷和間接撤銷的比較:(1)從時(shí)效來看,直接撤銷更加及時(shí),能夠及時(shí)地撤銷用戶的屬性,使用戶訪問控制具有實(shí)時(shí)性;間接撤銷需要密鑰周期性的更新,在密鑰更新前用戶的訪問控制權(quán)限需要設(shè)置好。(2)從復(fù)雜性來看,如果用戶屬性數(shù)量多的話,直接撤銷會(huì)加重加密者的負(fù)擔(dān);間接撤銷一般采用授權(quán)機(jī)構(gòu)或者第三方代理執(zhí)行,計(jì)算負(fù)擔(dān)小。
Attrapadung等人[12]在充分結(jié)合了兩種撤銷模式優(yōu)點(diǎn)的基礎(chǔ)上,針對(duì)KP-ABE的撤銷問題提出了采取二叉樹的混合撤銷機(jī)制HR-ABE。用戶可以在加密時(shí)決定選擇間接撤銷模式還是直接撤銷模式,每個(gè)用戶的密鑰是由來自每個(gè)子系統(tǒng)的密鑰發(fā)送并組合而成。這種撤銷方式可以使得屬性撤銷更加靈活、高效、適應(yīng)性。
對(duì)云存儲(chǔ)數(shù)據(jù)信息的基于屬性基加密,可以實(shí)現(xiàn)用戶對(duì)密文的細(xì)粒度的控制。研究者根據(jù)不同的應(yīng)用環(huán)境,選擇合適的加密解密屬性控制及撤銷方式,目的就是為了提高效率,節(jié)省資源和時(shí)間,使用戶在感覺不到繁瑣過程的同時(shí)對(duì)用戶的權(quán)益進(jìn)行了加固。當(dāng)然屬性撤銷至今已經(jīng)有了很多方面的突破,在未來的研究中還可以在目前直接撤銷模式下可撤銷ABE的基礎(chǔ)上,在不必限制沒有授權(quán)用戶實(shí)時(shí)在線等條件,也達(dá)到即時(shí)屬性撤銷?,F(xiàn)有的撤銷機(jī)制有些為了提高計(jì)算效率和交互性,加入第三方機(jī)構(gòu);有些撤銷機(jī)制是不能實(shí)現(xiàn)即時(shí)撤銷;有些撤銷機(jī)制中屬性撤銷粒度需要細(xì)化,因此,未來需要設(shè)計(jì)出可以不僅滿足不同屬性集合的屬性撤銷要求,同時(shí)可以無需實(shí)時(shí)在線交互,支持即時(shí)撤銷且高效安全的ABE撤銷機(jī)制,是未來需要研究的工作。