祁暉 ,底曉強 ,李錦青 ,楊華民 ,姜會林
(1.長春理工大學 計算機科學技術學院,長春 130022;2.長春理工大學 空間光電技術國家地方聯合工程研究中心,長春 130022)
基于交互式級聯布隆過濾器的一體化網絡訪問控制緩存系統
祁暉1,2,底曉強1,2,李錦青1,楊華民1,姜會林2
(1.長春理工大學 計算機科學技術學院,長春 130022;2.長春理工大學 空間光電技術國家地方聯合工程研究中心,長春 130022)
通過深入研究基于級聯布隆過濾器的緩存方案,重新構造了基于角色的訪問控制(RBAC)系統的緩存結構,設計并實現了基于交互式級聯布隆過濾器的訪問控制緩存系統。在訪問控制決策點(PDP)上設計了專門的數據結構來存儲基于角色的訪問控制規則及其散列函數值,并根據這些信息高效地生成、更新輔助決策點(SDP)的級聯布隆過濾器,降低了SDP對緩存存儲空間的需求,提高了級聯布隆過濾器的更新效率。該系統可應用于大規模、分布式的應用系統和網絡系統,以加快訪問控制速度,提升系統整體服務質量。
訪問控制;RBAC;布隆過濾器;一體化網絡;緩存
訪問控制是保障系統安全的重要手段,基于RBAC的訪問控制系統已得到了廣泛應用,包括大規模分布式企業應用和網絡應用[1-6]。以網絡應用為例,訪問控制系統的一般架構如圖1所示。在該架構中,策略實施點(PEP)解析接入請求,然后從策略決策點獲取訪問控制決策以決定客戶端是否可以接入網絡。
在上述集中式訪問控制架構中,PDP決定了整個訪問控制系統的性能,且當其出現故障時,訪問控制系統失效。為了解決這些問題,研究人員提出了分布式訪問控制架構,如圖2所示。該架構在接入點上引入了輔助決策點(SDP),用于緩存訪問控制決策。當PEP接收應用請求時,會向SDP發送訪問控制請求,如果SDP根據緩存的信息可以進行決策,則立即向PEP返回決策結果,否則,它會向PDP發送請求,由其根據訪問控制規則作出決策,然后SDP會將PDP返回的決策結果緩存起來以備之后處理相同的請求。由于SDP與PEP在同一個節點,對于SDP可以處理的訪問控制請求,訪問控制決策過程將十分高效。另一方面,即使PDP出現故障,只要SDP緩存了足夠的信息,訪問控制系統依舊可以正常工作。

圖1 網絡應用的訪問控制架構

圖2 分布式訪問控制架構
分布式訪問控制架構因其較好的性能和容錯能力,受到了極大關注。目前,已提出了不少SDP的緩存策略,其中,基于級聯布隆過濾器的緩存策略被證明具有較好的時間和空間效率。本文改進了該策略,使其具有更低的存儲空間需求及更高的管理性能。
接下來,本文首先介紹了訪問控制緩存的相關研究工作;然后詳細闡述了本文的方案,包括系統方案、實現原理和詳細設計;之后通過仿真實驗對本文方案的性能進行了驗證;最后對全文做了總結。
訪問控制決策緩存是提高訪問控制系統性能的一項重要措施,在許多系統中得到了應用,如文獻[7]所設計的訪問控制系統就在內存中創建了一個映射表,以主體和對象標識作為關鍵字,以壓縮后的訪問控制規則作為值。當主體訪問某個對象時,訪問控制系統首先在內存的映射表中查找訪問控制規則,僅當內存中不存在相關規則時,系統才會到后端數據庫中查找,并將其載入內存映射表。這種方式有效降低了訪問控制系統的響應時間,極大提高了系統的吞吐量。但該方式是針對特定應用的,訪問控制規則的壓縮方法并不通用,同時由于需要存儲主、客體標識,因此在擁有大量主、客體的環境下將占用大量內存空間或導致緩存命中率不高。文獻[8],[9]提出了一種分布式環境下的緩存策略,根據PDP的決策結果推斷角色與權限的映射關系,然后將它們存儲于SDP中。該策略支持基于RBAC模型的訪問控制系統,通用性強,但由于緩存更新和決策時需要遍歷緩存數據,因此響應時間較長。文獻[10]提出了基于級聯布隆過濾器的分布式緩存策略,該策略在SDP中使用級聯布隆過濾器存儲會話和權限關系。得益于布隆過濾器的特性,該策略的檢索性能較好,且占用的存儲空間穩定。但該策略的管理性能不佳,在更新會話權限關系時需要遍歷整個集合。文獻[11]比較了各種緩存策略,并指出基于級聯布隆過濾器的緩存策略在時間效率和空間效率上均有較好的表現。文獻[12]提出了一種使用相聯陣列的硬件數據結構來緩存授權決策的方案,該方案支持基于訪問控制矩陣和CPOL的緩存策略,但不支持基于級聯布隆過濾器的緩存策略。本文優化了文獻[11]中的基于級聯布隆過濾器的實現方案(不少研究人員使用該文獻的實現作為基準測試程序或使用了該文獻的測試數據[12]),使其占用更少的存儲空間,并具備更好的管理性能。
本文的系統架構如圖3所示。

