999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

工作流管理中基于規(guī)則策略的訪問控制

2008-01-01 00:00:00焦振海丁二玉
計算機應(yīng)用研究 2008年3期

摘要:提出了一個工作流管理中基于規(guī)則策略的訪問控制模型,給出了規(guī)則模型的集合表達和定義,重點分析了規(guī)則解釋器的實現(xiàn)和關(guān)鍵算法,最后給出了一個應(yīng)用。

關(guān)鍵詞: 工作流管理系統(tǒng); 訪問控制; 基于角色的訪問控制; 規(guī)則表達式

中圖分類號:TP309文獻標(biāo)志碼:A

文章編號:1001-3695(2008)03-0885-03

工作流管理系統(tǒng)是一個快速發(fā)展的領(lǐng)域,它使用戶可以設(shè)計、分析、執(zhí)行和監(jiān)控其業(yè)務(wù)過程,對流程進行高效管理。隨著工作流管理系統(tǒng)的應(yīng)用日趨廣泛,其安全問題引起了人們越來越多的關(guān)注。信息安全的基本服務(wù)為認(rèn)證、機密性、訪問控制、數(shù)據(jù)完整和不可否認(rèn),受保護的數(shù)據(jù)有工作流控制數(shù)據(jù)、工作流相關(guān)數(shù)據(jù)和工作流應(yīng)用數(shù)據(jù)。本文關(guān)注的是應(yīng)用數(shù)據(jù)的訪問控制保護。

當(dāng)前在工作流管理系統(tǒng)中進行應(yīng)用數(shù)據(jù)訪問控制的主要是RBAC機制。為了實現(xiàn)與業(yè)務(wù)邏輯相關(guān)的細(xì)粒度權(quán)限控制,通用做法是提供一種上下文敏感的能夠擴展到較細(xì)粒度的訪問控制模型。例如,文獻[1]通過向工作流引擎提交角色屬性認(rèn)證的方法,提出了一種在不影響現(xiàn)有網(wǎng)絡(luò)工作流系統(tǒng)的前提下使用RBAC的實驗框架,保證了任務(wù)和過程只能由限定的用戶完成。文獻[2]將訪問許可歸結(jié)為實體之間的沖突,提出了沖突實體管理范式(conflicting entities administration paradigm,CoAP),很好地解決了工作流環(huán)境中的責(zé)任分離問題。在細(xì)化控制目標(biāo)粒度、歸納訪問控制約束、擴展RBAC模型以適應(yīng)對工作流應(yīng)用數(shù)據(jù)嚴(yán)格保護的過程中,人們做了很多有意義的工作。例如,文獻[3]從一個醫(yī)護領(lǐng)域的例子出發(fā),提出了工作流系統(tǒng)中基于謂詞表達式的訪問控制模型。文獻[4]中定義了一種以邏輯程序檢查授權(quán)規(guī)約的語言,并基于該語言提出了角色分配計劃算法。該算法得到一個將角色和用戶分派到不同任務(wù)的計劃,從而滿足相關(guān)的訪問許可。文獻[5]將工作流看做綁定了授權(quán)規(guī)約的任務(wù)集合的視圖,認(rèn)為訪問控制的各種規(guī)約可以由通用形式即分配規(guī)約(entailment constraint)表示,從而將工作流管理信息和訪問控制信息更好地結(jié)合起來。文獻[6]給出了如何利用應(yīng)用程序中的上下文信息作出訪問控制判斷的抽象描述,并以一種面向?qū)ο蟮恼Z言為例實現(xiàn)了與上下文相關(guān)的細(xì)粒度權(quán)限的限制。這些研究通常以特定的應(yīng)用場景為出發(fā)點,使用不同的實現(xiàn)形式如謂詞表達式[3]、規(guī)約定義語言[4]、分配規(guī)約[5]、上下文約束[6]等,很好地解決了權(quán)限分離的問題。但是工作流管理系統(tǒng)中的業(yè)務(wù)規(guī)則千差萬別,通常不能使用語言或算法等方法進行一般化處理,需要一個具有更強表達能力的系統(tǒng)來表示各種復(fù)雜的授權(quán)。

