趙 麗, 孫 彬
(1.新疆農業職業學院 信息技術分院,新疆 昌吉 831100;2.新疆昌吉衛生學校 新疆 昌吉 831100)
無線通信與信息化技術的廣泛應用,改變著人們的生產和生活方式,將數字化貫穿于社會經濟生活的各個方面,是大勢所趨。特別近幾年的兩個熱點問題物聯網和云計算的提出,很大程度地推動了數字化生活的研究。數字城市是云計算和物聯網的典型應用。結合兩者的特點和優勢,學術界和工業界對“數字城市”進行了大量的研究。數字城市是數字地球的單元節點,具有行政管理、資源共享、大眾服務、監控監管、商業服務等多項功能。數字城市的信息服務平臺使城市信息提供者、管理者以及用戶之間可以實時地進行各種形式的信息交互,從而為用戶提供公共信息、公眾安全、交通控制、醫療、商業、教育、能源等多種類型的服務[1]。而這些服務在實現基于數字城市網絡的用戶訪問的同時,重要的數據和系統結構也可能會暴露出來。因此,資源受到非法用戶的訪問和獲取成為服務安全性的嚴重隱患之一。
在數字城市網絡環境下,分布式應用、遠程服務調用通過各種方式被提供,比如遠程過程調用RPC、基于Java或SOAP的遠程方法調用RMI,雖然名稱有所不同,但是其基礎機制都是一樣的。通常由服務端定義功能,包括部署,參數,接口等,用戶調用應用服務時根據服務端定義提供相應的參數數據,以應用服務要求的格式發往服務器,服務器處理用戶數據,完成相關功能任務后,把結果發送回給用戶。基于這種應用服務調用模式,設計訪問控制模型如圖1所示。

圖1 細粒度自適應訪問控制模型Fig.1 Adaptive fine-grained access control model
如圖1所示,訪問控制模型由細粒度訪問控制和自適應安全功能調用兩個部分組成,訪問控制模塊通過部署訪問控制策略,限制一個用戶能做什么,能調用什么樣的服務,從而防止一些影響服務安全性的行為發生,對用戶調用的應用服務進行細粒度自適應地訪問控制。除了上述的細粒度訪問控制模型,針對用戶在訪問應用服務時因為客戶端軟硬件因素或環境時空因素等造成的服務調用安全性能需求差異大地情況,該訪問控制模型包括一種安全功能調用自適應匹配模塊,根據用戶調用服務功能時具體的地理位置、覆蓋網絡、訪問時間以及使用的軟硬件平臺資源,為用戶提供適當的安全策略和機制,保證用戶獲取服務時的質量。
細粒度訪問控制模塊有兩個部分:訪問控制點(Access Control Point, ACP),訪問控制策略庫(Access Control Policy Graph,ACPG)。當一個用戶訪問應用服務的時候,首先向訪問控制點提供自身信息和上下文環境屬性,比如身份、時間、位置等,訪問控制點從訪問控制策略庫申請相關訪問控制策略ACPG,使用一些訪問控制算法判斷該用戶是否擁有訪問該應用服務的權限。
當用戶得到訪問控制點的授權后,就可以調用申請的應用服務功能,然而由于數字城市網絡環境下,用戶申請同一個應用服務時通常處于一個動態的環境狀態,擁有的軟硬件資源、時空環境等往往有所不同,單一的服務安全功能調用模式不能適應用戶多變的需求環境。自適應安全功能調用模塊可以對動態環境下的安全功能調用機制進行最優化選擇。根據用戶擁有的軟硬件資源和時空環境,自適應安全功能調用模塊可以為用戶提供合適的安全組件,保證調用服務的質量和安全。
自適應安全功能調用模塊有3個部分:功能調用點(Function Invoke Point, FIP),功能資源池,安全功能組件庫。功能調用點接受用戶功能調用請求,向功能資源池調用自適應功能調用策略(Adaptive Function Invoke Graph, AFIG),同時向用戶申請上下文環境屬性元數據,最后根據AFIG判斷是否需要調用安全組件庫中的組件。
如圖2所示,一次安全的訪問過程可以表述如下:1)ACP接受用戶訪問請求;2)ACP向訪問策略庫申請 ACGP;3)ACP得到ACGP,基于用戶提供的上下文環境屬性信息采用相關算法實施ACGP,判斷用戶是否擁有相應的訪問權限。

