吳 薇
(武夷學院數(shù)學與計算機學院,福建 武夷山 354300)
近年來,隨著互聯(lián)網(wǎng)技術(shù)的普遍應用,利用網(wǎng)絡提供服務來構(gòu)建的分布式協(xié)同環(huán)境已經(jīng)隨處可見,如貼近居民生活的小區(qū)監(jiān)控系統(tǒng),用于家庭的安防系統(tǒng)和用于企業(yè)的電子政務系統(tǒng)等。人們可以通過分布式協(xié)同環(huán)境提供的Web服務,共享Internet上的數(shù)據(jù)和功能。網(wǎng)絡用戶的安全訪問權(quán)限控制問題,逐漸受到研究人員的關(guān)注[1]。唐寧九等人詳細描述了幾種分布式對象技術(shù)的特點,給出了今后分布式系統(tǒng)對象管理的發(fā)展方向[2]。劉瓊波等人提出一種在分布式系統(tǒng)下的安全訪問控制策略和訪問請求判定的方法,并給出了訪問請求判定的算法,解決了在分布式系統(tǒng)授權(quán)、私有權(quán)限傳播和規(guī)則沖突等問題[3]。譚文芳等人提出一種分布式環(huán)境下的動態(tài)角色管理機制,結(jié)合了RBAC模型并以CORBA作為中間件來實現(xiàn),充分考慮了角色的動態(tài)變化,引入事件觸發(fā)機制[4]。孫軍紅等人將RBAC中的角色擴展為職能角色和任務角色,并為任務角色增加了域的屬性,解決了不同域間互相訪問資源的問題[5]。竇文陽等人提出了一個安全分布式訪問控制系統(tǒng)SDAC,該系統(tǒng)具有模糊授權(quán)推理能力,可以根據(jù)安全策略及上下文的變化,動態(tài)調(diào)整用戶權(quán)限,使得授權(quán)和訪問控制自適應于普適計算環(huán)境[6]。在本次研究中,將探討一種改進的自適應RBAC模型——ARBAC模型,以進一步強化服務器數(shù)據(jù)安全保障。
1996年,針對傳統(tǒng)訪問控制策略不能適應應用環(huán)境變化的不足,Ravi Sandhu提出了基于角色的訪問控制模型(role-based access control models),即RBAC96模型[7]。在2001年和2004年,一些學者和美國國家信息技術(shù)標準委員會進一步確定了此模型的標準[8-9]。在該模型中,引入角色管理,使用戶與客體的權(quán)限實現(xiàn)邏輯分離,用戶通過成為該角色的成員而得到相應的權(quán)限,極大地簡化了權(quán)限的管理。為了對系統(tǒng)資源進行訪問控制,由全局管理員來統(tǒng)一管理,以避免出現(xiàn)安全漏洞;而這些對于角色權(quán)限的管理都是靜態(tài)的,并不適用于分布式協(xié)同環(huán)境下服務器管理無人值守的情形[10]。
在分布式協(xié)同環(huán)境中,網(wǎng)絡中各個域均具有相對獨立性,它們對于整個環(huán)境是透明的,域和域之間的相互操作只能通過Web服務進行。用戶通過認證后登錄系統(tǒng),可以訪問所需的客體資源。各域內(nèi)的管理員只負責自治領(lǐng)域內(nèi)的安全訪問控制,對于跨域訪問沒有相關(guān)的安全策略。
針對這一新問題,本次研究提出一種改進的RBAC模型 ——自適應ARBAC(adaptive role based access control)模型。在分布式協(xié)同環(huán)境沒有統(tǒng)一安全管理的情況下,可以根據(jù)客體資源的主體的權(quán)限級別,在服務器內(nèi)授予其一個動態(tài)的、自適應訪問權(quán)限。為了達到此目的,客體資源的創(chuàng)建者自己設定對該客體的邏輯授權(quán),然后服務器再根據(jù)該邏輯授權(quán)創(chuàng)建用戶和角色的關(guān)聯(lián)規(guī)則。當分布式協(xié)同環(huán)境中申請訪問客體的主體可能未知或者訪問授權(quán)要求有變化時,就可以進行動態(tài)管理,保障數(shù)據(jù)安全。
該模型中首先需要對各種角色及用戶作出定義,賦予其權(quán)限及內(nèi)容。
(1)用戶集u,是所有用戶的集合,若用Su表示所有用戶集集合,則有u∈Sc。
(2)角色集r,是所有角色的集合。若用Sr表示所有角色集集合,則有r∈Sr。
(3)客體集o,是系統(tǒng)中客戶端要訪問的資源,本例中如監(jiān)控錄像文件等。若用So表示權(quán)限集集合,則有 o∈So。
(4)操作集op,是系統(tǒng)中客戶端對客體執(zhí)行的動作,如本例中錄像、回放、查詢、刪除等。若用Sop表示操作集集合,則有op∈Sop。
(5)權(quán)限集p,用戶集對客體資源訪問的許可權(quán)限。若用Sp表示權(quán)限集集合,則有p∈S[11]p。每個權(quán)限后面跟上的是一個邏輯授權(quán):permissions=<邏輯授權(quán)>,表示描述主體可能對客體執(zhí)行的操作。
(6)邏輯授權(quán)描述,其定義形式如下:
< only|not{any{u1,u2,u3,…,um}{op1,op2,…,opn}}>
在此需要說明一下,邏輯授權(quán)需要把能或不能對客體操作的主體集合或操作全部列舉出來,或者至少列出來滿足邏輯授權(quán)的條件。
這里:u1,u2,u3,…,um∈Sc;op1,op2,…,opn∈Sop;“only”表示“僅”“只有”;“not”表示“否定”“非”;“any”表示“任一”“任何”。
(7)會話集s,是指用戶登錄系統(tǒng)并激活授權(quán)的角色后,建立映射,取得會話過程。會話集s={s1,s2,s3,…,sn}。
(8)用戶角色指派UA,是指用戶集u到角色集r并映射一種多對多的關(guān)系,即UA?u×r。(u,r)∈UA為一個二元關(guān)系,表示對用戶u指派一個角色r。
(9)角色權(quán)限指派PA,是系統(tǒng)為角色分配權(quán)限p,映射多對多的關(guān)系,即 PA?p×r。(p,r)∈PA為二元關(guān)系,表示把權(quán)限p分配給角色r。
1.3.1 角色繼承
角色繼承(role inheritance)是指對角色間的關(guān)系設定限制性繼承條件。假定RH?r×r是角色集r上的偏序關(guān)系,用≤表示。如果r1,r2∈r且r1≤r2且表示r1是r2的上級角色,則r1擁有r2的所有權(quán)限。
假設有用戶 u1、u2、u3、u4、u5與角色 r1、r2、r3、r4、r5的分配存在對應關(guān)系,如圖1所示。
圖1 用戶與角色對應關(guān)系圖
有授權(quán)permissions=<not{u1{op1}}>,表示非u1所對應的角色 r2,如 r3所對應的 u3、u4、u5用戶可以執(zhí)行op1操作。
1.3.2 角色互斥關(guān)系
角色互斥關(guān)系(mutually exclusive roles)是角色與角色間的限制關(guān)系,它表示指定的角色具有不同的職責,不能讓同一個用戶同時擁有?;コ獾慕巧肊r表示:
滿足下式:
1.3.3 邏輯授權(quán)規(guī)則
有授權(quán) permissions= < {u1{any},u3{op1,op2}u5{op1}}>,表示有客戶端u1可以執(zhí)行任何操作,u3對該客體執(zhí)行操作op1和op2,u5對該客體執(zhí)行操作op1。若此時有新認證用戶u6請求對客體做op1操作,或u1做op3操作,由于授權(quán)沒有被事先指定,則可以被許可。
有授權(quán) permissions= <only{u1{op1,op2}}{u2{op2}}>,表示只有u1可以對該客體執(zhí)行操作op1和op2,u2可以執(zhí)行操作op2,其他用戶對該客體執(zhí)行任何操作都將被拒絕。但由于u1和u2同屬于同一個角色r2,根據(jù)最小權(quán)限原則,u1和u2只能對該客體執(zhí)行操作op2。
有授權(quán)Permissions=<not{u3{op2}}{u5{op1}}>,表示u3的操作op2被拒絕而且u5可以執(zhí)行操作op1。
有授權(quán)permissions=<not{u3{op1}}{u4{op1,op3}}>,表示u3操作op1被拒絕,而且u4可以執(zhí)行操作op1和op3,但由于u3和u4同屬于角色r4,則u4僅能執(zhí)行操作op3。
ARBAC模型的實現(xiàn)過程如圖2所示。具體實現(xiàn)過程如下:
(1)用戶登錄系統(tǒng)后,通過角色管理模塊查詢角色數(shù)據(jù)庫,激活相應角色。
(2)用戶向系統(tǒng)發(fā)送某客體資源訪問權(quán)限的邏輯授權(quán),訪問控制管理模塊接受這一請求,并交由權(quán)限管理模塊進行判斷。
(3)權(quán)限管理模塊在邏輯授權(quán)數(shù)據(jù)庫中查詢,若無該客體相關(guān)訪問權(quán)限的邏輯授權(quán)(有可能該用戶是該客體資源的創(chuàng)建者),則在邏輯授權(quán)數(shù)據(jù)庫中增加定義該客體的訪問許可權(quán)限;若有該客體相關(guān)訪問權(quán)限的邏輯授權(quán),則判斷該用戶發(fā)送的訪問許可是否與邏輯授權(quán)數(shù)據(jù)庫中的邏輯授權(quán)相一致。若一致,即通知訪問控制管理模塊同意這一訪問要求;若不一致,需經(jīng)過邏輯授權(quán)規(guī)則演算,確認后通知訪問控制管理模塊返回拒絕操作的指令。
(4)訪問控制模塊得到權(quán)限管理模塊的指示后將信息反饋給用戶。
(5)用戶訪問客體資源數(shù)據(jù)庫里的客體信息或者被禁止訪問。
(6)用戶退出登錄。
圖2 ARBAC模型的實現(xiàn)過程
現(xiàn)有一個全國聯(lián)網(wǎng)的某連鎖店監(jiān)控視頻網(wǎng)絡,其組成如圖3所示,其角色的層次關(guān)系如圖4所示。
圖3 某連鎖店監(jiān)控視頻網(wǎng)絡組成
圖4 角色的層次關(guān)系
它們的角色繼承關(guān)系是由上往下繼承,總部用戶對應的角色headquarters有最高權(quán)限。
假設二級代理A1用戶產(chǎn)生一個視頻文件Monitor1.hie,它發(fā)送邏輯授權(quán) permissions= <only{A1{read,write}},由于 A1所對應的角色為 subagent A1,其上級角色為agent A,依據(jù)角色繼承原則,角色agent A對應的用戶A可以對Monitor1.hie進行讀寫操作。若此時有一個用戶C2想訪問文件Monitor1.hie,由于其對應角色subagent C1不是subagent A1的上級角色,于是拒絕其訪問。
針對基于TCP/IP協(xié)議聯(lián)網(wǎng)的分布式協(xié)同環(huán)境下安全訪問控制的復雜性問題,本次研究中提出一種自適應的ARBAC模型,并通過實例解釋應用該模型。該模型用于實踐,可保障服務器無人值守的情況下的系統(tǒng)內(nèi)數(shù)據(jù)安全。
[1]王子仁,陸億紅.RBAC在信息系統(tǒng)中的應用研究[J].計算機應用,2007(27):240-241.
[2]唐寧九,張旭.分布式對象管理的幾種常用技術(shù)[J].計算機應用研究,2001(8):74-77.
[3]劉瓊波,施軍,尤晉元.分布式環(huán)境下的訪問控制[J].計算機研究與發(fā)展,2001,38(6):735-740.
[4]譚文芳,胡南軍,陳貴海.基于CORBA的分布式訪問控制[J].小型微型計算機系統(tǒng),2011,22(11):1359-1363.
[5]孫軍紅,王新紅.一種分布式環(huán)境下基于角色的訪問控制模型[J].計算機工程與應用,2011,47(23):84-87.
[6]竇文陽,王小明,張立臣.普適計算環(huán)境下的安全分布式訪問控制系統(tǒng)研究[J].計算機科學,2013,40(6):132-186.
[7]Sandehu R,Coyne E,F(xiàn)einstein H.Role-based Access Control Models[J].IEEE Computer,1996,29(6):38-47.
[8]Fereaiolo D F,Sandhu R,Gavrila S,et al.Proposed NIST Standard for Role-based Access Control[J].ACM Transactions on Information and System Security,2001,4(3):224-274.
[9]Anti.American National Standard for Information Technology-Role-based Access Control[C]//ANSI Int'l Committee for Information Technology Standards.2004:359.
[10]季星,朱曉潔,王東.基于Web服務的分布式協(xié)同環(huán)境中DRBAC訪問控制[J].科學技術(shù)與工程,2007,7(12):2885-2893.
[11]陳剛,陳長琴,李光軍.基于角色和部門的兩級訪問控制模型[J].武漢科技大學學報(自然科學版),2006,29(4):398-400.