劉萍萍,閆琳英
(西安工業(yè)大學 計算機科學與工程學院,西安710021)
云存儲是在云計算基礎上延伸和發(fā)展出來的,是一個以數(shù)據(jù)存儲和管理為核心的云計算系統(tǒng)[1],通過集群應用、網絡技術或分布式文件系統(tǒng)等功能,將許多存儲設備與應用軟件相結合,共同對外提供數(shù)據(jù)存儲和業(yè)務訪問功能的一個系統(tǒng)[2].
云存儲作為云計算的一種典型的應用方式,使得用戶可以隨時隨地、通過任何可連網的裝置連接到云上方便地存取數(shù)據(jù).云存儲具有靈活性、方便性、數(shù)據(jù)共享和價格低廉等特點,能夠滿足諸多領域對海量數(shù)據(jù)存儲的需求.近幾年得到企業(yè)用戶和個人的廣泛使用.但是隨之而來的是云存儲環(huán)境下的數(shù)據(jù)安全問題,如何保護用戶敏感數(shù)據(jù)的機密性和合法訪問成為用戶最為關注的問題.目前,實現(xiàn)安全云存儲的重要技術和內容主要是訪問控制、用戶授權等.在訪問控制方面,文獻[3]最早提出了自主訪問控制和強制訪問控制的概念,這兩種傳統(tǒng)的訪問控制模型并不能很好地適應分布式環(huán)境.到1996年,文獻[4]提出了基于角色的訪問控制,通過“角色”的引入,實現(xiàn)了“用戶-角色-權限”的模式.然而這幾種訪問控制模型只是為了解決數(shù)據(jù)的合法訪問和相對完整性,無法保證數(shù)據(jù)在傳輸過程中不被用戶非法截?。虼宋墨I[5]提出了一種加密方法Fuzzy IBE,第一次出現(xiàn)了屬性加密的概念,直到2006年,文獻[6]首次提出了KP-ABE的概念,這種加密方法能夠較好地對數(shù)據(jù)進行加解密.文中將從訪問控制和屬性加密兩方面進行研究,利用基于角色的訪問控制方法和屬性加密兩方面技術提出一種云存儲訪問控制系統(tǒng)方案,同時達到保證數(shù)據(jù)的合法訪問,機密性以及完整性.
訪問控制是通過限制用戶的操作權限來達到保護系統(tǒng)數(shù)據(jù)不被非法訪問和竊取,進而保證數(shù)據(jù)資源的完整性和保密性,是針對越權用戶訪問資源數(shù)據(jù)的防御措施,即限制訪問主體對訪問客體的訪問權限.
傳統(tǒng)的訪問控制包括自主訪問控制(Discretionary Access Control,DAC)和強制訪問控制(Mandatory Access Control,MAC).自主訪問控制是基于主體授權的訪問控制策略,系統(tǒng)中的主體對其所擁有的客體具有管理權限,并且主體可以決定是否將自己所擁有的客體資源的訪問權限授予其他主體.這種控制方式具有自主的,但是授予主體用戶的權限過大,導致系統(tǒng)的安全性大大降低.
強制訪問控制與自主訪問控制不同,它是由安全管理員分配給主體用戶和客體資源一個固定的安全級別,分配好的安全級別主體用戶自己不能更改,并且也不能改變其能訪問的客體的安全級別.在用戶訪問請求時,系統(tǒng)自動檢測主體用戶和客體資源的安全級別,判斷其是否具有訪問客體資源的權限.強制訪問控制通過單向的信息流通方式,能夠在一定程度上增強系統(tǒng)的安全,但是其缺乏靈活性、不便于管理,因此一般不用于復雜的分布式環(huán)境中.
文中提出的面向云存儲的訪問控制系統(tǒng)中,訪問控制模塊就是利用基于角色的訪問控制模型.基于角色的訪問控制(Role-Based Access Control,RBAC)主要思想是將傳統(tǒng)訪問控制中的主體和客體相分離,訪問權限不直接針對主體和客體,而是將其分配給角色,當用戶被賦予某種角色之后,將擁有該角色所包含的所有權限.
數(shù)據(jù)加密技術[7]是指將一段信息(明文)按照一定的加密規(guī)則轉換為一段無意義的信息(密文),接收方必須擁有解密密鑰才能恢復密文為明文,而未授權的用戶無法得到信息內容.經過加密技術的使用使得系統(tǒng)數(shù)據(jù)在傳輸過程中不易受到非法截取而導致信息泄露,而且數(shù)據(jù)在存儲系統(tǒng)中也得到了保護,加密技術保證了數(shù)據(jù)的完整性和保密性.
根據(jù)密鑰的不同,加密算法分為對稱加密體系和非對稱加密體系[8].
1)對稱加密體系
對稱加密算法是應用比較早的算法,技術已經很成熟,在對稱加密中,加密使用的密鑰和解密使用的密鑰相同,它要求發(fā)送方和接收方在安全通信之前,商定一個密鑰.對稱加密算法中最為著名的加密算法是數(shù)據(jù)加密標準(Data Encryption Standard,DES),DES算法公開、加密速度快、復雜度低,但其安全性依賴于密鑰,泄漏密鑰就意味著任何人都可以對他們發(fā)送或接收的消息解密,所以密鑰的保密性對通信性至關重要.
2)非對稱加密體系
與對稱加密算法不同,非對稱加密算法有兩個密鑰,公開密鑰和私有密鑰.公開密鑰與私有密鑰是一對,如果用公開密鑰對數(shù)據(jù)進行加密,只有用對應的私有密鑰才能解密,如果用私有密鑰對數(shù)據(jù)進行加密,那么只有用對應的公開密鑰才能解密.非對稱加密算法中最為著名的是RSA算法[6].與對稱加密算法相比,非對稱加密算法安全性高,但是其加密效率低,只適合對少量數(shù)據(jù)進行加密.
基于 屬 性 的 加 密 (Attribute Based Encryption,ABE)機制是在基于身份的加密機制(Identity Based Encryption,IBE)[9]基礎上擴展而來.主要是基于密鑰策略的屬性加密體制(Key-Policy ABE,KP-ABE)和基于密文策略的屬性加密體制(Ciphertext-Policy ABE,CP-ABE)[10].在 KPABE中,可描述的一組屬性與密文相聯(lián)系,解密密鑰用決策樹來約束.當用戶屬性匹配訪問控制策略樹,用戶才能獲取解密密鑰.因此,加密方對明文無任何控制權.KP-ABE適合于大規(guī)模網絡下的密鑰管理.在CP-ABE中,訪問控制策略樹和密文相聯(lián)系,解密密鑰用一組可描述的屬性來約束.當解密者擁有的屬性能夠匹配決策樹,就可以獲得解密密鑰,獲得對資源的訪問權限.由于云計算資源的高度集中,系統(tǒng)的高度開放以及可伸縮性,CPABE比KP-ABE更適用于云存儲系統(tǒng),使得密鑰管理更加方便快捷.
為了提高加密技術的效率,考慮到實際系統(tǒng)中并不是所有的數(shù)據(jù)都需要加密,因此文中將云存儲環(huán)境下的數(shù)據(jù)分為兩類:敏感數(shù)據(jù)和非敏感數(shù)據(jù),以檔案管理系統(tǒng)為例,網站上的圖片、公告、視頻等本身供用戶共享的數(shù)據(jù)沒有必要進行加密,稱之為非敏感數(shù)據(jù),對于系統(tǒng)中的合同、檔案文件等數(shù)據(jù)則使用加密技術進行加密,稱之為敏感數(shù)據(jù).
在云存儲中進行數(shù)據(jù)的加密訪問控制,密鑰的管理很困難,使用傳統(tǒng)的對稱加密無法保證密鑰的安全性,使用非對稱加密機制可以增強系統(tǒng)的安全性,但是算法通常較復雜,直接用于數(shù)據(jù)文件的加密效率很低.因此在云環(huán)境中,必須要同時實現(xiàn)高效的加密數(shù)據(jù)的訪問控制和保證數(shù)據(jù)和密鑰的安全性.因此文中的加密技術將充分利用屬性加密機制在訪問控制中的優(yōu)勢,同時結合使用高效的對稱加密算法以實現(xiàn)云環(huán)境中多用戶的安全和高效的數(shù)據(jù)訪問.云存儲中基于屬性的數(shù)據(jù)訪問如圖1所示,以檔案管理系統(tǒng)為例,說明云存儲中基于屬性加密的數(shù)據(jù)訪問結構.
圖1 云存儲敏感數(shù)據(jù)訪問結構Fig.1 Sensitive data access structure of cloud storage
文中云存儲訪問控制系統(tǒng)包括四大模塊:基于角色的訪問控制模塊、基于屬性的加解密模塊、主體信息模塊和云存儲模塊.
系統(tǒng)結構如圖2所示.
圖2 云存儲訪問控制系統(tǒng)Fig.2 Cloud storage access control system
當用戶提交資源訪問請求時,基于角色的訪問控制模塊進行用戶身份認證,若驗證失敗,則向用戶返回失敗信息,此次請求終止,若驗證成功,則查看請求資源的類型,若資源為非敏感型(未加密數(shù)據(jù)),則此模塊對用戶進行角色分配,并且為角色賦予權限,進而轉向云存儲模塊,用戶進行數(shù)據(jù)的利用,當用戶請求的資源為敏感型時,從主體信息模塊中檢索用戶屬性,若用戶屬性符合資源訪問控制策略,則執(zhí)行基于屬性的加解密模塊進行明文(密文)的加密(解密).
系統(tǒng)中各模塊內容為
①基于角色的訪問控制模塊:此模塊用于主體用戶信息的驗證和非敏感數(shù)據(jù)的訪問控制.當主體用戶提出資源訪問請求時,先由訪問控制模塊將用戶信息提交給云授權中心,云授權中心進行用戶信息的審核,若符合系統(tǒng)的安全規(guī)則,則繼續(xù)查看需要訪問資源的類型,若為非敏感數(shù)據(jù),則為用戶授予需要的角色,進而為用戶角色分配相對應的訪問權限,用戶可直接提交數(shù)據(jù)到云存儲模塊,進行資源的利用.若需要訪問的數(shù)據(jù)是敏感型,則直接將用戶相關信息提交給加解密模塊.
②主體信息模塊:用來存儲主體用戶的屬性信息、用戶私鑰和由(Data Encrypition Standard,DES)算法生成的對稱密鑰.
③云存儲模塊:存儲經過加密的密文和未經加密直接由訪問控制模塊存儲的明文.
④ 屬性加解密模塊:包括對稱加解密功能、屬性加密功能和屬性解密功能.其中對稱加解密功能,采用DES加密算法,用于生成對稱密鑰,并用對稱密鑰加密明文,解密密文;屬性加密功能采用CP-ABE加密算法對對稱密鑰進行加密,得到加密后的對稱密鑰并存儲到主體信息管理模塊中;屬性解密功能,根據(jù)身份用戶信息對主體信息管理模塊進行檢索,得到用戶私鑰和加密后的對稱密鑰,使用用戶私鑰運行CP-ABE解密算法對加密后的對稱密鑰進行解密得到對稱密鑰.
模塊采用DES對稱加密算法加密數(shù)據(jù),其復雜度比非對稱加密低,且加密效率高,但是密鑰不安全,因此再使用CP-ABE進行對稱密鑰的加密,CP-ABE算法最大的優(yōu)點就是適用于分布式環(huán)境下解密不固定的情況,加密方加密信息時不需要了解解密方的是誰,而解密方只需要符合加密方所指定的策略,便可以解密密文得到明文.
CP-ABE算法包括以下四個部分為
①Setup():一個隨機化算法,輸入消息M,生成主密鑰MK和系統(tǒng)公開參數(shù)PK;
②KS= KeyGen(MK,A):也是一個隨機化算法,使用MK和用戶屬性集S生成用戶的私鑰KS;
③ CTT= Encrypt(PK,M,T):同樣是一個隨機化算法,使用PK、訪問控制策略結構T將明文數(shù)據(jù)M加密為密文CTT;
④M=Decrypt(CTT,KS):使用私鑰KA解密密文CTT得到明文M.當S滿足T的條件,Decrypt()的操作才能成功.
文中所提出的云存儲訪問控制系統(tǒng)實現(xiàn)的平臺選用的是 Linux ubuntu 12.04,實驗環(huán)境為在VMware Workstation 8上安裝 Ubuntu 12.04,并安裝Hadoop0.20.0,開發(fā)環(huán)境采用 MyEclipse10.
系統(tǒng)部署實體機拓撲圖如圖3所示.
圖3 系統(tǒng)部署實體機拓撲圖Fig.3 Topology of system deployment entity machine
系統(tǒng)部署主要包括認證服務器和存儲節(jié)點.認證服務器利用基于角色的訪問控制實現(xiàn)用戶身份驗證和非敏感數(shù)據(jù)的訪問,驗證通過的用戶根據(jù)其屬性生成的策略判斷是否授權用戶訪問數(shù)據(jù)資源,若用戶屬性符合訪問策略則授權,否則返回未授權響應.存儲節(jié)點主要利用DES對稱加密算法對敏感數(shù)據(jù)進行加解密、并利用CP-ABE屬性加密算法對密鑰進行加解密,以及數(shù)據(jù)的存儲功能.
系統(tǒng)測試界面如圖4所示,由三部分組成:①系統(tǒng)登錄,包括用戶名、密碼和系統(tǒng)身份的驗證,這部分就是對用戶合法訪問的一個簡單的控制;②屬性策略設置部分,在用戶上傳數(shù)據(jù)文件時填寫的策略屬性集,包括用戶類別、部門和職位;③文件目錄顯示區(qū),左半部顯示本地文件的目錄,主要用于用戶上傳文件時查找并上傳本地文件數(shù)據(jù)包含添加文件、上傳文件和刪除等操作按鈕;右半部為云端文件目錄顯示窗口,主要顯示用戶在云存儲器上所擁有的文件數(shù)據(jù),還包含了云端操作按鈕如下載文件和顯示文件列表等.
圖4 系統(tǒng)界面Fig.4 The interface of the system
對本訪問控制方案中的加密算法利用仿真實驗進行驗證,得出如圖5~6所示的結果,可以明顯看出DES的加解密性能明顯大于CP-ABE.加密敏感數(shù)據(jù)時本系統(tǒng)采用的是DES對稱加密算法,既保證數(shù)據(jù)的完整性和機密性,又因為對稱加密算法效率高,保證系統(tǒng)的性能下降在用戶可接受范圍內,然后使用CP-ABE加密DES對稱密鑰,從而保證密鑰的機密性.
圖5 加密時間對比圖Fig.5 Comparison between encryption times
圖6 解密時間對比圖Fig.6 Comparison between decryption times
通過研究云存儲環(huán)境下的數(shù)據(jù)安全問題,使用基于角色的訪問控制模型,對云存儲環(huán)境下系統(tǒng)進行訪問權限的控制,并使用屬性加密算法對云存儲環(huán)境下的系統(tǒng)數(shù)據(jù)進行加解密,通過這兩者的結合提出一種面向云存儲的訪問控制系統(tǒng)方案,該方案能夠在一定程度上保證云存儲中數(shù)據(jù)的完整性和保密性.
[1] 李喬,鄭嘯.云計算研究現(xiàn)狀綜述[J].計算機科學,2011,38(4):32.LI Qiao,ZHENG Xiao.Research Survey of Cloud Computing[J].Computer Science,2011,38(4):32.(in Chinese)
[2] 傅穎勛,羅圣美,舒繼武.安全云存儲與關鍵技術綜述[J].計算機研究與發(fā)展,2013,50(1):136.FU Ying-xun,LUO Sheng-mei,SHU Ji-wu.Survey of Secure Cloud Storage System and Key Technologies[J].Journal of Computer Research and Development,2013,50(1):136.(in Chinese)
[3] 張基溫.信息系統(tǒng)安全教程[M].北京:清華大學出版社,2007.ZHANG Ji-wen.Course of Information System Security[M].Beijing:Tsinghua University Press,2007.(in Chinese)
[4] 龍勤,劉鵬,潘愛民.基于角色的擴展可管理訪問控制模型研究與實現(xiàn)[J].計算機研究與發(fā)展,2005,42(5):868.LONG Qin,LIU Peng,PAN Ai-min.Research on and Implementation of an Extended Administrative Rolebased Access Control Model[J].Journal of Computer Research and Development,2005,42(5):868.(in Chinese)
[5] 牛德華,馬建峰,馬卓.基于屬性的安全增強云存儲訪問控制方案[J].通信學報,2013,34(Z1):276.NIU De-hua,MAN Jian-feng,MA Zhuo.Enhanced Cloud Storage Access Control Scheme Based on Attribute[J].Journal on Communications,2013,34(Z1):276.(in Chinese)
[6] 孫國梓,董宇,李云.基于CP-ABE算法的云存儲數(shù)據(jù)訪問控制[J].通信學報,2011,32(7):147.SUN Guo-zi,DONG Yu,LI Yun.CP-ABE-Based Data Access Control for Cloud Storage[J].Journal on Communications,2011,32(7):147.
[7] BETHENCOURT J,SAHAI A,WATERSs B.Ciphertext-Policy Attribute-Based Encryption[C]//Proc of IEEE Symposium on Security and Privacy,Los Angeles:IEEE Computer Society,2007:321.
[8] FU K.Group Sharing and Random Access in Crypt-Graphic Storage File Systems[D].Massachusetts:MIT,1999.
[9] HUR J B,NOH D K.Attribute-Based Access Control with Efficient Revocation in Data Outsourcing Systems[J].IEEE Transactions on Parallel and Distributed Systems,2011,22(7):1214.
[10] GOYAL V,JAIN A,PANDEY O,et,al.Bounded Ciphertext Policy Attribute-Based Encryption[C]//Proc of the 35th International Colloquium on Automata,Berlin Heidelberg:Springer-Verlag,2008:579.