圖2 訪問控制過程Fig.2 Access control process
1)ACP把訪問控制判斷結果發送給用戶和FIP;
2)如果用戶獲得訪問權限,FIP向功能資源池查詢服務安全調用需求;
3)FIP向用戶申請上下文環境屬性元數據,表示服務安全調用需求的上下文環境屬性信息,如網絡帶寬,操作系統等;
4)用戶向FIP發送上下文環境屬性元數據;
5)FIP基于用戶提供的元數據采用相關算法實施AFIG,判斷此時用戶調用服務需要哪些安全組件的支持;
6)如果用戶客戶端沒有部署相關安全組件,FIP從安全組件庫中申請獲取相應安全組件;
7)FIP將獲取到的安全組件傳遞給用戶在客戶端動態部署,隨后用戶即可安全訪問服務。
為適應動態異構的數字城市環境,不能使用單一的靜態訪問控制策略,在設計細粒度訪問控制模塊時,引入一組通用上下文環境數據概念,描述與訪問控制策略相關的所有屬性參數,比如用戶角色,調用位置,調用時間等。這樣設計有兩個優勢,首先一個具體應用服務需要的任何上下文屬性參數在訪問控制模塊中都有規定和部署,可以一次性滿足數字城市網絡中存在的大量異構網絡環境和不同系統組織中各自不同的應用服務對于訪問控制操作的參數需求;而且對于未來的訪問控制需求來說通用上下文環境屬性參數是可擴展的,很適應高速動態變化的數字城市網絡信息系統。下面介紹訪問控制策略定義和策略圖定義。
訪問控制策略中的相關概念定義如下:
定義 1:CI(Context Index) 上下文環境屬性標識,CI=(name,range,order),name 表示上下文環境屬性的名字,range表示其取值范圍,order表示其取值排列的具體方式。
例如,把用戶的年齡作為一個上下文環境屬性標識,name是用戶的年齡,range是10歲到70歲,order是年齡的升序標識[10,11,12,…,68,69,70]。
定義2:CO (Context Object) 上下文環境屬性對象,CO=(name,value),name 表示上下文環境屬性的名字,value 表示其取值,必須在range范圍之中。
CO是CI的一個實例對象,如果把CI表示為二位空間中的x軸,CO就是軸上的一個點。例如(用戶年齡,20歲)
定 義 3:Function,F=(name, (inputi,i∈[1,n]), (coutputi,i∈[1,m]),comi,i∈[1,k]),name 表示功能的標識,說明應用服務的具體功能,input表示功能需要的輸入參數,output表示功能產生的輸出結果,com表示功能調用時需要動態部署的組件模塊。
定義4:Service應用服務,一個應用服務就是一組相關的具體功能的集合。 Service=∪Fi,i∈[1,n]。
定義 5:CAS(Context Attribute Space)上下文環境屬性空間,GAS=UCIi,i∈[1,n],對于每個功能 F,其需要的所有上下文環境屬性是CAS的一個子空間,表示為CASSf?CAS。
定義 6:CON (Context Object Node) 上下文環境屬性節點 ,CON 是 一 個 數 據 結 構 ,CON=struct{COi;Ptr(COj);Ptr(COk);…},COi是 CIi的一個實例,例如(用戶年齡,20),Ptr(COj)表示指向實例COj的指針。每一個CON有零個、一個或者多個指向其他CO的指針,表示它們在訪問控制策略中是有關聯的,一起組成一個訪問控制策略。
定義 7:CORN(Context Object Root Node)上下文環境屬性根節點,CORN是一類特殊的CON,CON中的CO不被任何一個 CON指向的 CON就是 CORN。CORN={CON:?→CON}。
圖3給出了訪問控制策略中各個元素相互關聯的方式,也就是訪問控制策略圖ACPG。一個CON是建立在一個CO上的,它擁有指向其他不同CI的實例CO的指針,對于一個訪問控制策略來說,CON把不同CI的具體實例聯系起來形成訪問控制策略圖。CORN是一類特殊的CON,它不被其他的CON指向。例如在圖3中圓形表示CORN,矩形表示CON。通過上述定義,下面描述訪問控制策略圖ACPG的具體結構。圖3是某個功能的訪問控制策略圖,圖中總共有n+1個CI,表示這個功能在訪問控制過程中最多會用到n+1種上下文環境屬性。

