摘要:給出了使用RBAC96模型模擬實(shí)施BLP模型的方法,包含實(shí)施BLP模型的安全標(biāo)記、簡單安全屬性、自由*屬性和嚴(yán)格*屬性以及針對可信主體定義的可信范圍的方法。
關(guān)鍵詞:基于角色的訪問控制; BLP模型; 強(qiáng)制訪問控制; 基于格的訪問控制; 角色
中圖分類號:TP309.2文獻(xiàn)標(biāo)志碼:A
文章編號:1001-3695(2008)03-0891-04
基于角色的訪問控制近幾年來在信息安全研究領(lǐng)域受到越來越多的重視。RBAC是一種與應(yīng)用無關(guān)的通用訪問控制框架,可以應(yīng)用到各種環(huán)境中,包括商業(yè)領(lǐng)域、組織機(jī)構(gòu)和分布式環(huán)境,因此研究RBAC不僅具有理論意義,也具有很大的應(yīng)用價值。目前使用和研究的RBAC主要是Sandhu等人提出的RBAC96模型[1,2]。雖然NIST對于RBAC有一個統(tǒng)一的標(biāo)準(zhǔn)[3],但是該標(biāo)準(zhǔn)模型與RBAC96模型相差不大,本文就以RBAC96作為研究對象。
RBAC本身是一種策略中立的訪問控制框架,其并不實(shí)現(xiàn)具體的安全策略,而是提供實(shí)現(xiàn)策略的工具和方法。系統(tǒng)安全管理員可以通過對RBAC各個組件進(jìn)行精確配置來實(shí)施不同的策略。
強(qiáng)制訪問控制策略是各種可信計(jì)算系統(tǒng)訪問控制策略的基礎(chǔ),特別是經(jīng)典的Bell LaPadula(BLP)模型,則是定義MAC的基礎(chǔ),也是目前計(jì)算機(jī)公認(rèn)的安全定理。如何在RBAC
與MAC之間建立聯(lián)系則是一個研究熱點(diǎn)。如果RBAC能夠配置實(shí)施MAC,不僅能夠說明MAC僅僅是RBAC的一個特例,而且也會大大拓展RBAC的應(yīng)用領(lǐng)域,因此這個問題具有重大的理論意義和應(yīng)用價值。
1RBAC模型以及前人的相關(guān)工作
1.1RBAC96模型
Sandhu等人提出的RBAC96模型是包含角色管理、角色層次和約束的通用RBAC模型[1,2]。以下給出RBAC96的形式化定義。
定義1RBAC96元素。RBAC96模型包含以下元素:
U:用戶集合;R和AR:角色集和管理員角色集,兩者互不相交;P和AP:不相交的權(quán)限集和管理員權(quán)限集;S:會話集。
PAP×R:一個多對多的權(quán)限與角色之間的映射關(guān)系;APAAP×AR:一個多對多的管理員權(quán)限與管理員角色之間的映射關(guān)系。
UAU×R:一個多對多的用戶與角色之間的分配關(guān)系;AUAU×AR:一個多對多的用戶與管理員角色之間的分配關(guān)系。
RHR×R:一個具有偏序關(guān)系的角色層次;ARHAR×AR:一個具有偏序關(guān)系的管理員角色層次。
user:S→U:將每個會話si映射為單個用戶user(si)的函數(shù)。
roles:S→2RUAR,將每個會話si映射為角色和管理員角色之集,roles(si){r|(r′≥r)[(user(si), r′)∈UA∪AUA]}。
會話si具有的權(quán)限為∪r∈roles(si){p|(r″≤r) [(p, r″)∈PA∪APA]}。
存在一個約束集,其中的每個約束可用于決定上述各個元素的可接收性。
1.2前人使用RBAC模擬LBAC的工作
Osborn等人對使用RBAC96模擬實(shí)施MAC進(jìn)行了研究[4,5],他們是采用LBAC這個理論化的MAC模型,并使用RBAC96的角色層次來模擬LBAC安全標(biāo)記集中的安全格并使用RBAC的約束來保證實(shí)施的正確性。以下簡要介紹他們的工作。
LBAC模型關(guān)心的主要是在安全標(biāo)記格上實(shí)施和控制信息的單向流動。LBAC的核心是安全標(biāo)記格,以下是安全標(biāo)記格的定義。
定義2安全標(biāo)記格。具有偏序關(guān)系≥和一個最小上界算子的安全標(biāo)記集SC上的一個有限格。
一個簡單的安全標(biāo)記格結(jié)構(gòu)如圖1所示。H和L代表高和低級別安全標(biāo)記,M1和M2是位于H與L之間的兩個相互不可比較的標(biāo)記。在這個安全標(biāo)記格中,信息流可以從低往高流,但相反方向不行。
對于給定的安全標(biāo)記集SC={L1,L2,…,Ln}和一個偏序關(guān)系≥LBAC,針對自由*屬性和嚴(yán)格*屬性的RBAC96系統(tǒng)模型構(gòu)造(圖2、3)定義如下:
構(gòu)造1自由*屬性。
R={L1R,L2R,…,LnR,L1W,L2W,…,LnW}。
RH由兩個不相交的角色層次構(gòu)成:一個是讀角色{L1R,L2R,…,LnR}和≥LBAC構(gòu)成;另外一個是寫角色和≥LBAC之逆構(gòu)成。
P={(o, r),(o, w)| o∈O}。其中:r表示讀;w表示寫;O為系統(tǒng)中的客體集。
UA約束:為每個用戶精確分配xR和LW兩個角色,x為分配給用戶的安全標(biāo)記;LW為相對于≥LBAC的最低安全層次的寫角色。
會話約束:每個會話精確地具備yR和yW兩個角色。
PA約束:
(o,r)被分配給xR當(dāng)且僅當(dāng)(o,w)被分配給xW;
(o,r)僅被精確分配給一個角色xR,x為o的安全標(biāo)記。
構(gòu)造2嚴(yán)格*屬性:除了RH中寫角色之間沒有任何支配關(guān)系外與構(gòu)造1一致。
梁彬等人指出了構(gòu)造兩種可能存在的問題[6],并給出了構(gòu)造2的改進(jìn)方式。
構(gòu)造3修改后的嚴(yán)格*屬性。除了以下不同外與構(gòu)造2一致:
R={L1R,L2R,…,LnR,L1W,L2W,…,LnW,X};
寫角色由{L1W,L2W,…,LnW,X}構(gòu)成。其中:L1W,L2W,…,LnW之間無任何關(guān)系,它們都受角色X支配。
UA約束:為每個用戶精確分配xR和X兩個角色,x為分配給用戶的安全標(biāo)記。
PA約束:角色X未被分配任何權(quán)限。
前人工作實(shí)施對象主要都是針對LBAC模型。LBAC是一個極其簡化的理論模型,其基于給定的安全標(biāo)記格,而模型中并沒有給出任何構(gòu)建該格的信息和方法,這使得LBAC只是一個面向研究的模型,并沒有使用價值。BLP模型中將安全標(biāo)記具體劃分為安全密級和安全范疇兩個分量,并給出了構(gòu)建安全格的方法,使其不僅在理論研究,而且在實(shí)際系統(tǒng)中都有很重要的意義。因此本文嘗試使用RBAC實(shí)施BLP模型的方法。
2BLP模型簡介
BLP模型是D.Elliott Bell等人提出的一種適用于軍事安全策略的計(jì)算機(jī)操作系統(tǒng)安全模型[7,8]。它是目前公認(rèn)的基本安全公理,是當(dāng)前最重要的多級安全模型之一,在大多數(shù)可信操作系統(tǒng)中都得到實(shí)施。
在BLP模型中將主體定義為能夠發(fā)起行為的實(shí)體,如進(jìn)程;客體定義為被動的主體行為承擔(dān)者,如數(shù)據(jù)、文件。BLP模型是一個狀態(tài)機(jī)模型,它形式化地定義了系統(tǒng)、系統(tǒng)狀態(tài)以及系統(tǒng)狀態(tài)間的轉(zhuǎn)換規(guī)則,定義了安全概念,制定了一組安全特性,以此對系統(tǒng)狀態(tài)和狀態(tài)轉(zhuǎn)換規(guī)則進(jìn)行限制和約束,使得一個系統(tǒng)始終處于安全狀態(tài)。
BLP模型中系統(tǒng)的每個主體s和每個客體o都被分配一個安全標(biāo)記 (Ln, d)。其中:Ln為主體或客體的密級,Ln∈L;L為系統(tǒng)的密級集合,設(shè)Li∈L(i=0,…,k-1;k=|L|),則Li
定義3安全標(biāo)記λ1=(L1, d1)支配λ2=(L2, d2)當(dāng)且僅當(dāng)L1≥L2且d1d2,記為λ1 dom λ2。
BLP模型中強(qiáng)制訪問規(guī)則定義如下:
設(shè)λs(s)為主體s的安全標(biāo)記,是系統(tǒng)分配給用戶的最大安全標(biāo)記。λc(s)為主體當(dāng)前的安全標(biāo)記,λs(s)dom λc(s),λo(o)為客體的安全標(biāo)記。
定義4簡單安全屬性。主體s能讀客體o當(dāng)且僅當(dāng)λs(s) dom λo(o)。
定義5自由*屬性。主體s能寫客體o當(dāng)且僅當(dāng)λo (o) dom λc(s)。
*屬性對應(yīng)于“上寫”。某些情況下“上寫”可能會造成高機(jī)密數(shù)據(jù)的破壞,所以BLP同時還定義了嚴(yán)格*屬性。
定義6嚴(yán)格*屬性。主體s能寫客體o當(dāng)且僅當(dāng)λo (o)=λc(s)。
對于可信主體,BLP模型的變種Bell模型[9]允許其在一定范圍內(nèi)違反*屬性規(guī)則。為此,Bell模型為可信主體定義了可信范圍。
定義7可信范圍。對于可信主體為其分配兩個安全標(biāo)記,即讀安全標(biāo)記λr(s)和寫安全標(biāo)記λw(s),λr(s) dom λw(s)。該主體在讀客體時(簡單安全屬性)使用讀安全標(biāo)記,寫客體時(*屬性)使用寫安全標(biāo)記。
下面將使用RBAC96模型中的元素構(gòu)造BLP模型。在構(gòu)造前,還有一點(diǎn)需要說明的是,BLP模型中的主體與RBAC96中的會話相對應(yīng),它們都代表系統(tǒng)中的主動實(shí)體,并反映某個特定用戶的安全屬性。每個會話將一個用戶與多個角色聯(lián)系起來,用戶在建立會話的過程中激活自己擁有的角色集的一個子集,該會話具有的權(quán)限為該子集角色所有權(quán)限之并。
3用RBAC構(gòu)造實(shí)施BLP
構(gòu)造4BLP模型—自由*屬性。
角色:R={CLR1,CLR2,…,CLRn,CLW1,CLW2,…, CLWn,CARd1,…, CARdn,CAWd1,…, CAWdn}。
RH由四個不相交的角色層次構(gòu)成。其中分別是:
a)密級讀角色CLR:由{CLR1,CLR2,…, CLRn}和≥BLP構(gòu)成。
b)密級寫角色CLW:由{CLW1,CLW2,…, CLWn}和≥BLP之逆構(gòu)成。
c)范疇讀角色CAR:{CARd1,…, CARdn}。其中:di∈PD(i=1…n),D為系統(tǒng)范疇集合。角色CARdi直接支配CARdj(i≠j)當(dāng)且僅當(dāng)djdi且|di|-|dj|=1。
d)范疇寫角色CAW:{CAWd1,…, CAWdn},CAR角色關(guān)系之逆。
其中:范疇讀和范疇寫角色個數(shù)基于范疇中的分類個數(shù)。范疇D={A1,A2,A3,…, An},則CAR角色和CAW角色分別包含|PD|個角色,每個角色代表一個范疇子集B∈PD。
設(shè)密級L={L1,L2,L3,L4},范疇包含三個部門, D={A,B,C},則可構(gòu)建如圖4所示的角色關(guān)系。
圖4用RBAC實(shí)施BLP的角色層次(自由*屬性)
權(quán)限P={(o, r),(o, w),(o, rcl),(o, wcl),(o, rca),(o, wca)| o∈O}。
其中:r表示讀文件權(quán)限;w表示寫文件權(quán)限;rcl表示密級讀;wcl表示密級寫;rca表示范疇讀;wca表示范疇寫;O為系統(tǒng)中的客體集。
設(shè)P′為用戶所獲得的權(quán)限集合,則有(o, r)∈P′當(dāng)且僅當(dāng)(o, rcl) ∈P′且(o, rca) ∈P′;同樣(o, w)∈P′當(dāng)且僅當(dāng)(o, wcl) ∈P′且(o ,wca) ∈P′。也就是說,只有用戶同時獲得對一個客體的密級讀和范疇讀權(quán)限,才能對該客體進(jìn)行讀操作;同樣,只有同時獲得該客體的密級寫和范疇寫權(quán)限,才能對客體進(jìn)行寫操作。
UA約束:為用戶精確分配CLRx、CLWy、CARdx、CAWdy。其中:x∈C,d∈D,C和D分別為系統(tǒng)的密級集合和范疇集合;(x, dx)為用戶的安全標(biāo)記;CLWy為相應(yīng)于≥BLP的最低安全層次的密級寫角色;CAWdy為CAW中最高的范疇寫角色。
會話約束:每個會話精確具備CLRy、CLWy、CARdy、CAWdy四個角色。
PA約束:
(o, rcl)被分配給CLRx當(dāng)且僅當(dāng)(o, wcl)被分配給CLWx;
(o, rca)被分配給CARdx當(dāng)且僅當(dāng)(o, wca)被分配給CAWdx;
(o, rcl)僅被分配一個角色CLRx;(o, rca)也僅被分配一個角色CARdx。其中:(x, dx) 為o的安全標(biāo)記。
定理1構(gòu)造4定義的RBAC系統(tǒng)滿足簡單安全屬性和自由*屬性。
證明o∈O,λ(o)=(x,dx)s∈S,λ(s)=(y,dy)。
對于一次會話,令s具有角色CLRz、CLWz、CARdz、CAWdz,由UA約束和會話約束可得z≤y,dzdy。設(shè)對于該次會話,s具有的讀權(quán)限集為PRs,寫權(quán)限集為PWs,密級讀權(quán)限集PCLRs,范疇讀權(quán)限集PCARs,密級寫權(quán)限集PCLWs,范疇寫權(quán)限集PCAW。那么有。
UA約束:為每個用戶精確分配CLRx、CLWy、CARdx、CAWdy四個角色,使得λ1=(x, dx) dom λ2=(y, dy)。
會話約束:每個用戶精確具備CLRx、CLWy、CARdx、CAWdy四個角色,使得λ1=(x, dx) dom λ2=(y, dy)。
4結(jié)束語
RBAC是一種策略中立的訪問控制框架,Sandhu等人使用RBAC模擬實(shí)施LBAC這個抽象的理論MAC模型。但是LBAC是一個極其簡化的理論模型,它基于給定的安全標(biāo)記格,而模型中并沒有給出任何構(gòu)建該格的信息和方法,這使得LBAC只是一個面向研究的模型,并沒有使用價值。BLP模型中將安全標(biāo)記具體劃分為安全密級和安全范疇兩個分量,并給出了構(gòu)建安全格的方法,使其不僅在理論研究,而且在實(shí)際系統(tǒng)中都有很重要的意義。本文給出了使用RBAC96模型模擬實(shí)施BLP模型的方法,包含實(shí)施BLP模型的安全標(biāo)記、簡單安全屬性、自由*屬性和嚴(yán)格*屬性以及針對可信主體定義的可信范圍的方法,給出了具體的RBAC角色層次和約束的構(gòu)造方法。
參考文獻(xiàn):
[1]SANDHU R, COYNE E J, FEINSTEIN H L, et al. Rolebased access control model [J]. IEEE Computer, 1996,29(2):38-47.
[2]SANDHU R S. Rolebased access control[J]. Advances in Computers, 1998, 46:237-286.
[3]SANDHU R, FERRAIOLO D, KUHN R. The NIST model for rolebased access control: towards a unified standard[C]//Proc of the 5th ACM Workshop on Rolebased Access Control. Berlin: ACM, 2000: 47 63.
[4]SANDHU R S. Role hierarchies and constraints for latticebased access controls[C]//Proc of the 4th European Symposium on Research in Computer Security. Rome:[s.n.], 1996.
[5]OSBORN S. Mandatory access control and rolebased access control revisited[C]//Proc of the 2nd ACM Workshop on Rolebased Access Control. New York: ACM Press,1997.
[6]梁斌, 孫玉芳, 石文昌,等. 一種改進(jìn)的基于角色的訪問控制實(shí)施BLP模型及其變種的方法[J]. 計(jì)算機(jī)學(xué)報, 2004,27(5):636-644.
[7]BELL D, LaPADULA L. Secure computer systems: mathematical foundations and model,M74-244[R]. Bedford:MITRECorporation,1974.
[8]BELL D, LaPADULA L. Secure computer systems: unified exposition and multics interpretation, ESDTR 75-306[R]. [S.l.]:U.S. Air Force Electronic Systems Division, 1976.
[9]BELL D. Secure computer systems: a network interpretation[C]//Proc of the 3rd Annual Computer Security Application Conference. Orlando, Florida:[s.n.], 1987.
[10]OSBORN S, SANDHU R, MUNAWER Q.Configuring rolebased access control to enforce mandatory and discretionary access control policies [J]. ACM Trans on Information and System Security, 2005,3(2): 85106.
“本文中所涉及到的圖表、注解、公式等內(nèi)容請以PDF格式閱讀原文”