楊琳杰 袁 平 王澤芳
一種基于屬性和任務(wù)的工作流訪問控制模型
楊琳杰 袁 平 王澤芳
(西南科技大學(xué)計算機科學(xué)與技術(shù)學(xué)院 四川綿陽 621010)
針對傳統(tǒng)的訪問控制模型在支持細粒度授權(quán)和訪問控制靈活性上的不足,提出了一種基于屬性和任務(wù)的工作流訪問控制模型,并給出了模型中元素、關(guān)系的形式化描述。新模型保留了任務(wù)驅(qū)動的特點,同時又引入了屬性概念,采用基于實體屬性而不是基于身份的授權(quán)機制,可提供動態(tài)的、細粒度的訪問控制。采用XACML技術(shù)實現(xiàn)模型的訪問控制方案,使得訪問控制模型具有良好的靈活性、擴展性。
訪問控制 工作流 屬性 任務(wù)
工作流是一類能夠全部或者部分自動執(zhí)行的業(yè)務(wù)過程,它根據(jù)一系列過程規(guī)則、文檔、信息或任務(wù)能夠在不同的執(zhí)行者之間進行傳遞和執(zhí)行。隨著工作流技術(shù)的日趨成熟,工作流系統(tǒng)的安全性問題變得日益突出。工作流系統(tǒng)的安全問題主要包括認證、授權(quán)、訪問控制、審計、數(shù)據(jù)保密性、數(shù)據(jù)完整性、抗抵賴性、可用性等。其中訪問控制是提高工作流系統(tǒng)安全的重要機制之一。
一個完善的工作流訪問控制模型不僅要考慮普通系統(tǒng)的靜態(tài)職責(zé)分離和最小權(quán)限,還應(yīng)該考慮以下幾點:(1)工作流任務(wù)的執(zhí)行必須在特定的時間段內(nèi)完成,并且授權(quán)有效時間與任務(wù)執(zhí)行時間盡可能同步。(2)工作流是由一組相關(guān)任務(wù)組成,他們需要特殊的訪問控制技術(shù)來保證業(yè)務(wù)過程執(zhí)行的安全。比如,一個業(yè)務(wù)過程由開支票和支票審核兩個任務(wù)組成,訪問控制技術(shù)必須保證用戶不能審核自己所開的支票。(3)實際應(yīng)用中的安全策略是復(fù)雜多樣的,需要有豐富的語義來表達和描述這些策略。
基于角色的訪問控制模型(Role-Based Access Control,RBAC)[1]通過對用戶分配角色,再對角色賦予權(quán)限來達到訪問控制的目的,主要缺點是不具有動態(tài)性,不能實現(xiàn)動態(tài)的訪問控制。1993年,Thomas和Sandhu提出了基于任務(wù)的訪問控制模型(Task-Based Access Control,TBAC)[2],從任務(wù)的角度來建立訪問控制模型和實現(xiàn)安全機制,提供動態(tài)實時的安全管理,但任務(wù)的分配和管理過程比較繁瑣。邢光林等人提出了基于角色和任務(wù)的工作流訪問控制模型[3],該模型在用戶和任務(wù)之間引入角色,通過用戶-角色-任務(wù)-權(quán)限這樣的結(jié)構(gòu)來實現(xiàn)訪問控制,但在權(quán)限的動態(tài)管理和訪問細粒度上存在不足。在此基礎(chǔ)上,文獻[4]引入了上下文,可以很好地控制用戶和任務(wù)的執(zhí)行環(huán)境,但卻沒有考慮任務(wù)自身的狀態(tài)。文獻[5]根據(jù)任務(wù)的狀態(tài)授予用戶權(quán)限,并且引入了任務(wù)上下文和時間限制,加強了對權(quán)限的管理。
以上模型都是基于角色的訪問控制模型,采用基于角色的授權(quán)機制,在授權(quán)過程中只考慮了用戶角色對權(quán)限的影響,忽略了用戶的其他屬性,例如安全級別、年齡等;缺乏與現(xiàn)實環(huán)境之間的聯(lián)系,模型中的環(huán)境因素都是提前設(shè)定固定不變的,訪問權(quán)限不能隨著環(huán)境的變化而變化;模型中存在多種約束和條件,這些約束和條件的表達方式不能統(tǒng)一,而且語義匱乏。
基于上述分析,為了更好滿足工作流系統(tǒng)靈活性授權(quán)的需求,本文提出了一種基于屬性和任務(wù)的工作流訪問控制模型ATBAC(Attribute-Task Based Workflow Access Control),并結(jié)合XACML技術(shù)(eX-tensible Access Control Markup Language,可擴展的訪問控制標(biāo)記語言)對模型進行實現(xiàn)。
ATBAC模型如圖1所示。模型的基本思想是: ATBAC模型結(jié)合了TBAC模型和基于屬性的訪問控制模型[6-7](ABAC)的思想,既滿足了工作流系統(tǒng)任務(wù)動態(tài)授權(quán)的需求,又實現(xiàn)了基于屬性級的細粒度的訪問控制。新模型改變了傳統(tǒng)模型的授權(quán)機制,采用基于實體屬性的授權(quán)方式,能夠根據(jù)用戶的不同屬性對用戶的訪問能力進行細粒度的控制,并且引入了環(huán)境因素(不僅包括歷史記錄、訪問時間,還包括系統(tǒng)的安全狀態(tài)、服務(wù)器的訪問率等),更符合實際應(yīng)用的需求。
1.1 模型相關(guān)概念
(1)屬性(ATT):屬性是指實體和訪問控制相關(guān)的特征或信息。屬性ATT表示為二元組(ID,dom),其中ID為屬性唯一標(biāo)識符,dom表示屬性值域。
圖1 ATBAC模型Fig.1 ATBAC model
(2)屬性表達式(AE):是一個三元組,表示為: (attr,op,value),其中attr表示屬性變量,value表示屬性變量值,op為關(guān)系運算符,op∈{<,≤,≠,≥,>}。例如某一用戶屬性表達式{age>35},用戶屬性變量為age,“>”是關(guān)系表達式運算符,屬性變量值為35。
(3)規(guī)則:一個策略可以和多條規(guī)則相關(guān)聯(lián)。規(guī)則是由條件(Condition)、結(jié)果(Effect)和目標(biāo)(Target)組成。目標(biāo)是由全部實體組成的一個屬性集合,條件是一個屬性表達式,Effect是條件合取的結(jié)果,Effect∈{Permit,Deny}。表示為:
Rule:=Condition1∧Condition2∧...Conditionn(n≥1)→Effect
(4)策略:是由一個或若干個訪問控制規(guī)則構(gòu)成的非空有限集合,用Policy表示,?pi∈Policy(i∈N)。
1.2 模型的基本元素及關(guān)系
(1)用戶。用U表示一個用戶集合,用ui(1≤i≤n)表示用戶集合U中的一個用戶,即?ui∈U,U={u1,u2,…,un}。
(2)任務(wù)T。任務(wù)是分配給某一組織或個人作為其部分職責(zé),并按一定流程完成的工作。一個任務(wù)可以包含多個子任務(wù),T={t1,t2,…,tn}。每個任務(wù)只能在規(guī)定的時間段內(nèi)執(zhí)行。Ts,Te分別代表任務(wù)的開始時間和結(jié)束時間。為任務(wù)設(shè)置一個生命周期L=|Ts-Te|,如果在規(guī)定的時間段內(nèi)沒有完成任務(wù),則將任務(wù)所擁有的權(quán)限掛起。
(3)權(quán)限P。權(quán)限是用戶對資源進行訪問的許可。
(4)實體屬性:用戶屬性(User Attribute,UA)用來描述訪問用戶的安全特性,如角色、部門、職稱等;任務(wù)屬性(Task Attribute,TA)是對任務(wù)的特征進行描述,如任務(wù)名稱、類型、狀態(tài)、時間等;環(huán)境屬性(Environment Attribute,EA)是指訪問請求過程中上下文環(huán)境的描述,如 IP、時間、CUP的利用率等。ATT(U),ATT(E),ATT(T)分別表示主體U,任務(wù)T和環(huán)境E的屬性賦值關(guān)系。則有:
ATT(U)?UA1×UA2×UA3...×UAk(1≤k≤K)
ATT(E)?EA1×EA2×EA3...×EAm(1≤m≤M)
ATT(T)?TA1×TA2×TA3...×TAn(1≤n≤N)
(5)用一個基于u,t,e的函數(shù)來判斷主體U能否在環(huán)境E的條件下執(zhí)行任務(wù)T。
Rule:can_access(u,e,t)←f(att(u),att(e),att(t))函數(shù)根據(jù)u,t,e的屬性值進行判斷,如果返回true則允許訪問;返回false則拒絕訪問。
(6)任務(wù)狀態(tài)。任務(wù)實例是任務(wù)的一次執(zhí)行過程。任務(wù)執(zhí)行過程中會動態(tài)的改變狀態(tài),狀態(tài)的改變會引起訪問策略的改變,從而引起權(quán)限的變化。狀態(tài)包括:睡眠、就緒、掛起、運行、完成。睡眠狀態(tài)指任務(wù)未被激活;就緒狀態(tài)指任務(wù)的合法條件已經(jīng)滿足,完成了準(zhǔn)備工作;執(zhí)行狀態(tài)指任務(wù)被激活正在運行;掛起狀態(tài)指任務(wù)激活時由于各種原因而被暫停運行;完成狀態(tài)指任務(wù)執(zhí)行完畢[8]。如圖2所示。
圖2 狀態(tài)轉(zhuǎn)換圖Fig.2 State transition diagram
(7)用戶與屬性是多對多的關(guān)UAA?U×ATT,一個用戶可以擁有多個屬性,一個屬性可以歸多個用戶所有,assigned-u(att)={u∈U,att∈ATT|(u,att)∈UAA}。
(8)環(huán)境與屬性多對多關(guān)系EAA?E×ATT,一個環(huán)境實體可以擁有多個屬性,而每種屬性可以被多個環(huán)境實體同時擁有,assigned-e(att)={e∈E,att∈ATT|(e,att)∈EAA}。
(9)屬性和任務(wù)關(guān)系是多對多AT?T×ATT。一個任務(wù)可以具有多種屬性,而每種屬性又可以分配多個任務(wù),assigned-t(att)={t∈T,att∈ATT|(t,att)∈AT}。
(10)權(quán)限分配PT?P×T,權(quán)限與任務(wù)之間是多對多的關(guān)系。權(quán)限包括資源和操作,當(dāng)用戶執(zhí)行任務(wù)時,用戶也就獲得了與任務(wù)相關(guān)的資源和操作,執(zhí)行完后,權(quán)限也被收回,通過任務(wù)來實現(xiàn)權(quán)限的動態(tài)授予和撤銷,assigned-p(t)={p∈P,t∈T|(p,t)∈PT}。
1.3 模型安全約束
(1)依賴約束。在工作流執(zhí)行過程中,任務(wù)之間存在著依賴約束關(guān)系,影響著訪問控制策略的制定,進而影響權(quán)限的改變。模型中定義可能存在的依賴關(guān)系如下:
同步依賴:對于任務(wù)集T中任意2個任務(wù)T1和T2,T1和T2需要同時進入激活狀態(tài)。
順序依賴:對于任務(wù)集T中任意2個任務(wù)T1和T2,T1<T2,T2只有在T1完成之后才能被激活。
互斥依賴:對于任務(wù)集T中任意2個任務(wù)T1和T2,不能同時被激活。
(2)時間約束,為了防止用戶擁有權(quán)限的時間過長,避免惡意用戶在執(zhí)行任務(wù)的過程中攻擊和破壞系統(tǒng),給任務(wù)增加了時間限制。
生命周期為L,timemax表示任務(wù)激活后執(zhí)行的時間,如果執(zhí)行時間超出生命周期,則將收回權(quán)限。
(3)靜態(tài)職責(zé)分離約束,是指在為用戶分配屬性時,屬于沖突屬性集(CA)的兩個或多個屬性不能分配給沖突用戶(CU)中的一個或多個。沖突用戶指的是擁有足夠權(quán)利并極有可能合伙欺詐的兩個用戶,一般而言,有親戚、親密朋友或利益關(guān)系等有可能合伙欺詐的用戶均是沖突用戶。
(4)動態(tài)職責(zé)分離,同一個任務(wù)在同一時間不能分配給具有互斥屬性的兩個用戶。
2.1 模型的體系結(jié)構(gòu)
XACML[9]是由結(jié)構(gòu)化信息標(biāo)準(zhǔn)促進組織(OASIS)定義的安全標(biāo)準(zhǔn),用于描述應(yīng)用系統(tǒng)的訪問控制策略以及訪問控制決策請求/響應(yīng)信息。XACML符合XML規(guī)范,具備可擴展性,支持參數(shù)化的策略描述和多樣化的策略組合,具有很強的訪問控制策略描述能力。在模型中授權(quán)函數(shù)會將請求中的屬性與策略規(guī)則中的屬性進行比較,最終生成一個許可或拒絕決策。基于XACML實現(xiàn)的ATBAC模型的體系結(jié)構(gòu)[10]如圖3所示。
XACML主要功能模塊有策略執(zhí)行點(Policy-EnforcementPoint,PEP)、上下文處理器、策略信息點(PolicyInformationPoint,PIP)、策略決策點(PolicyDecisionPoint,PDP)、策略管理點(PolicyAdministration-Point,PAP)等。策略管理點PAP定義策略和策略集,供PDP使用;策略執(zhí)行點PEP利用XACML語言建立一個基于屬性的訪問控制請求,發(fā)送給PDP;策略決策點PDP根據(jù)策略來判斷用戶請求,決定是否允許訪問;策略信息點PIP負責(zé)提供授權(quán)決策所需要的實體屬性;上下文處理器是將本體請求轉(zhuǎn)化為XACML的規(guī)范格式[10]。
2.2 模型的工作流程
模型在工作流系統(tǒng)中工作過程[11]如圖4所示。
圖3 基于XACML的ATBAC模型體系結(jié)構(gòu)圖Fig.3 Structure chart of ATBAC model system based on XACML
圖4 ATBAC模型工作過程Fig.4 Working process of ATBAC model
用戶要完成一個任務(wù)必須獲得任務(wù)中包含的各種權(quán)限和資源。用戶向系統(tǒng)提出訪問請求,首先對用戶進行身份驗證。如果是合法用戶,則查找請求的資源或任務(wù),沒有找到,則拒絕請求。如果找到相應(yīng)資源或任務(wù),將用戶相關(guān)信息和請求信息發(fā)送到策略執(zhí)行點PEP;PEP根據(jù)請求查找相關(guān)屬性建立一個基于屬性的訪問控制請求AAR,AAR中包括用戶屬性、環(huán)境屬性和任務(wù)屬性。然后,PEP將AAR傳遞給策略判決點PDP。PDP根據(jù)請求查詢訪問控制策略,對AAR進行判定。如果為TRUE,給用戶授權(quán);如果為FALSE,請求失敗。
基于角色的訪問控制模型是目前比較常用的一種模型,本節(jié)通過一個示例,對ATBAC和基于角色和任務(wù)的訪問控制模型(TRBAC)[4]進行比較。
假定在辦公自動化系統(tǒng)中,有一個發(fā)文的工作流,該工作流由4個任務(wù)(Task)組成:擬稿、審稿、核稿、稿件簽發(fā)。假設(shè)該系統(tǒng)中用戶U擁有安全等級Level(u)和類型Type(u)兩種屬性,按工齡可以分為一級和二級;按類型分為:員工(General),科長(Chief),處長(Director)。系統(tǒng)中的任務(wù)也有兩種屬性,按照保密等級分為重要任務(wù)(Secrecy)和一般任務(wù)(Free),按照發(fā)布時間可以分為新任務(wù)(New)和舊任務(wù)(Old)。
假如有一條訪問控制策略規(guī)定,只有安全等級為2的處長才能執(zhí)行新的重要的擬稿任務(wù),根據(jù)ATBAC模型和XACML定義以下策略就可以進行訪問控制:
Rule1:(Type(u)=director)∧(Level(u)=2)
Rule2:(Task(t)=new task)∧(Task(t)=Secrecy)(Task(t)=擬稿)
Policy1:Rule1∧Rule2
在TRBAC模型中,根據(jù)用戶屬性和屬性取值定義6種角色,根據(jù)任務(wù)的屬性和屬性值把任務(wù)分成4類,然后進行授權(quán),授權(quán)過程如圖5所示。
角色分配是給用戶分配角色,任務(wù)分配是當(dāng)任務(wù)建立時為任務(wù)分配執(zhí)行任務(wù)的角色。如果用戶擁有的角色和任務(wù)指定的角色一樣時,用戶可以執(zhí)行該任務(wù)。
基于上述授權(quán)方式,當(dāng)用戶屬性和任務(wù)屬性不斷增加時,角色和任務(wù)的數(shù)量將呈幾何倍數(shù)增長,而ATBAC模型沒有角色這一中介,因此不需要定義大量的角色和權(quán)限。
另外,基于角色和任務(wù)的訪問控制模型沒有考慮環(huán)境因素,如果上例中的策略再增加一條規(guī)則:所有任務(wù)只能在8:00到20:00之間才能訪問,TRBAC模型需要修改數(shù)據(jù)庫或者在業(yè)務(wù)邏輯代碼中進行判定,而ATBAC模型只需定義如下策略即可對訪問時間進行限制。
Rule3:(CurrentTime(e)≥8:00)∧(CurrentTime (e)≤20:00)
Policy2:Rule1∧Rule2∧Rule3
圖5 TRBAC模型授權(quán)過程Fig.5 Authorization process of TRBAC model
針對現(xiàn)有模型在工作流系統(tǒng)中應(yīng)用上的不足,提出了一種基于屬性和任務(wù)的工作流訪問控制模型。在基于任務(wù)的訪問控制模型的基礎(chǔ)上,引入屬性概念,實現(xiàn)了基于屬性的細粒度的訪問控制。引入環(huán)境屬性,使模型更符合實際應(yīng)用。將XACML與ATBAC結(jié)合起來,解決了普通模型中策略表達不足的缺點,提供了更靈活的訪問控制策略。與其他的訪問控制模型相比,該模型具有靈活性、動態(tài)性以及擴展性,能夠細粒度地進行動態(tài)訪問授權(quán)。
[1] 毛碧波,孫玉芳.角色訪問控制[J].計算機科學(xué),2003,30(1):121-123,89.
[2] THOMAS R K,SANDHU R S.Task based authorization controls(TBAC):A family of models for active and enterprise- oriented authorization management[C].Proceedings of the IFIPW G11.3 Workshop on Database Security,1997.166-181.
[3] 邢光林,洪帆.基于角色和任務(wù)的工作流訪問控制模型[J].計算機工程與應(yīng)用,2005,(2):210-213,222.
[4] 朱州,張滬寅.一種基于T-RBAC的上下文相關(guān)訪問控制模型[J].武漢大學(xué)學(xué)報:理學(xué)版,2009,(2):216-222.
[5] 馮俊,王箭.一種基于T-RBAC的訪問控制改進模型[J].計算機工程,2012,(16):138-141.
[6] YUAN E,TONG J.Attributed based access control (ABAC)for web services[C].Web Services,2005.ICWS 2005.Proceedings.2005 IEEE International Conference on.IEEE.
[7] 李曉峰,馮登國,陳朝武,等.基于屬性的訪問控制模型[J].通信學(xué)報,2008,(4):90-98.
[8] 許芳園,郭銀章.基于TRBAC的協(xié)同設(shè)計動態(tài)訪問控制[J].計算機工程,2010,(21):143-145.
[9] 沈海波,洪帆.Web服務(wù)中結(jié)合XACML的基于屬性的訪問控制模型[J].計算機應(yīng)用,2005,(12):49-51,60.
[10]文俊浩,曾駿,張志宏.SOA中基于屬性的訪問控制安全策略[J].計算機科學(xué),2010,(9):147-150.
[11]鐘將,侯素娟.開放網(wǎng)絡(luò)環(huán)境中基于屬性的通用訪問控制框架[J].計算機應(yīng)用,2010,(10):2632-2635,2640.
Workflow Access Control Model Based on Attribute-task
YANG Lin-jie,YUAN Ping,WANG Ze-fang
(School of Computer Science and Technology,Southwest University of Science and Technology,Mianyang 621010,Sichuan,China)
Because of the lack of support for fine-grained authorization and flexible access control in traditional access control model.This paper presents workflow access control model based on attribute-task,and gives the formal description of the elements and relationship of the model.The model retains the feature of task-driven,while the introduction of the concept of property.The model adopted the authorization mechanism based on subject entity attributes,but not use identity.This mechanism can resolve administrative scalability problem and provide fine-grained access control.Furthermore,using the XACML technology achieve model access control scheme,making access control model has good flexibility and scalability.
Access control;Workflow;Attribute;Task
TP393
A
1671-8755(2015)03-0071-05
2015-06-04
西南科技大學(xué)研究生創(chuàng)新基金資助項目(14ycxjj0060)。
楊琳杰,女,碩士研究生。通訊作者:袁平(1963—),男,博士,教授,研究方向為網(wǎng)絡(luò)與信息安全。E-mail:1054514191@qq.com