趙 麗, 孫 彬
(1.新疆農(nóng)業(yè)職業(yè)學(xué)院 信息技術(shù)分院,新疆 昌吉 831100;2.新疆昌吉衛(wèi)生學(xué)校 新疆 昌吉 831100)
無線通信與信息化技術(shù)的廣泛應(yīng)用,改變著人們的生產(chǎn)和生活方式,將數(shù)字化貫穿于社會(huì)經(jīng)濟(jì)生活的各個(gè)方面,是大勢(shì)所趨。特別近幾年的兩個(gè)熱點(diǎn)問題物聯(lián)網(wǎng)和云計(jì)算的提出,很大程度地推動(dòng)了數(shù)字化生活的研究。數(shù)字城市是云計(jì)算和物聯(lián)網(wǎng)的典型應(yīng)用。結(jié)合兩者的特點(diǎn)和優(yōu)勢(shì),學(xué)術(shù)界和工業(yè)界對(duì)“數(shù)字城市”進(jìn)行了大量的研究。數(shù)字城市是數(shù)字地球的單元節(jié)點(diǎn),具有行政管理、資源共享、大眾服務(wù)、監(jiān)控監(jiān)管、商業(yè)服務(wù)等多項(xiàng)功能。數(shù)字城市的信息服務(wù)平臺(tái)使城市信息提供者、管理者以及用戶之間可以實(shí)時(shí)地進(jìn)行各種形式的信息交互,從而為用戶提供公共信息、公眾安全、交通控制、醫(yī)療、商業(yè)、教育、能源等多種類型的服務(wù)[1]。而這些服務(wù)在實(shí)現(xiàn)基于數(shù)字城市網(wǎng)絡(luò)的用戶訪問的同時(shí),重要的數(shù)據(jù)和系統(tǒng)結(jié)構(gòu)也可能會(huì)暴露出來。因此,資源受到非法用戶的訪問和獲取成為服務(wù)安全性的嚴(yán)重隱患之一。
在數(shù)字城市網(wǎng)絡(luò)環(huán)境下,分布式應(yīng)用、遠(yuǎn)程服務(wù)調(diào)用通過各種方式被提供,比如遠(yuǎn)程過程調(diào)用RPC、基于Java或SOAP的遠(yuǎn)程方法調(diào)用RMI,雖然名稱有所不同,但是其基礎(chǔ)機(jī)制都是一樣的。通常由服務(wù)端定義功能,包括部署,參數(shù),接口等,用戶調(diào)用應(yīng)用服務(wù)時(shí)根據(jù)服務(wù)端定義提供相應(yīng)的參數(shù)數(shù)據(jù),以應(yīng)用服務(wù)要求的格式發(fā)往服務(wù)器,服務(wù)器處理用戶數(shù)據(jù),完成相關(guān)功能任務(wù)后,把結(jié)果發(fā)送回給用戶。基于這種應(yīng)用服務(wù)調(diào)用模式,設(shè)計(jì)訪問控制模型如圖1所示。
圖1 細(xì)粒度自適應(yīng)訪問控制模型Fig.1 Adaptive fine-grained access control model
如圖1所示,訪問控制模型由細(xì)粒度訪問控制和自適應(yīng)安全功能調(diào)用兩個(gè)部分組成,訪問控制模塊通過部署訪問控制策略,限制一個(gè)用戶能做什么,能調(diào)用什么樣的服務(wù),從而防止一些影響服務(wù)安全性的行為發(fā)生,對(duì)用戶調(diào)用的應(yīng)用服務(wù)進(jìn)行細(xì)粒度自適應(yīng)地訪問控制。除了上述的細(xì)粒度訪問控制模型,針對(duì)用戶在訪問應(yīng)用服務(wù)時(shí)因?yàn)榭蛻舳塑浻布蛩鼗颦h(huán)境時(shí)空因素等造成的服務(wù)調(diào)用安全性能需求差異大地情況,該訪問控制模型包括一種安全功能調(diào)用自適應(yīng)匹配模塊,根據(jù)用戶調(diào)用服務(wù)功能時(shí)具體的地理位置、覆蓋網(wǎng)絡(luò)、訪問時(shí)間以及使用的軟硬件平臺(tái)資源,為用戶提供適當(dāng)?shù)陌踩呗院蜋C(jī)制,保證用戶獲取服務(wù)時(shí)的質(zhì)量。
細(xì)粒度訪問控制模塊有兩個(gè)部分:訪問控制點(diǎn)(Access Control Point, ACP),訪問控制策略庫(kù)(Access Control Policy Graph,ACPG)。當(dāng)一個(gè)用戶訪問應(yīng)用服務(wù)的時(shí)候,首先向訪問控制點(diǎn)提供自身信息和上下文環(huán)境屬性,比如身份、時(shí)間、位置等,訪問控制點(diǎn)從訪問控制策略庫(kù)申請(qǐng)相關(guān)訪問控制策略ACPG,使用一些訪問控制算法判斷該用戶是否擁有訪問該應(yīng)用服務(wù)的權(quán)限。
當(dāng)用戶得到訪問控制點(diǎn)的授權(quán)后,就可以調(diào)用申請(qǐng)的應(yīng)用服務(wù)功能,然而由于數(shù)字城市網(wǎng)絡(luò)環(huán)境下,用戶申請(qǐng)同一個(gè)應(yīng)用服務(wù)時(shí)通常處于一個(gè)動(dòng)態(tài)的環(huán)境狀態(tài),擁有的軟硬件資源、時(shí)空環(huán)境等往往有所不同,單一的服務(wù)安全功能調(diào)用模式不能適應(yīng)用戶多變的需求環(huán)境。自適應(yīng)安全功能調(diào)用模塊可以對(duì)動(dòng)態(tài)環(huán)境下的安全功能調(diào)用機(jī)制進(jìn)行最優(yōu)化選擇。根據(jù)用戶擁有的軟硬件資源和時(shí)空環(huán)境,自適應(yīng)安全功能調(diào)用模塊可以為用戶提供合適的安全組件,保證調(diào)用服務(wù)的質(zhì)量和安全。
自適應(yīng)安全功能調(diào)用模塊有3個(gè)部分:功能調(diào)用點(diǎn)(Function Invoke Point, FIP),功能資源池,安全功能組件庫(kù)。功能調(diào)用點(diǎn)接受用戶功能調(diào)用請(qǐng)求,向功能資源池調(diào)用自適應(yīng)功能調(diào)用策略(Adaptive Function Invoke Graph, AFIG),同時(shí)向用戶申請(qǐng)上下文環(huán)境屬性元數(shù)據(jù),最后根據(jù)AFIG判斷是否需要調(diào)用安全組件庫(kù)中的組件。
如圖2所示,一次安全的訪問過程可以表述如下:1)ACP接受用戶訪問請(qǐng)求;2)ACP向訪問策略庫(kù)申請(qǐng) ACGP;3)ACP得到ACGP,基于用戶提供的上下文環(huán)境屬性信息采用相關(guān)算法實(shí)施ACGP,判斷用戶是否擁有相應(yīng)的訪問權(quán)限。
圖2 訪問控制過程Fig.2 Access control process
1)ACP把訪問控制判斷結(jié)果發(fā)送給用戶和FIP;
2)如果用戶獲得訪問權(quán)限,F(xiàn)IP向功能資源池查詢服務(wù)安全調(diào)用需求;
3)FIP向用戶申請(qǐng)上下文環(huán)境屬性元數(shù)據(jù),表示服務(wù)安全調(diào)用需求的上下文環(huán)境屬性信息,如網(wǎng)絡(luò)帶寬,操作系統(tǒng)等;
4)用戶向FIP發(fā)送上下文環(huán)境屬性元數(shù)據(jù);
5)FIP基于用戶提供的元數(shù)據(jù)采用相關(guān)算法實(shí)施AFIG,判斷此時(shí)用戶調(diào)用服務(wù)需要哪些安全組件的支持;
6)如果用戶客戶端沒有部署相關(guān)安全組件,F(xiàn)IP從安全組件庫(kù)中申請(qǐng)獲取相應(yīng)安全組件;
7)FIP將獲取到的安全組件傳遞給用戶在客戶端動(dòng)態(tài)部署,隨后用戶即可安全訪問服務(wù)。
為適應(yīng)動(dòng)態(tài)異構(gòu)的數(shù)字城市環(huán)境,不能使用單一的靜態(tài)訪問控制策略,在設(shè)計(jì)細(xì)粒度訪問控制模塊時(shí),引入一組通用上下文環(huán)境數(shù)據(jù)概念,描述與訪問控制策略相關(guān)的所有屬性參數(shù),比如用戶角色,調(diào)用位置,調(diào)用時(shí)間等。這樣設(shè)計(jì)有兩個(gè)優(yōu)勢(shì),首先一個(gè)具體應(yīng)用服務(wù)需要的任何上下文屬性參數(shù)在訪問控制模塊中都有規(guī)定和部署,可以一次性滿足數(shù)字城市網(wǎng)絡(luò)中存在的大量異構(gòu)網(wǎng)絡(luò)環(huán)境和不同系統(tǒng)組織中各自不同的應(yīng)用服務(wù)對(duì)于訪問控制操作的參數(shù)需求;而且對(duì)于未來的訪問控制需求來說通用上下文環(huán)境屬性參數(shù)是可擴(kuò)展的,很適應(yīng)高速動(dòng)態(tài)變化的數(shù)字城市網(wǎng)絡(luò)信息系統(tǒng)。下面介紹訪問控制策略定義和策略圖定義。
訪問控制策略中的相關(guān)概念定義如下:
定義 1:CI(Context Index) 上下文環(huán)境屬性標(biāo)識(shí),CI=(name,range,order),name 表示上下文環(huán)境屬性的名字,range表示其取值范圍,order表示其取值排列的具體方式。
例如,把用戶的年齡作為一個(gè)上下文環(huán)境屬性標(biāo)識(shí),name是用戶的年齡,range是10歲到70歲,order是年齡的升序標(biāo)識(shí)[10,11,12,…,68,69,70]。
定義2:CO (Context Object) 上下文環(huán)境屬性對(duì)象,CO=(name,value),name 表示上下文環(huán)境屬性的名字,value 表示其取值,必須在range范圍之中。
CO是CI的一個(gè)實(shí)例對(duì)象,如果把CI表示為二位空間中的x軸,CO就是軸上的一個(gè)點(diǎn)。例如(用戶年齡,20歲)
定 義 3:Function,F(xiàn)=(name, (inputi,i∈[1,n]), (coutputi,i∈[1,m]),comi,i∈[1,k]),name 表示功能的標(biāo)識(shí),說明應(yīng)用服務(wù)的具體功能,input表示功能需要的輸入?yún)?shù),output表示功能產(chǎn)生的輸出結(jié)果,com表示功能調(diào)用時(shí)需要?jiǎng)討B(tài)部署的組件模塊。
定義4:Service應(yīng)用服務(wù),一個(gè)應(yīng)用服務(wù)就是一組相關(guān)的具體功能的集合。 Service=∪Fi,i∈[1,n]。
定義 5:CAS(Context Attribute Space)上下文環(huán)境屬性空間,GAS=UCIi,i∈[1,n],對(duì)于每個(gè)功能 F,其需要的所有上下文環(huán)境屬性是CAS的一個(gè)子空間,表示為CASSf?CAS。
定義 6:CON (Context Object Node) 上下文環(huán)境屬性節(jié)點(diǎn) ,CON 是 一 個(gè) 數(shù) 據(jù) 結(jié) 構(gòu) ,CON=struct{COi;Ptr(COj);Ptr(COk);…},COi是 CIi的一個(gè)實(shí)例,例如(用戶年齡,20),Ptr(COj)表示指向?qū)嵗鼵Oj的指針。每一個(gè)CON有零個(gè)、一個(gè)或者多個(gè)指向其他CO的指針,表示它們?cè)谠L問控制策略中是有關(guān)聯(lián)的,一起組成一個(gè)訪問控制策略。
定義 7:CORN(Context Object Root Node)上下文環(huán)境屬性根節(jié)點(diǎn),CORN是一類特殊的CON,CON中的CO不被任何一個(gè) CON指向的 CON就是 CORN。CORN={CON:?→CON}。
圖3給出了訪問控制策略中各個(gè)元素相互關(guān)聯(lián)的方式,也就是訪問控制策略圖ACPG。一個(gè)CON是建立在一個(gè)CO上的,它擁有指向其他不同CI的實(shí)例CO的指針,對(duì)于一個(gè)訪問控制策略來說,CON把不同CI的具體實(shí)例聯(lián)系起來形成訪問控制策略圖。CORN是一類特殊的CON,它不被其他的CON指向。例如在圖3中圓形表示CORN,矩形表示CON。通過上述定義,下面描述訪問控制策略圖ACPG的具體結(jié)構(gòu)。圖3是某個(gè)功能的訪問控制策略圖,圖中總共有n+1個(gè)CI,表示這個(gè)功能在訪問控制過程中最多會(huì)用到n+1種上下文環(huán)境屬性。
圖3 訪問控制策略圖ACPGFig.3 Access control policy Figure ACPG
將它們按照某種規(guī)則順序表示,比如按照名稱首字母升序表示。例如:有4種上下文環(huán)境屬性,分別是Role、Time、Location 和 Speed, 則 CI0=Location,CI1=Role,CI2=Speed,CI3=Time。在上下文環(huán)境屬性空間中,這種CI的有序排列方式可以幫助更加快速的定位尋找某一個(gè)具體CI。
在上下文環(huán)境屬性空間中不僅僅有有序的CI,對(duì)應(yīng)每一個(gè) CI還有一些有序的 CO,例如 CO0-i、CO0-j、CO0-k就是 CI0的3個(gè)具體實(shí)例。從一個(gè)CORN開始,通過CON之間的指針達(dá)到Function的鏈接路徑就是這個(gè)Function的一條訪問路徑。
定義8:AP訪問路徑,一條訪問路徑就是一組有序鏈接的CON,從一個(gè)CORN開始到Function結(jié)束。
由上述定義可知道,訪問路徑被定義為從一個(gè)CORN開始的CON鏈表。例如CO3-k→CO2-m→CO0-k就是一條訪問路徑,表示如果用戶提供的上下文環(huán)境屬性參數(shù)能夠分別匹配CI3、CI2和 CI0的實(shí)例值 CO3-k、CO2-m和 CO0-k,這個(gè)用戶就可以被授予這個(gè)功能的訪問權(quán)限。
為了支持訪問控制策略的可擴(kuò)展性,設(shè)計(jì)一個(gè)抽象策略類,描述應(yīng)用服務(wù)功能訪問控制所需要的各種上下文環(huán)境屬性標(biāo)識(shí)。如下所示:
對(duì)于具體的訪問控制需求,可以通過繼承這個(gè)抽象類并擴(kuò)展所需的CI來實(shí)例化一個(gè)具體的策略類。基于具體的策略類,系統(tǒng)可以建立訪問控制策略圖ACGP,系統(tǒng)管理員可以簡(jiǎn)單靈活地添加或更新訪問控制策略,很好的適應(yīng)動(dòng)態(tài)異構(gòu)的數(shù)字城市網(wǎng)絡(luò)環(huán)境。
結(jié)合以上訪問控制策略定義及訪問控制策略圖結(jié)構(gòu),制定訪問控制策略實(shí)施方法如下:
ACGP是預(yù)定義好的并存儲(chǔ)在訪問控制策略庫(kù)中,通過應(yīng)用一些相關(guān)的算法來實(shí)現(xiàn)訪問控制策略的執(zhí)行。首先,當(dāng)ACP接受到用戶上下文環(huán)境屬性元數(shù)據(jù)并從訪問控制策略庫(kù)中申請(qǐng)到相關(guān)ACGP之后,通過算法MatchCON將元數(shù)據(jù)中的CO與策略中相應(yīng)的CON或CORN匹配。具體算法如下:
算法 1:
輸入?yún)?shù):用戶輸入的上下文環(huán)境屬性元數(shù)據(jù)中的各項(xiàng)CO;輸出參數(shù):策略圖ACGP中與用戶輸入相匹配的CON或CORN;算法流程:對(duì)于用戶輸入的每一個(gè)CO,判斷其是否與ACGP中的CON或CORN相匹配,如果和CON匹配,返回這個(gè)CON,如果和CORN匹配,返回這個(gè)CORN。
接下來ACP使用另一個(gè)算法FindAccessPath,用來檢查MatchCON返回的CORN和CON中是否能構(gòu)成一條訪問路徑。
算法 2:
輸入?yún)?shù):MatchCON返回的CORN和CON;輸出參數(shù):存在訪問路徑返回True,否則返回False;算法流程:對(duì)于每一個(gè)CORN,判斷其Ptr指向的CON是否在輸入的CON當(dāng)中,如果在,判斷這個(gè)CON的Ptr指向的CON是否在輸入的CON中,直到最后一個(gè) CON的Ptr指向Function,表示存在訪問路徑,否則不存在訪問路徑。
最后結(jié)合算法MatchCON和算法FindAccessPath構(gòu)成算法GrantAccess,判斷是否授予用戶訪問權(quán)限。
算法 3:
輸入?yún)?shù):用戶輸入的上下文環(huán)境屬性元數(shù)據(jù)中的各項(xiàng)CO;輸出參數(shù):存在訪問路徑返回True,否則返回False;算法流程:根據(jù)用戶輸入的CO,使用算法MatchCON,將返回參數(shù)作為算法FindAccessPath的參數(shù),如果返回True說明用戶擁有該服務(wù)功能的訪問權(quán)限,否則沒有訪問權(quán)限。
結(jié)合以上研究?jī)?nèi)容,本文共提出了MatchCON、FindAccess Path及GrantAccess 3種算法,現(xiàn)對(duì)每種算法復(fù)雜度分析如下:
算法1:對(duì)于每一個(gè)輸入的CO,MatchCON定位相關(guān)的CI,由于CI都事先存儲(chǔ)好,所以計(jì)算復(fù)雜度是O(1)。然后在這個(gè)CI的有序取值空間中尋找是否存在輸入CO的值,復(fù)雜度也是O(1)。如果這個(gè)CO有匹配的CORN或CON,則返回這個(gè)CORN或CON。如果CI總數(shù)為n,輸入CO個(gè)數(shù)為i,算法總復(fù)雜度為 O(n)。
算法2:對(duì)于MatchCON算法找到的每一個(gè)CORN,F(xiàn)indAccessPath搜索從該CORN開始是否存在一條訪問路徑。如果存在一條訪問路徑,F(xiàn)indAccessPath返回真值,表示賦予用戶訪問權(quán)限,否則禁止用戶訪問相應(yīng)服務(wù)功能。FindAccessPath的核心部分是HavePath,是通過遞歸調(diào)用自身用來檢查從一個(gè)CON出發(fā)是否存在一條訪問路徑的代碼。在討論計(jì)算復(fù)雜度之前,確定一些關(guān)鍵參數(shù),MatchCON算法返回的CORN個(gè)數(shù)為k,CON個(gè)數(shù)為j。由于每個(gè)用戶對(duì)于一個(gè)CI只提供一個(gè)CO,所以k+j=n,n是CI的總數(shù)。確定CON.Ptr在不在 CON 集合{CON1,CON2,…CONj}中的復(fù)雜度為O(1)因?yàn)镃ON集合是有序序列。假設(shè)每一個(gè)CON有m個(gè)指針指向其他的CON,一條訪問路徑的高度是h,F(xiàn)indAccessPath在最好情況下的復(fù)雜度是O(n),最差情況下復(fù)雜度是 O(mn2)。
算法3:為了作比較,同時(shí)給出傳統(tǒng)訪問控制方法的復(fù)雜度,傳統(tǒng)訪問控制方法沒有利用復(fù)雜的數(shù)據(jù)結(jié)構(gòu)來組織上下文環(huán)境屬性。Clause相當(dāng)于本文提出方法中的概念訪問路徑AP,Context相當(dāng)于CI。在訪問控制判斷授權(quán)過程中,傳統(tǒng)算法對(duì)每個(gè)Clause的Context和用戶提供的屬性值進(jìn)行匹配,當(dāng)所有Context都匹配成功時(shí),這個(gè)Clause為真,至少一個(gè)Clause為真時(shí)授權(quán)成功。在擁有相同參數(shù)的情況下,我們很清楚地知道總共存在O(kmh)條訪問路徑,當(dāng)?shù)谝粋€(gè)Clause就為真時(shí),算法復(fù)雜度是最好的O(n)。然而平均情況下復(fù)雜度是O(nkmh),比本文提出的算法GrantAccess在最差情況下的復(fù)雜度 O(mn2)還要差。
數(shù)字城市異構(gòu)、跨域、動(dòng)態(tài)變化的特征使得傳統(tǒng)訪問控制模型不適合數(shù)字城市網(wǎng)絡(luò)環(huán)境,容易造成用戶使用服務(wù)信息的泄露。為此,本文提出了細(xì)粒度自適應(yīng)訪問控制模型,針對(duì)數(shù)字城市服務(wù)具體應(yīng)用特征,細(xì)化用戶所處具體場(chǎng)景的上下文環(huán)境屬性,為訪問控制提供盡可能多的參考因素,提高訪問控制的安全性能和控制能力;提出細(xì)粒度訪問控制策略及算法,滿足動(dòng)態(tài)異構(gòu)的數(shù)字城市網(wǎng)絡(luò)環(huán)境下用戶多變靈活的訪問控制需求,打破傳統(tǒng)網(wǎng)絡(luò)環(huán)境下訪問控制方式的策略局限性,為數(shù)字城市網(wǎng)絡(luò)提供統(tǒng)一的訪問控制方法,從而滿足動(dòng)態(tài)異構(gòu)分布式環(huán)境下地訪問控制需求,同時(shí)能動(dòng)態(tài)地更改訪問控制策略以滿足不斷變化或擴(kuò)展的安全需求,為數(shù)字城市的規(guī)劃和建設(shè)提供可靠的安全保障,同時(shí)為物聯(lián)網(wǎng)和云計(jì)算技術(shù)的發(fā)展和實(shí)現(xiàn)起到了關(guān)鍵的推動(dòng)作用。
[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]劉宏月,范九倫.訪問控制技術(shù)研究進(jìn)展[J].小型微型計(jì)算機(jī)系統(tǒng),2004,25(1):56-59.LIU Hong-yue,F(xiàn)AN 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,F(xiàn)einistein H.Role-based access control models[J].IEEEComputer,1996,29(6):38-47.
[6]熊善清,張穎江.基于角色的訪問控制模型分析及實(shí)現(xiàn)研究[J].武漢理工大學(xué)學(xué)報(bào):信息與管理工程版,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ìn)展[J].電子學(xué)報(bào),2010,38(7):1-8.WANG Xiao-ming,F(xiàn)U 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,F(xiàn)L,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.