(陜西師范大學(xué) a.智能信息處理與信息安全研究所;b.計(jì)算機(jī)科學(xué)學(xué)院;c.民族教育學(xué)院, 西安 710062)
摘 要:以工作流信息模型安全機(jī)制不足為研究對(duì)象,通過模型擴(kuò)展的方法,建立一種安全工作流訪問控制模型ETRBAC。該模型在典型T-RBAC模型基礎(chǔ)上,提出了職責(zé)分離約束和基數(shù)約束等問題的解決方案。結(jié)合優(yōu)秀開源工作流管理系統(tǒng)Shark,設(shè)計(jì)并實(shí)現(xiàn)了ETRBAC模型中的相關(guān)安全機(jī)制,形成S-Shark(secure-Shark)工作流管理系統(tǒng)。S-Shark具有安全性、易用性和可擴(kuò)展性等優(yōu)勢。
關(guān)鍵詞:工作流;工作流管理系統(tǒng);訪問控制;授權(quán);約束
中圖分類號(hào):TP302.1文獻(xiàn)標(biāo)志碼:A
文章編號(hào):1001-3695(2009)04-1515-02
Design and implementation of S-Shark secure workflow management system
LIU Dinga,c,WANG Xiao-minga,b,F(xiàn)U Zheng-fanga,b,DOU Wen-yanga,b,c
(a.Institute of Intelligent Information Process Information Security,b.College of Computer Science, c.Education School of Nationalities, Shaanxi Normal University, Xi’an 710062, China)
Abstract:Considering the poor security mechanism in workflow management system, and with the method of improving workflow information model, this paper presented a security workflow access control model. Based on the traditional model T-RBAC, the new model resolved the separation of duty constraint and cardinality constraint. Finally the paper implemented a secure workflow management system S-Shark(secure-Shark). S-Shark system was designed based on Java open source project Shark system, in which ETRBAC model’s secure mechanisms come to truth. The S-Shark system provides high security, convenient and high expansibility.
Key words:workflow; workflow management; access control; authorization; constraint
當(dāng)前工作流技術(shù)應(yīng)用到越來越多的行業(yè)中,人們?cè)谙硎芄ぷ髁骷夹g(shù)帶來高效率的同時(shí),又不得不面對(duì)信息安全的挑戰(zhàn),畢竟工作流技術(shù)仍處于發(fā)展完善階段,其安全性仍有待加強(qiáng)。工作流管理聯(lián)盟(WfMC)制定的工作流安全規(guī)范[1]定義了工作流系統(tǒng)中的認(rèn)證、授權(quán)、訪問控制、數(shù)據(jù)保密性、數(shù)據(jù)完整性,可用性等概念,并對(duì)工作流系統(tǒng)應(yīng)具有的安全特性進(jìn)行了統(tǒng)一約定。訪問控制是構(gòu)建安全工作流系統(tǒng)重要技術(shù)之一。它是針對(duì)越權(quán)使用系統(tǒng)資源的防御措施,通過限制對(duì)關(guān)鍵資源的訪問,防止非法用戶的侵入或合法用戶的不慎操作而造成的破壞,從而保證系統(tǒng)資源受控地、合法地使用。當(dāng)前人們提出了不少有效的工作流訪問控制模型,并在此基礎(chǔ)上設(shè)計(jì)和產(chǎn)品化了眾多工作流管理系統(tǒng)軟件。但從安全角度來看,這些模型并不能滿足現(xiàn)實(shí)中的安全需求。究其根源,現(xiàn)有的工作流訪問控制模型在授權(quán)的合理性和有效性等方面存在不足。因此,在現(xiàn)有工作流系統(tǒng)訪問控制模型基礎(chǔ)上進(jìn)行安全性機(jī)制擴(kuò)展很有必要。
本文針對(duì)當(dāng)前訪問控制模型安全機(jī)制的不足,在保持現(xiàn)有基于任務(wù)—角色訪問控制模型(T-RBAC)特點(diǎn)的基礎(chǔ)上,提出擴(kuò)展的基于任務(wù)角色的訪問控制模型(ETRBAC)。該模型增加了面向用戶的任務(wù)分配(UTA)的功能,給出了面向用戶的職責(zé)分離和面向用戶的基數(shù)約束等問題的解決方案,能夠更好地滿足工作流信息模型的安全需求。本文從理論和實(shí)現(xiàn)兩個(gè)層次出發(fā),基于ETRBAC模型,以Enhydra Shark[2]系統(tǒng)為藍(lán)本,設(shè)計(jì)實(shí)現(xiàn)了一個(gè)安全工作流管理系統(tǒng)S-Shark。
1 ETRBAC模型形式化定義
工作流系統(tǒng)的訪問控制模型是當(dāng)前WfMC研究的重要課題之一。基于任務(wù)—角色的訪問控制模型[3]是目前研究的熱點(diǎn),然而該模型在權(quán)限管理方面存在過多約束。根據(jù)工作流系統(tǒng)訪問控制的特點(diǎn),在保持現(xiàn)有T-RBAC模型特點(diǎn)的基礎(chǔ)上,提出擴(kuò)展的ETRBAC模型[4],如圖1所示。
定義1 ETRBAC模型由如下元素構(gòu)成:
a)用戶集:U={u1,u2,…,un}。
b)角色集:R={r1,r2,…,rn}。
c)權(quán)限集:P={p1,p2,…,pn}。
d)任務(wù)集:T={t1,t2,…,tn}。
e)PTA (任務(wù)權(quán)限分配):PTAP×T,是多對(duì)多的關(guān)系。
f)PRA (權(quán)限角色分配):PRAP×R,是多對(duì)多的關(guān)系。
g)TRA (任務(wù)角色分配):TRAT×R,是多對(duì)多或一對(duì)多的關(guān)系。
h)URA(用戶角色分配):URAU×R,是多對(duì)多的關(guān)系。
i)UTA(用戶任務(wù)分配):UTAU×R,是多對(duì)多的關(guān)系。
j)角色層次RHR×R,是一個(gè)偏序關(guān)系≤,表示角色的等級(jí)關(guān)系。
k)用戶在執(zhí)行所有任務(wù)都必須激活的權(quán)限,稱為基本權(quán)限,記為pb∈P。基本權(quán)限pb通過PRA分配到角色。
為保證權(quán)限分配的合理性和角色的正確性,訪問控制中引入約束來規(guī)范權(quán)限的管理。定義合理的約束可以提高模型的有效性,然而約束數(shù)量不宜過多,否則會(huì)降低系統(tǒng)效率。在保證T-RBAC模型合理性和有效性的前提下,盡可能減少約束數(shù)量,是模型改進(jìn)的有效途徑。基于此原則,在ETRBAC模型中,增加了面向用戶的任務(wù)分配(UTA)來減少原模型中的約束數(shù)量。UTA分配主要解決以下問題:
a)面向用戶的基數(shù)約束
定義2 角色r允許分配的最大用戶數(shù)稱為r的基數(shù),記為cardinality(r)。一個(gè)角色對(duì)應(yīng)的用戶數(shù)受到限制,稱為面向用戶的基數(shù)約束。
規(guī)則1 r∈R,則|user(r)|≤cardinality(r),即角色所擁有的最大用戶數(shù)量不能超過角色的基數(shù)。
b)面向用戶的職責(zé)分離
定義3 兩個(gè)用戶之間存在著某種利益同盟關(guān)系,稱為利益相關(guān)用戶。用戶之間的利益同盟關(guān)系UCu×u′,對(duì)任意(u,u′)∈UC,表示u和u′之間存在著利益關(guān)系。
定義4 對(duì)于一組互斥任務(wù)(ti,tj),記為titj。在執(zhí)行的過程中不能由一個(gè)用戶或兩個(gè)利益相關(guān)的用戶執(zhí)行,稱為面向用戶的職責(zé)分離。
ETRBAC通過UTA直接將這些互斥任務(wù)分配給不同用戶可實(shí)現(xiàn)面向用戶的職責(zé)分離。
規(guī)則2 ti,tj∈T且titj,ui,uj∈UC且(ui,uj)UC,則系統(tǒng)通過UTA按要求將互斥任務(wù)(ti,tj)分配給兩個(gè)利益無關(guān)的用戶ui和uj執(zhí)行。
2 S-Shark工作流管理系統(tǒng)
Enhydra Shark完全是根據(jù)工作流管理聯(lián)盟規(guī)范實(shí)施的,用Java語言編寫的一種開源可擴(kuò)展功能的工作流引擎。Lutris公司在其開源網(wǎng)站www.enhydra.org上發(fā)布了Shark各個(gè)版本的可執(zhí)行程序和源代碼。Shark每個(gè)組件都是按照標(biāo)準(zhǔn)實(shí)施的,而且可被具體項(xiàng)目的模塊擴(kuò)展和替換。
本文設(shè)計(jì)實(shí)現(xiàn)的系統(tǒng)基于Shark1.1工作流管理系統(tǒng)為藍(lán)本,以該產(chǎn)品安全機(jī)制不足為研究對(duì)象,采取標(biāo)準(zhǔn)模塊化的設(shè)計(jì)思想,對(duì)Shark進(jìn)行系統(tǒng)安全機(jī)制的改進(jìn)和功能擴(kuò)展,設(shè)計(jì)并實(shí)現(xiàn)了具有高安全性的工作流管理系統(tǒng)S-Shark。新系統(tǒng)保留了原Shark系統(tǒng)的大部分功能,如包管理器、持久層服務(wù)、客戶端等功能模塊,增加并實(shí)現(xiàn)了面向用戶的職責(zé)分離約束、面向用戶的基數(shù)約束以及用戶任務(wù)的指派。
2.1 S-Shark系統(tǒng)設(shè)計(jì)原理
經(jīng)過對(duì)Shark系統(tǒng)發(fā)布的源代碼研究得知,Shark系統(tǒng)主要由內(nèi)核(kernel)和相關(guān)API構(gòu)成。其中內(nèi)核是由一系列的工作流實(shí)例接口構(gòu)成的接口集合,主要完成Shark的相關(guān)配置和運(yùn)行。SharkEngineManager是Shark引擎的控制室,它在Shark引擎內(nèi)部使用,Shark引擎的所有管理器都是由它產(chǎn)生的。
文中設(shè)計(jì)實(shí)現(xiàn)的S-Shark系統(tǒng),結(jié)合提出的ETRBAC模型,對(duì)Shark系統(tǒng)引擎的指派管理器(assignment)進(jìn)行了重新設(shè)計(jì)和實(shí)現(xiàn)。圖2是Shark指派管理器相關(guān)內(nèi)部類的UML關(guān)系圖,引擎控制室返回的是指派管理器的接口,對(duì)于這些API接口,可以方便地?cái)U(kuò)展它,只要用自己編寫的類繼承這些接口,就可以不動(dòng)Shark其他代碼而達(dá)到擴(kuò)展系統(tǒng)功能的目的。
2.2 S-Shark系統(tǒng)基數(shù)受限指派管理器實(shí)現(xiàn)
S-Shark基數(shù)受限指派管理器所達(dá)到的目標(biāo)功能是,實(shí)現(xiàn)面向用戶的基數(shù)約束,即執(zhí)行任務(wù)的用戶數(shù)量受到限制。實(shí)現(xiàn)過程部分代碼如下:
public class CardinalityAssignManager implements AssignmentManager{
public void configure(…); //對(duì)指派管理器進(jìn)行配置
public List getAssignments(…)//將活動(dòng)賦予用戶隊(duì)列userIds
{/*限制執(zhí)行活動(dòng)的用戶數(shù)量,數(shù)量可由管理員根據(jù)流程需要自行設(shè)定,這里設(shè)定為1*/
if(userIds!=10 return userIds; if(userIds!=1userIds()>2){ int i=userIds.size(); for(int j=0;j //從隊(duì)列中刪除多余用戶 userIds.remove(i-j-1); return userIds;} …}}} 通過繼承實(shí)現(xiàn)Shark系統(tǒng)AssignmentManager接口,編譯成功的S-Shark系統(tǒng)具備了ETRBAC模型中的基數(shù)約束。系統(tǒng)管理員可通過設(shè)置界面,如圖3所示,根據(jù)具體流程需要,設(shè)定參加任務(wù)的人員數(shù)量。 2.3 S-Shark系統(tǒng)面向用戶的職責(zé)分離實(shí)現(xiàn) 本文所實(shí)現(xiàn)的帶職責(zé)分離約束的S-Shark系統(tǒng)期望達(dá)到以下設(shè)計(jì)目標(biāo): a)實(shí)現(xiàn)面向用戶的職責(zé)分離約束。對(duì)于互斥用戶或利益相關(guān)用戶,在分配角色時(shí)限制它們同時(shí)分配給同一角色。 b)提供給管理員相應(yīng)的操作界面,管理員將沖突用戶填入數(shù)據(jù)庫相應(yīng)表中,S-Shark系統(tǒng)給用戶分配角色時(shí)通過訪問該表進(jìn)行約束限制。 實(shí)現(xiàn)面向用戶的職責(zé)分離約束的指派管理器在授權(quán)指派之前,通過訪問約束數(shù)據(jù)庫,達(dá)到職責(zé)分離功能的目的,如圖4所示。在ETRBAC模型中的職責(zé)分離遠(yuǎn)不局限于面向用戶的職責(zé)分離,還有面向角色和權(quán)限的職責(zé)分離。同理,這些約束的實(shí)現(xiàn)也是在約束數(shù)據(jù)庫中定義的。本文只實(shí)現(xiàn)了面向用戶的職責(zé)分離約束。實(shí)現(xiàn)過程部分代碼如下: public class SeparationOfDutyAssignManager implements AssignmentManager{ public void configure(…); //對(duì)指派管理器進(jìn)行配置 public List getAssignments(…){ //當(dāng)互斥用戶列表隊(duì)列為空,直接返回指派用戶ID if(userIds !=1userIds.size()>0conflictIds=1) return userIds;//當(dāng)互斥用戶列表隊(duì)列不為空 if(userIds!=1userIds.size()>0conflictIds.size()>0) {int i=userIds.size(); int j=conflictIds.size();/*比較互斥用戶隊(duì)列和指派隊(duì)列,沖突時(shí)從指派隊(duì)列中刪除該用戶ID*/ for(int x=0;x<=i;x++) for(int y=0;y<=j;y++){ if(conflictIds.getItem(y)= =userIds.getItem(x)){ userIds.remove(x); return userIds;} …}}} S-Shark系統(tǒng)實(shí)現(xiàn)的面向用戶的職責(zé)分離約束,要求管理員在實(shí)例化流程之前,通過對(duì)流程參與者進(jìn)行分析,在互斥數(shù)據(jù)庫中填寫相應(yīng)的用戶集。 3 結(jié)束語 在T-RBAC模型基礎(chǔ)上,提出一種擴(kuò)展的工作流訪問控制模型ETRBAC,有效解決了訪問控制模型中面向用戶的職責(zé)分離約束和面向用戶的基數(shù)約束等問題,為工作流管理系統(tǒng)提供了更加安全的信息交流平臺(tái)。在深入分析Shark源代碼和相關(guān)工作流規(guī)范基礎(chǔ)上,充分考慮了ETRBAC模型中的安全機(jī)制,實(shí)現(xiàn)了基于Shark內(nèi)核的安全工作流管理系統(tǒng)S-Shark。鑒于時(shí)間和能力所限,本文設(shè)計(jì)實(shí)現(xiàn)的S-Shark系統(tǒng)停留在實(shí)驗(yàn)級(jí)上,系統(tǒng)安全機(jī)制的完備性還有待于進(jìn)一步完善。 參考文獻(xiàn): [1] Workflow Management Coalition[EB/OL].http://www.wfmc.org. [2]Enhydra Shark project[EB/OL].http://www.enhydra.org/workflow/shark. [3]SEJONG O H,SEOG P.Task-role-based access control model[J].Information Systems,2003,28(6):533-562. [4]付爭方,王小明,劉丁,等.一種新的復(fù)雜信息系統(tǒng)訪問控制模型[J].計(jì)算機(jī)應(yīng)用研究,2007,24(8):42-44. [5]AALST Wvan der,HEE K van.工作流管理:模型、方法和系統(tǒng)[M].王建民,聞立杰,譯.北京:清華大學(xué)出版社,2004. [6]LI Hong-chen,YANG Yun,CHEN T Y.Resource constraints analysis of workflow specifications[J].Journal of System and Software,2004,73(3):271-285. [7]WU Sheng-li,SHETH A,MILLER J,et al.Authorization and access control of application data in workflow system[J].Journal of Intelligent Information Systems,2002,18(1): 71-94. [8]CHAARI S,BIENNIER F,BEN A C,et al.An authorization and access control model for workflow[J].IEEE Computer,2004,6(4):141-148.