筆者認(rèn)為各種訪問許可規(guī)則均可以被抽象為規(guī)則表達式,由此提出了一個工作流管理中基于規(guī)則策略的訪問控制模型,將訪問許可規(guī)則從工作流管理系統(tǒng)中分離出來,構(gòu)建了一個相對獨立的規(guī)則表達式系統(tǒng)模型,從而提供靈活、

獨立、可復(fù)用的授權(quán)規(guī)則管理。

1規(guī)則模型

1.1工作流訪問控制模型

基于角色的工作流環(huán)境中,訪問控制模型一般定義為[7,8]

M={roles,users,sessions,permissions,tasks,process}。

該多元組中的元素為:

roles表示角色集合,通常指在一個組織背景下的職能,根據(jù)授權(quán)附有相關(guān)語義;

users表示用戶集合;

sessions表示會話集合,它是用戶使用系統(tǒng)的特定實例,定義了一個活動角色的子集;

OBJS表示對象的集合;

OPS表示對對象實施訪問操作的集合,如創(chuàng)建、修改、刪除、查看、更新等;

permissionsOBJS×OPS表示權(quán)限集合,是對象與操作之間的多對多關(guān)系;

tasks表示一個工作流中任務(wù)的集合;

process=2tasks表示業(yè)務(wù)流程,它是由若干任務(wù)組成的集合。

1.2規(guī)則模型的集合表達

在工作流訪問控制模型的基礎(chǔ)上,參照RBAC標(biāo)準(zhǔn)[9],本文定義規(guī)則模型為

M={operands,operators,rules}。

該多元組中的元素為:

constants是常量集合;

attributes是實體對象的安全屬性集合,環(huán)境變量看做是sessions的安全屬性;

operands=constantsuattributes表示操作數(shù)集合;

operators表示運算符集合,包括比較運算符、集合運算符、布爾運算符等;

domain(oprnd:operands)是獲得操作數(shù)運算的值域的函數(shù);

domain(oprtr:operators)是獲得操作符運算的值域的函數(shù);

rules=2operands×operators, c∈rules: c|→{(oprnd1,…, oprndsx,oprtr)| oprnd1,…, oprndsx∈operands,oprtr∈operators}∧{domain(oprnd1)∪…∪ domain(oprndsx)domain(oprtr)},表示規(guī)則集合;

permissionAssignmentspermissions×roles表示角色與權(quán)限的多對多分配關(guān)系;

userRoleAssignmentsusers×roles表示用戶與角色的多對多關(guān)系;

taskParticipantstasks×roles表示角色參與完成任務(wù)的多對多關(guān)系;

taskAssignmentstasks×users表示任務(wù)分配到用戶的多對多關(guān)系;

authentications={permissions, permissionAssignments, userRoleAssignments, taskParticipants,taskAssignments }是工作流實體之間的關(guān)系,統(tǒng)一稱之為授權(quán);

constraintedAuthentica ̄tionsauthentications×rules表示受規(guī)則約束的授權(quán)。

在這個定義下,工作流可以看做是一組有序的taskParticipant的集合,訪問控制可以看做對授權(quán)authentications的規(guī)則約束檢查,即是否限制在constraintedAuthentications中。從文獻[10]中的論述可以看到,各種策略規(guī)則可以形式化為操作數(shù)集合上的關(guān)系、集合與布爾運算和訪問許可位元(permission bit)的配對,表示對任務(wù)分配和對象訪問的允許或禁止。

1.3規(guī)則的定義

本文對規(guī)則模型中具體授權(quán)規(guī)則的定義如下:

operands:

〈wfEntity〉 ::= 〈atomVariable〉|〈wfFun〉 ′(′ 〈wfEntity〉 {,〈wfEntity〉} ′)′