圖3 訪問控制策略圖ACPGFig.3 Access control policy Figure ACPG
將它們按照某種規則順序表示,比如按照名稱首字母升序表示。例如:有4種上下文環境屬性,分別是Role、Time、Location 和 Speed, 則 CI0=Location,CI1=Role,CI2=Speed,CI3=Time。在上下文環境屬性空間中,這種CI的有序排列方式可以幫助更加快速的定位尋找某一個具體CI。
在上下文環境屬性空間中不僅僅有有序的CI,對應每一個 CI還有一些有序的 CO,例如 CO0-i、CO0-j、CO0-k就是 CI0的3個具體實例。從一個CORN開始,通過CON之間的指針達到Function的鏈接路徑就是這個Function的一條訪問路徑。
定義8:AP訪問路徑,一條訪問路徑就是一組有序鏈接的CON,從一個CORN開始到Function結束。
由上述定義可知道,訪問路徑被定義為從一個CORN開始的CON鏈表。例如CO3-k→CO2-m→CO0-k就是一條訪問路徑,表示如果用戶提供的上下文環境屬性參數能夠分別匹配CI3、CI2和 CI0的實例值 CO3-k、CO2-m和 CO0-k,這個用戶就可以被授予這個功能的訪問權限。
為了支持訪問控制策略的可擴展性,設計一個抽象策略類,描述應用服務功能訪問控制所需要的各種上下文環境屬性標識。如下所示:

對于具體的訪問控制需求,可以通過繼承這個抽象類并擴展所需的CI來實例化一個具體的策略類?;诰唧w的策略類,系統可以建立訪問控制策略圖ACGP,系統管理員可以簡單靈活地添加或更新訪問控制策略,很好的適應動態異構的數字城市網絡環境。
結合以上訪問控制策略定義及訪問控制策略圖結構,制定訪問控制策略實施方法如下:
ACGP是預定義好的并存儲在訪問控制策略庫中,通過應用一些相關的算法來實現訪問控制策略的執行。首先,當ACP接受到用戶上下文環境屬性元數據并從訪問控制策略庫中申請到相關ACGP之后,通過算法MatchCON將元數據中的CO與策略中相應的CON或CORN匹配。具體算法如下:
算法 1:

輸入參數:用戶輸入的上下文環境屬性元數據中的各項CO;輸出參數:策略圖ACGP中與用戶輸入相匹配的CON或CORN;算法流程:對于用戶輸入的每一個CO,判斷其是否與ACGP中的CON或CORN相匹配,如果和CON匹配,返回這個CON,如果和CORN匹配,返回這個CORN。
接下來ACP使用另一個算法FindAccessPath,用來檢查MatchCON返回的CORN和CON中是否能構成一條訪問路徑。
算法 2:


輸入參數:MatchCON返回的CORN和CON;輸出參數:存在訪問路徑返回True,否則返回False;算法流程:對于每一個CORN,判斷其Ptr指向的CON是否在輸入的CON當中,如果在,判斷這個CON的Ptr指向的CON是否在輸入的CON中,直到最后一個 CON的Ptr指向Function,表示存在訪問路徑,否則不存在訪問路徑。
最后結合算法MatchCON和算法FindAccessPath構成算法GrantAccess,判斷是否授予用戶訪問權限。
算法 3:


