馬 曉, 王鳳英, 常玲霞
(山東理工大學(xué) 計(jì)算機(jī)科學(xué)與工程學(xué)院, 山東 淄博 255049)
?
PRBAC:一種基于角色的起源訪問控制模型
馬曉, 王鳳英, 常玲霞
(山東理工大學(xué) 計(jì)算機(jī)科學(xué)與工程學(xué)院, 山東 淄博 255049)
摘要:為了更好地利用數(shù)據(jù)起源對其它數(shù)據(jù)進(jìn)行訪問控制,建立了一種基于角色的起源訪問控制模型(PRBAC).該模型以基于起源的訪問控制模型(PBAC)和基于角色的訪問控制模型(RBAC)為基礎(chǔ),劃分了作為訪問控制基礎(chǔ)的依賴關(guān)系列表,并引入RBAC中角色集的概念,給出了具體的訪問控制算法.分析結(jié)果表明PRBAC能解決基于起源的訪問控制模型中授權(quán)管理不靈活、系統(tǒng)運(yùn)行效率低和訪問控制策略不夠安全等問題.
關(guān)鍵詞:起源; 訪問控制; PBAC; RBAC; 依賴關(guān)系列表; PROV
起源,可以通俗的定義為數(shù)據(jù)對象的來源記錄以及影響和致使該數(shù)據(jù)對象任何特定狀態(tài)的處理過程[1].我們將起源定義為由實(shí)體、活動(dòng)和代理參與的,能生成一系列數(shù)據(jù)和事物的信息.
數(shù)據(jù)起源的首次應(yīng)用是在社區(qū)數(shù)據(jù)庫中,隨著時(shí)間的推移,數(shù)據(jù)起源逐漸在許多其他計(jì)算機(jī)科學(xué)應(yīng)用中發(fā)揮作用,如語義網(wǎng)[2]、工作流[3-4]、云計(jì)算[5]、無線傳感器網(wǎng)絡(luò)[6]以及生物醫(yī)學(xué)[7]等.隨著數(shù)據(jù)起源在應(yīng)用系統(tǒng)中的重要性不斷增加,系統(tǒng)中安全起源問題以及可信度問題也隨之產(chǎn)生.Hasan等人在文獻(xiàn)[8]中討論了起源安全的各個(gè)方面,大部分工作主要是考慮安全起源面臨的問題和挑戰(zhàn)以及如何保護(hù)起源數(shù)據(jù),并且指出了安全起源數(shù)據(jù)應(yīng)該滿足完整性、可用性和機(jī)密性.安全起源方法主要有建立提供細(xì)粒度訪問控制的策略語言且允許生成起源圖任意長度的路徑查詢表達(dá)式[9],以及通過增加安全組件來建立或改進(jìn)安全起源模型[10]等.
總之,雖然近幾年來安全起源一直被研究,但是利用數(shù)據(jù)起源對基礎(chǔ)數(shù)據(jù)進(jìn)行訪問控制的相關(guān)著作卻很少.Jaehong Park[11]等人是首個(gè)利用起源數(shù)據(jù)實(shí)現(xiàn)對其他數(shù)據(jù)進(jìn)行訪問控制的,他們首先定義了基于起源的訪問控制模型族結(jié)構(gòu)(PBAC),然后,進(jìn)一步提出了一個(gè)基于起源的訪問控制基本模型(PBACB)及其可能的擴(kuò)展模型.該模型族通過使用OPM(開放起源模型)確定的因果依賴(causality dependency)建立了一種新的策略規(guī)范和訪問評估方法,有助于實(shí)現(xiàn)在傳統(tǒng)訪問控制模型中不可用的附加功能,比如基于來源的控制和對象版本管理等.但是,PBAC模型也存在一些缺陷:一方面文中使用OPM來捕獲依賴關(guān)系,概念描述過于籠統(tǒng),對起源圖缺乏更細(xì)粒度的描述.另一方面,PBAC模型在實(shí)際應(yīng)用中沒有考慮到不同用戶的需求,授權(quán)不夠靈活,并且在系統(tǒng)效率和安全控制方面還不夠完善.
為了解決上述問題,本文使用W3C標(biāo)準(zhǔn)下的PROV數(shù)據(jù)模型[12]來捕獲基本的起源數(shù)據(jù),結(jié)合RBAC機(jī)制對相關(guān)概念進(jìn)行角色細(xì)化,提出了一個(gè)基于角色的起源訪問控制模型PRBAC.該模型在處理不同代理用戶請求及簡化授權(quán)管理的同時(shí),提供更加具體和細(xì)粒度的訪問控制策略.
1PRBAC模型
1.1PRBAC核心組件
PRBAC模型主要是在PBAC的基礎(chǔ)上進(jìn)行了改進(jìn)和擴(kuò)展,其核心組件主要包括代理用戶(acting users)、操作實(shí)例(action instances)、對象(objects)、起源數(shù)據(jù)(provenance data)、策略(policies)、依賴關(guān)系列表(dependencylists)、角色(roles)以及訪問評估函數(shù)(access evaluation)等.PRBAC具體的模型架構(gòu)如圖1所示.
圖1 PRBAC核心組件
1.2PRBAC模型定義
在前面確定的核心組件的基礎(chǔ)上,PRBAC模型的定義如下:
(1) 代理用戶集:AU={aui|i=1, 2, …,n},代理用戶是對數(shù)據(jù)對象發(fā)起訪問請求的人.
(2) 操作實(shí)例集:A={ai|i=1, 2, …,n},操作實(shí)例是由用戶發(fā)起的對數(shù)據(jù)對象的訪問.
操作實(shí)例集對應(yīng)著操作類型集:AT={ati|i=1, 2,…,n};
假設(shè)系統(tǒng)可以從給定的操作實(shí)例中獲得操作類型.
(3) 數(shù)據(jù)對象集:O={oi|i=1, 2, …,m},數(shù)據(jù)對象是被用戶訪問的資源數(shù)據(jù).
(4) 訪問請求集:Re={rei|i=1, 2, …,n}?AU×A×O,一個(gè)請求包含一個(gè)代理用戶、一個(gè)操作實(shí)例和一組要訪問的數(shù)據(jù)對象.
(5) 起源數(shù)據(jù)PD形成一個(gè)有向圖,且形式上表示為一個(gè)三元組
VP=AU∪A∪O,是參與系統(tǒng)事務(wù)的代理用戶、操作實(shí)例和對象實(shí)體的有限集,且表示為頂點(diǎn);
DP= {‘w’}∪T∪B∪U∪G∪{‘w-1’}∪T-1∪B-1∪U-1∪G-1,是基本依賴關(guān)系類型的有限集;
EP?{(A×AUבw’)∪(A×O×U)∪(O×A×G) ∪(O×AU×T)∪(AU2×AU1×B)∪(AU×Aבw-1’)∪(O×A×U-1)∪(A×O×G-1) ∪(O×AU×T-1)∪(AU1×AU2×B-1)},代表依賴關(guān)系邊,是起源數(shù)據(jù)中已存在的基本依賴關(guān)系的集合.
其中,G、U、T、B、G-1、U-1、T-1和B-1分別是依賴關(guān)系集‘wasGeneratedBy’、’used’、 ‘wasAttributedTo’、 ‘a(chǎn)ctedOnBehalfOf’以及其相匹配的反依賴關(guān)系集.{‘w’,‘w-1’}表示依特定角色而變化的依賴關(guān)系‘wasAssociatedWith’的集合以及它的反依賴關(guān)系集.
(6) DN,從DP集中分解出來的集合,是對象實(shí)體的依賴關(guān)系抽象名的有限集.
(7)∑是DP∪DNO中的字符術(shù)語,DPATH集的正則表達(dá)式的歸納性定義如下:
?p∈∑,p∈DPATH;
(P1|P2),(P1·P2),P1*,P1+,
P1?∈ DPATH,
whereP1∈ DPATHandP2∈ DPATH.
(8) 依賴關(guān)系列表:DL:DN→DPATH,將每個(gè)依賴關(guān)系名dn ∈ DN映射為一個(gè)路徑表達(dá)式dpath∈ DPATH.有時(shí),也可直接視DN為一個(gè)對象依賴關(guān)系名和相應(yīng)依賴關(guān)系路徑列表.
(9) 策略集:P ={pi| i=1, 2, ……,n},策略是用來評估授予訪問的一系列規(guī)則,這些規(guī)則用于用戶授權(quán)或操作認(rèn)證.策略是通過操作類型(AT)來選擇定義的,而不是使用操作實(shí)例.
(10) 角色集:R ={ri| i=1, 2, ……,n},角色是指用戶在系統(tǒng)內(nèi)可執(zhí)行的操作的集合.不同的用戶依據(jù)其職能和責(zé)任被賦予相應(yīng)的角色.如:
R1:醫(yī)生可以診斷病情、開具入院證明以及開出醫(yī)囑.
R2:護(hù)士可以對病人進(jìn)行護(hù)理體檢,執(zhí)行醫(yī)囑并填寫護(hù)理記錄;不能診斷病情.
…
Rn:醫(yī)療安全委員會管理員,可以定期查看醫(yī)囑和護(hù)理記錄;不能診斷病情.
(11)UserAuthorization:用戶授權(quán),明確了請求者的請求是否合格.
ActionValidation: 操作認(rèn)證,明確了對數(shù)據(jù)對象的請求操作是否應(yīng)該被執(zhí)行.
(12) 訪問評估函數(shù)(AE),針對請求操作的類型,通過使用依賴列表DL,策略P以及起源數(shù)據(jù)PD來評估一個(gè)請求,做出用戶授權(quán)和操作認(rèn)證的決策,并返回一個(gè)布爾值.
(13)γ:AT→P,是一個(gè)動(dòng)作類型到一個(gè)策略的映射.
1.3PRBAC訪問控制過程
表1中的算法(Algorithm)詳細(xì)說明了PRBAC的實(shí)現(xiàn)過程:用戶發(fā)起請求后,系統(tǒng)先根據(jù)角色集R判斷用戶對應(yīng)的某一角色ri;查找該角色對應(yīng)的依賴列表DLi;解析該操作類型,來選擇合適的策略;提取所有和該操作相關(guān)的依賴名和依賴路徑表達(dá)式,并將其簡化;執(zhí)行查詢,利用查詢結(jié)果做授權(quán)決策.
表1訪問控制算法
2PRBAC模型分析
系統(tǒng)中已經(jīng)存在的數(shù)據(jù)起源信息至少引出了兩個(gè)和安全相關(guān)的問題,一個(gè)是數(shù)據(jù)起源是如何被用于提高系統(tǒng)的安全性的;另一個(gè)是如何保護(hù)那些可能比數(shù)據(jù)自身更加敏感的數(shù)據(jù)來源,即安全起源問題[11].近年來數(shù)據(jù)起源相關(guān)訪問控制文獻(xiàn)主要側(cè)重于研究后者:保護(hù)數(shù)據(jù)來源問題上.我們在PROV起源模型和RBAC基礎(chǔ)上,改進(jìn)了PBAC訪問控制基本模型,提出了一個(gè)基于角色的起源訪問控制模型PRBAC,該模型利用PROV起源圖捕獲因果依賴,強(qiáng)調(diào)前一目的,即如何利用數(shù)據(jù)起源對基礎(chǔ)數(shù)據(jù)進(jìn)行訪問控制.
盡管PBAC基本模型[11]是首個(gè)利用起源數(shù)據(jù)對其他數(shù)據(jù)進(jìn)行訪問控制的模型,且該模型能夠支持那些用傳統(tǒng)訪問控制方法不容易實(shí)現(xiàn)的特性,比如,基于系譜信息、基于數(shù)據(jù)的過去使用以及基于版本管理信息的控制等.但是它在具體的實(shí)際應(yīng)用系統(tǒng)中還存在一些缺陷,還需要進(jìn)一步改進(jìn).
(1)PBAC模型使用的是OPM起源模型獲取的起源信息,雖然OPM能表達(dá)比較復(fù)雜的起源關(guān)系,但是其概念過于籠統(tǒng),不能表達(dá)更多的細(xì)節(jié).而W3C標(biāo)準(zhǔn)下的PROV模型除了能表達(dá)更多的組件間的關(guān)系(3個(gè)類,7個(gè)關(guān)系),捕獲更多的起源信息之外,還設(shè)計(jì)了用于支持起源更高級應(yīng)用的擴(kuò)展結(jié)構(gòu),極大地豐富了描述起源的細(xì)節(jié)信息,更便于細(xì)粒度的起源描述,可操作性強(qiáng).
(2)PBAC模型的訪問評估雖然包括用戶授權(quán)和操作認(rèn)證兩個(gè)方面,但是在具體的應(yīng)用實(shí)例中存在缺陷.一方面,用戶授權(quán)是根據(jù)查詢該用戶以前是否有過規(guī)定的操作而確定,且往往必須是同一用戶.而實(shí)際系統(tǒng)中會有不同用戶進(jìn)行同一活動(dòng)的需求,比如醫(yī)院醫(yī)囑信息管理系統(tǒng),A醫(yī)生和B醫(yī)生可以對同一病人寫醫(yī)囑,并且兩份醫(yī)囑是不能相互替換的.另一方面,某一操作是否被執(zhí)行(操作認(rèn)證)是根據(jù)要訪問的對象實(shí)體以前是否被操作過來決定,而不管請求用戶是誰,只要有相應(yīng)的訪問過該實(shí)體的操作就可以通過請求,這很容易造成越權(quán)訪問.比如,只有查看過的醫(yī)囑才可以被修改,那么系統(tǒng)就會檢查該醫(yī)囑之前是否被查看過,而不管是誰發(fā)出的修改請求.但是,事實(shí)是只有醫(yī)生才可以修改醫(yī)囑信息,護(hù)士不能修改.為了解決這兩個(gè)問題,我們的模型引入了RBAC機(jī)制,提出了一種新的訪問評估策略.
(3)PBAC模型的作用原理是根據(jù)操作類型查找依賴列表DL和相應(yīng)的起源數(shù)據(jù)PD,然后制定相應(yīng)的策略進(jìn)行訪問評估.但是這樣做的缺點(diǎn)是:用戶每進(jìn)行一次訪問或者不同的用戶進(jìn)行不同的訪問時(shí)都需要查找一次該用戶的操作,同時(shí)也都需要遍歷一次起源圖.而引入RBAC后,該機(jī)制通過加入角色的概念,把具有相同權(quán)限的用戶歸為同一角色,這樣隔離了用戶與權(quán)限的同時(shí),相比用戶的變動(dòng)來說,角色的變動(dòng)要少得多,從而簡化了用戶的授權(quán)管理,提高了系統(tǒng)的運(yùn)行效率.
由以上分析和比較可以看出,本模型是結(jié)合實(shí)際應(yīng)用的要求而進(jìn)行改進(jìn)的,它更貼近現(xiàn)實(shí),可以很好的應(yīng)用到實(shí)際系統(tǒng)中.PRBAC模型是在PBAC基本模型的基礎(chǔ)之上,引入了RBAC中角色集Roles元素,將擁有相同操作權(quán)限的用戶歸為同一角色,同時(shí)將該角色對應(yīng)的操作類型在依賴列表中進(jìn)行劃分,使角色集(Roles)與依賴列表(DL)一一對應(yīng),這樣不僅在很大程度上簡化了模型的授權(quán)管理、提高了系統(tǒng)運(yùn)行效率,也給系統(tǒng)提供了更加安全的訪問控制策略.
3PRBAC模型應(yīng)用舉例
建立了PRBAC模型后,本文以醫(yī)院的醫(yī)囑信息管理系統(tǒng)為例,具體地闡述一下該模型的訪問控制實(shí)現(xiàn)過程.
隨著科學(xué)技術(shù)的不斷發(fā)展,現(xiàn)在大多數(shù)醫(yī)院己經(jīng)啟用了醫(yī)院信息管理系統(tǒng),醫(yī)囑管理系統(tǒng)便是其中之一.醫(yī)囑是醫(yī)生根據(jù)病情和治療的需要下達(dá)給護(hù)士的醫(yī)療指令,醫(yī)囑內(nèi)容包括病人相關(guān)信息、各種檢查、藥物名稱及用法、時(shí)間和執(zhí)行護(hù)士等.在醫(yī)院中,用戶的數(shù)量有很多,但是用戶的職位是比較固定的,同時(shí)職位所對應(yīng)的權(quán)限也是比較固定的,這里的職位即為角色.
醫(yī)囑管理系統(tǒng)的用戶主要是醫(yī)生、護(hù)士和醫(yī)療委員會,相應(yīng)的操作權(quán)限為:只有醫(yī)生才能診斷病情、開具入院證明以及開出醫(yī)囑;護(hù)士可以對病人進(jìn)行護(hù)理體檢,執(zhí)行醫(yī)囑并填寫護(hù)理記錄;醫(yī)療委員會管理員可以查看醫(yī)生、護(hù)士和病人的相關(guān)信息;醫(yī)生和護(hù)士都可以查看醫(yī)囑信息;護(hù)士和醫(yī)療委員會管理員不能診斷病情;其他用戶不能查看醫(yī)囑信息.
通常,系統(tǒng)會為每一個(gè)用戶的操作類型都維護(hù)一個(gè)單獨(dú)的訪問控制策略,比如,我們有以下策略:醫(yī)生只有診斷病情后才可以開出醫(yī)囑.在上述情景中,醫(yī)生、護(hù)士和醫(yī)療委員會分別對應(yīng)模型中的角色集R1,R2和R3,他們各自映射的依賴列表分別為DL1,DL2和DL3.(這里假設(shè)用戶都已經(jīng)注冊過,且以醫(yī)生開醫(yī)囑為例)具體的訪問控制過程如下.
(1)當(dāng)某用戶發(fā)起一個(gè)請求時(shí),系統(tǒng)先根據(jù)角色集R判斷用戶的角色,如果是醫(yī)生,則轉(zhuǎn)步驟2;如果是護(hù)士轉(zhuǎn)步驟6,如果是醫(yī)療委員會則轉(zhuǎn)步驟7,否則,拒絕訪問請求.
(2)根據(jù)R1去查找醫(yī)生對應(yīng)的依賴列表DL1,然后解析該操作類型,來選擇合適的策略.
(3)從包含在策略集中的規(guī)則中,提取所有的和該操作相關(guān)的依賴名和依賴路徑表達(dá)式,并最終將其簡化為基本的直接依賴關(guān)系邊的路徑表達(dá)式.
(4)執(zhí)行嵌入在這些路徑表達(dá)式中的查詢操作,查詢存儲的起源數(shù)據(jù)三元組,看該醫(yī)生是否有相應(yīng)活動(dòng).
(5)利用查詢結(jié)果做授權(quán)決策.如果該醫(yī)生診斷過病情,那可以授權(quán)開出醫(yī)囑;沒有診斷過病情,則拒絕其開出醫(yī)囑的訪問請求.
(6)根據(jù)角色集去查找護(hù)士對應(yīng)的依賴列表,然后解析操作類型,選擇合適的訪問策略.
(7)同理,根據(jù)角色集去查找醫(yī)療委員會對應(yīng)的依賴列表,然后解析操作類型,選擇合適的訪問策略.
4結(jié)束語
PRBAC模型以PBAC模型為基礎(chǔ),引入了RBAC中角色集的概念,并將PBAC模型中作為基礎(chǔ)的依賴列表進(jìn)行劃分,使其與角色集一一對應(yīng),提出了一種基于起源的角色訪問控制方法,并給出了相應(yīng)的訪問控制算法.該方法繼承了PBAC和RBAC的優(yōu)點(diǎn),在滿足那些用傳統(tǒng)訪問控制方法不容易實(shí)現(xiàn)的特性的同時(shí),也簡化了模型的授權(quán)管理、提高了系統(tǒng)的運(yùn)行效率,給系統(tǒng)提供了更加安全的訪問控制策略.下一步的研究工作是對該模型的優(yōu)化和應(yīng)用研究.
參考文獻(xiàn):
[1]Nguyen D, Park J, Sandhu R. Integrated provenance data for access control in group-centric collaboration[J]. Information Reuse and Integration (IRI), 2012 IEEE 13th International Conference on, 2012, 330(5):255-262.
[2]Narock T, Yoon V, March S. A provenance-based approach to semantic web service description and discovery[J]. Decision Support Systems, 2014(64):90-99.
[3]Madougou S, Shahand S, Santcroos M,etal. Characterizing workflow-based activity on a production e-infrastructure using provenance data[J]. Future Generation Computer Systems, 2013, 29 (8):1931-1942.
[4]Girish J, Arun G, Gintaras R. A workflow modeling system for capturing data provenance[J]. Computers and Chemical Engineering, 2014(67):148-158.
[5]Li J, Chen X F, Huang Q,etal. Digital provenance: Enabling secure data forensics in cloud computing[J]. Future Generation Computer Systems, 2013(37):259-266.
[6]Alam S M I, Fahmy S. A practical approach for provenance transmission in wireless sensor networks[J]. Ad Hoc Networks, 2014(16):28-45.
[7]Curcin V, Miles S, Danger R,etal. Implementing interoperable provenance in biomedical research[J]. Future Generation Computer Systems, 2014(34): 1-16.
[8]Hasan R, Sion R, Winslett M. Introducing secure provenance:problems and challenges[C]// Henson V. Proceedings of the 2007 ACM workshop on Storage security and survivability, StorageSS’07. New York, NY, USA: ACM, 2007: 13-18.
[9]Cadenhead T, Khadilkar V, Kantarcioglu M,etal. A language for provenance access control[C]//Sandhu R. Proceedings of therst ACM conference on Data and application security and privacy. San Antonio, TX, USA: ACM, 2011: 133-144.
[10]劉通,王鳳英.基于OPM的安全起源模型[J].計(jì)算機(jī)應(yīng)用研究, 2013, 30(10):3 118-3 119.
[11]Park J, Nguyen D, Sandhu R. A provenance-based access control model[C]//PST. Proceedings of the 10th IEEE Conference on Privacy, Security and Trust. Paris, France: IEEE, 2012:137-144.
[12]Moreau L, Missier P. PROV-DM: The PROV Data Model[EB/OL].(2013-03-12) [2013-04-30]. http://www.w3.org/TR/REC-prov-dm-20130430/.
[13]Sandhu R, Coyne E, Feinstein H,etal. Role-based access control models[J]. Computer Journal, 1996, 29 (2):38-47.
(編輯:姚佳良)
PRBAC:A role-based provenance access control model
MA Xiao, WANG Feng-ying, CHANG Ling-xia
(School of Computer Science and Technology, Shandong University of Technology, Zibo 255049, China)
Abstract:This paper proposes a novel role-based provenance access control model(PRBAC)to better utilize provenance data to control access to the other data. The model is built on provenance-based access control (PBAC) and role-based access control (RBAC). And this scheme divided the dependency list as a foundation of access control, introduced the notion of role in role-based access control and gave out the access control algorithm. The analysis results indicate the proposed model can solve the issues that the authorization management is not flexible, the system has low access efficiency and access control policy is not secure enough, and other problems.
Key words:provenance; access control; PBAC; RBAC; dependency list; PROV
中圖分類號:TP393
文獻(xiàn)標(biāo)志碼:A
文章編號:1672-6197(2016)02-0018-05
作者簡介:馬曉,女, maxiao886@126.com; 通信作者: 王鳳英,女, wfy@sdut.edu.cn
基金項(xiàng)目:國家自然科學(xué)基金項(xiàng)目(61473179); 山東省科技發(fā)展計(jì)劃(2013GGX10116); 山東省自然科學(xué)基金項(xiàng)目(ZR2013FM013)
收稿日期:2015-03-16