商錚,張斌
1.解放軍信息工程大學(xué)電子技術(shù)學(xué)院,鄭州 450004
2.河南省信息安全重點實驗室,鄭州 450004
面向業(yè)務(wù)流程訪問控制策略及決策優(yōu)化方法
商錚1,2,張斌1,2
1.解放軍信息工程大學(xué)電子技術(shù)學(xué)院,鄭州 450004
2.河南省信息安全重點實驗室,鄭州 450004
業(yè)務(wù)流程是為達到特定的價值目標而由不同的人共同完成的一系列活動,它們依照一定的業(yè)務(wù)邏輯和順序依次執(zhí)行。業(yè)務(wù)流程的應(yīng)用使得跨地區(qū)、跨組織的業(yè)務(wù)協(xié)作成為可能,其訪問控制作為業(yè)務(wù)流程安全的基本問題,一直是業(yè)務(wù)流程管理領(lǐng)域研究的熱點。
業(yè)務(wù)流程的開放性、協(xié)作性和分布式使其對訪問控制策略的要求較高,策略必須具備通用性和靈活性才能保證跨組織協(xié)同應(yīng)用的安全實施。文獻[1]利用OASIS標準XACML(Extensible Access Control Makeup Language)實現(xiàn)業(yè)務(wù)流程的訪問控制,具備通用性,但是沒有考慮權(quán)限委托的情況;文獻[2]基于XACML提出一種描述委托策略的方式,但這種方法增加了管理策略和管理請求,委托策略的實施相對復(fù)雜,且尚未考慮業(yè)務(wù)流程的狀態(tài)對策略判定的影響;文獻[3]提出了一種基于策略樹裁減的決策優(yōu)化方法,能夠根據(jù)請求的類型裁減原始策略樹,減少策略決策所需的時間,但是無法解決無效策略數(shù)量過多或委托策略比例過大時策略決策耗時的問題。
業(yè)務(wù)流程的訪問控制策略需要在支持委托、支持流程活動和提高決策效率等方面進行研究。本文提出一種適應(yīng)于業(yè)務(wù)流程的訪問控制實施框架,對XACML的策略模式進行了擴展,使其能夠描述委托策略,實現(xiàn)流程策略與業(yè)務(wù)流程狀態(tài)的關(guān)聯(lián),并且提出了兩種策略決策優(yōu)化方法提高策略決策效率。
XACML的核心標準提出了一種訪問控制策略實施框架,由策略執(zhí)行點、策略決策點、策略信息點、策略管理點和上下文處理器等組件組成。該框架只描述策略實施的基本過程,沒有針對業(yè)務(wù)流程的特點進行優(yōu)化,不能根據(jù)業(yè)務(wù)流程的執(zhí)行狀態(tài)對流程的策略進行管理,無法基于流程的狀態(tài)實施訪問控制。本文對上述框架進行了擴展,提出了一種面向業(yè)務(wù)流程的訪問控制策略實施框架,如圖1所示。
圖1 業(yè)務(wù)流程訪問控制實施框架圖
為保證業(yè)務(wù)流程狀態(tài)與訪問控制決策的相關(guān)性,本文在基本框架中引入了業(yè)務(wù)流程管理組件,該組件主要由三個部分組成:流程執(zhí)行引擎、流程策略管理點和流程狀態(tài)管理點。流程執(zhí)行引擎根據(jù)業(yè)務(wù)流程執(zhí)行代碼中制定的業(yè)務(wù)過程為業(yè)務(wù)流程的運行提供支持,選擇合適的活動執(zhí)行,改變流程的狀態(tài);流程策略管理點負責(zé)管理與活動相關(guān)的訪問控制策略,為活動的運行選擇合適的策略;流程狀態(tài)管理點根據(jù)流程的運行狀態(tài)修改流程中的相關(guān)參數(shù),為策略信息點提供狀態(tài)信息,作為訪問控制決策條件參與訪問控制決策。
框架的主要工作流程如下:
(1)流程執(zhí)行引擎解析業(yè)務(wù)流程的代碼(如BPEL文件等),并啟動業(yè)務(wù)流程實例,當(dāng)流程中一個活動運行完畢進入另外一個活動時,流程執(zhí)行引擎通知流程狀態(tài)管理點和流程策略管理點當(dāng)前流程的狀態(tài)變化;
(2)用戶向策略執(zhí)行點發(fā)送訪問請求;
(3)策略執(zhí)行點驗證請求的合法性,將該請求交由策略決策點進行決策;
(4)策略決策點從策略信息點獲取當(dāng)前上下文中用戶、服務(wù)和環(huán)境的屬性;
(5)策略管理點根據(jù)流程狀態(tài)和上下文中的實體屬性從策略庫中選取匹配的策略,交由策略決策點進行決策;
(6)策略決策點根據(jù)所獲得的策略,對是否接受請求進行判定,并將結(jié)果返回策略執(zhí)行點;
(7)策略執(zhí)行點收到判決結(jié)果,決定用戶能否訪問流程中的服務(wù)并返回結(jié)果。
XACML核心標準的策略模式不支持委托策略的描述,無法實現(xiàn)流程狀態(tài)與流程策略的關(guān)聯(lián),不能較好地適應(yīng)業(yè)務(wù)流程的訪問控制要求。本文增加了委托策略,將XACML訪問控制策略的自然語義描述為“(某主體宣稱),在流程的某個活動中,某主體以某種方式訪問資源”。面向業(yè)務(wù)流程的策略模式如表1所示:使用<xacml:PolicyIssuer>描述委托策略的委托者;<xacml:Condition>描述業(yè)務(wù)流程的任務(wù)條件;<xacml:Subject>描述訪問控制策略的主體或委托策略的受托人;<xacml:Resource>描述客體;<xacml:Environment>描述環(huán)境;<xacml:Action>描述訪問方式;<xacml:Obligations>作為描述可選項,描述策略執(zhí)行點除了權(quán)限允許和拒絕之外的操作。
表1 業(yè)務(wù)流程策略模式
在業(yè)務(wù)流程中,策略與流程活動的關(guān)系應(yīng)當(dāng)是多對一的,即每個流程活動可以有多個策略,而每條策略只能對應(yīng)一個活動。如果不指定每條策略所對應(yīng)的活動,那么在進行某一活動的策略匹配時,需要匹配所有策略,這樣增加了時間開銷,并且流程活動處于非執(zhí)行狀態(tài)時,用戶通過匹配策略,依然可能獲得權(quán)限,不能保證最小特權(quán)原則的實施。在表1所示的策略模式下,每條策略都通過<xacml:Condition>與流程相關(guān)聯(lián),在評估策略規(guī)則時,首先判定當(dāng)前業(yè)務(wù)流程實例的運行狀態(tài),如果當(dāng)前運行的活動與<xacml:Condition>中定義的活動相同,那么<xacml:Condition>的評估結(jié)果就為True,否則為False。當(dāng)評估結(jié)果為True且<Target>中的內(nèi)容與請求相符時,用戶獲得<Effect>中的權(quán)限;而當(dāng)評估結(jié)果為False時,返回結(jié)果NotApplicable,用戶無法獲得權(quán)限。另外,該策略模式引入了<PolicyIssuer>元素,用于表示策略的發(fā)布者,即權(quán)限的委托者,該元素是策略的可選項,如果一條策略中包含<PolicyIssuer>元素,則該策略為委托策略,否則為訪問策略。
根據(jù)上述定義,一個典型的業(yè)務(wù)流程訪問控制策略表示如下:
在進行訪問控制決策時,策略決策單元需要對整個策略集進行查找,當(dāng)策略規(guī)則數(shù)量眾多時,無效策略的數(shù)量也隨之增加,可能會引起拒絕服務(wù)攻擊[3]。本文提出逐步裁減法和信任關(guān)聯(lián)法,分別通過減少策略元素的比對次數(shù)和減少策略匹配的次數(shù)來提高策略決策的效率。
4.1 逐步裁減法
當(dāng)用戶提出訪問請求后,策略決策點根據(jù)請求中主體、客體和上下文等信息,與策略集的各個策略逐一匹配,策略集中的策略必須滿足一些條件才能作為有效策略與請求匹配,下面給出相關(guān)策略的定義。
定義1(相關(guān)策略)如果策略中的<Condition>評估結(jié)果為True,且<Target>中描述的內(nèi)容與請求相符,則稱這條策略為相關(guān)策略,否則稱為無關(guān)策略。
由于策略集中可能存在大量無關(guān)策略,策略匹配的效率受到了很大的影響,本文提出一種策略逐步裁減方法,其裁減過程如下:
(1)將請求分解為五個部分,分別為<Condition>、<Subject>、<Object>、<Environment>和<Action>。
(2)將請求中的<Condition>的內(nèi)容與各個策略中的<Condition>逐一進行比對,如果內(nèi)容相符,則保留該策略;否則從策略集中將該策略裁減形成新的策略集。
(3)依次比對元素<Subject>、<Object>、<Environment>和<Action>,每次比對的策略集都是上次比對裁減后形成的新策略集。
(4)最后一次比對后,策略集裁減完畢,裁減的結(jié)果為相關(guān)策略集。
下面舉例說明裁減的過程。
某網(wǎng)站訂單處理業(yè)務(wù)流程主要包括三個業(yè)務(wù)活動,每個用戶在業(yè)務(wù)活動中的權(quán)限是不同的,其策略集如圖2所示。假設(shè)當(dāng)業(yè)務(wù)流程運行到業(yè)務(wù)活動1時,某業(yè)務(wù)部員工向訂單查詢服務(wù)提出訪問請求,按照上述的策略裁減方法對圖2所示的策略集進行比對和裁減,裁減結(jié)果如圖3所示。在比對<condition>元素時,由于Rule4、Rule5、Rule6、Rule8和Rule9中<condition>所定義的業(yè)務(wù)活動不是業(yè)務(wù)活動1,因此將它們作為無效策略進行裁減,這些規(guī)則在下次比對時,將不再出現(xiàn);同理,比對<Subject>時,裁減Rule3和Rule7,比對<Object>時,裁減Rule2。逐步裁判法所得的最終策略樹如圖3(d)所示。
逐步裁減法通過對策略逐步裁減,實現(xiàn)了無關(guān)策略的消除,克服了現(xiàn)有方法PathStack和TwigStack等在匹配過程中產(chǎn)生大量無效結(jié)果的缺點。假設(shè)策略集中共有n個葉子節(jié)點,匹配每個節(jié)點的時間為t,那么原有方法的匹配時間為5nt。采用逐步裁減法后,每次比對裁減后策略集中的節(jié)點數(shù)目都在減少,設(shè)每次策略裁減后策略集中葉子節(jié)點的數(shù)量分別為n1、n2、n3和n4,那么匹配時間變?yōu)閚t+n1t+n2t+n3t+n4t,由于n≥n1≥n2≥n3≥n4,則5nt≥nt+n1t+n2t+n3t+n4t,逐步裁減法減少了策略元素比對的次數(shù),提高了策略匹配的效率。
圖3 策略樹逐步裁減過程
4.2 信任關(guān)聯(lián)法
由于在XACML核心標準中沒有委托策略,所有的策略都是可信的。由于委托者只能將自己的全部或者部分權(quán)限委托給受托者,只有在委托者具備權(quán)限的基礎(chǔ)上才能實施委托,因此委托策略可信與否取決于委托者是否具備權(quán)限,下面給出可信策略的定義:
定義2(可信策略)如果一個策略中不包含<PolicyIssuer>元素,那么該策略是可信的;如果策略中包含<PolicyIssuer>元素,且<PolicyIssuer>元素所指示的用戶具備<Target>元素中所描述的權(quán)限,那么該策略為可信策略,否則為非可信策略。
文獻[2]將策略進行了分類,引入了管理策略和訪問策略,其中管理策略用于指定用戶可以委托權(quán)限的范圍,策略判定時,如果匹配的策略是一條非可信策略,則建立一個策略請求,通過匹配與該請求相符的管理策略來判斷策略是否可信。這種方法增加了策略的類型和數(shù)量,且需要建立管理請求。本文提出一種基于權(quán)限檢查的方法,當(dāng)與訪問請求匹配的策略是一條委托策略時,不能立即判定請求,應(yīng)先判定<PolicyIssuer>中指示的用戶是否具備權(quán)限,需要重新在策略集中查找一條策略,該策略指示<PolicyIssuer>中指示的用戶具備權(quán)限。該方法與文獻[2]的方法相比,無需增加策略的類型,無需提出管理請求,而是通過重新生成訪問請求判定策略的發(fā)布者是否具備權(quán)限。
假設(shè)一個用戶的請求如下:
該請求表示一個角色為“teacher”的用戶請求以“read”的方式訪問資源“document No.123”。如果與這個用戶請求匹配的策略是一條委托策略,該策略中元素<PolicyIssuer>的值為用戶Alice,需要重新生成一個訪問請求,格式如下:
定義3(源策略)根據(jù)一個非可信策略的<PolicyIssuer>元素重新提出訪問請求,與該請求匹配的策略是該非可信策略的源策略。
如果一條委托策略的源策略依然是一條委托策略,則需繼續(xù)構(gòu)造新的訪問請求,直到匹配到一條訪問策略,如果最后未匹配到訪問策略,那么與初始請求匹配的委托策略不能作為允許或拒絕用戶請求的依據(jù)。判定一個策略是否可信的過程相當(dāng)于委托鏈的追溯過程,如果找到了原始委托者且該委托者具備請求的權(quán)限,那么策略是可信的。
本文提出一種為委托權(quán)限指示信任來源的方法,該方法在<Target>中添加一個元素<TrustSource>,其取值可能為None、Indeterminate或源策略ID。None表示策略不可信;Indeterminate表示策略的可信性不確定;而如果<Trust-Source>的值為源策略ID,且源策略是可信的,那么該策略就是可信的。
在策略匹配時,如果匹配到的策略<TrustSource>的值為None,則將該策略裁減;如果<TrustSource>的值為源策略的ID,則需要驗證源策略的可信性,如源策略是可信的,則無需再匹配策略;如果源策略不存在或不可信,或者<TrustSource>的值為Indeterminate,則需要重新提出一個請求,驗證原始策略的可信性;如果驗證的結(jié)果是可信的,則將<TrustSource>的值置為源策略ID,如驗證的結(jié)果是不可信的,則將<TrustSource>的值置為None。增加信任關(guān)聯(lián)后,如果與訪問請求匹配的策略是一條委托策略,則該委托策略的可信與否完全取決于它的源策略是否可信,不需要重新生成訪問請求并進行策略匹配,極大地提高了策略決策的效率。
為了驗證信任關(guān)聯(lián)法的性能,本文測試了該方法在公文處理業(yè)務(wù)流程中的應(yīng)用。通過在公文處理業(yè)務(wù)流程中提交擬稿、修改、簽署、審核和公示等活動的Web服務(wù)上設(shè)立策略執(zhí)行點,并制定公文處理的訪問控制策略,分析在增加了信任關(guān)聯(lián)方法后,策略決策的效率。實驗采用Java-based XACML editor編寫策略,采用XACML.NET的策略評估引擎實現(xiàn)策略決策,使用.NET中System.Xml命名空間下的查詢函數(shù)編寫策略查找代碼,實現(xiàn)信任關(guān)聯(lián)方法。測試中,由于各個活動安全需求不同,其策略的組成也不一樣。其中簽署活動安全需求較高,其策略中不包含委托策略,全部是訪問策略,而提交擬稿活動和修改活動中委托策略的比例較高。測試中假定所有的委托策略都是可信的,且<TrustSource>元素的值都指向源策略ID。
測試方法如下:
(1)隨機生成一條可被匹配的訪問請求。
(2)如果匹配該請求的是訪問策略,則直接判定該請求,如果匹配該請求的是委托策略,則使用兩種方法進行對比。原方法重新生成新的訪問請求,并進行策略匹配,直到找到一條訪問策略,并判定請求。信任關(guān)聯(lián)法獲取源策略ID,根據(jù)源策略的可信性選擇是否允許請求。
(3)重復(fù)以上實驗100次,并取策略決策時間的平均值。
測試結(jié)果如圖4所示。
圖4 信任關(guān)聯(lián)法時間性能對比
由于在提交擬稿和公文修改活動中委托策略的比例較大,策略決策時匹配到委托策略的概率也較大。原方法在匹配到委托策略時,需要再次進行策略匹配以驗證策略的可信性。再匹配的結(jié)果仍有很大的概率為委托策略,可能需要多次策略匹配,直到匹配到一條訪問策略為止。如果采用信任關(guān)聯(lián)法,當(dāng)匹配到委托策略時,無需再次匹配策略,直接通過驗證源策略的可信性來判斷委托策略的可信性。在以上兩個活動中,信任關(guān)聯(lián)法能夠減少策略匹配的次數(shù),顯著提高策略決策的效率。在公文審核和公文公示活動中委托策略的比例較小,公文簽署活動中沒有委托策略,出現(xiàn)多次策略匹配的概率較小,兩種方法在這些活動中所消耗的時間基本相同。以上分析說明,當(dāng)策略集中委托策略數(shù)量較多時,信任關(guān)聯(lián)法能夠提高委托策略的決策效率,在一定程度上滿足了業(yè)務(wù)流程訪問控制決策實時性的要求。
針對業(yè)務(wù)流程的訪問控制策略需求,提出了一種擴展的訪問控制策略執(zhí)行框架,并對XACML策略的自然語義進行擴充,使其能夠描述委托策略,并且與流程中的活動相關(guān)聯(lián)。由于在策略集中可能存在大量策略,并且委托策略的可信性需要驗證,會大大影響策略匹配的效率,本文提出兩種策略決策優(yōu)化方法,其中逐步裁減法能夠減少策略元素比對次數(shù),信任關(guān)聯(lián)法可建立策略可信鏈,減少策略匹配的次數(shù)。本文方法可為業(yè)務(wù)流程提供靈活、可委托、與流程狀態(tài)相關(guān)的訪問控制策略,能較好地滿足業(yè)務(wù)流程的訪問控制需求。
[1]Paci F,Bertino E,Crampton J.An access control framework for WS-BPEL[J].International Journal of Web Services Research,2008,5(4):20-43.
[2]Rissanen E,Lockhart H,Moses T.XACML3.0 administrative policy[EB/OL].(2009-04)[2012-01].http://www.oasis-open.org/ committees/tc-home.php?wg_abbrev=xacml.
[3]李曉峰,馮登國,何永忠.XACML Admin中的策略預(yù)處理研究[J].計算機研究與發(fā)展,2007,44(5):729-736.
[4]李曉峰,馮登國,徐震.基于擴展XACML的策略管理[J].通信學(xué)報,2007,28(1):103-110.
[5]OASIS.Extensible Access Control Markup Language(XACML)V3.0[EB/OL].(2009-04)[2012-01].http://docs.oasis-open.org/ xacml/3.0/xacml-3.0-core-spec-cd-1-en.pdf.
[6]劉曉玲,湯庸,冀高峰,等.基于TBAC的BPEL訪問控制技術(shù)研究[J].計算機科學(xué),2007,34(2):132-136.
[7]葉春曉,韓永征,胡海波.“Chinese Wall”安全策略中的委托研究[J].計算機工程與應(yīng)用,2011,47(29):121-123.
[8]葉春曉,吳中福,符云清,等.基于屬性的擴展委托模型[J].計算機研究與發(fā)展,2006,43(6):1050-1057.
SHANG Zheng1,2,ZHANG Bin1,2
1.Institute of Electronic Technology,PLA Information Engineering University,Zhengzhou 450004,China
2.Henan Province Key Laboratory of Information Security,Zhengzhou 450004,China
By analyzing the requirements of access control for business process,an extended enforcement framework that supports policy management based on state of business process is proposed.By introducing element<PolicyIssuer>and defining semantic of element<Condition>in policy schema,access control policy and delegation policy can both be described and least privilege at task level can be achieved.In order to reduce time cost of policy decision in case that numbers of unrelated policies and delegation policies are large,two methods which can reduce the numbers of matching policies and policy elements are proposed.
Extensible Access Control Makeup Language(XACML);access control;business process;policy;delegation
在分析業(yè)務(wù)流程訪問控制策略需求的基礎(chǔ)上,對經(jīng)典的XACML策略實施框架進行了擴展,提出一種能夠根據(jù)業(yè)務(wù)流程執(zhí)行狀態(tài)管理策略的實施框架。通過在策略模式中引入<PolicyIssuer>元素和定義<Condition>元素的語義,使其能夠描述訪問策略和委托策略,并支持任務(wù)級最小特權(quán)的實現(xiàn)。給出了兩種策略決策優(yōu)化方法,針對策略集中無效策略數(shù)量過多的問題,采用逐步裁減法減少策略元素比對的次數(shù),針對策略集中委托策略數(shù)量過多且需要驗證可信性的問題,采用信任關(guān)聯(lián)法減少策略匹配的次數(shù),有效地提高了策略決策的效率。
XACML策略;訪問控制;業(yè)務(wù)流程;策略;委托
A
TP393
10.3778/j.issn.1002-8331.1201-0053
SHANG Zheng,ZHANG Bin.Access control policy for business process and its optimal methods in policy decision.Computer Engineering and Applications,2013,49(19):83-87.
國家重點基礎(chǔ)研究發(fā)展規(guī)劃(973)(No.2011CB311801);河南省科技人才創(chuàng)新計劃(No.114200510001)。
商錚(1986—),男,碩士研究生,主要研究領(lǐng)域為信息安全;張斌(1969—),男,博士,教授。E-mail:shangz302@163.com
2012-01-15
2012-04-06
1002-8331(2013)19-0083-05
CNKI出版日期:2012-06-28http://www.cnki.net/kcms/detail/11.2127.TP.20120628.1413.001.html