李 陽,劉 更,王海偉,韓 冰
(西北工業(yè)大學(xué) 陜西省機(jī)電傳動與控制工程實(shí)驗(yàn)室,陜西 西安 710072)
工作流是為完成某一目標(biāo)而由多個相關(guān)任務(wù)構(gòu)成的業(yè)務(wù)流程,可在對人員和資源協(xié)調(diào)管理的基礎(chǔ)上實(shí)現(xiàn)處理過程的自動化。在產(chǎn)品研發(fā)過程中引入安全有效的工作流機(jī)制能夠更加便捷準(zhǔn)確地傳遞數(shù)據(jù),提高產(chǎn)品協(xié)同開發(fā)工作的效率。產(chǎn)品研發(fā)工作流往往涉及大量敏感信息,保證信息的安全性是產(chǎn)品研發(fā)工作流應(yīng)用的基礎(chǔ)。
訪問控制是實(shí)現(xiàn)安全工作流的重要組成部分。所謂訪問控制,即通過某種途徑顯式地準(zhǔn)許或限制用戶進(jìn)行訪問的能力和范圍,從而限制對關(guān)鍵資源的訪問,防止合法用戶的非法操作[1]。訪問控制的研究需要充分考慮應(yīng)用系統(tǒng)的特性,不存在能夠適應(yīng)任何應(yīng)用系統(tǒng)的訪問控制模型。在工作流系統(tǒng)中,隨著數(shù)據(jù)的流動,執(zhí)行操作的用戶在改變,用戶的權(quán)限也在改變,訪問決策與系統(tǒng)的上下文環(huán)境相關(guān)。為了貫徹安全機(jī)制的最小權(quán)限原則,工作流訪問控制的重要目標(biāo)是保持權(quán)限流與任務(wù)流同步[2]。目前,訪問控制的研究中最受關(guān)注的模型是THOMAS和SANDHU 提出的基于任務(wù)的訪問控制(Task-Based Access Control,TBAC)模 型[2]。鄧集波和洪帆給出了TBAC 模型的形式化定義[3],該模型的核心思想是將權(quán)限的有效性與任務(wù)及其狀態(tài)關(guān)聯(lián),具體做法是引入授權(quán)步的概念,通過授權(quán)步控制任務(wù)權(quán)限。工作過程可簡單描述為:當(dāng)任務(wù)開始運(yùn)行時,在授權(quán)步中完成任務(wù)權(quán)限的授予或激活;當(dāng)任務(wù)結(jié)束運(yùn)行時,撤銷或休眠執(zhí)行者的任務(wù)權(quán)限,從而保持權(quán)限流與任務(wù)流同步。
TBAC模型作為工作流訪問控制的基本模型得到了廣泛的討論和研究。廖旭等[4]針對產(chǎn)品生命周期管理系統(tǒng)對工作流的訪問控制需求,提出將角色和任務(wù)結(jié)合起來進(jìn)行授權(quán)的訪問控制模型;尹建偉等[5]針對TBAC 權(quán)限管理和實(shí)現(xiàn)機(jī)制不足的問題,在任務(wù)規(guī)則的基礎(chǔ)上提出一種增強(qiáng)權(quán)限約束支持的基于任務(wù)的訪問控制模型,總結(jié)了與權(quán)限相關(guān)的各種約束規(guī)則,魏永合等[6]提出基于圖的工作流訪問控制模型,該模型能夠直觀和準(zhǔn)確地描述工作流訪問控制,設(shè)定與任務(wù)相關(guān)的圖變換規(guī)則;翟治年等[7]針對TBAC控制粒度較粗的問題,提出任務(wù)狀態(tài)敏感的訪問控制模型,充分考慮了任務(wù)在不同狀態(tài)時的權(quán)限差異,在其后續(xù)的研究中[8]將任務(wù)和角色的關(guān)聯(lián)視為一種對象,作為授權(quán)的橋梁,可大幅度降低重復(fù)授權(quán)、提高授權(quán)的效率。
TBAC模型雖然能夠根據(jù)任務(wù)狀態(tài)及時地授予或者撤銷執(zhí)行任務(wù)所需的權(quán)限,但是并不能控制用戶如何使用這些權(quán)限。在產(chǎn)品研發(fā)工作中,工作流中某些任務(wù)的執(zhí)行時間較長,且工作人員往往同時擔(dān)任多項(xiàng)任務(wù)。在這種環(huán)境中,對任務(wù)相關(guān)權(quán)限的使用有更高的要求,例如:①在零件的設(shè)計(jì)過程中,執(zhí)行者應(yīng)被授予修改零件CAD 文件的權(quán)限,并要求該權(quán)限只能被用于零件設(shè)計(jì)任務(wù),而不能用于其他目的;②在初次執(zhí)行零件的設(shè)計(jì)任務(wù)時,執(zhí)行者擁有創(chuàng)建CAD 文件的權(quán)限,但是經(jīng)過仿真分析發(fā)現(xiàn)設(shè)計(jì)問題時,零件設(shè)計(jì)任務(wù)需要重復(fù)執(zhí)行,此時用戶只能對原有CAD 文件進(jìn)行修改,而不能再次創(chuàng)建文件,否則會造成數(shù)據(jù)凌亂。采用TBAC 模型的授權(quán)步進(jìn)行權(quán)限控制,只能保證用戶在特定的時間段內(nèi)使用權(quán)限,無法控制用戶如何使用這些權(quán)限。
將屬性概念貫穿到任務(wù)權(quán)限的定義、配置和使用的整個過程中,可以對權(quán)限控制提供更加豐富的約束,有助于解決上述問題。基于屬性的訪問控制(Attribute Based Access Control,ABAC)將與訪問控制相關(guān)的時間、空間、實(shí)體行為等信息作為主體、客體、權(quán)限和系統(tǒng)環(huán)境的屬性來統(tǒng)一建模,通過定義屬性之間的關(guān)系描述復(fù)雜的授權(quán)和訪問控制約束,能夠靈活地表達(dá)細(xì)粒度、復(fù)雜的訪問授權(quán)和訪問控制策略,增強(qiáng)訪問控制系統(tǒng)的靈活性和可擴(kuò)展性[9]。屬性可以從不同的視角描述實(shí)體,從而使ABAC 具備強(qiáng)大的表達(dá)能力[10-11]。然而,ABAC 尚不成熟,沒有形成統(tǒng)一的標(biāo)準(zhǔn),甚至沒有被廣泛認(rèn)同的屬性定義。文獻(xiàn)[12]在針對協(xié)同開發(fā)環(huán)境中的訪問控制研究中,分別對用戶和客體的屬性進(jìn)行了討論,但是對訪問控制中屬性的分析還不夠系統(tǒng)和全面。
本文針對產(chǎn)品研發(fā)工作流提出基于屬性和任務(wù)的訪問控制模型(A_TBAC)。對訪問控制中的屬性進(jìn)行定義,總結(jié)屬性應(yīng)滿足的性質(zhì),作為建立A_TBAC模型的基礎(chǔ)。在訪問控制模型中將進(jìn)程作為執(zhí)行訪問的直接主體,進(jìn)程代表用戶完成操作,提出包含任務(wù)及其狀態(tài)信息的任務(wù)步概念,使進(jìn)程和權(quán)限相關(guān)任務(wù)步的匹配關(guān)系成為權(quán)限使用的先決條件,在滿足權(quán)限流與數(shù)據(jù)流一致性要求的同時,將權(quán)限的使用范圍限制在完成任務(wù)所需的訪問中。
目前,ABAC尚未形成明確統(tǒng)一的概念,因此,本文首先給出屬性的定義,并分析屬性應(yīng)滿足的性質(zhì)。
定義1 訪控屬性。訪問控制用于為一定范圍內(nèi)的對象提供訪問控制服務(wù)的、可標(biāo)定對象某種性質(zhì)的、具有指定定義域的變量,其定義域應(yīng)是離散的、有限的。
任何對象的屬性都可認(rèn)為是無窮的,ABAC 中使用的屬性是能夠?yàn)樵L問控制服務(wù)提供支持的屬性,將用于訪問控制的屬性稱為訪控屬性。訪控屬性是變量,其實(shí)際取值需要在系統(tǒng)運(yùn)行時確定,并作為判斷訪問是否合法的基礎(chǔ)。屬性的定義域應(yīng)是離散的,訪問控制策略的制定者應(yīng)該能夠清楚地分辨屬性取值的含義。屬性定義域中包含的元素?cái)?shù)量必須是有限的,如果定義域中包含的元素過多,則將使訪問控制策略的制訂工作負(fù)擔(dān)過重,甚至難以完成。
對于某一訪控屬性ca,其所服務(wù)的對象集為O,ca的定義域?yàn)镈ca(v1,v2,…,vn),任一對象o與訪控屬性ca的所屬關(guān)系用符號“.”表示,依據(jù)上述定義,訪控屬性需要滿足下面兩個性質(zhì):
(1)非空性 ?o∈O,o.ca≠NULL。
(2)唯一性 ?o∈O,?vi,vj∈Dca,且vi≠vj,則(o.ca=vi∧o.ca=vj)=False。
其中:NULL表示空值,“∧”表示邏輯與,F(xiàn)alse表示邏輯假。非空性要求系統(tǒng)中的對象必須處于訪控屬性規(guī)定的某種狀態(tài);唯一性要求系統(tǒng)中的對象不能同時處于某一訪控屬性規(guī)定的兩種狀態(tài)。在根據(jù)某一訪控屬性進(jìn)行訪問決策時,非空性和唯一性保證訪問決策總能給出明確的判斷結(jié)果,即拒絕或接受。
例1 為了對權(quán)限的使用次數(shù)進(jìn)行控制,需要為權(quán)限增加“可使用次數(shù)(un)”這一訪控屬性,其定義域?yàn)?/p>
該定義域包括三個值,對于某一權(quán)限p,p.un=0表示權(quán)限p不能再使用,p.un=1表示權(quán)限p只能使用一次,p.un=*表示權(quán)限p可以使用多次。
式中Dun并不包含全體正整數(shù)。雖然任一正整數(shù)都能明確表明權(quán)限可以使用的次數(shù),但是過大的數(shù)值對安全管理員來說是難以處理的,例如,很難確定一個權(quán)限應(yīng)該使用100 次還是101 次。定義域Dun={0,1,*}的確定依據(jù)是不同操作(即創(chuàng)建、讀數(shù)、刪除)對數(shù)據(jù)存在性的影響:①數(shù)據(jù)最初并不存在,用戶只需創(chuàng)建一次,數(shù)據(jù)即已存在;②對于該數(shù)據(jù)的讀取操作無論執(zhí)行多少次,都不會改變數(shù)據(jù)的狀態(tài),而且無論用戶讀取1次或多次,其獲得的信息量均相同;③用戶對數(shù)據(jù)只需執(zhí)行一次刪除操作,數(shù)據(jù)即不再存在。
產(chǎn)品研發(fā)工作流的應(yīng)用對象是工作流實(shí)例。工作流系統(tǒng)中有工作流模板和工作流實(shí)例兩個重要的概念。工作流模板由多個任務(wù)組成,并指定了任務(wù)的執(zhí)行次序;工作流實(shí)例根據(jù)工作流模板生成,作用于具體的對象。一個工作流模板對應(yīng)多個工作流實(shí)例,產(chǎn)品研發(fā)工作流訪問控制的對象是工作流實(shí)例。例如,針對減速器噪聲分析定義的工作流模板,針對不同的減速器生成相應(yīng)的工作流實(shí)例,然而不同減速器的噪聲分析所處理的數(shù)據(jù)不同,參與人員也可能不同,因此可能采用不同的訪問控制策略。
A_TBAC模型如圖1所示,其中:權(quán)限集、用戶集、進(jìn)程集和任務(wù)步集是模型的基本元素,能夠滿足工作流訪問控制的基本要求;用戶屬性集、權(quán)限屬性集、約束集使模型能夠適應(yīng)更多的安全策略。
下面解釋模型中的元素和關(guān)系。小寫正體表示元素的符號,在討論元素之間的關(guān)系時,以元素對應(yīng)符號的斜體表示變量,以元素符號及其下標(biāo)表示一個具體實(shí)例。
(1)任務(wù)步:任務(wù)及其執(zhí)行狀態(tài)的二元組
任務(wù)(t)是工作流的最小元素,任務(wù)在其生命周期中存在多種狀態(tài)(s),如執(zhí)行狀態(tài)、掛起狀態(tài)、完成狀態(tài)等。在工作流系統(tǒng)中,任務(wù)狀態(tài)及其變遷規(guī)則是預(yù)先定義的[13]。任務(wù)與任務(wù)狀態(tài)的關(guān)系是多對多關(guān)系,一個任務(wù)存在多個狀態(tài),但在某一時刻,一個任務(wù)只能處于一個狀態(tài),一個狀態(tài)可以對應(yīng)多個任務(wù)。所有任務(wù)構(gòu)成任務(wù)集(T),所有狀態(tài)構(gòu)成狀態(tài)集(S),所有任務(wù)步(ts)構(gòu)成任務(wù)步集(TS)。集合T,S和TS滿 足
式中“×”表示集合的笛卡爾積。任務(wù)步的表達(dá)式定義為
式中t為任務(wù)的標(biāo)識符,在工作流系統(tǒng)中可采用任務(wù)ID,以保證任務(wù)標(biāo)識的唯一性。為了使表達(dá)更為清晰,后文以任務(wù)名稱作為任務(wù)標(biāo)識符。
(2)客體屬性:與客體相關(guān)的訪控屬性
訪問控制中的客體(o)是包含信息的被動實(shí)體,如文件、數(shù)據(jù)等。所有客體構(gòu)成客體集(O)。利用客體屬性能夠?qū)⒖腕w集劃分為多個子集。例如,客體屬性集中包括所屬域(dom)和密級(sec),則
{o|o.dom=“CAD”且o.sec=“秘密”}表示所屬域?yàn)椤癈AD”且密級為“秘密”的客體子集。
(3)權(quán)限:操作與客體的二元組
操作(h,本文用operation的近義詞handle的首字母表示操作)指對客體產(chǎn)生某種效果的作用方式,如讀、寫等。所有操作構(gòu)成操作集(H),所有權(quán)限(p)構(gòu)成權(quán)限集P。集合H,O和P滿足
權(quán)限集的表達(dá)以冪集的形式給出,說明權(quán)限可表現(xiàn)為集合。在現(xiàn)代信息系統(tǒng)中,由于數(shù)據(jù)種類繁多且數(shù)量巨大,難以針對每一個客體設(shè)置權(quán)限,權(quán)限一般表現(xiàn)為集合形式。
例2 權(quán)限p1:〈update,{o|o.dom=“CAD”且o.sec=“秘密”}〉的含義是,對所屬域?yàn)椤癈AD”且密級為“機(jī)密”的客體進(jìn)行修改(update)。
權(quán)限與任務(wù)步是多對多的關(guān)系,一個權(quán)限可能與多個任務(wù)步關(guān)聯(lián),一個任務(wù)步可能與多個權(quán)限關(guān)聯(lián)。通過權(quán)限與任務(wù)步的關(guān)聯(lián)使權(quán)限的有效性受到任務(wù)步的限制,從而保證工作流系統(tǒng)中權(quán)限流與任務(wù)流的一致。包含任務(wù)步信息的權(quán)限表示為
例3 包含任務(wù)步信息的權(quán)限p1[〈t=“齒輪系建?!?,s=“執(zhí)行”〉]的含義是,只有在任務(wù)“齒輪系建模”進(jìn)入“執(zhí)行”狀態(tài)且在完成該任務(wù)的工作中,才能對所屬域?yàn)椤癈AD”且密級為“機(jī)密”的客體進(jìn)行修改(update)。
(4)權(quán)限屬性:與權(quán)限相關(guān)的訪控屬性
權(quán)限屬性(pa)依據(jù)具體的訪問控制需求而設(shè)置,所有權(quán)限屬性構(gòu)成權(quán)限屬性集(PA)。例1中的屬性un(可使用次數(shù))即為一種控制權(quán)限使用的屬性。若存在pa1,pa2,…,pan,則包含這些屬性信息的權(quán)限表示為
權(quán)限與任務(wù)步之間存在匹配關(guān)系,這種關(guān)系可以從兩個方面解釋:①將授權(quán)步視為權(quán)限的屬性,要求權(quán)限只能在任務(wù)步相關(guān)的工作中使用;②每個授權(quán)步包含多個權(quán)限,這些權(quán)限是完成任務(wù)步相關(guān)工作時必需的權(quán)限,體現(xiàn)在任務(wù)—權(quán)限—用戶的配置工作中。式(5)采用了第一種解釋。
例4 權(quán)限p2:〈create,{o|o.dom=“CAD”且o.sec=“秘密”}〉[ts:〈“齒輪系建模”,“執(zhí)行”〉,un=1],其含義為:在完成任務(wù)“齒輪系建?!睍r,可以只創(chuàng)建一個“秘密”級的“CAD”文件。
(5)用戶:能夠在某個任務(wù)中承擔(dān)部分或全部工作的人力資源
所有用戶(u)構(gòu)成用戶集(U)。用戶與權(quán)限之間是多對多的關(guān)系,一個用戶可以被授予多個權(quán)限,一個權(quán)限可以被授予多個用戶。權(quán)限的授予可表示為函數(shù)
式中Boolean表示該函數(shù)返回一個布爾值,若函數(shù)返回True,則表示用戶u擁有權(quán)限p;若返回False,則表示授權(quán)失敗。
函數(shù)
表示用戶u是否擁有權(quán)限p。該函數(shù)返回一個布爾值,當(dāng)返回True時,表示用戶u擁有權(quán)限p;當(dāng)返回False時,表示用戶u不擁有權(quán)限p。
例5 表達(dá)式have(u1,p1[〈t=“齒輪系建模”,s=“執(zhí)行”〉])=True的含義是,用戶u1擁有權(quán)限p1,該權(quán)限只有在任務(wù)“齒輪系建模”進(jìn)入“執(zhí)行”狀態(tài)且用戶執(zhí)行的訪問用于完成該任務(wù)時,才能使用該權(quán)限。
(6)用戶屬性:與用戶相關(guān)的訪控屬性
所有用戶屬性(ua)構(gòu)成用戶屬性集(UA)。用戶與用戶屬性之間是多對多的關(guān)系。利用客體屬性能夠?qū)⒂脩艏瘎澐譃槎鄠€子集。例如,用戶屬性集中包括部門(dept)、角色(role)和密級(sec),則
表示所屬部門為“結(jié)構(gòu)強(qiáng)度部”、角色為“結(jié)構(gòu)工程師”,且密級為“機(jī)密”的用戶子集。
(7)進(jìn)程:具有獨(dú)立功能的程序關(guān)于某個數(shù)據(jù)集合的一次運(yùn)行,是代表用戶完成訪問的活動實(shí)體
進(jìn)程(proc)代表用戶完成訪問的過程,所有的進(jìn)程構(gòu)成進(jìn)程集(PROC)。進(jìn)程與任務(wù)步之間是一對一的關(guān)系,即在任一時刻,一個進(jìn)程只能與一個任務(wù)步關(guān)聯(lián)。用戶與進(jìn)程之間是一對多的關(guān)系,一個用戶能夠創(chuàng)建多個進(jìn)程,一個進(jìn)程只能屬于一個用戶。工作流中的進(jìn)程在執(zhí)行數(shù)據(jù)訪問時,應(yīng)提供其相應(yīng)的信息。進(jìn)程表示為
進(jìn)程的任務(wù)步信息說明該進(jìn)程是為完成相應(yīng)任務(wù)而創(chuàng)建的。
用戶在完成工作時,需要對數(shù)據(jù)集進(jìn)行大量訪問,這些訪問由進(jìn)程來完成,訪問的形式為
其含義是:由用戶u創(chuàng)建的進(jìn)程proc為完成任務(wù)t服務(wù),任務(wù)t此時的狀態(tài)為s,需要對客體o執(zhí)行操作h。
對于任意一次訪問accessi:〈proci[ui,〈ti,si〉],hi,oi〉,訪問是否成功,取決于用戶是否擁有相應(yīng)的權(quán)限,決策條件描述為
其中:Oj?O,hi=hj,oi∈Oj,ti=tj,si=sj。
例6 任務(wù)“齒輪系建?!边M(jìn)入“執(zhí)行”狀態(tài)后,用戶u1要對某一齒輪模型文件cadfile進(jìn)行修改,該文件滿足cadfile.dom=“CAD”且cadfile.sec=“機(jī)密”,用戶通過其創(chuàng)建的進(jìn)程進(jìn)行訪問:access1:〈proc1[u1,〈“齒輪系建?!?,“執(zhí)行”〉],update,cadfile〉。用戶擁有相應(yīng)的權(quán)限p1:〈update,{o|o.dom=“CAD”且o.sec=“秘密”}〉,滿足上述決策條件時,用戶u1能夠修改文件cadfile。
(8)約束:用于限制用戶權(quán)限配置的規(guī)則或條件
在為用戶分配權(quán)限的過程中,必須遵循一定的約束(c),這些約束的集合稱為約束集(C)。用函數(shù)
表示訪問控制中是否滿足某約束c。式中:Boolean表示該函數(shù)返回一個布爾值,True表示滿足約束,F(xiàn)alse表示不滿足約束。
訪問控制系統(tǒng)中,一種較重要的約束是職責(zé)分離約束(Separation of Duty,SoD),其目標(biāo)是將存在利益沖突的工作分配給不同的用戶完成,從而避免欺詐行為。職責(zé)分離約束包括兩種類型:①靜態(tài)職責(zé)分離約束(SSoD),該約束要求兩個沖突權(quán)限不能分配給同一用戶;②動態(tài)職責(zé)分離約束(DSoD),該約束允許將兩個沖突權(quán)限分配給同一用戶,但是在系統(tǒng)運(yùn)行時,該用戶只能選擇使用其中的一個權(quán)限。下面以靜態(tài)職責(zé)分離約束為例,說明約束在ATBAC模型中的作用。動態(tài)職責(zé)分離約束的實(shí)現(xiàn)在下文介紹。
例7 在某齒輪系的設(shè)計(jì)流程中,齒輪系的設(shè)計(jì)與齒輪系的靜力學(xué)分析應(yīng)由兩個不同的用戶完成,以保證設(shè)計(jì)的正確性,這兩個工作流對應(yīng)的權(quán)限分別為p1[〈t=“齒輪系建模”,s=“執(zhí)行”〉和p3[〈t=“齒輪系靜力學(xué)分析”,s=“執(zhí)行”〉,這兩個權(quán)限是互斥權(quán)限,不能同時授予同一用戶。當(dāng)存在
即用戶u1已經(jīng)擁有權(quán)限p1時,在用戶權(quán)限配置過程中,
在工作流訪問控制中存在大量的動態(tài)策略,這類策略需要在系統(tǒng)運(yùn)行時更新用戶的權(quán)限配置,如權(quán)限屬性的改變和動態(tài)職責(zé)分離策略,因此在建立工作流訪問控制系統(tǒng)實(shí)施機(jī)制之前,首先解釋本文所建立的實(shí)施機(jī)制中包含的一個重要元素——義務(wù)。
為了支持動態(tài)策略,借鑒XACML 中的義務(wù)概念[14],其動機(jī)是要求用戶在進(jìn)行特定的訪問后,由系統(tǒng)完成一些與用戶訪問相關(guān)的工作,如記錄日志、發(fā)送郵件等。本文將義務(wù)定義為事件、條件和響應(yīng)三元組
式中:事件(event)是進(jìn)程完成的某種操作;響應(yīng)(response)指事件發(fā)生后系統(tǒng)對權(quán)限配置的更新;條件(conditions)決定響應(yīng)是否執(zhí)行。
義務(wù)的格式為:
其中:event為事件的名稱;(x1,x2,…,xk)為事件的參數(shù);conditions為一些布爾表達(dá)式,只有全部滿足時,才執(zhí)行響應(yīng);response為一系列管理操作,這些管理操作將改變原有的用戶權(quán)限配置。需要指出的是,這種動態(tài)改變用戶權(quán)限配置的處理方式,需要在制訂授權(quán)策略時統(tǒng)籌考慮授權(quán)一致性和權(quán)限可達(dá)性。下面以動態(tài)職責(zé)分離約束的實(shí)施為例說明義務(wù)機(jī)制的作用。
例8 在減速器的設(shè)計(jì)工作流中,齒輪系結(jié)構(gòu)設(shè)計(jì)任務(wù)ta和齒輪系靜力學(xué)分析任務(wù)tb的執(zhí)行狀態(tài)滿足動態(tài)職責(zé)分離約束,即一個用戶可同時作為兩個任務(wù)步的執(zhí)行用戶,但是只能完成其中一個任務(wù)步,用Pa和Pb分別表示ta和tb執(zhí)行狀態(tài)所需的權(quán)限集,用戶u1為兩個任務(wù)的執(zhí)行用戶,則系統(tǒng)狀態(tài)可表達(dá)為
下面以user_perms(u)表示用戶u擁有的權(quán)限集;以函數(shù)Voidrevoke(u,p)表示收回用戶u擁有的權(quán)限p,該函數(shù)返回空值。
為了控制用戶對沖突權(quán)限的使用,設(shè)定下面的“義務(wù)”:
根據(jù)上述義務(wù),當(dāng)用戶u1執(zhí)行任務(wù)ta后,該用戶執(zhí)行tb任務(wù)的權(quán)限被全部收回,反之亦然。
需要指出的是,若任務(wù)步〈ta,“執(zhí)行”〉或任務(wù)步〈tb,“執(zhí)行”〉的執(zhí)行用戶集只包含用戶u1,則會出現(xiàn)權(quán)限不可達(dá)的情形。應(yīng)避免這種情形,故規(guī)定:
其中:?表示空集,||表示集合的長度。上述規(guī)定不考慮任務(wù)步的次序,若考慮任務(wù)步的次序,如齒輪系結(jié)構(gòu)設(shè)計(jì)任務(wù)ta先于齒輪系靜力學(xué)分析任務(wù)tb,則上述規(guī)定中的({user|have(user,Pa)=True}|>1可省略。
工作流訪問控制的實(shí)施機(jī)制如圖2所示。該實(shí)施機(jī)制首先將工作流管理系統(tǒng)與訪問控制系統(tǒng)進(jìn)行解耦。在定義階段,安全管理員通過訪問控制系統(tǒng)中的策略管理模塊,獲取工作流實(shí)例和用戶信息,并完成任務(wù)步—用戶—權(quán)限配置。在運(yùn)行階段,系統(tǒng)工作包括以下步驟:①創(chuàng)建任務(wù)相關(guān)的進(jìn)程,進(jìn)程包括當(dāng)前任務(wù)步和用戶的信息;②在進(jìn)程中產(chǎn)生的訪問請求首先經(jīng)過請求處理模塊,該模塊按照訪問控制系統(tǒng)規(guī)定的格式,將請求格式化;③訪問決策模塊接收訪問請求;④訪問決策模塊與策略管理模塊交互,檢查訪問是否合法;⑤訪問決策模塊將訪問請求和決策結(jié)果發(fā)送到工作流管理系統(tǒng)的業(yè)務(wù)邏輯模塊;⑥訪問決策模塊將訪問請求、決策結(jié)果和相應(yīng)的權(quán)限信息發(fā)送到義務(wù)模塊;⑦義務(wù)模塊根據(jù)預(yù)先定義的義務(wù)和當(dāng)前的權(quán)限使用信息,對現(xiàn)有的權(quán)限配置進(jìn)行修改。
下面以協(xié)同設(shè)計(jì)仿真平臺中的工作流訪問控制為例,說明本文模型在工作流管理系統(tǒng)中的應(yīng)用。
圖3所示為工作流權(quán)限管理的用戶權(quán)限配置界面。安全管理員在進(jìn)行用戶權(quán)限配置時,首先指定任務(wù)步所需的全部權(quán)限,并將這些權(quán)限授予滿足一定屬性條件的用戶。用戶權(quán)限配置是一個耗時的工作,為了提高用戶權(quán)限的配置效率,圖3中分別設(shè)置了流程實(shí)例級、任務(wù)級和任務(wù)狀態(tài)級的權(quán)限參考配置入口,安全管理員可直接引用已有的工作流權(quán)限配置方案。
在系統(tǒng)運(yùn)行階段,用戶通過工作流管理系統(tǒng)提供的任務(wù)執(zhí)行入口創(chuàng)建相應(yīng)的進(jìn)程,進(jìn)入任務(wù)處理窗口,如圖4所示。該窗口所屬的進(jìn)程包括任務(wù)步信息,合法用戶可在該任務(wù)運(yùn)行進(jìn)程中使用已配置的權(quán)限。用戶通過項(xiàng)目數(shù)據(jù)樹(用戶訪問入口)發(fā)送相關(guān)的訪問請求,訪問控制系統(tǒng)根據(jù)權(quán)限配置情況判別訪問是否合法。圖4中,系統(tǒng)響應(yīng)的用戶訪問請求包括數(shù)據(jù)瀏覽和模型修改。
工作流訪問控制中,為了保證任務(wù)流與權(quán)限流同步,傳統(tǒng)的做法為:當(dāng)任務(wù)開始運(yùn)行時,在授權(quán)步中完成任務(wù)權(quán)限的授予或激活;當(dāng)任務(wù)結(jié)束運(yùn)行時,撤銷或休眠執(zhí)行者的任務(wù)權(quán)限。本文將ABAC 融入工作流的訪問控制中,與現(xiàn)有的研究成果[12,14]相比,增加了進(jìn)程屬性和權(quán)限屬性,并將包括任務(wù)及其狀態(tài)信息的任務(wù)步作為進(jìn)程和權(quán)限的屬性,通過該屬性的匹配關(guān)系決定權(quán)限的有效性,在保證任務(wù)流與權(quán)限流同步的同時,將權(quán)限的使用范圍限制在完成任務(wù)所需的訪問中,并避免頻繁的授權(quán)操作。
在翟治年等的研究中[8-9],盡管仍然采用傳統(tǒng)方法保證任務(wù)流和權(quán)限流的同步,但是充分考慮了任務(wù)在不同狀態(tài)時的權(quán)限差異[8],細(xì)化了任務(wù)權(quán)限的控制粒度;將任務(wù)和角色的關(guān)聯(lián)視為一種對象[9],作為授權(quán)的橋梁,大幅度降低了重復(fù)授權(quán),提高了授權(quán)的效率。本文繼承文獻(xiàn)[8]的研究成果,考慮了任務(wù)不同狀態(tài)的權(quán)限差異,未采用將角色和任務(wù)作為樞紐的授權(quán)方式,而是將用戶屬性作為用戶篩選的依據(jù),從不同方面約束用戶,將角色視為用戶的一種屬性。而在用戶授權(quán)方面,本文未繼承文獻(xiàn)[9]的研究成果,僅在應(yīng)用實(shí)例中利用參考配置復(fù)制權(quán)限,從而降低了授權(quán)復(fù)雜性,但是這種做法需占用較多的存儲空間。另外,已有文獻(xiàn)僅考慮了靜態(tài)職責(zé)分離約束,而本文則考慮了動態(tài)職責(zé)分離約束,并提出義務(wù)機(jī)制以實(shí)施動態(tài)職責(zé)分離約束。
為了更好地控制產(chǎn)品研發(fā)工作流中的權(quán)限配置與使用,本文在對訪問控制系統(tǒng)中的屬性進(jìn)行定義和分析的基礎(chǔ)上,提出一個A_TBAC模型。模型將進(jìn)程作為權(quán)限使用的直接主體,將任務(wù)步視為進(jìn)程和權(quán)限的屬性,使進(jìn)程和權(quán)限的任務(wù)步匹配關(guān)系成為權(quán)限使用的先決條件,從而保證工作流系統(tǒng)中任務(wù)流與權(quán)限流的一致性,并保證權(quán)限只能在相應(yīng)的任務(wù)執(zhí)行過程中使用。權(quán)限屬性的設(shè)置可對權(quán)限的使用進(jìn)行更加詳細(xì)的控制。在本文所建立工作流訪問控制的實(shí)施機(jī)制中增加了義務(wù)模塊,用以支持動態(tài)的權(quán)限管理策略。最后通過在實(shí)際工程中的實(shí)施與應(yīng)用,說明該模型能夠滿足產(chǎn)品研發(fā)工作流的訪問控制需求。
[1]LI Fenghua,SU Mang,SHI Guozhen,et al.Research status and development trends of access control model[J].Acta Electronica Sinica,2012,40(4):805-813(in Chinese).[李鳳華,蘇铓,史國振,等.訪問控制模型研究進(jìn)展及發(fā)展趨勢[J].電子學(xué)報(bào),2012,40(4):805-813.]
[2]DENG Jibo,HONG Fan.Task-based access control model[J].Journal of Software,2003,14(1):76-82(in Chinese).[鄧集波,洪 帆.基于任務(wù)的訪問控制模型[J].軟件學(xué)報(bào),2003,14(1):76-82.]
[3]THOMAS R K,SANDHU R S.Task-based authorization controls:a family of models for active and enterprise-oriented authorization management[C]//Proceedings of the IFIP WG11.3 Workshop on Database Security.London,UK:Chapman&Holp,1997.
[4]LIAO Xu,ZHANG Li.Access control model for workflow management system for PLM[J].Computer Integrated Manufacturing Systems,2005,11(10):1367-1371(in Chinese).[廖旭,張 力.產(chǎn)品生命周期管理系統(tǒng)中工作流的訪問控制模型[J].計(jì)算機(jī)集成制造系統(tǒng),2005,11(10):1367-1371.]
[5]YIN Jianwei,XU Zhengqian,F(xiàn)ENG Zhilin,et al.Task-based access control model supported by enhanced permission constraints[J].Journal of Computer Aided Design &Computer Graphics,2006,18(1):143-149(in Chinese).[尹建偉,徐爭前,馮志林,等.增強(qiáng)權(quán)限約束支持的基于任務(wù)訪問控制模型[J].計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào),2006,18(1):143-149.]
[6]WEI Yonghe,WANG Cheng'en,LUO Xiaochuan.Access control model based on graph for workflow[J].Computer Integrated Manufacturing Systems,2009,15(5):925-931(in Chi-nese).[魏永合,王成恩,羅小川.基于圖的工作流訪問控制模型[J].計(jì)算機(jī)集成制造系統(tǒng),2009,15(5):925-931.]
[7]ZHAI Zhinian,XI Jianqing,LU Yahui,et al.An access control model with task-state sensitivity and its CPN simulation[J].Journal of Xi'an Jiaotong University,2012,46(12):85-91(in Chinese).[翟治年,奚建清,盧亞輝,等.任務(wù)敏感的訪問控制模型及其有色網(wǎng)仿真[J].西安交通大學(xué)學(xué)報(bào),2012,46(12):85-91.]
[8]ZHAI Z N,LU Y H,ZHANG P J,et al.Association-based active access control models with balanced scalability and flexibility[J].Computers in Industry,2014,65(1):116-123.
[9]WANG Xiaoming,F(xiàn)U Hong,ZHANG Lichen.Research progress on attribute-based access control[J].Acta Electronica Sinica,2010,38(7):1660-1667(in Chinese).[王小明,付 紅,張立臣.基于屬性的訪問控制研究進(jìn)展[J].電子學(xué)報(bào),2010,38(7):1660-1667.]
[10]JIN X,KRISHNAN R,SANDHU R.A unified attributebased access control model covering DAC,MAC and RBAC[C]//Proceedings of the 26th Annual IFIP WG11.3Conference on Data and Applications Security and Privacy.Berlin Germany:Springer-Verlag,2012.
[11]SMARI W W,CLEMENTE P,LALANDE J F.An extended attribute based access control model with trust and privacy:Application to a collaborative crisis management system[EB/OL].[2014-11-02].http://dx.doi.org/10.1016/j.future.2013.05.010.
[12]LI Yang,LIU Geng,WANG Haiwei.Access Control model based on role and attribute in collaborative development environment[J].Computer Integrated Manufacturing Systems,2014,20(6):1335-1341(in Chinese).[李 陽,劉 更,王海偉.協(xié)同開發(fā)環(huán)境中基于角色和屬性的訪問控制模型[J].計(jì)算機(jī)集成制造系統(tǒng),2014,20(6):1335-1341.]
[13]Workflow Management Coalition.The workflow reference model[Z].WfMC-TC00-1003,1997.
[14]OASIS.OASIS eXtensible access control markup language(XACML)[Z].Version 3.0,2010.