1、增强伸缩性的主被动集成访问控制模型作者:翟治年,卢亚辉,郭玉彬,贾连印,奚建清,刘艳霞报告人:卢亚辉内容提要 研究背景和意义 本文的研究工作 角色建模体系 任务分类标准 授权继承机制 约束覆盖规则 总结和展望企业以各种预定义流程和日常事务为基础进行运作为此需要管理和调度大量数据/人力资源这对访问控制提出了怎样的要求?企业访问控制需求 主被动集成访问控制主被动集成访问控制(A-PIAC)面向业务过程面向业务过程,根据工作流执行规划和根据工作流执行规划和上下文上下文,协调有序地开放和回收权限协调有序地开放和回收权限 支持日常事务支持日常事务,用户可以根据身份与职用户可以根据身份与职责责,随时发起对
2、数据资源的访问随时发起对数据资源的访问 以可伸缩和自动化的方式进行授以可伸缩和自动化的方式进行授权和约束管理权和约束管理研究现状RBAC开创了管理伸缩的基本模式开创了管理伸缩的基本模式 以角色作为用户授权的中介以角色作为用户授权的中介;建立角色层次建立角色层次,以上级角以上级角色提取下级角色之间的重复授权色提取下级角色之间的重复授权.两种机制均可将两种机制均可将M*N关联降低为关联降低为M+N关联关联,授权次数大为减少授权次数大为减少 角色的层次性职责分离具有泛化语义角色的层次性职责分离具有泛化语义,上级角色的互上级角色的互斥可以覆盖任何下级角色的互斥斥可以覆盖任何下级角色的互斥,从而不必逐个
3、定义从而不必逐个定义研究现状基于管理角色层次基于管理角色层次(S-RH)和任务分类的三步和任务分类的三步授权机制授权机制(T-RBAC)以统一的结构实现了主以统一的结构实现了主被动访问控制模式的集成被动访问控制模式的集成 模式S-RH继承性 不可继承 可继承 被动私有任务(P)管理任务(S)主动面向工作流任务(W)活动审批任务(A)角色之间的关系 RBAC:权限可以赋予角色及其上级角色 角色间有不同的关系:副教授和教授的上下级角色(级别)教授和教师的上下级角色(特化)教授和院长的上下级角色(管理)角色层次:类型划分 角色特化类属(is-a)关系.例如C程序员,组件程序员,高级程序员都是程序员的
4、特化,数学系教师,硕士生导师,教授都是高校教师的特化 角色管理管理上下级,即上司下属关系.例如销售经理与销售员,项目经理与组件开发负责人.k角色级别按自定义标准k对所有角色进行级别划分的结果.例如程序员按技术资格分为初,中,高和资深;高校教师按职称分为助教,讲师,副教授和教授.任务在角色层次上的继承性 授课 讲师以上职称授课(副教授教授可以,助教不可以)向上继承 院长是否可以授课?bug处理任务(包括bug的拒绝,修正,注释等权限)程序员可以进行bug处理任务 是特化而非管理可继承的,框架和组件程序员可以,项目经理不可以.任务的等级任务的属性 实体性实体任务可以调配资源加以执行,泛化任务不可实
5、例化也不可直接执行 主/被动性主动任务是由WfMS管理的任务,被动任务是松散的日常活动 沿角色层次k的继承性分为可/不可继承两类.由于k层次不限数量,可以同时支持正逆关系,因此分别指定对正逆角色关系的继承性,可以将任务划分为上行,下行和不可继承三种.k级别向上继承 k级别不可继承 k级别向下继承 管理可继承 管理不可继承主动实体任务概念资格上行过程性任务:某标准某级别及其以上角色均有资格执行的工作流任务资格指定过程性任务:在某标准下需特定级别角色来执行的工作流任务.资格下行过程性任务:某标准某级别及其以下角色均可能参加的工作流任务.过程性决策任务:工作流中需某级以上管理者进行的审核,批准,评阅
6、,考核,检查等性质的任务.过程性职能任务:工作流中的职能性任务,不可被上级管理者继承.示例框架开发任务有一定难度,需高级以上程序员来承担.程序员中只有实习生才需要承担测试任务;内部晋级流程,只有高级程序员才能申报资深级别.普通以下的Java程序员均可能承担Web开发任务;企业招聘流程,硕士以下应聘者均需参加笔试环节.订单处理流程,客户信用审核可由销售员或销售经理执行 订单处理流程,库存检查由销售员执行,而非销售经理的职责 被动实体任务概念资格上行事务性任务:日常工作中,某标准某级别及其以上角色均可从事的活动,或均需履行的职责.资格指定事务性任务:日常工作中,在某标准下需特定级别角色来履行的职责
7、,或只有其可从的活动.资格下行事务性任务:日常工作中,某标准某级别及其以下角色均需履行的职责,或均可从事的活动.事务性决策任务:需某级以上管理者进行的日常决策工作.事务性职能任务:日常的职能性任务(包括职能范围内带一定管理性质的工作),不被上级管理者继承.示例项目设计人员、部门主设计师、平台架构师均可调阅全公司的历史设计案例;日常教学检查,副教授以上职称可提交简案.高校日常教学检查,助教需提交完整详案,讲师需提交部分详案.某青年基金只允许副教授以下职称申请;band5以下员工可申领加班补助.员工的差旅报销,必须经所属项目或部门负责人审核.高校教师的教学方案拟定,课题经费报销不被院系领导继承;分
8、管副院长对教学方案的检查不被院长继承.增强伸缩的主被动集成访问控制框架约束的层次覆盖语义泛化的静态职责分离 约束约束1(角色k层次静态互斥)涵义:表示用户不能在层次k上直接或间接地同时指派给r1和r2.该约束具有泛化语义.作用:阻止用户同时分配(甚至激活)分别属于r1和r2的任务或权限,从而实施欺诈,破坏业务规则,损害数据完整性或机密性,等等.示例:设角色层次k是特化关系,则出纳员和会计师,从而出纳员和高级会计师,是层次k互斥的.-kRH SXR R 12(,)-kr rRH SX语义泛化的静态职责分离 约束约束2(主动任务泛化静态互斥)涵义:表示分别由t1,t2特化而来的实体任务,其同一案例
9、中的实例不能由同一用户执行.该约束具有泛化语义.作用:阻止用户在同一案例中同时分配来自t1和t2的权限.示例:例如开发和测试任务是互斥的,在同一个项目(即案例)中的实例不能由同一用户执行.-AAATG SXT T1 2(,)-t tATG SX语义泛化的静态职责分离 约束约束3(被动任务泛化静态互斥)涵义:表示分别由t1,t2特化而来的任务不能由同一用户执行.该约束具有泛化语义.作用:阻止用户同时分配(甚至激活)分别属于t1和t2的权限.示例:例如账簿维护,收付款凭证管理等会计信息维护与支票管理不能分配给同一用户.-PPPTG SXT T1 2(,)-t tPTG SX语义泛化的静态职责分离
10、约束约束4(主动权限静态互斥)涵义:表示用户不能同时分配同一案例的两个实例,由其可分别激活p1,p2的上级权限.该约束具有泛化语义.作用:阻止用户在同一案例中同时分配p1,p2.示例:例如bug的修正和关闭权限有此关系.-TyTyAP SXPP12(,)-p pAP SX语义泛化的静态职责分离 约束约束5(被动权限静态互斥)涵义:表示用户不能同时指派给两个角色,由其可分别激活p1,p2的上级权限.该约束具有泛化语义.作用:阻止用户同时分配(甚至激活)p1,p2.示例:例如账簿写入和支票签发权限有此关系.-AP SXP P 12(,)-p pPP SX语义泛化的动态职责分离 约束约束6(角色k层
11、次动态互斥)涵义:表示在k层次上分别高于r1,r2的角色不能在会话中同时激活.该约束具有泛化语义.作用:阻止用户同时激活分别属于r1和r2的任务或权限(从而实施欺诈,破坏业务规则,损害数据完整性或机密性,等等).示例:某程序员可能同时担任某系列培训的讲师和学员,但不能同时激活它们.-kRH DXR R 12(,)-kr rRHDX语义泛化的动态职责分离 约束约束7(被动任务泛化动态互斥)涵义:表示分别由t1,t2特化而来的实体任务不能在会话中同时激活.该约束具有泛化语义.作用:阻止用户同时激活属于t1和t2的权限.示例:例如自动对账和借贷登记任务均由会计负责,但不能同时激活,以免破坏数据完整性
12、.-PPPTG DXT T1 2(,)-t tPTG DX语义泛化的动态职责分离 约束约束8(被动权限动态互斥)涵义:表示p1,p2的上级权限不能在会话中同时激活.该约束具有泛化语义.作用:阻止用户同时激活p1,p2.示例:例如账簿的备份和写入权限,多级安全策略下的高级别对象读取和低级别对象写入权限均有此种关系.-AP DXP P 12(,)-p pPP DX约束覆盖规则规则规则1(角色k层次覆盖)1 12211221212,(,)-(,)-kkkkr r r rR rrrrr rRH Xr rRH X创 在k角色层次上,上级角色的用户必然是下级角色的用户,因此下级角色的互斥蕴涵着上级角色的互
13、斥.例如(会计,出纳)互斥蕴涵着(高级会计,出纳)互斥.约束覆盖规则规则规则2(角色k层次支配覆盖)121212,(,)-(,)-kkkkr rR RHRHr rRHXr rRHX 由于k角色层次允许混合传递闭包,因此两种k层次之间可能存在支配关系.例如两个角色满足特化关系就一定满足特化和管理的传递闭包关系,这种情况下称前者支配后者.如果两个角色关于后者互斥,则必然关于前者互斥.例如是特化和薪级的传递闭包,band6出纳员和band6会计关于互斥,则其必然关于特化关系互斥.约束覆盖规则规则规则3(任务泛化覆盖)1122121211221212(1).(,)-(,)-(2).(,)-(,)-tt
14、ttt tATG SXt tATG SXttttt tPTG Xt tPTG X 分配了任务的用户一定分配了其泛化任务,因此泛化任务互斥蕴涵着特化任务的互斥.例如开发和测试两个主动任务是互斥的,则组件开发和性能测试任务也是互斥的,其同一案例中的实例不能分配给同一用户.约束覆盖规则规则规则5(静态-动态覆盖)121212(,),(,)-(,)-PPe eR R TTP P e e SXe e DX 任何一对实体(角色,任务或权限),必须先分配给同一用户才可能被其同时激活,因此静态互斥蕴涵着相应的动态互斥.规则规则4(权限包含覆盖)1122121211221212(1).(,)-(,)-(2).(
15、,)-(,)-ppppp pAP SXp pAP SXppppp pPP Xp pPP X 分配了权限的用户一定分配了其下级权限,因此下级权限互斥蕴涵着上级权限的互斥.约束覆盖规则规则规则6(权限-任务覆盖)12121 122121 212121 122121 2(1).,(,),(,)-(,)-(,)-(2).,(,),(,)-(,)-(,)-TAPp pPt tTp tp tAT PAp pAP SXt tATG SXp pPt tTp tp tPT PAp pPP SXt tPTG SX 若一对权限分别分配给两个任务,则用户分配这两个任务就同时获得了这一对权限.因此在这样的权限分配关系前
16、提下,权限互斥蕴涵着任务互斥.例如bug修正和打开权限分别分配给开发和测试任务,由于两个权限是互斥的,两个任务也必然是互斥的.约束覆盖规则规则规则7(任务-角色覆盖)12121122121212,(,),(,),.(,)-(,)-ekkkr rRt tTt rt rTAt h i t h i truet tPTG SXr rRH SX 若一对任务分别分配给两个角色,则用户指派给这两个角色就同时分配了这一对任务.因此在此类任务分配关系前提下,任务互斥蕴涵着角色互斥.例如准备支票和记账任务分别分配给出纳和会计,由于两个任务是互斥的,两个角色也必然是互斥的.约束覆盖的基本性质 偏序有向性在约束1-8
17、每种互斥内部,只存在沿PI,TG,RHk或RHk支配等偏序关系自下而上的覆盖.传递有向性不存在角色-任务-权限方向的互斥覆盖.传递条件性若不限制任务分配和授权关系,则不存在权限-任务-角色方向的互斥覆盖.主/被动无关性主动和被动互斥之间不存在语义覆盖 静-动态有向性不存在从动态到静态的互斥覆盖.覆盖规则完备性 定理定理1(无条件完备性)若不限制任务分配与授权关系,约束1-8上的任何语义覆盖可根据规则1-4判定.定理定理2(静态完备性)约束1-5上的任何语义覆盖可根据规则1-4,6,7判定.这两个定理可以为相应前提下的冗余约束检测提供理论基础,保证按规则设计的算法可以找出所有语义冗余.覆盖规则的
18、应用 冗余约束检测例如动态约束在访问阶段检查,如果存在冗余将影响访问效率.即使静态约束中的冗余,也会影响约束检查效率,增大管理复杂度.本文给出了动态冗余约束的检测算法.授权合理性和约束一致性验证验证授权是否满足约束,约束之间是否存在逻辑冲突.自动化的约束抽取基于BPEL等等场景描述的角色工程.本文的主要贡献 将RBAC的角色层次划分为特化,管理和k-级别三种类型,并允许配置其混合传递闭包,建立了一种k-层次关系,将RBAC角色层次明确化,并保留了可能的混合传递性 基于k-层次上的继承性将主/被动两大类任务进行细分,建立了可配置的任务分类标准 以泛化取代层次关系,实现了任务间授权继承 给出一组泛化的SoD约束,系统分析了约束间的语义覆盖规则,证明了两种受限的完备性 给出动态冗余约束检测算法,降低访问检查开销下一步工作 引入组织视图 多级授权管理 更全面的约束类型及约束冲突与覆盖分析请各位老师批评指正!谢谢!