楊琳杰 袁 平 王澤芳
一種基于屬性和任務的工作流訪問控制模型
楊琳杰 袁 平 王澤芳
(西南科技大學計算機科學與技術學院 四川綿陽 621010)
針對傳統的訪問控制模型在支持細粒度授權和訪問控制靈活性上的不足,提出了一種基于屬性和任務的工作流訪問控制模型,并給出了模型中元素、關系的形式化描述。新模型保留了任務驅動的特點,同時又引入了屬性概念,采用基于實體屬性而不是基于身份的授權機制,可提供動態的、細粒度的訪問控制。采用XACML技術實現模型的訪問控制方案,使得訪問控制模型具有良好的靈活性、擴展性。
訪問控制 工作流 屬性 任務
工作流是一類能夠全部或者部分自動執行的業務過程,它根據一系列過程規則、文檔、信息或任務能夠在不同的執行者之間進行傳遞和執行。隨著工作流技術的日趨成熟,工作流系統的安全性問題變得日益突出。工作流系統的安全問題主要包括認證、授權、訪問控制、審計、數據保密性、數據完整性、抗抵賴性、可用性等。其中訪問控制是提高工作流系統安全的重要機制之一。
一個完善的工作流訪問控制模型不僅要考慮普通系統的靜態職責分離和最小權限,還應該考慮以下幾點:(1)工作流任務的執行必須在特定的時間段內完成,并且授權有效時間與任務執行時間盡可能同步。(2)工作流是由一組相關任務組成,他們需要特殊的訪問控制技術來保證業務過程執行的安全。比如,一個業務過程由開支票和支票審核兩個任務組成,訪問控制技術必須保證用戶不能審核自己所開的支票。(3)實際應用中的安全策略是復雜多樣的,需要有豐富的語義來表達和描述這些策略。
基于角色的訪問控制模型(Role-Based Access Control,RBAC)[1]通過對用戶分配角色,再對角色賦予權限來達到訪問控制的目的,主要缺點是不具有動態性,不能實現動態的訪問控制。1993年,Thomas和Sandhu提出了基于任務的訪問控制模型(Task-Based Access Control,TBAC)[2],從任務的角度來建立訪問控制模型和實現安全機制,提供動態實時的安全管理,但任務的分配和管理過程比較繁瑣。邢光林等人提出了基于角色和任務的工作流訪問控制模型[3],該模型在用戶和任務之間引入角色,通過用戶-角色-任務-權限這樣的結構來實現訪問控制,但在權限的動態管理和訪問細粒度上存在不足。在此基礎上,文獻[4]引入了上下文,可以很好地控制用戶和任務的執行環境,但卻沒有考慮任務自身的狀態。文獻[5]根據任務的狀態授予用戶權限,并且引入了任務上下文和時間限制,加強了對權限的管理。
以上模型都是基于角色的訪問控制模型,采用基于角色的授權機制,在授權過程中只考慮了用戶角色對權限的影響,忽略了用戶的其他屬性,例如安全級別、年齡等;缺乏與現實環境之間的聯系,模型中的環境因素都是提前設定固定不變的,訪問權限不能隨著環境的變化而變化;模型中存在多種約束和條件,這些約束和條件的表達方式不能統一,而且語義匱乏。
基于上述分析,為了更好滿足工作流系統靈活性授權的需求,本文提出了一種基于屬性和任務的工作流訪問控制模型ATBAC(Attribute-Task Based Workflow Access Control),并結合XACML技術(eX-tensible Access Control Markup Language,可擴展的訪問控制標記語言)對模型進行實現。
ATBAC模型如圖1所示。模型的基本思想是: ATBAC模型結合了TBAC模型和基于屬性的訪問控制模型[6-7](ABAC)的思想,既滿足了工作流系統任務動態授權的需求,又實現了基于屬性級的細粒度的訪問控制。新模型改變了傳統模型的授權機制,采用基于實體屬性的授權方式,能夠根據用戶的不同屬性對用戶的訪問能力進行細粒度的控制,并且引入了環境因素(不僅包括歷史記錄、訪問時間,還包括系統的安全狀態、服務器的訪問率等),更符合實際應用的需求。
1.1 模型相關概念
(1)屬性(ATT):屬性是指實體和訪問控制相關的特征或信息。屬性ATT表示為二元組(ID,dom),其中ID為屬性唯一標識符,dom表示屬性值域。