輸入參數:用戶輸入的上下文環境屬性元數據中的各項CO;輸出參數:存在訪問路徑返回True,否則返回False;算法流程:根據用戶輸入的CO,使用算法MatchCON,將返回參數作為算法FindAccessPath的參數,如果返回True說明用戶擁有該服務功能的訪問權限,否則沒有訪問權限。
結合以上研究內容,本文共提出了MatchCON、FindAccess Path及GrantAccess 3種算法,現對每種算法復雜度分析如下:
算法1:對于每一個輸入的CO,MatchCON定位相關的CI,由于CI都事先存儲好,所以計算復雜度是O(1)。然后在這個CI的有序取值空間中尋找是否存在輸入CO的值,復雜度也是O(1)。如果這個CO有匹配的CORN或CON,則返回這個CORN或CON。如果CI總數為n,輸入CO個數為i,算法總復雜度為 O(n)。
算法2:對于MatchCON算法找到的每一個CORN,FindAccessPath搜索從該CORN開始是否存在一條訪問路徑。如果存在一條訪問路徑,FindAccessPath返回真值,表示賦予用戶訪問權限,否則禁止用戶訪問相應服務功能。FindAccessPath的核心部分是HavePath,是通過遞歸調用自身用來檢查從一個CON出發是否存在一條訪問路徑的代碼。在討論計算復雜度之前,確定一些關鍵參數,MatchCON算法返回的CORN個數為k,CON個數為j。由于每個用戶對于一個CI只提供一個CO,所以k+j=n,n是CI的總數。確定CON.Ptr在不在 CON 集合{CON1,CON2,…CONj}中的復雜度為O(1)因為CON集合是有序序列。假設每一個CON有m個指針指向其他的CON,一條訪問路徑的高度是h,FindAccessPath在最好情況下的復雜度是O(n),最差情況下復雜度是 O(mn2)。
算法3:為了作比較,同時給出傳統訪問控制方法的復雜度,傳統訪問控制方法沒有利用復雜的數據結構來組織上下文環境屬性。Clause相當于本文提出方法中的概念訪問路徑AP,Context相當于CI。在訪問控制判斷授權過程中,傳統算法對每個Clause的Context和用戶提供的屬性值進行匹配,當所有Context都匹配成功時,這個Clause為真,至少一個Clause為真時授權成功。在擁有相同參數的情況下,我們很清楚地知道總共存在O(kmh)條訪問路徑,當第一個Clause就為真時,算法復雜度是最好的O(n)。然而平均情況下復雜度是O(nkmh),比本文提出的算法GrantAccess在最差情況下的復雜度 O(mn2)還要差。
數字城市異構、跨域、動態變化的特征使得傳統訪問控制模型不適合數字城市網絡環境,容易造成用戶使用服務信息的泄露。為此,本文提出了細粒度自適應訪問控制模型,針對數字城市服務具體應用特征,細化用戶所處具體場景的上下文環境屬性,為訪問控制提供盡可能多的參考因素,提高訪問控制的安全性能和控制能力;提出細粒度訪問控制策略及算法,滿足動態異構的數字城市網絡環境下用戶多變靈活的訪問控制需求,打破傳統網絡環境下訪問控制方式的策略局限性,為數字城市網絡提供統一的訪問控制方法,從而滿足動態異構分布式環境下地訪問控制需求,同時能動態地更改訪問控制策略以滿足不斷變化或擴展的安全需求,為數字城市的規劃和建設提供可靠的安全保障,同時為物聯網和云計算技術的發展和實現起到了關鍵的推動作用。
[1]Csaba S,Karoly F,Zoltan H.Wireless community networks:motivations,design and business models[J].Mobile Networks and Applications,2008(4):121-125.
[2]LI Jun,ALAN H K.Access control for services oriented architecture[C]//Fairfax,Virginia, USA:Proceedings of the Fourth International Conference on Creating,Connecting and Co llaborating through Computing,2006.
[3]劉宏月,范九倫.訪問控制技術研究進展[J].小型微型計算機系統,2004,25(1):56-59.LIU Hong-yue,FAN Jiu-lun.Access control technology research progress[J].Mini-Micro Systems,2004,25(1):56-59.
[4]Sandhu R.Lattice-based access control models[J].IEEE Computer,1993,26(11):9-19.
[5]Sandhu R,Coyne E,Feinistein H.Role-based access control models[J].IEEEComputer,1996,29(6):38-47.
[6]熊善清,張穎江.基于角色的訪問控制模型分析及實現研究[J].武漢理工大學學報:信息與管理工程版,2006,28(2):29-35.XIONG Shan-qing,ZHANG Ying-jiang.Role-based access control model analysis and study[J].Wuhan University of Technology:Information and Management Engineering,2006,28 (2):29-35.
[7]王小明,付紅,張立臣.基于屬性的訪問控制研究進展[J].電子學報,2010,38(7):1-8.WANG Xiao-ming,FU Hong,ZHANG Li-chen.Attributebased access control research progress[J].Journal of Electronic,2010,38(7):1-8.
[8]Yuan E,Tong J.Attribute based access control (ABAC) for web services[C]//Orlando,FL,USA:Proceedings of the IEEE International Conference on Web Services (ICWS 2005),2005.
[9]Thomas R K,Sandhu R S.Towards a task-based paradigm for flexible and adaptable access control in distributed applications[C]//Proceedings of the 1992-1993 ACM SIGSAC New Security Paradigms Workshops,1993:138-142.
[10]Thomas R K,Sandhu R S.Task-Based authentication controls(TABC):a family of models for activeand enterpriseoriented authentication management[C]//Vancouver,Canada:Proceedings of the IFIP WG11.3 Workshopon Database Security,1997.
[11]Park J,Sandhu R.The UCONABC Usage Control Model[J].ACM Transactions on Information and System Security,2004,7(1):128-174.