古麗博斯坦·阿克木,努爾買買提·黑力力
(新疆大學(xué)數(shù)學(xué)與系統(tǒng)科學(xué)學(xué)院,新疆 烏魯木齊 830046)
訪問控制通過約束用戶的訪問權(quán)限,達(dá)到保護(hù)系統(tǒng)資源的目的[1]。基于角色的訪問控制(Role-Based Access Control, RBAC)[2-3]和基于屬性的訪問控制(Attribute-Based Access Control, ABAC)逐漸成為研究熱點(diǎn)。ABAC在有效實(shí)現(xiàn)細(xì)粒度的非交互訪問控制機(jī)制的基礎(chǔ)上最大程度地保護(hù)了用戶數(shù)據(jù)的隱私[4]。Kuhn等人[5]提出將屬性和角色合并以使RBAC更靈活。Crampton等人[6]提出屬性表達(dá)式(Attribute Expression)的概念,給出了用表格式(Tabular)形式表示策略的方法。當(dāng)訪問控制系統(tǒng)通過用戶屬性驗(yàn)證該用戶的合法性之后,可以采用特定的訪問控制模型對滿足訪問控制要求的用戶進(jìn)行授權(quán)。傳統(tǒng)的訪問控制機(jī)制基于請求-響應(yīng)模式,通過應(yīng)用程序和授權(quán)服務(wù)器之間的通信進(jìn)行授權(quán)。隨著分布式應(yīng)用系統(tǒng)的規(guī)模增加,基于點(diǎn)對點(diǎn)(Point to Point, PTP)通信的授權(quán)結(jié)構(gòu)變得脆弱,管理開銷增加。如果在應(yīng)用系統(tǒng)和授權(quán)服務(wù)器之間配置一個服務(wù)點(diǎn)能否減少一定的開銷并減輕系統(tǒng)的負(fù)載呢?Wei等人[7]提出了基于發(fā)布-訂閱體系結(jié)構(gòu)的授權(quán)系統(tǒng),該系統(tǒng)由多個策略執(zhí)行點(diǎn)(Policy Enforcement Point, PEP)、策略決策點(diǎn)(Policy Decision Point, PDP)和一個邏輯上集中的事件通知服務(wù)器(Event Notification Service, ENS)組成,ENS負(fù)責(zé)接收來自發(fā)布者的事件和訂閱者的訂閱,并將每個事件與訂閱相匹配后通知給事件訂閱者。文獻(xiàn)[8]給出了一種新的授權(quán)技術(shù)——投機(jī)授權(quán)(Speculative Authorization, SPAN),它是一種減少企業(yè)系統(tǒng)中授權(quán)延遲的預(yù)測技術(shù)。SPAN會根據(jù)用戶過去的操作行為預(yù)測將來可能出現(xiàn)的訪問請求。
根據(jù)訪問策略和模型的對應(yīng)關(guān)系,學(xué)者們進(jìn)一步研究具體的訪問控制策略以及對應(yīng)的模型[9]。周加根等人[10]采用屬性表達(dá)式方式定義ABAC策略模型,提出了一種ABAC策略的本體表示方法和決策方法。Ferraiolo等人[11]提出集中管理ABAC策略以及本地計(jì)算和執(zhí)行訪問控制決策的方法,提高了ABAC系統(tǒng)的策略管理和決策效率。鐘子超[12]在一定程度上實(shí)現(xiàn)了策略匹配的優(yōu)化和策略的動態(tài)變更。Molloy等人[13]提出基于風(fēng)險的局部PDP架構(gòu),決策分類器通過使用學(xué)習(xí)到的訪問控制策略,根據(jù)已知決策進(jìn)行訓(xùn)練并進(jìn)一步改進(jìn)模型。近期學(xué)者們[14]將ABAC模型和區(qū)塊鏈技術(shù)相結(jié)合,提出了利用智能合約(Smart Contract)進(jìn)行訪問控制決策的方案,對開放的物聯(lián)網(wǎng)(Internet of Thing, IoT)環(huán)境下實(shí)現(xiàn)動態(tài)、分布式及可靠的訪問控制問題進(jìn)行優(yōu)化。
隨著ABAC策略研究的不斷成熟,策略管理的不同也影響著ABAC模型的結(jié)構(gòu)。訪問控制策略的管理也可以從數(shù)據(jù)挖掘方面入手,文獻(xiàn)[15]提出挖掘同時包含正、負(fù)授權(quán)規(guī)則的ABAC策略的方法,有關(guān)訪問控制發(fā)掘研究工作中首次提出有效提取負(fù)授權(quán)規(guī)則的算法。對于策略挖掘及遷移問題,文獻(xiàn)[16]提出了一種策略遷移方法,通過在屬性層次結(jié)構(gòu)條件下最優(yōu)分配用戶屬性值,使應(yīng)用傳統(tǒng)訪問控制模型的機(jī)構(gòu)能夠使用ABAC策略。
ABAC中PDP繁瑣的策略查詢?nèi)蝿?wù)以及PDP與PEP之間的網(wǎng)絡(luò)通信影響其訪問控制決策的效率。對于訪問量龐大的ABAC系統(tǒng),若能回收利用前期的訪問控制決策結(jié)果,則能很大程度上減輕服務(wù)系統(tǒng)的工作負(fù)荷[17]。學(xué)者們先后提出二次精確授權(quán)和近似授權(quán)模型[18-19],一定程度上提升了訪問控制系統(tǒng)和應(yīng)用系統(tǒng)的可靠性和性能。文獻(xiàn)[20]介紹了云計(jì)算環(huán)境下的合作式二次授權(quán)回收CSAR(Cooperative Secondary Authorization Recycling)方案。該方案中多個二次決策點(diǎn)(Secondary Decision Point, SDP)之間分享其緩存內(nèi)容,實(shí)現(xiàn)了掩蓋授權(quán)服務(wù)器故障和網(wǎng)絡(luò)延遲的目的。授權(quán)回收研究中授權(quán)緩存也很關(guān)鍵,緩存策略的構(gòu)建和更新也是重要研究內(nèi)容之一[21-22]。學(xué)者們從RBAC入手研究授權(quán)緩存機(jī)制[23]在訪問控制系統(tǒng)中的優(yōu)勢,逐步將有關(guān)概念轉(zhuǎn)移到ABAC中,取得了一定的研究成果[24]。文獻(xiàn)[25]中發(fā)現(xiàn)PEP端緩存雖然能減少PDP上的計(jì)算開銷,但可能會產(chǎn)生一個內(nèi)部威脅(Insider Threat)端口,因此給出了檢測和防止威脅的模型。
受RBAC授權(quán)回收機(jī)制啟發(fā)[23],本文基于文獻(xiàn)[26]中的規(guī)范,提出支持訪問控制策略動態(tài)變化的,帶策略的3種ABAC模型的決策回收方案。緩存并利用往期的授權(quán)記錄對新請求做二次精確的或近似的決策,降低PDP的工作負(fù)擔(dān)和網(wǎng)絡(luò)通信次數(shù),提升訪問控制系統(tǒng)決策主體請求的吞吐率。
基于屬性的訪問控制是以相關(guān)實(shí)體的屬性為評估依據(jù),允許或拒絕主體對資源的訪問請求的訪問控制機(jī)制。本文分別提供支持訪問控制策略動態(tài)變化的3種ABAC模型的決策回收機(jī)制。策略由規(guī)則表示,根據(jù)主體屬性、資源屬性以及可能的環(huán)境屬性,可以確定是否允許訪問請求。文中回顧如下實(shí)體概念為基礎(chǔ)展開討論。
主體(Subject)。系統(tǒng)的訪問者,如用戶或程序等,可由主體相關(guān)的若干個屬性來刻畫主體。系統(tǒng)中全體主體屬性集記為SA。
資源(Object)。訪問請求的目標(biāo),如文件、數(shù)據(jù)庫內(nèi)容等,可由資源相關(guān)的若干個屬性來刻畫資源。系統(tǒng)中全體資源屬性集記為OA。
環(huán)境(Environment)。訪問者發(fā)送請求時的環(huán)境因素,如訪問時間、訪問者IP地址、資源的IP地址等。可由環(huán)境相關(guān)的若干個屬性來刻畫環(huán)境。系統(tǒng)中全體環(huán)境屬性集記為EA。
操作(Operation)。系統(tǒng)中訪問者可對資源進(jìn)行的操作,如讀、寫、刪等。
權(quán)限(Permission)。系統(tǒng)中操作與資源的組合。
學(xué)者們分別在文獻(xiàn)[19,22,26]中提到訪問控制機(jī)制中的幾個功能“點(diǎn)”,例如策略信息點(diǎn)(Policy Information Point, PIP)、策略管理點(diǎn)(Policy Administration Point, PAP)、策略實(shí)施點(diǎn)(Policy Enforcement Point, PEP)、策略決策點(diǎn)(Policy Decision Point, PDP),本文中不對此進(jìn)行詳細(xì)介紹。
二次決策點(diǎn)SDP。通過緩存前期授權(quán)結(jié)果,可對新請求做出精確的或近似的授權(quán)決策。
策略變化管理器(Policy Change Manager, PCM)。負(fù)責(zé)監(jiān)視策略庫,檢測策略變化,將策略變化信息轉(zhuǎn)發(fā)給SDP。
如圖1所示,在ABAC中,PEP接收原始訪問請求后將其轉(zhuǎn)發(fā)給PDP, PDP根據(jù)策略信息對該訪問請求進(jìn)行決策,并將決策結(jié)果轉(zhuǎn)發(fā)給PEP,最終PEP會執(zhí)行該決策。當(dāng)系統(tǒng)做出首次決策后SDP將PDP做出的決策內(nèi)容緩存下來,后期根據(jù)緩存內(nèi)容對匹配于緩存內(nèi)容的訪問請求做二次決策,將不匹配緩存內(nèi)容的訪問請求轉(zhuǎn)發(fā)給PDP做決策,關(guān)于請求如何匹配于策略會在下文中做出解釋。
定義1 策略。關(guān)于權(quán)限p的訪問控制策略定義為三元組Policy=〈R,p,effect〉,其中規(guī)則為R=SR∧OR∧ER, SR表示主體規(guī)則,OR表示資源規(guī)則,ER表示環(huán)境規(guī)則,p為規(guī)則對應(yīng)的權(quán)限,effect=〈permit,deny〉。若一個策略的決策為允許,即effect=permit,則稱之為正授權(quán)策略;若決策為拒絕,即effect=deny,則稱之為負(fù)授權(quán)策略。
為簡便起見,本文后期內(nèi)容關(guān)于正負(fù)授權(quán)策略的表達(dá)中不再提及permit或deny。尤其在混合策略模型ABAC(H)中策略以二元組Policy±=〈R±,p〉表示,其中Policy+=〈R+,p〉為正授權(quán)策略,Policy-=〈R-,p〉為負(fù)授權(quán)策略,R+、R-為正、負(fù)授權(quán)策略的規(guī)則。由于ABAC(P)模型和ABAC(N)模型中只存在對應(yīng)的正、負(fù)授權(quán)策略,因此本文后期內(nèi)容中對策略的表達(dá)不加區(qū)分。
本文中每個策略是關(guān)于單一權(quán)限的,即策略內(nèi)容包括一個規(guī)則、一個權(quán)限以及該策略對應(yīng)的決策,其中主體、資源、環(huán)境等3類實(shí)體的規(guī)則是由若干屬性組成的布爾表達(dá)式[27]。本文中的屬性通常指二元組<屬性名:屬性值>,在大多數(shù)CP-ABE方案中,屬性名和屬性值的組合簡稱為屬性。同一屬性a的屬性名n(a)和不同的屬性值vi(a)相組合看作是一個新的屬性,當(dāng)屬性a只有一個屬性值v時,a:=〈n(a):v(a)〉,當(dāng)有多個屬性值vi,i=1,2,…,t時,該屬性可以產(chǎn)生a1,a2,…,at等不同屬性,其中ai:=〈n(a):vi(a)〉,i=1,2,…,t。本文參考CP-ABE訪問策略的特點(diǎn)來定義ABAC策略。此外,為了不失一般性,盡可能豐富其表達(dá)能力,先列舉本文ABAC中可以支持的屬性,并討論如何定義關(guān)于這些屬性的規(guī)則。
1)標(biāo)稱屬性(Nominal Attribute)。在規(guī)則中以屬性名和屬性值的形式出現(xiàn),它在某個規(guī)則體中以一個原子規(guī)則的形式出現(xiàn),即規(guī)則體的條件部分只包含一項(xiàng)。例如,SR=〈name:Bob〉,若請求中存在主體屬性ai:=〈name:Bob〉,由于ai中的屬性名和屬性值都與SR中的屬性名和屬性值相匹配,所以稱主體屬性ai匹配SR。
2)二元屬性(Binary Attribute)。在規(guī)則中以屬性名和屬性值的形式出現(xiàn),它在某個規(guī)則體中以一個原子規(guī)則的形式出現(xiàn)。例如,SR:=〈gender:1〉,(1表示男性,0表示女性),若請求中存在主體屬性ai=〈gender:1〉,由于ai中的屬性名和屬性值都與SR中的屬性名和屬性值相匹配,所以稱主體屬性ai匹配SR。
3)序?qū)傩?Ordinal Attribute)。一個序?qū)傩缘乃兄抵g存在全序關(guān)系。例如,一個level屬性有5個不同的值:excellent, good, average, fair, poor,并且有excellent>good>average>fair>poor。本文在ABAC規(guī)則中將原始規(guī)則內(nèi)容表示為SR1∨SR2∨SR3的形式,其中SR1=〈level:excellent〉, SR2=〈level:good〉, SR3=〈level:average〉,若請求中存在主體屬性ai=〈level:good〉,由于ai中的屬性名和屬性值都與SR2中的屬性名和屬性值相匹配,所以稱主體屬性ai匹配SR1∨SR2∨SR3。
4)數(shù)值屬性(Numeric Attribute)。它只支持離散的有限屬性值。例如,score屬性有5個不同的值:1、2、3、4、5??梢詫⒃家?guī)則內(nèi)容〈3≤score≤5〉表示為SR1∨SR2∨SR3的形式,其中SR1=〈score:3〉,SR2=〈score:4〉,SR3=〈score:5〉。若請求中存在主體屬性ai=〈score:3〉,由于ai中的屬性名和屬性值都與SR1中的屬性名和屬性值相匹配,所以稱主體屬性ai匹配SR1∨SR2∨SR3。
以上列出的規(guī)則和請求均為關(guān)于主體的規(guī)則和請求中的主體相關(guān)屬性,關(guān)于資源和環(huán)境的屬性也是類似的。根據(jù)前面的解釋,本文后期內(nèi)容將直接討論屬性而不再將它拆分成屬性名和屬性值,也不再討論“>”“≤”“≥”“<”等數(shù)學(xué)運(yùn)算符。
由原子規(guī)則和邏輯運(yùn)算符“或”“與”的嵌套使用,可以得到更復(fù)雜的規(guī)則,如SRi=(a1∨a2)∧(a3∨a4),其中a1、a2、a3、a4均為由屬性名和屬性值組成的二元組。為了后續(xù)方便討論,將規(guī)則轉(zhuǎn)化成集合的形式,上述規(guī)則可表示為以極小屬性集[28]為元素的集合,如SRi={{a1,a3},{a1,a4},{a2,a3},{a2,a4}},其中的每個極小屬性集記為Sai,如Sa1={a1,a3},Sa2={a1,a4},Sa3={a2,a3},Sa4={a2,a4}。
本文僅圍繞單個權(quán)限p的訪問請求、策略和緩存內(nèi)容展開敘述,關(guān)于多個不同權(quán)限的情形可以依次類推。假設(shè)主體想要訪問權(quán)限p,主體關(guān)于權(quán)限p的訪問請求定義為四元組〈(SA,OA,EA),p〉,其中,SA為主體相關(guān)屬性集,OA為資源相關(guān)屬性集,EA為環(huán)境相關(guān)屬性集。PEP將主體的訪問請求轉(zhuǎn)發(fā)給PDP,當(dāng)請求〈(SA,OA,EA),p〉中的各屬性集都匹配關(guān)于權(quán)限p的n個策略中的至少一個時(請求中的各屬性集分別匹配策略中對應(yīng)的規(guī)則),稱請求匹配策略。由于每個策略與其中的規(guī)則是一一對應(yīng)的,此后,匹配策略和匹配規(guī)則不加區(qū)分。下面給出ABAC的3種模型。
ABAC(P)模型(封閉世界策略模型)。策略庫中所有策略為正授權(quán)策略,當(dāng)請求匹配策略時,則系統(tǒng)對該請求最終的訪問控制決策為允許,否則為拒絕。
ABAC(N)模型(開放世界策略模型)。策略庫中所有策略為負(fù)授權(quán)策略,當(dāng)請求匹配策略時,則系統(tǒng)對該請求最終的訪問控制決策為拒絕,否則為允許。
ABAC(H)模型(混合策略模型)。關(guān)于任意的權(quán)限p,正、負(fù)授權(quán)策略可以同時存在,對訪問控制決策有如下定義:
1)當(dāng)關(guān)于權(quán)限p只有正授權(quán)策略時,關(guān)于該權(quán)限,模型退化為ABAC(P)模型。
2)當(dāng)關(guān)于權(quán)限p只有負(fù)授權(quán)策略時,關(guān)于該權(quán)限,模型退化為ABAC(N)模型。
3)當(dāng)關(guān)于權(quán)限p正、負(fù)授權(quán)策略都存在時,則:
①若請求只匹配正授權(quán)策略且不匹配負(fù)授權(quán)策略,決策結(jié)果為允許。
②若請求只匹配負(fù)授權(quán)策略且不匹配正授權(quán)策略,決策結(jié)果為拒絕。
③若請求同時匹配正、負(fù)授權(quán)策略,稱出現(xiàn)策略沖突,請求由PEP做訪問控制決策。
④若請求不匹配所有的正、負(fù)授權(quán)策略,稱出現(xiàn)策略缺失,請求由PEP做訪問控制決策。
研究者們考慮到ABAC系統(tǒng)中查詢策略操作最為普遍,因此引入授權(quán)回收機(jī)制,通過記載和利用往期訪問控制決策信息提高后期決策的效率。本文提出一種ABAC決策回收機(jī)制,緩存并利用往期的授權(quán)記錄對新請求做二次精確的或近似的決策,降低PDP的工作負(fù)擔(dān)和網(wǎng)絡(luò)通信次數(shù),提升訪問控制系統(tǒng)決策主體請求的吞吐率。
本文提出帶策略的決策回收模式。帶策略的決策回收模式指PDP做出決策后返回給SDP的內(nèi)容是PDP遍歷過的所有策略內(nèi)容以及決策,當(dāng)有新的訪問請求時,可由緩存過的請求、策略和決策做出二次決策;如果緩存當(dāng)中沒有新請求可匹配的內(nèi)容,新請求再次轉(zhuǎn)發(fā)給PDP做決策。
帶策略的決策回收模式的優(yōu)勢是盡可能地減少PDP檢索策略的過程,使SDP可重復(fù)利用PDP遍歷過一次的策略內(nèi)容,從而降低PDP的工作負(fù)荷。
下面對ABAC(P)模型的決策回收模式展開討論。
當(dāng)PDP收到請求〈(SA,OA,EA),p〉時,對請求和策略進(jìn)行對比,查找請求可匹配的策略。如果將每次查詢過的策略也作為緩存的內(nèi)容儲存起來,就可以提高訪問控制系統(tǒng)后續(xù)決策的效率,提升系統(tǒng)決策請求的吞吐量。該模式中PDP回復(fù)PEP的決策形式分別定義為(〈(SA,OA,EA),p〉,permit),(〈({SA}/⊥,{OA}/⊥,{EA}/⊥),p〉,deny)。本節(jié)分別創(chuàng)建關(guān)于權(quán)限p由允許決策和拒絕決策構(gòu)成的正緩存CacheP+(p)和負(fù)緩存CacheP-(p)。
CacheP+(p)={〈(SRi,ORi,ERi),p〉|p∈Permission,i≥1}
首先假設(shè)PDP中的策略庫關(guān)于權(quán)限p含有n個策略,SDP為空,當(dāng)PEP收到第一個訪問請求〈(SA,OA,EA),p〉后,將其轉(zhuǎn)發(fā)給PDP做決策。
1)若PDP查詢策略庫中m個策略,發(fā)現(xiàn)請求匹配第m個策略,則PDP將允許決策(〈(SRi,ORi,ERi),p〉i1,…,im,permit)轉(zhuǎn)發(fā)給SDP,SDP將其中有關(guān)策略的內(nèi)容〈(SRi,ORi,ERi),p〉i1,…,im緩存到CacheP+(p)中,即將遍歷過的策略緩存到正緩存當(dāng)中。
2)若請求不匹配所有的策略,可分2種情形討論。
①若請求中3類實(shí)體屬性集都不匹配所有的策略,則PDP將拒絕決策(〈({SA},{OA},{EA}),p〉,deny)和遍歷過的n個策略內(nèi)容轉(zhuǎn)發(fā)給SDP,SDP將其中有關(guān)策略的內(nèi)容〈(SRi,ORi,ERi),p〉i1,…,in緩存到CacheP+(p)中,同時將有關(guān)請求的內(nèi)容〈({SA},{OA},{EA}),p〉緩存到CacheP-(p)中。
②若請求中至少有一個實(shí)體屬性集不匹配所有的策略,則PDP對請求內(nèi)容只保留不匹配的屬性集,匹配的屬性集以⊥代替。假定OA不匹配所有的策略,SA和EA至少匹配一個策略,則PDP將拒絕決策(〈(⊥,{OA},⊥),p〉,deny)和遍歷過的n個策略內(nèi)容轉(zhuǎn)發(fā)給SDP,SDP將其中有關(guān)策略的內(nèi)容〈(SRi,ORi,ERi),p〉i1,…,in緩存到CacheP+(p)中,同時將有關(guān)請求的內(nèi)容〈(⊥,{OA},⊥),p〉緩存到CacheP-(p)中。
SDP決策規(guī)則是SDP生成精確或近似決策的規(guī)則。由于本模型中策略庫僅含正授權(quán)策略,所以SDP檢索正、負(fù)緩存內(nèi)容時應(yīng)遵循先正后負(fù)的順序。下面給出SDP的2種決策規(guī)則。
可以看出,對做好高校會計(jì)核算工作的認(rèn)識比較一致,最大的區(qū)別是在“依法依規(guī)正確設(shè)置會計(jì)科目”問題上,這個問題也可以看出會計(jì)管理的信息化程度,區(qū)外高校的會計(jì)信息化比較高,完全可以通過軟件自動依法依規(guī)正確設(shè)置會計(jì)科目。只有存在半手工核算的學(xué)校才會人為調(diào)整而出現(xiàn)會計(jì)科目不統(tǒng)一和不正確的現(xiàn)象。
由CacheP+(p)的構(gòu)造方法可知,緩存內(nèi)容〈(SRi,ORi,ERi),p〉是PDP中的策略。由?Sa∈SRi,Sa?SA*,?Oa∈ORi,Oa?OA*,?Ea∈ERi,Ea?EA*可知,請求〈(SA*,OA*,EA*),p〉滿足PDP中的策略,即若由PDP決策也是被允許的。
由CacheP-(p)的構(gòu)造方法可知,歷史請求中的SAe、OAf、EAt都不滿足PDP策略中對應(yīng)的主體、資源和環(huán)境規(guī)則。
所以,若SA*?SAe,則SA*不滿足PDP所有策略中的主體規(guī)則;若OA*?OAf,則OA*不滿足PDP所有策略中的資源規(guī)則;若EA*?EAt,則EA*不滿足PDP所有策略中的環(huán)境規(guī)則。故若請求〈(SA*,OA*,EA*),p〉由PDP決策,則它也會被拒絕。
ABAC(P)模型為封閉世界策略模型,策略庫所包含的規(guī)則作為允許決策的前提條件。系統(tǒng)管理員可以通過策略管理點(diǎn)PAP部署策略,內(nèi)置在PDP中的組件PCM負(fù)責(zé)檢測策略庫中策略的變化。當(dāng)SDP非空且新的請求匹配緩存內(nèi)容時,SDP可由緩存內(nèi)容做出二次允許決策,不更新任何緩存,當(dāng)請求不匹配緩存內(nèi)容或策略庫發(fā)生策略變化時,需要更新或壓縮緩存內(nèi)容。對于新請求不匹配緩存內(nèi)容的情況,該請求會由PDP做訪問控制決策并需要更新到相應(yīng)的緩存。對于策略庫發(fā)生策略變化的情況,PCM一旦發(fā)現(xiàn)策略變化會及時地將該變化信息轉(zhuǎn)發(fā)給SDP以便SDP更新相應(yīng)的緩存內(nèi)容。緩存壓縮是指緩存更新時參照SDP決策規(guī)則對緩存內(nèi)容進(jìn)行相應(yīng)的合并或刪減,相關(guān)分析如下。
2.3.1 新請求不匹配緩存內(nèi)容
值得注意的是當(dāng)SDP收到PDP的首個訪問控制拒絕決策后便知策略庫中關(guān)于權(quán)限p的訪問控制策略個數(shù)n,因此根據(jù)正、負(fù)緩存關(guān)于權(quán)限p所含有的內(nèi)容,請求不匹配緩存內(nèi)容可分為以下情況進(jìn)行分析。
1)當(dāng)CacheP+(p)=〈(SRi,ORi,ERi),p〉i1,…,im,m≤n,CacheP-(p)=?時:
①若新請求〈(SA*,OA*,EA*),p〉不匹配正緩存內(nèi)容時,則請求再次被發(fā)送給PDP。若查詢u個策略后發(fā)現(xiàn)該請求可匹配的策略,PDP會將允許決策(〈(SRi,ORi,ERi),p〉i1,…,iu,permit)轉(zhuǎn)發(fā)給SDP,SDP將其中有關(guān)策略的內(nèi)容〈(SRi,ORi,ERi),p〉i1,…,iu緩存到CacheP+(p)中,并對CacheP+(p)中重復(fù)的策略內(nèi)容進(jìn)行合并。
②若請求不匹配策略庫中所有的策略時,則按照2.1節(jié)緩存構(gòu)建方法步驟2中的第②步,PDP對請求內(nèi)容只保留不匹配策略的屬性集再將其轉(zhuǎn)發(fā)給SDP,SDP對CacheP+(p)中重復(fù)的策略內(nèi)容進(jìn)行合并。
2)當(dāng)CacheP-(p)非空時,根據(jù)緩存構(gòu)建方法CacheP+(p)已含有關(guān)于權(quán)限p的所有策略內(nèi)容,若新請求〈(SA*,OA*,EA*),p〉不匹配正、負(fù)緩存內(nèi)容,則請求由SDP做出二次拒絕決策,此時按照2.1節(jié)緩存構(gòu)建方法步驟2中的第②步,SDP對請求內(nèi)容只保留不匹配策略的屬性集,并將其緩存到CacheP-(p)中。
2.3.2 策略庫發(fā)生策略變化
當(dāng)策略庫中發(fā)生策略變化時,PCM會將檢測到變化的策略信息轉(zhuǎn)發(fā)給SDP,使SDP對緩存內(nèi)容進(jìn)行更新并壓縮。下面給出3種情景分析。
情景1 增加關(guān)于權(quán)限p的策略Policyn+1,Policyn+2,…,Policyn+m。
當(dāng)有新策略Policyn+i加入策略庫時,PCM檢測到新的策略〈(SRn+i,ORn+i,ERn+i),p〉并將該策略轉(zhuǎn)發(fā)給SDP,SDP將新的策略內(nèi)容緩存到CacheP+(p),并從CacheP-(p)中刪除關(guān)于權(quán)限p的所有緩存內(nèi)容。
情景2 刪減關(guān)于權(quán)限p的策略Policyi1,Policyi2,…,Policyil。
從策略庫中刪減已有策略Policyij時,SDP中CacheP+(p)內(nèi)容會受影響,因此PCM檢測到被刪除策略〈(SRij,ORij,ERij),p〉后將其轉(zhuǎn)發(fā)給SDP,SDP將該策略內(nèi)容從CacheP+(p)中刪除,不對CacheP-(p)進(jìn)行更新。
情景3 修改關(guān)于權(quán)限p的策略。
當(dāng)管理員修改關(guān)于權(quán)限p的策略時,PCM通知SDP關(guān)于該權(quán)限修改后的策略〈(SRil,ORil,ERil),p〉,SDP會立即從CacheP+(p)、CacheP-(p)中刪除關(guān)于權(quán)限p的緩存內(nèi)容,將修改后的策略緩存到CacheP+(p)中。
關(guān)于ABAC(N)模型的決策回收,可以看作是ABAC(P)模型決策回收的對偶問題。ABAC(P)模型中策略庫所含有的是正授權(quán)策略,請求匹配策略時被允許,否則被拒絕。而ABAC(N)模型恰恰相反,策略庫含有負(fù)授權(quán)策略,請求匹配策略時被拒絕,否則被允許。因此該模型中緩存的構(gòu)建、SDP決策規(guī)則的定義及緩存的更新等內(nèi)容可看作是ABAC(P)模型中相關(guān)內(nèi)容的對偶問題。所以,本文不再贅述。
如第1章內(nèi)容所提到的,ABAC(H)模型支持對于同一權(quán)限同時存在正、負(fù)授權(quán)策略的情形。當(dāng)該模型中對于權(quán)限p只存在正/負(fù)授權(quán)策略時,關(guān)于該權(quán)限模型會退化為ABAC(P)/ABAC(N)模型,因此本章不再討論只存在同一種授權(quán)策略的情況,將關(guān)注關(guān)于權(quán)限p同時存在正、負(fù)授權(quán)策略的情況。
結(jié)合實(shí)際應(yīng)用不難發(fā)現(xiàn),訪問控制系統(tǒng)關(guān)于某一權(quán)限可同時出現(xiàn)允許訪問和拒絕訪問的訪問策略。因此正、負(fù)授權(quán)策略的同時存在,對緩存的構(gòu)建、SDP決策規(guī)則以及緩存更新都會帶來一定的難度。下面對ABAC(H)模型的決策回收模式展開討論。
假定策略庫可能會同時包含正負(fù)授權(quán)策略,因此PDP根據(jù)請求匹配正、負(fù)授權(quán)策略的情況,做出允許、拒絕以及不可判定的決策。PDP的決策形式分別為(〈(SR+,OR+,ER+),p〉,permit)、(〈(SR-,OR-,ER-),p〉,deny)、(〈(SA,OA,EA),p〉,undecided),分別創(chuàng)建關(guān)于權(quán)限p由允許決策和拒絕決策構(gòu)成的正緩存CacheH+(p)和負(fù)緩存CacheH-(p)。
3)若請求同時匹配正、負(fù)授權(quán)策略或不匹配所有的正、負(fù)授權(quán)策略,則PDP將決策(〈(SA,OA,EA),p〉,undecided)轉(zhuǎn)發(fā)給SDP,SDP不對該決策進(jìn)行緩存,由PEP做訪問控制決策。
緩存構(gòu)建考慮到對于請求PDP遍歷策略庫時可能會出現(xiàn)請求僅匹配正/負(fù)授權(quán)策略、請求同時匹配正負(fù)授權(quán)策略及請求不匹配任何授權(quán)策略等情形,然而請求同時匹配正負(fù)授權(quán)策略和請求不匹配任何授權(quán)策略的情況下由PEP做決策,因此在SDP決策規(guī)則當(dāng)中僅考慮匹配一種授權(quán)策略的情形。下面給出SDP的2種決策規(guī)則。
證明:可參考定理3的證明,不再贅述。
4.3.1 新請求不匹配緩存內(nèi)容
由于ABAC(H)模型中策略庫同時包含關(guān)于權(quán)限p的正、負(fù)授權(quán)策略,PDP遍歷策略庫時檢索出請求匹配的一個正授權(quán)策略和一個負(fù)授權(quán)策略時才會停止遍歷。值得注意的是當(dāng)SDP收到PDP的首個訪問控制不可判定(undecided)決策后便知策略庫中關(guān)于權(quán)限p有v個正授權(quán)策略和n-v個負(fù)授權(quán)策略。新請求〈(SA*,OA*,EA*),p〉不匹配正、負(fù)緩存內(nèi)容時,請求再次被發(fā)送給PDP。對此做如下分析。
2)若發(fā)現(xiàn)該請求可匹配的負(fù)授權(quán)策略,但沒有可匹配的正授權(quán)策略時,同樣根據(jù)4.1節(jié)緩存構(gòu)建方法步驟2對遍歷過的策略進(jìn)行緩存,并對CacheH+(p)、CacheH-(p)中重復(fù)的策略進(jìn)行合并。
3)若新請求不匹配策略庫中所有的策略或同時匹配正、負(fù)授權(quán)策略時,PDP會將決策(〈(SA*,OA*,EA*),p〉,undecided)轉(zhuǎn)發(fā)給SDP,SDP不對該決策進(jìn)行緩存,該請求由PEP做訪問控制決策。
4.3.2 策略庫發(fā)生策略變化
當(dāng)策略庫中發(fā)生策略變化時,PCM將檢測到變化的策略信息轉(zhuǎn)發(fā)給SDP,使SDP對緩存內(nèi)容進(jìn)行更新并壓縮。下面給出3種情景分析。
情景1 增加正(負(fù))授權(quán)策略。
增加正(負(fù))授權(quán)策略時,PCM檢測到新策略并將新策略內(nèi)容轉(zhuǎn)發(fā)給SDP,使其更新CacheH+(p)(CacheH-(p))。
情景2 刪減正(負(fù))授權(quán)策略。
刪減正(負(fù))授權(quán)策略時,PCM檢測到策略變化并將策略變化信息轉(zhuǎn)發(fā)給SDP,使其從CacheH+(p)(CacheH-(p))中刪減該內(nèi)容。
情景3 修改策略。
當(dāng)管理員修改關(guān)于權(quán)限p的策略時,PCM通知SDP關(guān)于該權(quán)限的策略變化,SDP會立即從CacheH+(p)、CacheH-(p)中刪除關(guān)于權(quán)限p的所有緩存內(nèi)容,避免修改的策略內(nèi)容和2個緩存內(nèi)容有沖突。
通過實(shí)驗(yàn)驗(yàn)證本文提出的決策回收方法的有效性。實(shí)驗(yàn)環(huán)境中PDP服務(wù)器的配置是內(nèi)存為16 GB的4核CPU,操作系統(tǒng)為Ubuntu 20.04 Server 64 bit,服務(wù)器軟件為Nginx/1.18.0,服務(wù)器網(wǎng)絡(luò)環(huán)境的帶寬為5 Mbit/s;SDP服務(wù)器的配置是內(nèi)存為8 GB的2核CPU,操作系統(tǒng)為Ubuntu 18.04 64 bit,服務(wù)器軟件為Nginx/1.15.8,服務(wù)器網(wǎng)絡(luò)環(huán)境的帶寬為50 Mbit/s。
由于ABAC(P)模型和ABAC(N)模型是對偶模型,因此不對ABAC(N)模型進(jìn)行實(shí)驗(yàn)。其余2類模型的實(shí)驗(yàn)參數(shù)設(shè)置為關(guān)于100個權(quán)限設(shè)有10000條策略。其中ABAC(P)模型中所有策略是正授權(quán)策略,ABAC(H)模型中關(guān)于每個權(quán)限1/3是正授權(quán)策略,1/3是負(fù)授權(quán)策略,1/3是正、負(fù)授權(quán)策略同時存在。其中主體、資源、環(huán)境總屬性各為10個,主體規(guī)則、資源規(guī)則、環(huán)境規(guī)則隨機(jī)產(chǎn)生且其含有平均5個屬性來自于對應(yīng)的總屬性,規(guī)則中的“∧”“∨”運(yùn)算隨機(jī)產(chǎn)生。關(guān)于以上100個權(quán)限給出10000條請求,其中主體、資源、環(huán)境屬性來自于對應(yīng)的總屬性并平均各5個。
2類模型的實(shí)驗(yàn)中對每一個模型分別設(shè)有無緩存狀態(tài)和開啟緩存狀態(tài),無緩存狀態(tài)實(shí)驗(yàn)中訪問用戶向系統(tǒng)發(fā)送的請求一律由PDP進(jìn)行決策并發(fā)給PEP直接實(shí)施。開啟緩存狀態(tài)實(shí)驗(yàn)中訪問用戶的請求由PDP進(jìn)行決策之后由SDP緩存到相應(yīng)的正、負(fù)緩存中,再由PEP實(shí)施。此時后期的請求可以根據(jù)SDP決策規(guī)則由SDP進(jìn)行決策。
訪問控制系統(tǒng)處于無緩存狀態(tài)和開啟緩存狀態(tài)下,對每一類模型的不同狀態(tài)進(jìn)行5次實(shí)驗(yàn),統(tǒng)計(jì)系統(tǒng)的決策響應(yīng)時間并取平均值。平均決策時間如圖2所示。開啟緩存后2個模型的決策時間分別節(jié)省了23%和21%。
用SDP進(jìn)行決策的請求數(shù)量以及趨勢如圖3所示。隨著緩存內(nèi)容的增加,由SDP進(jìn)行決策的請求數(shù)量逐漸增加。
從實(shí)驗(yàn)數(shù)據(jù)中,選取了一個權(quán)限(僅存在正授權(quán)的)進(jìn)行觀察,關(guān)于該權(quán)限的策略共有103條,關(guān)于該權(quán)限的請求有116條,其中82條被允許,34條被拒絕。相關(guān)數(shù)據(jù)如表1所示。對于給定的權(quán)限而言,其策略中出現(xiàn)的某個屬性的頻次越多,該屬性的重要性就越高,含有該屬性的請求被允許的可能性越大;未含有該屬性的請求被拒絕的可能性越大。即對于給定的權(quán)限,一個屬性在相關(guān)策略和請求中出現(xiàn)的頻次一定程度上會影響含有該屬性的請求是否被允許。
表1 屬性頻次統(tǒng)計(jì)表
本文根據(jù)訪問控制實(shí)踐中常見的3種元策略——封閉世界策略、開放世界策略以及混合策略,分別提出ABAC(P)、ABAC(N)及ABAC(H)這3種訪問控制模型以及相應(yīng)的帶策略決策回收方法。本文提出的決策回收方法可以減少SDP和PDP之間的通信次數(shù),從而降低PDP工作負(fù)荷,提高訪問控制系統(tǒng)的決策性能,同時支持策略變化。后期的研究工作中將考慮如何提高ABAC模型的策略表達(dá)能力,以及更加有效的決策回收機(jī)制。