圖1 ATBAC模型Fig.1 ATBAC model
(2)屬性表達式(AE):是一個三元組,表示為: (attr,op,value),其中attr表示屬性變量,value表示屬性變量值,op為關系運算符,op∈{<,≤,≠,≥,>}。例如某一用戶屬性表達式{age>35},用戶屬性變量為age,“>”是關系表達式運算符,屬性變量值為35。
(3)規則:一個策略可以和多條規則相關聯。規則是由條件(Condition)、結果(Effect)和目標(Target)組成。目標是由全部實體組成的一個屬性集合,條件是一個屬性表達式,Effect是條件合取的結果,Effect∈{Permit,Deny}。表示為:
Rule:=Condition1∧Condition2∧...Conditionn(n≥1)→Effect
(4)策略:是由一個或若干個訪問控制規則構成的非空有限集合,用Policy表示,?pi∈Policy(i∈N)。
1.2 模型的基本元素及關系
(1)用戶。用U表示一個用戶集合,用ui(1≤i≤n)表示用戶集合U中的一個用戶,即?ui∈U,U={u1,u2,…,un}。
(2)任務T。任務是分配給某一組織或個人作為其部分職責,并按一定流程完成的工作。一個任務可以包含多個子任務,T={t1,t2,…,tn}。每個任務只能在規定的時間段內執行。Ts,Te分別代表任務的開始時間和結束時間。為任務設置一個生命周期L=|Ts-Te|,如果在規定的時間段內沒有完成任務,則將任務所擁有的權限掛起。
(3)權限P。權限是用戶對資源進行訪問的許可。
(4)實體屬性:用戶屬性(User Attribute,UA)用來描述訪問用戶的安全特性,如角色、部門、職稱等;任務屬性(Task Attribute,TA)是對任務的特征進行描述,如任務名稱、類型、狀態、時間等;環境屬性(Environment Attribute,EA)是指訪問請求過程中上下文環境的描述,如 IP、時間、CUP的利用率等。ATT(U),ATT(E),ATT(T)分別表示主體U,任務T和環境E的屬性賦值關系。則有:
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的函數來判斷主體U能否在環境E的條件下執行任務T。
Rule:can_access(u,e,t)←f(att(u),att(e),att(t))函數根據u,t,e的屬性值進行判斷,如果返回true則允許訪問;返回false則拒絕訪問。
(6)任務狀態。任務實例是任務的一次執行過程。任務執行過程中會動態的改變狀態,狀態的改變會引起訪問策略的改變,從而引起權限的變化。狀態包括:睡眠、就緒、掛起、運行、完成。睡眠狀態指任務未被激活;就緒狀態指任務的合法條件已經滿足,完成了準備工作;執行狀態指任務被激活正在運行;掛起狀態指任務激活時由于各種原因而被暫停運行;完成狀態指任務執行完畢[8]。如圖2所示。