〈wfSet〉 ::= 〈setVariable〉|′(′ 〈wfEntity〉 {,〈wfEntity〉} ′)′

operators:

〈compareExp〉 ::= 〈wfEntity〉 〈comOp〉 〈wfEntity〉

其中:〈ComOp〉 ::= ′=′ | ′<>′ | ′>′ | ′≥′ | ′<′ | ′≤′

〈setExp〉 ::= 〈wfEntity〉 〈elementOp〉〈 wfSet〉 | 〈wfSet〉 〈setOp〉 〈wfSet〉

其中:〈elementOp〉 ::=′∈′|′′,〈setOp〉 ::= ′′|′′|′′

〈andExp〉 ::= 〈rule〉 ′and′ 〈rule〉

〈orExp〉 ::= 〈rule〉 ′or′ 〈rule〉

〈notExp〉 ::= ′not′ 〈rule〉

rules:

〈rule〉 ::= 〈compareExp〉| 〈setExp〉 | 〈andExp〉 | 〈orExp〉 | 〈notExp〉

一條規(guī)則是比較、集合或布爾運算的一種。規(guī)則可以由工作流實體之間的比較運算獲得,也可以由實體和實體集合以及實體集合之間的集合運算獲得,還可以對規(guī)則進行布爾運算以產(chǎn)生新的規(guī)則。

采用這個規(guī)則表達式定義可以充分滿足復(fù)雜授權(quán)規(guī)則的需求。例如規(guī)則R1,如果一個當(dāng)前角色為“申請登記”的用戶U執(zhí)行了任務(wù)T1,那么他不能執(zhí)行任務(wù)T2,可以表示為 P(R1)=not(((u|→t1) ∈taskRoleParticipant)∧((u|→t2)∈taskRoleParticipant)∧((u|→Rregister)∈userRoleAssignments))。

2規(guī)則解釋器的實現(xiàn)

本文中使用規(guī)則解釋器實現(xiàn)訪問控制模型,從而提供細(xì)粒度、可復(fù)用的授權(quán)規(guī)則管理。模型實現(xiàn)如圖1所示。

圖1Rule解釋器

圖1中rule類是一個抽象表達式類,抽象表達式聲明了一個抽象的規(guī)則解釋操作。其中:_conflictEntities是實體變量wfEntity的集合,它定義了對應(yīng)規(guī)則的沖突實體集,由一個hash_map模板容器類實現(xiàn)。Rule的兩個主要成員函數(shù):a)是求值函數(shù)evaluate,即在某個上下文環(huán)境中計算rule的值。Rule中的變量在規(guī)則解釋時由上下文對象context根據(jù)當(dāng)前rule涉及的工作流實體wfEntity或?qū)嶓w集合wfSet進行賦值。b)替換函數(shù)replace,即用一個規(guī)則替代其他規(guī)則中的一個變量以產(chǎn)生新的規(guī)則,從而可以表示復(fù)雜多變的授權(quán)規(guī)則。

Context是一個全局類,表示運行解釋時所需的上下文實例,如當(dāng)前用戶、執(zhí)行的任務(wù)、執(zhí)行的操作以及操作對象和其他環(huán)境變量等。運行時為了將對象OBJS的操作OPS和規(guī)則表達式中的操作數(shù)關(guān)聯(lián),筆者使用了一種稱為對象信息映射的機制。這種機制對于所有的工作流實體和應(yīng)用對象都實現(xiàn)了一個注冊方法,每個注冊方法都會對應(yīng)于一個規(guī)則系統(tǒng)中的一個操作數(shù)。例如,在對象操作OPS中,對象屬性對應(yīng)規(guī)則表達式中的簡單操作數(shù),對象函數(shù)對應(yīng)規(guī)則表達式中的復(fù)雜操作數(shù),從而建立了從對象操作OPS到規(guī)則運算表達式操作數(shù)的映射。相關(guān)的規(guī)則運算將會限制在對象OBJS這個抽象層次上。

