王靜宇 欒俊清 譚躍生
摘要:形式概念分析可以用于設(shè)計(jì)訪問(wèn)控制所需要的層次結(jié)構(gòu),文獻(xiàn)中提及的方法通常是將三維訪問(wèn)控制矩陣轉(zhuǎn)換成二元形式背景,進(jìn)行這種轉(zhuǎn)換主要目的是導(dǎo)出形式概念、概念格結(jié)構(gòu)以及角色層次和RBAC的約束。為了探索三元形式概念分析在RBAC訪問(wèn)控制中的應(yīng)用,提出了三元形式概念分析對(duì)RBAC進(jìn)行建模的方法,不必將三維訪問(wèn)控制矩陣轉(zhuǎn)換為二元形式背景即能實(shí)現(xiàn)角色層次和角色責(zé)任分離。實(shí)驗(yàn)部分以醫(yī)療系統(tǒng)網(wǎng)絡(luò)為例展示了該方法遵循RBAC角色層次和角色責(zé)任分離約束,證明了三元形式概念分析可對(duì)RBAC訪問(wèn)控制策略提供合理的表示。
關(guān)鍵詞:訪問(wèn)控制;概念格;基于角色的訪問(wèn)控制;角色層次
DOU:10.15938/j.jhust.2020.02.005
中圖分類號(hào):TP309文獻(xiàn)標(biāo)志碼:A 文章編號(hào):1007-2683(2020)02-0031-07
0 引言
訪問(wèn)控制是重要的安全機(jī)制之一,訪問(wèn)控制系統(tǒng)能夠根據(jù)訪問(wèn)控制策略中指定的訪問(wèn)權(quán)限設(shè)置和控制用戶的訪問(wèn)權(quán)限。其中基于角色的訪問(wèn)控制(RBAC)以其強(qiáng)大的功能適用于多種類型用戶的需求,除了在企業(yè)系統(tǒng)中廣泛應(yīng)用之外,RBAC也在諸如類UNIX操作系統(tǒng)和數(shù)據(jù)庫(kù)管理系統(tǒng)中實(shí)現(xiàn)。RBAC的主要優(yōu)勢(shì)在于它是策略中立的,通過(guò)角色的層次結(jié)構(gòu)和約束條件,可以表達(dá)廣泛的安全策略。RBAC最初由Sandhu于1996年提出,隨后由NIST標(biāo)準(zhǔn)化,RBAC在主體和權(quán)限之間引入角色的概念,通過(guò)對(duì)角色的授權(quán)來(lái)控制主體對(duì)資源的訪問(wèn)。用戶可以執(zhí)行分配給其對(duì)應(yīng)角色的訪問(wèn)權(quán)限。角色將每個(gè)用戶映射到一組權(quán)限。RBAC模型支持3個(gè)安全原則:數(shù)據(jù)抽象,最小權(quán)限和角色責(zé)任分離。NIST標(biāo)準(zhǔn)將RBAC劃分為核心RBAC,層次RBAC和限制RBAC。核心RBAC包含RBAC的基本功能。層次RBAC除了核心RBAC功能外,還遵循角色層次訪問(wèn)結(jié)構(gòu)。限制RBAC遵循角色責(zé)任分離(SOD)等約束。文[5]對(duì)RBAC進(jìn)行了深入討論并提出了幾種對(duì)RBAC建模的方法。由于RBAC在諸多文獻(xiàn)中已得到充分的討論,本文對(duì)于RBAC的基礎(chǔ)將不再贅述。
形式概念分析(FCA)是一種基于格理論的數(shù)學(xué)框架,主要用于知識(shí)的表示、提取和分析。形式概念分析的基礎(chǔ)是形式背景,定義為(C,M,Y),其中G是對(duì)象集合,M是屬性集合,Y是這兩個(gè)集合之間的二元關(guān)系。這種結(jié)構(gòu)也被稱為二元形式背景。文提出了采用形式概念分析對(duì)RBAC建模的方法。RBAC訪問(wèn)控制矩陣是由角色(R),數(shù)據(jù)對(duì)象(D)和權(quán)限(P)表示的三維矩陣,在形式概念分析中訪問(wèn)控制矩陣可以確定一個(gè)描述RBAC這3個(gè)部分之間的關(guān)系三元形式背景。應(yīng)用形式概念分析的過(guò)程中,在對(duì)二元形式背景進(jìn)行轉(zhuǎn)換的基礎(chǔ)上,采用形式概念分析算法進(jìn)行概念格構(gòu)造、屬性探索和含義分析。以便推導(dǎo)RBAC的角色層次結(jié)構(gòu)和職責(zé)分離約束,這種轉(zhuǎn)換通過(guò)將三元形式背景中的任意兩個(gè)元素的向量積作為二元形式背景的對(duì)象,將另外一個(gè)元素作為屬性實(shí)現(xiàn)的。例如,將三元形式背景(R,D,P,Y)轉(zhuǎn)換為二元情形(R×D,P,YR×D.P)。然而,從二元情形的基本概念出發(fā),形式概念分析被擴(kuò)展到三元情形,其中輸入數(shù)據(jù)將是在稱為三元形式背景的表中表示的三維關(guān)系數(shù)據(jù)。表中的條目表示哪些對(duì)象具有哪些屬性。這種表示類似于RBAC三維數(shù)據(jù)。但現(xiàn)有文獻(xiàn)中沒(méi)有采用三元形式概念分析直接處理三元形式背景而不將其轉(zhuǎn)化為二元形式背景的研究。基于已有的研究成果,我們將形式概念分析從二元推廣到三元,在三元形式概念分析中,輸入數(shù)據(jù)是三維關(guān)系數(shù)據(jù),可以表示為三元形式背景。將形式概念分析應(yīng)用于RBAC建模時(shí),在滿足RBAC的角色層次結(jié)構(gòu)和角色職責(zé)分離約束的情況下,三元形式概念分析能夠合理表示RBAC訪問(wèn)控制策略,也更具應(yīng)用前景。
綜上所述,本文提出了以下3個(gè)問(wèn)題:如何用三元形式概念分析如何對(duì)RBAC進(jìn)行合理的表示;如何理解和解釋三維RBAC矩陣產(chǎn)生的三元層次概念格;這種表示是否遵循策略約束和隱含權(quán)限;本文在不改變RBAC三元背景的前提下,通過(guò)三元形式概念和三元概念格對(duì)RBAC進(jìn)行建模。
1 相關(guān)研究
在一些涉及到形式概念分析的文獻(xiàn)中,已經(jīng)將形式概念分析的二元算法推廣到三元形式背景當(dāng)中。文討論了三元形式概念分析在在認(rèn)知系統(tǒng)模型中的應(yīng)用,文討論了三元形式概念分析和三元聚類,文使用形式概念分析建模RBAC,并實(shí)現(xiàn)了角色層次結(jié)構(gòu)。文提出了一種利用形式概念分析設(shè)計(jì)RBAC的方法。文提出了基于模糊形式概念分析的模糊角色訪問(wèn)控制模型。這些研究都使用了二元形式概念分析。
2 相關(guān)知識(shí)
2.1 二元形式概念分析
定義1(形式背景)一個(gè)形式背景K:=(G,M,I)是由兩個(gè)集合G和M以及G與M間的關(guān)系J組成。G的元素稱為(形式)對(duì)象,M的元素稱為(形式)屬性。(g,m)∈I或glm表示對(duì)象g具有屬性m。
三元概念格是一種對(duì)稱結(jié)構(gòu),其中的對(duì)象集,屬性集和條件是等價(jià)的。一般地,我們將這種結(jié)構(gòu)繪制為三角形圖。為方便理解,可為每個(gè)外延,內(nèi)涵和形式繪制完整的概念格。
3 本文提出的方法
為了實(shí)現(xiàn)三元形式概念分析對(duì)RBAC模型進(jìn)行表示,利用上面定義的外閉包運(yùn)算和內(nèi)閉包運(yùn)算,給出了將三維訪問(wèn)控制矩陣導(dǎo)出三元概念的方法:
1)確定給定訪問(wèn)策略的角色(R),數(shù)據(jù)對(duì)象(D)和訪問(wèn)權(quán)限(P)。
2)將具有角色(R)、數(shù)據(jù)對(duì)象(D)和訪問(wèn)權(quán)限(P)的三維訪問(wèn)矩陣構(gòu)成三元形式背景:看R.D.P:=(R,D,P,I),其中I表示R,D和P的三元關(guān)系。
3)對(duì)于每個(gè)權(quán)限集合H∈P,使用內(nèi)閉包運(yùn)算φ和φ'計(jì)算二元背景(R,D×H,Y3)。
4)使用文中的二元概念生成算法,計(jì)算步驟3中生成的背景中的每一個(gè)概念。
5)對(duì)于每個(gè)二元概念,使用外閉包運(yùn)算ψ和ψ計(jì)算包含它的條件集合。
6)形成定義9給出的三元概念。
7)對(duì)于所有子條件集合重復(fù)步驟5)。
8)若存在多余的三元概念則將其刪除。
利用上述方法,我們從三維RBAC矩陣導(dǎo)出三元概念,得到三元形式概念分析的RBAC模型表示。算法上這個(gè)過(guò)程復(fù)雜度為指數(shù)階。為了說(shuō)明問(wèn)題,考慮表l所示的RBAC三元背景(R,D,P,Y)。形式背景中包含4個(gè)角色,3個(gè)數(shù)據(jù)對(duì)象和3個(gè)權(quán)限。
考慮{i,j,k}={1,2,3},X1=RA3={p1,p2}且Z=|r3}。根據(jù)定義8中內(nèi)導(dǎo)運(yùn)算可得到φ(Z)=(d2,d3)和φ'φ(Z)=(r2,r3)。此外,由定義7的外導(dǎo)運(yùn)算可得到,ψ(Z)={(d2,p1),(d3,p1),(d2,p2),(d3,P2),(d2,P3),(d3,p3)}。其中注意到ψ'(ψ(Z))=(r4,r4)。根據(jù)定義9可得到三元概念({r3,r4},{d2,d3},{p1,p2,p3})。
4 實(shí)驗(yàn)分析
我們以一個(gè)醫(yī)療系統(tǒng)為例來(lái)演示本文給出的三元形式概念分析的設(shè)計(jì)方法。圖1中確定了9個(gè)角色分別為:辦公室助理(R1),衛(wèi)生監(jiān)察員(R2),母嬰保育員(R3),護(hù)士(R4),治療師(R5),醫(yī)生(R6),會(huì)計(jì)(R7),會(huì)計(jì)主管(R8)和內(nèi)部審計(jì)師(R9)。圖l顯示了這個(gè)醫(yī)療系統(tǒng)網(wǎng)絡(luò)的角色層次結(jié)構(gòu)。以下是系統(tǒng)中的數(shù)據(jù)對(duì)象:家庭文件夾(D1),母親營(yíng)養(yǎng)圖(D2),兒童疫苗接種信息(D3),住院病人記錄(D4),治療記錄(D5),處方記錄(D6),衛(wèi)生單位業(yè)務(wù)記錄(D7)和總帳(D8)。這些數(shù)據(jù)對(duì)象的訪問(wèn)權(quán)限包括:創(chuàng)建(P1),刪除(P2),輸入/修改(P3),生成(P4)和校驗(yàn)(P5)。
表2給出了根據(jù)醫(yī)療系統(tǒng)三維訪問(wèn)控制矩陣生成的三元背景。首先,對(duì)于每個(gè)訪問(wèn)權(quán)限,分別使用內(nèi)閉包運(yùn)算,然后使用外導(dǎo)運(yùn)算。三元形式概念分析產(chǎn)生了表3所列出的17個(gè)三元概念。正如所討論的,三元概念的外延,內(nèi)涵和模式并會(huì)形成與二元形式概念分析相同的閉包系統(tǒng)。同樣地,我們可以從表3中觀察到,例如,三元概念9表明角色及,和R8是其外延,有權(quán)限P3訪問(wèn)其內(nèi)涵即數(shù)據(jù)對(duì)象D1。同一組角色R7和R8是概念10的外延,有權(quán)限P4訪問(wèn)數(shù)據(jù)對(duì)象D8。
圖2給出了表3所示的三元概念中獲得的三元概念格的幾何結(jié)構(gòu)。圖中每個(gè)圓點(diǎn)示一個(gè)三元概念。這個(gè)結(jié)構(gòu)可以通過(guò)右側(cè)的外延圖,左側(cè)的內(nèi)涵圖和頂部的方式圖來(lái)理解。在RBAC模型中,角色為外延,數(shù)據(jù)對(duì)象為內(nèi)涵,訪問(wèn)權(quán)限為方式。右側(cè)線圖中顯示的圓點(diǎn)表示由下方對(duì)應(yīng)該點(diǎn)的對(duì)象組成的外延(角色)。即外延從左下到右上增大。同樣地,內(nèi)涵(數(shù)據(jù)對(duì)象)從左上到右下增大。形式(訪問(wèn)權(quán)限)從右上方向左下方增大。對(duì)于位于圖表中心和底部節(jié)點(diǎn)之上的圓點(diǎn),該點(diǎn)具有外延{R2,R3},內(nèi)涵{D2,D3}在左下方的方式{P3}。
可以觀察到,三元概念格的每一邊的概念格是完全格。用戶角色之間有權(quán)限繼承關(guān)系,在RBAC中表示角色層次結(jié)構(gòu)。三元概念格右側(cè)的概念格表示RBAC的角色層次結(jié)構(gòu),這樣左下角的角色就可以繼承其上面連接的角色的權(quán)限。例如,我們觀察到R6(醫(yī)生)具有R5(治療師)和R4(護(hù)士)的訪問(wèn)權(quán)限。結(jié)果與表2中所示的RBAC訪問(wèn)控制矩陣一致。
在經(jīng)典的二元形式概念分析中。由二元RBAC形式背景所產(chǎn)生的概念格表示角色和訪問(wèn)權(quán)限層次結(jié)構(gòu)??梢詫?dǎo)出角色、訪問(wèn)權(quán)限和數(shù)據(jù)對(duì)象之間的依賴關(guān)系,從而可以控制安全格結(jié)構(gòu)的大小。在角色層次結(jié)構(gòu)中,角色“r”可以從它上面的角色繼承角色功能并連接到它。
靜態(tài)角色責(zé)任分離約束(SoD)定義角色,權(quán)限或用戶之間的互斥關(guān)系?;谶@種互斥關(guān)系強(qiáng)制將用戶分配給角色和角色的某些權(quán)限賦予條件。因此,相同的用戶不會(huì)被分配相互沖突的角色,沖突的訪問(wèn)權(quán)限也不會(huì)被分配給相同的角色。根據(jù)該醫(yī)療保健網(wǎng)絡(luò)的SoD約束,互斥角色為:(R3和R8),(R3和R9),(R6和R8),(R6和R9),(R2和R8),(R2和R9)。從圖2中顯示的三元格結(jié)構(gòu)中,可以注意到?jīng)_突角色在層次結(jié)構(gòu)中被分開(kāi)。我們也可以在圖中觀察角色層次結(jié)構(gòu)中的角色優(yōu)先關(guān)系。
本文提出的方法有以下優(yōu)勢(shì),首先方法可以從三元背景中獲得角色層次和職責(zé)分離約束,在表示RBAC時(shí)不用將三元背景轉(zhuǎn)換成不同的二元背景。其次,RBAC成員(R,D,P)之間的關(guān)系可以通過(guò)從它們推導(dǎo)出來(lái)的三元概念和條件屬性的蘊(yùn)含來(lái)獲得,由此產(chǎn)生的三元概念格角色層次結(jié)構(gòu)有助于管理員驗(yàn)證用戶角色層次和依賴關(guān)系。
5 結(jié)論
本文提出的方法將三維RBAC矩陣表示為三元概念格,即可實(shí)現(xiàn)角色層次和職責(zé)分離。給出了三維RBAC矩陣生成三元概念格的層次解釋,從三元背景中推導(dǎo)條件屬性含義,證明了RBAC元素之間的依賴關(guān)系。方法為使用三元形式概念分析表示RBAC策略提供了理論基礎(chǔ),可以在訪問(wèn)控制系統(tǒng)中得到應(yīng)用。