圖2 狀態轉換圖Fig.2 State transition diagram
(7)用戶與屬性是多對多的關UAA?U×ATT,一個用戶可以擁有多個屬性,一個屬性可以歸多個用戶所有,assigned-u(att)={u∈U,att∈ATT|(u,att)∈UAA}。
(8)環境與屬性多對多關系EAA?E×ATT,一個環境實體可以擁有多個屬性,而每種屬性可以被多個環境實體同時擁有,assigned-e(att)={e∈E,att∈ATT|(e,att)∈EAA}。
(9)屬性和任務關系是多對多AT?T×ATT。一個任務可以具有多種屬性,而每種屬性又可以分配多個任務,assigned-t(att)={t∈T,att∈ATT|(t,att)∈AT}。
(10)權限分配PT?P×T,權限與任務之間是多對多的關系。權限包括資源和操作,當用戶執行任務時,用戶也就獲得了與任務相關的資源和操作,執行完后,權限也被收回,通過任務來實現權限的動態授予和撤銷,assigned-p(t)={p∈P,t∈T|(p,t)∈PT}。
1.3 模型安全約束
(1)依賴約束。在工作流執行過程中,任務之間存在著依賴約束關系,影響著訪問控制策略的制定,進而影響權限的改變。模型中定義可能存在的依賴關系如下:
同步依賴:對于任務集T中任意2個任務T1和T2,T1和T2需要同時進入激活狀態。

順序依賴:對于任務集T中任意2個任務T1和T2,T1<T2,T2只有在T1完成之后才能被激活。

互斥依賴:對于任務集T中任意2個任務T1和T2,不能同時被激活。

(2)時間約束,為了防止用戶擁有權限的時間過長,避免惡意用戶在執行任務的過程中攻擊和破壞系統,給任務增加了時間限制。

生命周期為L,timemax表示任務激活后執行的時間,如果執行時間超出生命周期,則將收回權限。
(3)靜態職責分離約束,是指在為用戶分配屬性時,屬于沖突屬性集(CA)的兩個或多個屬性不能分配給沖突用戶(CU)中的一個或多個。沖突用戶指的是擁有足夠權利并極有可能合伙欺詐的兩個用戶,一般而言,有親戚、親密朋友或利益關系等有可能合伙欺詐的用戶均是沖突用戶。

(4)動態職責分離,同一個任務在同一時間不能分配給具有互斥屬性的兩個用戶。

2.1 模型的體系結構
XACML[9]是由結構化信息標準促進組織(OASIS)定義的安全標準,用于描述應用系統的訪問控制策略以及訪問控制決策請求/響應信息。XACML符合XML規范,具備可擴展性,支持參數化的策略描述和多樣化的策略組合,具有很強的訪問控制策略描述能力。在模型中授權函數會將請求中的屬性與策略規則中的屬性進行比較,最終生成一個許可或拒絕決策。基于XACML實現的ATBAC模型的體系結構[10]如圖3所示。
XACML主要功能模塊有策略執行點(Policy-EnforcementPoint,PEP)、上下文處理器、策略信息點(PolicyInformationPoint,PIP)、策略決策點(PolicyDecisionPoint,PDP)、策略管理點(PolicyAdministration-Point,PAP)等。策略管理點PAP定義策略和策略集,供PDP使用;策略執行點PEP利用XACML語言建立一個基于屬性的訪問控制請求,發送給PDP;策略決策點PDP根據策略來判斷用戶請求,決定是否允許訪問;策略信息點PIP負責提供授權決策所需要的實體屬性;上下文處理器是將本體請求轉化為XACML的規范格式[10]。
2.2 模型的工作流程
模型在工作流系統中工作過程[11]如圖4所示。

圖3 基于XACML的ATBAC模型體系結構圖Fig.3 Structure chart of ATBAC model system based on XACML

