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