WfEntity可以是rule中的一個變量t,也可以是一個常量,如某個任務(wù)T1,還可以作為實體函數(shù)wfFun的參數(shù)或結(jié)果。WfSet是wfEntity的集合,它可以是一個實體函數(shù)wfFun的返回值,也可以是一個集合常量。

RuleAtomOperand是一個抽象表達式的操作數(shù),作為抽象表達式rule的子類compareExp或setExp的成員變量被實現(xiàn)。RuleSetOperand是若干ruleAtomOperand的集合,用于完成集合運算終結(jié)符的解釋。

CompareExp表示wfEntity之間的比較表達式。WfEntity的比較包括是否相等,對應(yīng)于定義中的“=”“<>”;對于角色實體來說還有可能表示繼承關(guān)系;對于任務(wù)來說可能表示組成任務(wù)的子任務(wù)和這個任務(wù)之間的隸屬關(guān)系,對應(yīng)于定義中的“>”“<”,等等。

SetExp表示元素包含elementOfExp和集合包含setCompareExp兩種集合表達式。元素包含表示一個實體wfEntity和一個wfSet之間的包含關(guān)系。當(dāng)wfEntity是wfSet的一個元素時,對應(yīng)于定義中的wfEntityWfSet。集合包含表示兩個實體集合wfSet之間的包含關(guān)系。

AndExp、notExp、orExp是非終結(jié)符表達式。它們使用一個抽象的rule指針,各自維護了一組rule實例變量作為操作數(shù)并對其作布爾運算。這個rule指針可能指向它們自身、compareExp或setExp。

3關(guān)鍵算法

在任務(wù)分配過程assignUsertoTask中,將任務(wù)task分配給用戶user時作授權(quán)規(guī)則檢查。它首先檢查用戶是否具有執(zhí)行任務(wù)所需的角色權(quán)限,滿足條件后再檢查相應(yīng)的授權(quán)規(guī)則。如果成功則返回對應(yīng)的taskAssignment,空對象表示不符合規(guī)則約束。