圖3 分布式訪問控制系統結構
本系統將RBAC策略(包括用戶、角色、權限及它們之間的關系)集中存儲于PDP節點;管理員與該節點交互更新RBAC策略;PDP節點還使用關系數據庫存儲每一級的布隆過濾器結構。
PDP將布隆過濾器結構通過網絡發送給多個SDP,后者在內存中生成級聯布隆過濾器;當管理員更新RBAC策略時,PDP會將更新消息發送給SDP,由后者更新內存中的級聯布隆過濾器。
普通用戶將訪問控制請求發送給SDP,由SDP驗證請求是否滿足訪問控制規則。
本系統的核心數據結構是級聯布隆過濾器,該結構的基礎是布隆過濾器,它是一個時間和空間上都高效的用于檢索的數據結構。假設有一個集合A,為了存儲該集合中的元素,需要定義一個m比特的數組,以及一組哈希函數,每個函數獨立地將A中的元素映射成0到m-1中的一個整數,即hi:U→{0,1,…,m-1},對于所有的i=1,…,k,其中:U為A中的元素和不在A中的元素組成的全集,k為哈希函數的個數。當存儲a∈A時,計算hi(a),然后將數組中相應的位置1;當要確定某個元素e是否在A中時,計算hi(e),然后檢查數組中相應位的值是否為1,若任意hi(e)對應的位的值為0,則e?A,否則認為e∈A。對于布隆過濾器,可能存在e?A,但所有hi(e)對應的數組中的位的值均為1,即存在假陽性。另一方面,將一個元素加入布隆過濾器很簡單,但要從中刪除一個元素則并不容易,不能簡單地將要刪除元素的哈希值所對應的數組中的位置0,因為其他未刪除元素可能需要將該位置1。為此,人們提出了計數布隆過濾器,它并不是一個m比特的數組,而是m個計數器數組,每個計數器占若干比特。當添加一個元素時,是將數組中相應位置的計數器加1,刪除元素時,則將相應位置的計數器減1。
為了保留布隆過濾器的時間和空間效率,同時解決其假陽性問題,人們提出了級聯布隆過濾器,即使用多級(多個)布隆過濾器。假設一個級數為d的級聯布隆過濾器,第i級的布隆過濾器記為BFi,BFi存儲的元素集合記為Ai。第1級布隆過濾器BF1存儲集合A中的元素,即A=A1;A2是集合U-A1中所有對于BF1假陽性的元素集合;Ai是Ai-2中所有對于BFi-1假陽性的元素集合;Ad-1中所有對于BFd假陽性的元素將存入一個哈希表中,即Ad+1將以一個列表的形式存儲。級聯布隆過濾器的結構如圖4所示。假定級聯布隆過濾器分為4級,則Ai+1是Ai-1中所有對于BFi的假陽性元素所組成的集合,所以有A1?A3?A5和A2?A4,且A5并不存儲到布隆過濾器中,取而代之的是使用哈希表來存儲A5中的元素。對于元素E1∈A1且不屬于其他集合,則驗證E1是BF1成員時將返回true,而驗證其是BF2成員時將返回false;對于元素E4∈A4?A2,則驗證其是BF1,…,BF4成員時均返回true,但E4?A5,因此E4?A;對于元素E6?Ai,對任意Ai都成立,因此在驗證其時BF1成員時將返回false。

