李佳恩
云計算領(lǐng)域中,安全一直都是眾人關(guān)注的重點(diǎn),而與安全一同出現(xiàn)的效率問題同樣不容忽視。本文針對相關(guān)問題展開分析,提出了雙層加密的算法設(shè)想,并且就其應(yīng)用特征展開了分析。
云計算背景之下,數(shù)據(jù)安全是一個重點(diǎn)問題。云環(huán)境中的用戶將數(shù)據(jù)投入到一個數(shù)據(jù)池中,而后在通過網(wǎng)絡(luò)來進(jìn)行取用。在這樣的情況下,云計算所面臨的數(shù)據(jù)安全問題,其中最尖銳的應(yīng)當(dāng)屬細(xì)粒度屬性的訪問控制,進(jìn)一步深入考察,其中密鑰泄漏、讀寫權(quán)限靈活性不足以及屬性撤銷開銷過大,是威脅到數(shù)據(jù)安全服務(wù)體系質(zhì)量的幾個關(guān)鍵方面。
為了實(shí)現(xiàn)有效云計算框架之下的安全服務(wù),目前比較常見的數(shù)據(jù)訪問控制策略包括基于身份認(rèn)證的訪問控制以及基于屬性加密的數(shù)據(jù)訪問控制兩種。其中前者主要是在數(shù)據(jù)加密的基礎(chǔ)之上引入可以信任的第三方,來對用戶身份進(jìn)行考察驗證,從而確保公鑰安全。但是后者在當(dāng)前的云環(huán)境中則更為常見,這是一種將數(shù)據(jù)傳輸過程中角色與權(quán)限綁定修改為屬性與權(quán)限相結(jié)合的控制機(jī)制。只有當(dāng)屬性滿足條件的前提下,才能實(shí)現(xiàn)數(shù)據(jù)資源的獲取。與比較傳統(tǒng)的數(shù)據(jù)訪問控制相比,此種控制方案可以改善細(xì)粒度不足的問題,尤其符合當(dāng)前云背景之下一對多的訪問要求。當(dāng)前屬性加密訪問控制領(lǐng)域中,密文策略屬性基加密方案(CP-ABE,Ciphertext Policy Attribute Based Encryption)比較常見。在此種方案之下,用戶屬性集合負(fù)責(zé)定義和描述用戶解密密鑰,而數(shù)據(jù)屬主定義的訪問結(jié)構(gòu)則用于確定數(shù)據(jù)密文的生成方式。在此框架下共有四個角色,即認(rèn)證中心、云服務(wù)商,數(shù)據(jù)擁有者以及用戶。其中認(rèn)證中心負(fù)責(zé)為數(shù)據(jù)擁有者和用戶分別提供公鑰和私鑰,數(shù)據(jù)擁有者將數(shù)據(jù)送達(dá)云服務(wù)商,并且約定秘聞訪問策略,而用戶則面向云服務(wù)商提出訪問請求,并且當(dāng)符合對應(yīng)的屬性條件就可以執(zhí)行解密。這個過程對于用戶來說比較簡單,為整個云環(huán)境帶來的運(yùn)算量也十分有限,尤其是當(dāng)云規(guī)模不斷擴(kuò)大的時候,此種策略仍然有著良好生命力,但是仍然存在者屬性撤銷以及密鑰泄漏等風(fēng)險需要解決。
CP-ABE計算框架之下,對于加密方面而言,是首先由授權(quán)中心生成系統(tǒng)公鑰以及主密鑰,而后將這些密鑰進(jìn)行分發(fā),公鑰發(fā)送給數(shù)據(jù)提供方,允許其使用公鑰和訪問結(jié)構(gòu)來對數(shù)據(jù)進(jìn)行加密并且上傳到云端。而在解密方面,授權(quán)中心能夠依據(jù)用戶屬性生成私鑰配給給用戶,用戶可以用私鑰來對從云平臺中獲取到的加密數(shù)據(jù)進(jìn)行解密。私鑰本身是和用戶屬性綁定的,如果用戶屬性不滿足則無法實(shí)現(xiàn)解密。進(jìn)一步CP-ABE工作過程中的細(xì)節(jié)進(jìn)行考察,發(fā)現(xiàn)有幾個方面的問題必須引起關(guān)注。例如數(shù)據(jù)用戶可以在CP-ABE的支持下實(shí)現(xiàn)對于云端數(shù)據(jù)的讀取,但是如果需要修改或者寫入操作,則必須設(shè)置對應(yīng)的控制訪問權(quán)限參數(shù)才能落實(shí)。而訪問控制中對于密鑰的保護(hù),還必須從明文和密文兩個角度同時出發(fā)才能落實(shí),并且還需要在同時對加密算法本身要求的運(yùn)算能力做出考慮,過于復(fù)雜的運(yùn)算會導(dǎo)致系統(tǒng)整體工作效率的下降。除此以外,當(dāng)用戶屬性發(fā)生變更的時候,諸如撤銷屬性或者權(quán)限改變等,還必須能夠做到及時撤回私鑰,落實(shí)數(shù)據(jù)的保護(hù)。而這個過程中的效率,就成為關(guān)系到云環(huán)境中數(shù)據(jù)安全的關(guān)鍵所在。
針對上述問題,可以考慮采用分層密鑰的系統(tǒng)框架來實(shí)現(xiàn)云數(shù)據(jù)安全,即對明文和密鑰展開分層對待,下層展開對于明文的加密,上層則直接面向用戶屬性來依據(jù)數(shù)據(jù)訪問策略對密鑰進(jìn)行加密。除此以外,在展開上層加密的時候也會增加一對非對稱密鑰以便實(shí)現(xiàn)權(quán)限控制,并且通過CP-ABE體系來對其進(jìn)行加密再上傳CSP,在用戶解密的時候,則需要向CSP申請令牌來展開行動,通過中間數(shù)據(jù)格式來實(shí)現(xiàn)數(shù)據(jù)對接。對于用戶方面屬性變更而需要撤銷的情況,則需要先更新公鑰,而后再更新私鑰來實(shí)現(xiàn)系統(tǒng)安全的保障。具體而言,整個過程可以劃分為五個環(huán)節(jié)展開理解:
第一是密鑰的生成。
由認(rèn)證中心來生成系統(tǒng)公鑰和主密鑰,其中前者用于幫助屬性控制機(jī)構(gòu)來實(shí)現(xiàn)對于屬性的控制,認(rèn)證中心會生成屬性機(jī)構(gòu)的公鑰和私鑰,并且進(jìn)一步為用戶提供全局密鑰,包括全局公鑰和全局私鑰。
第二是加密的實(shí)現(xiàn)。
數(shù)據(jù)擁有者朝向認(rèn)證中心申請數(shù)據(jù)操作權(quán)限控制參數(shù),該參數(shù)以兩個為一對的形態(tài)出現(xiàn),與明文一起展開下層加密,并且不同的控制用戶權(quán)限會對應(yīng)不同的密鑰的,對應(yīng)的加密結(jié)果也存在差異。下層加密工作對明文進(jìn)行操作,通過對稱加密獲取到對應(yīng)的密文,而上層加密工作則對密鑰本身展開加密,采用CP-ABE進(jìn)行加密獲取到密鑰的密文。進(jìn)一步數(shù)據(jù)擁有者將獲取到的,由明文和密鑰分別加密的結(jié)果上傳到CSP中,供用戶下載使用。這種分層管理的方式能夠減輕加密開銷,同時也能夠通過授權(quán)來支持?jǐn)?shù)據(jù)用戶展開寫操作,相對來說比較靈活。
第三是解密的實(shí)現(xiàn)。
數(shù)據(jù)用戶通過全局私鑰向?qū)傩钥刂茩C(jī)構(gòu)提出申請,完成認(rèn)證并且獲取密鑰。該機(jī)構(gòu)首先對用戶屬性進(jìn)行確認(rèn),而后反饋私鑰以及私鑰的相關(guān)信息版本,防止密鑰非法重用。用戶隨后可以從CSP處下載上一個環(huán)節(jié)中提到的兩個密文,并且利用全局私鑰和從屬性控制機(jī)構(gòu)獲取到的私鑰進(jìn)行解密,從而獲取到對應(yīng)的明文。
第四是屬性的撤銷。
當(dāng)數(shù)據(jù)用戶的屬性發(fā)生變更的時候,對應(yīng)能夠訪問的數(shù)據(jù)權(quán)限范圍也會發(fā)生變化,為了避免用戶接觸到不屬于其屬性權(quán)限之外的數(shù)據(jù),屬性控制機(jī)構(gòu)必須對用戶及時展開屬性撤銷操作。此種情況下,認(rèn)證中心首先會對用戶的屬性描述集進(jìn)行更新,而后通過參數(shù)發(fā)送給屬性控制機(jī)構(gòu),由屬性控制機(jī)構(gòu)重新計算出新版本的密鑰,進(jìn)一步將新的密鑰和版本信息都發(fā)送給CSP,也需要重新對私鑰進(jìn)行計算,并且發(fā)送給數(shù)據(jù)用戶。在這個重新加密的過程中,所有與被撤銷相關(guān)的舊有密文都必須重新進(jìn)行加密,通常是運(yùn)行ReEncrypt算法來實(shí)現(xiàn)。而當(dāng)屬性控制機(jī)構(gòu)在 CSP更新密鑰以及版本信息之后,用戶就不能繼續(xù)使用舊密鑰來進(jìn)行數(shù)據(jù)讀取等操作了。
第五是權(quán)限的變更。
這一方面主要是指數(shù)據(jù)用戶需要對數(shù)據(jù)進(jìn)行寫操作,而重新獲取授權(quán)的問題。首先由屬性認(rèn)證機(jī)構(gòu)來對數(shù)據(jù)用戶的屬性集進(jìn)行更新,利用ReEncrypt算法獲取到新的密文,附加數(shù)據(jù)操作權(quán)限控制參數(shù)對一同發(fā)送給用戶。而后在對全局私鑰進(jìn)行更新,修正其相關(guān)數(shù)據(jù)項。
上述的這種雙層加密模式,除去增加了對于密鑰的雙重保護(hù)以外,還增加了訪問權(quán)限的控制,并且也能夠支持?jǐn)?shù)據(jù)用戶對數(shù)據(jù)進(jìn)行寫操作,在屬性發(fā)生變更需要撤銷的情況下具有顯著優(yōu)勢。此種方案能夠保證在CP-ABE正常使用的前提之下,對底層對稱密文實(shí)現(xiàn)更新,并且數(shù)據(jù)綁定訪問策略、讀寫權(quán)限,訪問控制更加細(xì)粒度,密鑰泄漏的問題也有所改善。尤其是將密鑰和數(shù)據(jù)用戶屬性相結(jié)合的方式,基本上徹底改善了密鑰的大規(guī)模泄漏問題。除此以外,底層數(shù)據(jù)的更新不會對上層密鑰加密產(chǎn)生影響,增加必要保障的同時也增加了整體系統(tǒng)的靈活性。而在數(shù)據(jù)用戶寫操作的授權(quán)方面,可以看到,數(shù)據(jù)提供者實(shí)際上在數(shù)據(jù)上傳到云端之后,仍然對其有著一定的控制權(quán),尤其是引入了密鑰版本來實(shí)現(xiàn)屬性撤銷的操作,本質(zhì)上是保證了系統(tǒng)的效率和整體安全性。
縱觀雙層加密體系全局可以發(fā)現(xiàn),該方案運(yùn)行開銷比較小,對于系統(tǒng)要求低,尤其是在屬性撤銷方面比其他很多方案都更加靈活便利,安全性也能夠保證,甚至有所提高。在生成私鑰的時候同時增加密鑰版本號相關(guān)信息,是對于屬性撤銷需求的一種有效支持。但是此種方案在加密過程中表現(xiàn)相對而言比較一般,更多優(yōu)勢體現(xiàn)在解密和撤銷兩個環(huán)節(jié)上,可以說是一種安全優(yōu)先的選擇方案。尤其是在加密過程中,由于需要加密兩次,因此對應(yīng)的加密成本相對比較高。而在解密的過程中,由于相應(yīng)的工作可以交由CSP承擔(dān),因此落實(shí)在用戶端的任務(wù)比較有限,解密工作耗時和對于計算能力的要求都得到了良好控制,并且并不會隨著屬性的增加而出現(xiàn)波動,相對來說表現(xiàn)穩(wěn)定。
作者單位:北京理工大學(xué)