圖4 ATBAC模型工作過程Fig.4 Working process of ATBAC model
用戶要完成一個任務必須獲得任務中包含的各種權限和資源。用戶向系統提出訪問請求,首先對用戶進行身份驗證。如果是合法用戶,則查找請求的資源或任務,沒有找到,則拒絕請求。如果找到相應資源或任務,將用戶相關信息和請求信息發送到策略執行點PEP;PEP根據請求查找相關屬性建立一個基于屬性的訪問控制請求AAR,AAR中包括用戶屬性、環境屬性和任務屬性。然后,PEP將AAR傳遞給策略判決點PDP。PDP根據請求查詢訪問控制策略,對AAR進行判定。如果為TRUE,給用戶授權;如果為FALSE,請求失敗。
基于角色的訪問控制模型是目前比較常用的一種模型,本節通過一個示例,對ATBAC和基于角色和任務的訪問控制模型(TRBAC)[4]進行比較。
假定在辦公自動化系統中,有一個發文的工作流,該工作流由4個任務(Task)組成:擬稿、審稿、核稿、稿件簽發。假設該系統中用戶U擁有安全等級Level(u)和類型Type(u)兩種屬性,按工齡可以分為一級和二級;按類型分為:員工(General),科長(Chief),處長(Director)。系統中的任務也有兩種屬性,按照保密等級分為重要任務(Secrecy)和一般任務(Free),按照發布時間可以分為新任務(New)和舊任務(Old)。
假如有一條訪問控制策略規定,只有安全等級為2的處長才能執行新的重要的擬稿任務,根據ATBAC模型和XACML定義以下策略就可以進行訪問控制:
Rule1:(Type(u)=director)∧(Level(u)=2)
Rule2:(Task(t)=new task)∧(Task(t)=Secrecy)(Task(t)=擬稿)
Policy1:Rule1∧Rule2
在TRBAC模型中,根據用戶屬性和屬性取值定義6種角色,根據任務的屬性和屬性值把任務分成4類,然后進行授權,授權過程如圖5所示。
角色分配是給用戶分配角色,任務分配是當任務建立時為任務分配執行任務的角色。如果用戶擁有的角色和任務指定的角色一樣時,用戶可以執行該任務。
基于上述授權方式,當用戶屬性和任務屬性不斷增加時,角色和任務的數量將呈幾何倍數增長,而ATBAC模型沒有角色這一中介,因此不需要定義大量的角色和權限。
另外,基于角色和任務的訪問控制模型沒有考慮環境因素,如果上例中的策略再增加一條規則:所有任務只能在8:00到20:00之間才能訪問,TRBAC模型需要修改數據庫或者在業務邏輯代碼中進行判定,而ATBAC模型只需定義如下策略即可對訪問時間進行限制。
Rule3:(CurrentTime(e)≥8:00)∧(CurrentTime (e)≤20:00)
Policy2:Rule1∧Rule2∧Rule3

圖5 TRBAC模型授權過程Fig.5 Authorization process of TRBAC model
針對現有模型在工作流系統中應用上的不足,提出了一種基于屬性和任務的工作流訪問控制模型。在基于任務的訪問控制模型的基礎上,引入屬性概念,實現了基于屬性的細粒度的訪問控制。引入環境屬性,使模型更符合實際應用。將XACML與ATBAC結合起來,解決了普通模型中策略表達不足的缺點,提供了更靈活的訪問控制策略。與其他的訪問控制模型相比,該模型具有靈活性、動態性以及擴展性,能夠細粒度地進行動態訪問授權。
[1] 毛碧波,孫玉芳.角色訪問控制[J].計算機科學,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] 邢光林,洪帆.基于角色和任務的工作流訪問控制模型[J].計算機工程與應用,2005,(2):210-213,222.
[4] 朱州,張滬寅.一種基于T-RBAC的上下文相關訪問控制模型[J].武漢大學學報:理學版,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].通信學報,2008,(4):90-98.
[8] 許芳園,郭銀章.基于TRBAC的協同設計動態訪問控制[J].計算機工程,2010,(21):143-145.
[9] 沈海波,洪帆.Web服務中結合XACML的基于屬性的訪問控制模型[J].計算機應用,2005,(12):49-51,60.
[10]文俊浩,曾駿,張志宏.SOA中基于屬性的訪問控制安全策略[J].計算機科學,2010,(9):147-150.
[11]鐘將,侯素娟.開放網絡環境中基于屬性的通用訪問控制框架[J].計算機應用,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
西南科技大學研究生創新基金資助項目(14ycxjj0060)。
楊琳杰,女,碩士研究生。通訊作者:袁平(1963—),男,博士,教授,研究方向為網絡與信息安全。E-mail:1054514191@qq.com