TaskAssignment * assignUsertoTask (user : ID,task : ID) {

boolean lb_passed=true;

lb_passed=checkUserQualified(user, task);

//檢查user是否具有執(zhí)行任務(wù)所需的角色權(quán)限

if lb_passed //如果具有執(zhí)行任務(wù)的角色,檢查相應(yīng)的授權(quán)規(guī)則

{//獲得與任務(wù)task相關(guān)的taskAssignment授權(quán)關(guān)系集合

Authentications=task.getTaskAssignments();

/*獲得與用戶user相關(guān)的taskAssignment授權(quán)關(guān)系集合,并與authentications集合合并*/

Authentications=authentications∪user.getTaskAssignments();

for every authentication in authentications{

//對于authentications集合中的每個authentication,獲取對應(yīng)規(guī)則

rule=GetAuthenticationRule(Authentication);

lb_passed = rule.Evaluate(); //得到規(guī)則的運算結(jié)果

if !(lb_passed) exit; //若授權(quán)失敗,跳出循環(huán)結(jié)束任務(wù)分配

}

if lb_passed //若授權(quán)成功,分配任務(wù)

newTaskAssignment = new TaskAssignment(task, user);

else

newTaskAssignment=1; //否則返回失敗標(biāo)志

return newTaskAssignment;

}

其中:檢查用戶是否具有執(zhí)行任務(wù)的角色權(quán)限,是任務(wù)分配的前提。

Boolean checkUserQualified(user: ID, task: ID){

Boolean lb_passed=1;

UserRoles=assignedUserRoles(user);

//獲得用戶所能扮演的角色集合

TaskRoles=participantTaskRoles(task);

//獲得完成任務(wù)所需具備的角色集合

if taskRolesuserRoles

//判斷用戶扮演的角色集合包括完成任務(wù)所需的角色集合

lb_passed = true;//用戶具有執(zhí)行任務(wù)的資格

else

lb_passed = 1;//否則,用戶不具備執(zhí)行任務(wù)的資格

return lb_passed;

}

在對象訪問過程中,對象層次上的規(guī)則檢查chessAccess在用戶申請對對象進行操作時觸發(fā)。它根據(jù)用戶、對象及操作來判斷訪問控制結(jié)果。首先判斷當(dāng)前用戶要求的對象操作是否屬于用戶的權(quán)限集合;其次判斷相關(guān)的授權(quán)規(guī)則是否滿足。

Boolean checkAccess(user: ID, ojbect: ID, operation: ID){

boolean lb_passed=true;

new permissionUnderCheck(object, operation);

//得到用戶要求的權(quán)限

Permissions=userPermissions(user); //得到用戶所具有的權(quán)限

//判斷用戶是否具有要求的權(quán)限

if permissionUnderCheckepermissions{

//這里的授權(quán)就是指用戶所具有的對象上的權(quán)限

Authentications=permissions

for every authentication in authentications{

//對于authentications集合中的每個authentication,獲取對應(yīng)規(guī)則

rule=getAuthenticationRule(authentication);

lb_passed = rule.Evaluate(); //得到規(guī)則的運算結(jié)果

if ! lb_passed exit; //如果為1,跳出循環(huán),禁止用戶訪問

}

}

else

lb_passed = 1;//禁止用戶訪問和操作

return lb_passed

}

4結(jié)束語

本文給出了工作流管理系統(tǒng)中訪問控制的規(guī)則表達。其中規(guī)則解釋器的操作數(shù)由工作流實體類提供,使用實體類提供的各種函數(shù),通過對象信息映射系統(tǒng)將其映射到規(guī)則表達式系統(tǒng)中,所以規(guī)則表達式具有很靈活的表達能力,可以表示各種特定應(yīng)用的授權(quán)規(guī)則。

在筆者開發(fā)的法院信息化工程法院綜合信息系統(tǒng)中,建立和應(yīng)用了基于規(guī)則策略的訪問控制模型。法院綜合信息系統(tǒng)是在江蘇省和天津市100多家法院使用的基于關(guān)系數(shù)據(jù)庫Sybase的大型應(yīng)用系統(tǒng)。法院的業(yè)務(wù)有很強的流程性,其承辦人變更、審限管理等流程中涉及的訪問許可規(guī)則會根據(jù)不同法院的管理模式而變化,而且針對不同的數(shù)據(jù)對象會有不同的操作權(quán)限限制,所以對訪問控制提出了較為復(fù)雜的要求。本文使用工作流來對業(yè)務(wù)過程進行建模,并將應(yīng)用數(shù)據(jù)的所有授權(quán)規(guī)則存放在一個規(guī)則庫中。這些規(guī)則根據(jù)應(yīng)用程序的上下文配置,由會話期間的對象訪問事件觸發(fā),使用獨立的規(guī)則解釋器進行解釋,很好地簡化了業(yè)務(wù)過程中的授權(quán)管理。而且使用者可以根據(jù)本法院不同的流程和權(quán)限設(shè)置修改授權(quán)規(guī)則,從而提高了系統(tǒng)的授權(quán)靈活性。

參考文獻:

[1]AHN G J, SANDHU R, KANG M, et al. Injecting RBAC to secure a Webbased workflow[C]//Proc of the 5th ACM Workshop on Rolebased Access Control. 2000:110.

[2]BOTHA R A, ELOFF J H P. Separation of duties for access control enforcement in workflow environment[J]. IBM System Journal EndtoEnd Security, 2001,40(3):666-682.

[3]WU S L, SHETH A, MILLER J, et al. Authorization and access control of application data in workflow systems[J]. Journal of Intelligent Information System, 2002,18(1):71-94.

[4]BERTINO E, FERRARI E, ATLURI V. The specification and enforcement of authorization constrains in workflow management systems[J]. ACM Transactions on Information and System Security, 1999,2(1):65104.

[5]CRAMPTON J. On the satisfiablility of constraints in workflow systems[EB/OL].(2004). http://www.rhul.ac.uk/ mathematics/techreports.

[6]STREMBECK M, NEUMANN G. An integrated approach to engineer and enforce context constraints in RBAC environments[J]. ACM Transactions on Information and System Security, 2004,7(3):392-427.

[7]ESSMArR W, PROBST S, WEIPPL E. Rolebased access controls: status, disseminations, and prospects for generic security mechanisms[J]. Electronic Commerce Research, 2004, 4(1-2):127156.

[8]BOTHA R A. CoSAWoE:a model for context sensitive access control in workflow environments[D]. [S.l.]: Department of Computer Science, Rand Afarikanns University, 2001: 79-85.

[9]FERRAIOLO D F, SANDHU R, GAVRILA S. Proposed NIST stan ̄dard for rolebased access control[J]. ACM Transactions on Information and System Security, 2001,4(3):224-274.

[10]COVINGTON M J, LONG Wende, SRINIVASAN S. Securing contextaware applications using environment roles[C]//Proc of the 6th ACM Symposium on Access Control Models and Technologies. 2001: 10-20.

“本文中所涉及到的圖表、注解、公式等內(nèi)容請以PDF格式閱讀原文”

主站蜘蛛池模板: 国产新AV天堂| 日韩精品无码免费一区二区三区 | 少妇精品久久久一区二区三区| 中文字幕在线不卡视频| 亚洲精品自拍区在线观看| 国产欧美又粗又猛又爽老| 国产1区2区在线观看| 92午夜福利影院一区二区三区| 国产免费羞羞视频| 91麻豆精品国产高清在线| 日韩A级毛片一区二区三区| 国产91九色在线播放| 天天躁日日躁狠狠躁中文字幕| 国内精品伊人久久久久7777人| 亚洲综合色婷婷中文字幕| 久久香蕉国产线| 久青草国产高清在线视频| 亚洲免费成人网| 中文字幕首页系列人妻| 久久99久久无码毛片一区二区| 国产精品久久自在自线观看| 国产噜噜噜视频在线观看| 韩日免费小视频| 无码中文AⅤ在线观看| 亚洲欧洲日产国产无码AV| 国产成人亚洲综合A∨在线播放| 免费在线一区| 国产成人高清精品免费5388| 国产精品所毛片视频| 精品国产欧美精品v| 国产污视频在线观看| 青青草原国产免费av观看| 日韩欧美中文| 无码免费视频| 国产香蕉在线视频| 亚洲欧美成人网| 毛片网站在线播放| 永久免费无码日韩视频| 国产视频 第一页| 久久久精品久久久久三级| a毛片免费在线观看| 嫩草影院在线观看精品视频| 福利姬国产精品一区在线| 国产成熟女人性满足视频| 三区在线视频| 亚州AV秘 一区二区三区| 欧美激情二区三区| 欧美一区日韩一区中文字幕页| 中国国产高清免费AV片| 青青青国产视频| 麻豆国产精品视频| 自拍偷拍欧美日韩| 中文纯内无码H| 热这里只有精品国产热门精品| 亚洲国产精品国自产拍A| 国产欧美在线观看视频| 国产69囗曝护士吞精在线视频| 国产福利在线免费| 欧美国产中文| 露脸真实国语乱在线观看| 五月激情婷婷综合| 欧美成人精品高清在线下载| 黄色网址免费在线| 色婷婷综合在线| 国产美女一级毛片| 国产AV无码专区亚洲A∨毛片| 欧美日一级片| 中文字幕一区二区视频| 欧美亚洲网| 日本久久免费| 手机精品福利在线观看| 免费激情网站| 99视频在线免费| 成人在线观看一区| 国内精品久久久久鸭| 国产黑丝视频在线观看| 动漫精品中文字幕无码| 中国一级特黄大片在线观看| 久青草免费在线视频| 成人免费一级片| 国产精品九九视频| 久久精品波多野结衣|