圖4 級聯布隆過濾器結構。
文獻[11]使用上文的級聯布隆過濾器存儲系統的會話信息——用戶-權限關系,由于用戶頻繁登錄退出系統,使得級聯布隆過濾器中的內容頻繁更新,而更新對于級聯布隆過濾器是一個相對耗時的操作。為此,本文將相對穩定的角色-權限關系存儲于級聯布隆過濾器中。由于角色數通常遠小于用戶數,因此本文的級聯布隆過濾器所需存儲空間更小,生成和更新的效率更高。此外,本文在PDP端設計了專門的數據結構存儲級聯布隆過濾器的相關信息,實現了在每級布隆過濾器使用比特數組(而非計數器數組)來存儲數據,從而進一步降低存儲空間。
本文在PDP端除了將用戶、角色、權限及它們之間的關系存儲到關系數據庫中,還設計了兩個3元組用于存儲級聯布隆過濾器的相關信息。其中一個三元組為 T1=(level,index,count),其中 level是級聯布隆過濾器的級別標識,index是布隆過濾器的索引,count是布隆過濾器的計數器,該三元組用于模擬級聯布隆過濾器中的每一級計數布隆過濾器;另一個三元組為T2=(level,role,permission)二元組為(role,permission),其中level是級聯布隆過濾器的級別標識,role是角色,permission是權限,該三元組用于存儲級聯布隆過濾器每一級的元素,包括最后的哈希表。
假設級聯布隆過濾器的級數為d。當管理員添加一個角色-權限關系時,系統需要執行以下步驟:
(1)在關系數據庫中添加角色-權限關系;
(2)確定全集U(角色-權限的笛卡兒積)是否有變化,假設要添加的元素為e(e表示添加的角色-權限關系),添加前的全集為U,添加后的全集為U';
(3)使用BF1的哈希函數計算e的所有哈希值,然后根據哈希值在T1(第一個三元組所對應的關系表)中將所有level為1,且index為哈希值的計數器值加1;
(4)將三元組(1,e所對應的角色,e所對應的權限)添加到T2(第二個三元組所對應的關系表)中;
(5)判斷集合U'-U-e中每個元素是否是BF1中的成員,對于不是BF1成員的元素,使用BF2的哈希函數計算其所有哈希值,然后更新T1中的相關計數器,并在T2中添加相應記錄;
(6)設置變量 i=2,…,d+1,確定集合 Ai-2(在T2中查詢所有level=i-2的記錄)中所有對于BFi-1假陽性的元素,使用BFi的哈希函數計算它們的哈希值,然后更新T1中的相關計數器(當i=d+1時不用執行此操作),并在T2中添加相應記錄。
(7)將步驟3至6中對T1的更新操作發送到SDP以更新緩存中的級聯布隆過濾器。
當管理員刪除一個角色-權限關系時,系統需要執行以下步驟:
(1)在關系數據庫中刪除角色-權限關系;
(2)確定全集U(角色-權限的笛卡兒積)是否有變化,刪除前的全集為U,刪除后的全集為U';
(3)令集合E=A1-(U-U');
(4)對E中的每個元素e,使用BF1的哈希函數計算其所有哈希值,然后根據哈希值在T1中將所有level為1,且index為哈希值的計數器值減1;
(5)從T2中刪除元素e所對應的記錄;
(6)從E中刪除e,重復步驟4,直到E為空;
(7)判斷集合A2-(U-U')中每個元素是否是BF1中的成員,對于不是BF1成員的元素,使用BF2的哈希函數計算其所有哈希值,然后更新T1中的相關計數器,并在T2中刪除相應記錄;
(8)設置變量 i=2,…,d+1,確定集合 Ai-2中所有對于BFi-1假陽性的元素,使用BFi的哈希函數計算它們的哈希值,然后更新T1中的相關計數器(當i=d+1時不用執行此操作),并在T2中刪除相應記錄。
(9)將步驟3至8中對T1的更新操作發送到SDP以更新緩存中的級聯布隆過濾器。
本文在SDP緩存中存儲的是角色-權限關系,并不包含用戶信息,而實際的訪問控制系統需要確定用戶和權限的關系。為此,可以在用戶登錄系統后將用戶及其關聯的角色信息保存到用戶端,并借助公鑰加密系統對用戶端的信息進行簽名,以避免用戶隨意篡改登錄信息。這樣,用戶在發送請求時,系統就能提取用戶的角色信息,之后根據SDP中緩存的角色-權限關系確定用戶是否擁有某個權限。
本文將訪問控制緩存系統應用于一體化網絡環境,以測試其在大規模、分布式系統中的性能。一體化網絡是近年受到廣泛關注的一個新興研究領域,它是一種融合地面互聯網和空間網絡,能在任何地點、任何時間、以任何方式提供信息服務高速寬帶信息網絡[13-17]。
一體化網絡架構如圖5所示。在一體化網絡中,訪問控制系統的緩存節點SDP可部署于網絡的接入節點上,如地面無線基站或低軌衛星(LEO),而訪問控制系統的決策點(PDP)則部署于地面互聯網上。管理員維護PDP中的訪問控制規則,即用戶、角色、權限和它們之間的關系,然后PDP自動將級聯布隆過濾器同步到基站或LEO上。當移動終端接入網絡,或在不同網絡間切換時,如從空間網絡切入地面網絡(從LEO切換到基站),或從地面網絡切入空間網絡(從基站切換到LEO),則接入節點可以直接利用緩存的級聯布隆過濾器對用戶進行訪問控制。

圖5 一體化網絡架構
本文的測試環境包括兩個部分:一體化網絡仿真環境和訪問控制系統環境。前者利用GTK導出的真實衛星軌道數據及空間通信參數計算空間網絡數據傳輸延遲,然后使用WebGL對一體化網絡結構和數據傳輸過程可視化;后者使用Java技術開發,包括訪問控制管理和訪問控制緩存兩個子系統。仿真環境如圖6所示。

圖6 一體化網絡仿真環境
本文主要比較了使用傳統級聯布隆過濾器和本文的改進方案在緩存空間占用上的差異,實驗數據來源于文獻[11]的公開數據,測試方法也與該文獻相同,包括了緩存的創建,向緩存中添加數據、刪除數據等一系列操作,從實驗結果看,本文的改進方案確實需要更少的緩存空間,如圖7所示。

圖7 緩存空間占用對比

圖8 接入空間網絡時的訪問控制延遲對比
此外,本文還測試了接入空間網絡時,使用緩存(在LEO上完成訪問控制)和不使用緩存(在地面完成訪問控制)的訪問控制延遲對比,如圖8所示。從測試結果不難看出,對于空間網絡這種高延遲環境,使用緩存能極大提高訪問控制效率。
本文將訪問控制緩存系統應用到一體化網絡環境中,使得網絡接入點可以就近快速處理訪問控制請求,提高了訪問控制效率;同時,由于緩存采用了級聯布隆過濾器,因此其空間占用較為穩定,并不會隨著存儲內容的巨大變化而明顯改變。
與傳統的基于級聯布隆過濾器的訪問控制方案不同,本文將角色-權限關系這種較為穩定的信息存儲在級聯布隆過濾器中,降低了緩存的更新頻率。同時,本文在PDP端存儲并計算級聯布隆過濾器的關鍵信息,以加快其生成和更新速度。利用這些信息,SDP可以不使用計數布隆過濾器來存儲數據,從而減少了存儲空間的開銷。
[1]李昊,張敏,馮登國,等.大數據訪問控制研究[J].計算機學報,2017,40(01):72-91.
[2]劉慶云,沙泓州,李世明,等.一種基于量化用戶和服務的大規模網絡訪問控制方法[J].計算機學報,2014,37(05):1195-1205.
[3]王于丁,楊家海,徐聰,等.云計算訪問控制技術研究綜述[J].軟件學報,2015,26(05):1129-1150.
[4]馮朝勝,秦志光,袁丁,等.云計算環境下訪問控制關鍵技術[J].電子學報,2015,43(02):312-319.
[5]Almutairi A,Sarfraz M,Basalamah S,et al.A distributed access control architecture for cloud computing[J].IEEE Softw,2012,29(2):36-44.
[6]Qi H,Ma H,Li J,et al. Access control model based on role and attribute and its applications on space-ground integration networks[C]. in 2015 4th International Conference on Computer Science andNetwork Technology (ICCSNT),2015.
[7]Borders K,Zhao X,Prakash A.CPOL:High-performance policy evaluation[C].in Proceedings of the 12th ACM Conference on Computer and Communications Security,New York,NY,USA,2005.
[8]Wei Q,Crampton J,Beznosov K,et al.Authorization recycling in RBAC systems[C].in Proceedings of the13th ACM Symposium on Access Control Models and Technologies,New York,NY,USA,2008.
[9]Wei Q,Crampton J,Beznosov K,et al.Authorization recycling in hierarchical RBAC systems[J].ACM Trans.Inf.Syst.Secur.,2011,14(1):3:1-3:29.
[10]Tripunitara M V,Carbunar B.Efficient access enforcement in distributed role-based access control(RBAC) deployments[C].in Proceedings of the 14th ACM Symposium on Access Control Models and Technologies,New York,NY,USA,2009.
[11]Komlenovic M,Tripunitara M,Zitouni T. An empirical assessment of approaches to distributed enforcement in role-based access control (RBAC)[C]. in Proceedings of the First ACM Conference on Data and Application Security and Privacy,New York,NY,USA,2011.
[12]Bloom G,Simha R.Hardware-enhanced distributed access enforcement for role-based access control[C].in Proceedings of the 19th ACM Symposium on Access Control Models and Technologies,New York,NY,USA,2014.
[13]姜會林,劉顯著,胡源,等.天地一體化信息網絡的幾個關鍵問題思考[J].兵工學報,2014,35(S1):96-100.
[14]李鳳華,殷麗華,吳巍,等.天地一體化信息網絡安全保障技術研究進展及發展趨勢[J].通信學報,2016,37(11):156-168.
[15]黃惠明,常呈武.天地一體化天基骨干網絡體系架構研究[J].中國電子科學研究院學報,2015,10(05):460-467+491.
[16]于海洋,楊華民,姜會林,等.一種全球覆蓋的多層星座鏈路分析[J].長春理工大學學報:自然科學版,2014,37(03):56-59.
[17]從立鋼,楊華民,王楊惠,等.基于復制的DTN網絡路由算法研究[J].長春理工大學學報:自然科學版,2016,39(04):119-124.
Access Control Cache System for Integrated Network Based on Interactive Cascade Bloom Filter
QI Hui1,2,DI Xiaoqiang1,2,LI Jinqing1,YANG Huamin1,JIANG Huilin2
(1.School of Computer Science and Technology,Changchun University of Science and Technology,Changchun 130022;2.National and Local Joint Engineering Research Center of Space and Optoelectronics Technology,Changchun University of Science and Technology,Changchun 130022)
This paper studies the scheme based on cascade bloom filter,reconstructs the cache structure based on role-based access control(RBAC),and designs and implements the access control cache system based on interactive cascade bloom filter.This system uses special data structure to store the role-based access control rules and their hash values on the policy decision point(PDP) and efficiently generates and updates the cascade bloom filter on the secondary decision point (SDP) based on this information,reducing requirements for cache storage space on the SDP and improving the updating efficiency of cascade bloom filter.This system can be used in large-scale,distributed application system and network system to speed up access control and improve the overall service quality of the system.
access control;rbac;bloom filter;integrated network;cache
TP393
A
1672-9870(2017)05-0099-05
2017-10-19
國家“863”計劃項目(2015AA015701);吉林省科技發展計劃項目(20150204081GX);吉林省教育廳科研項目(吉教科合字[2016]第378號)
祁暉(1983-),男,博士,講師,E-mail:qihui@cust.edu.cn
底曉強(1978-),男,博士,副教授,E-mail:dixiaoqiang@cust.edu.cn