吴 薇
(武夷学院数学与计算机学院,福建 武夷山 354300)
近年来,随着互联网技术的普遍应用,利用网络提供服务来构建的分布式协同环境已经随处可见,如贴近居民生活的小区监控系统,用于家庭的安防系统和用于企业的电子政务系统等。人们可以通过分布式协同环境提供的Web服务,共享Internet上的数据和功能。网络用户的安全访问权限控制问题,逐渐受到研究人员的关注[1]。唐宁九等人详细描述了几种分布式对象技术的特点,给出了今后分布式系统对象管理的发展方向[2]。刘琼波等人提出一种在分布式系统下的安全访问控制策略和访问请求判定的方法,并给出了访问请求判定的算法,解决了在分布式系统授权、私有权限传播和规则冲突等问题[3]。谭文芳等人提出一种分布式环境下的动态角色管理机制,结合了RBAC模型并以CORBA作为中间件来实现,充分考虑了角色的动态变化,引入事件触发机制[4]。孙军红等人将RBAC中的角色扩展为职能角色和任务角色,并为任务角色增加了域的属性,解决了不同域间互相访问资源的问题[5]。窦文阳等人提出了一个安全分布式访问控制系统SDAC,该系统具有模糊授权推理能力,可以根据安全策略及上下文的变化,动态调整用户权限,使得授权和访问控制自适应于普适计算环境[6]。在本次研究中,将探讨一种改进的自适应RBAC模型——ARBAC模型,以进一步强化服务器数据安全保障。
1996年,针对传统访问控制策略不能适应应用环境变化的不足,Ravi Sandhu提出了基于角色的访问控制模型(role-based access control models),即RBAC96模型[7]。在2001年和2004年,一些学者和美国国家信息技术标准委员会进一步确定了此模型的标准[8-9]。在该模型中,引入角色管理,使用户与客体的权限实现逻辑分离,用户通过成为该角色的成员而得到相应的权限,极大地简化了权限的管理。为了对系统资源进行访问控制,由全局管理员来统一管理,以避免出现安全漏洞;而这些对于角色权限的管理都是静态的,并不适用于分布式协同环境下服务器管理无人值守的情形[10]。
在分布式协同环境中,网络中各个域均具有相对独立性,它们对于整个环境是透明的,域和域之间的相互操作只能通过Web服务进行。用户通过认证后登录系统,可以访问所需的客体资源。各域内的管理员只负责自治领域内的安全访问控制,对于跨域访问没有相关的安全策略。
针对这一新问题,本次研究提出一种改进的RBAC模型 ——自适应ARBAC(adaptive role based access control)模型。在分布式协同环境没有统一安全管理的情况下,可以根据客体资源的主体的权限级别,在服务器内授予其一个动态的、自适应访问权限。为了达到此目的,客体资源的创建者自己设定对该客体的逻辑授权,然后服务器再根据该逻辑授权创建用户和角色的关联规则。当分布式协同环境中申请访问客体的主体可能未知或者访问授权要求有变化时,就可以进行动态管理,保障数据安全。
该模型中首先需要对各种角色及用户作出定义,赋予其权限及内容。
(1)用户集u,是所有用户的集合,若用Su表示所有用户集集合,则有u∈Sc。
(2)角色集r,是所有角色的集合。若用Sr表示所有角色集集合,则有r∈Sr。
(3)客体集o,是系统中客户端要访问的资源,本例中如监控录像文件等。若用So表示权限集集合,则有 o∈So。
(4)操作集op,是系统中客户端对客体执行的动作,如本例中录像、回放、查询、删除等。若用Sop表示操作集集合,则有op∈Sop。
(5)权限集p,用户集对客体资源访问的许可权限。若用Sp表示权限集集合,则有p∈S[11]p。每个权限后面跟上的是一个逻辑授权:permissions=<逻辑授权>,表示描述主体可能对客体执行的操作。
(6)逻辑授权描述,其定义形式如下:
< only|not{any{u1,u2,u3,…,um}{op1,op2,…,opn}}>
在此需要说明一下,逻辑授权需要把能或不能对客体操作的主体集合或操作全部列举出来,或者至少列出来满足逻辑授权的条件。
这里:u1,u2,u3,…,um∈Sc;op1,op2,…,opn∈Sop;“only”表示“仅”“只有”;“not”表示“否定”“非”;“any”表示“任一”“任何”。
(7)会话集s,是指用户登录系统并激活授权的角色后,建立映射,取得会话过程。会话集s={s1,s2,s3,…,sn}。
(8)用户角色指派UA,是指用户集u到角色集r并映射一种多对多的关系,即UA⊆u×r。(u,r)∈UA为一个二元关系,表示对用户u指派一个角色r。
(9)角色权限指派PA,是系统为角色分配权限p,映射多对多的关系,即 PA⊆p×r。(p,r)∈PA为二元关系,表示把权限p分配给角色r。
1.3.1 角色继承
角色继承(role inheritance)是指对角色间的关系设定限制性继承条件。假定RH⊆r×r是角色集r上的偏序关系,用≤表示。如果r1,r2∈r且r1≤r2且表示r1是r2的上级角色,则r1拥有r2的所有权限。
假设有用户 u1、u2、u3、u4、u5与角色 r1、r2、r3、r4、r5的分配存在对应关系,如图1所示。
图1 用户与角色对应关系图
有授权permissions=<not{u1{op1}}>,表示非u1所对应的角色 r2,如 r3所对应的 u3、u4、u5用户可以执行op1操作。
1.3.2 角色互斥关系
角色互斥关系(mutually exclusive roles)是角色与角色间的限制关系,它表示指定的角色具有不同的职责,不能让同一个用户同时拥有。互斥的角色用Er表示:
满足下式:
1.3.3 逻辑授权规则
有授权 permissions= < {u1{any},u3{op1,op2}u5{op1}}>,表示有客户端u1可以执行任何操作,u3对该客体执行操作op1和op2,u5对该客体执行操作op1。若此时有新认证用户u6请求对客体做op1操作,或u1做op3操作,由于授权没有被事先指定,则可以被许可。
有授权 permissions= <only{u1{op1,op2}}{u2{op2}}>,表示只有u1可以对该客体执行操作op1和op2,u2可以执行操作op2,其他用户对该客体执行任何操作都将被拒绝。但由于u1和u2同属于同一个角色r2,根据最小权限原则,u1和u2只能对该客体执行操作op2。
有授权Permissions=<not{u3{op2}}{u5{op1}}>,表示u3的操作op2被拒绝而且u5可以执行操作op1。
有授权permissions=<not{u3{op1}}{u4{op1,op3}}>,表示u3操作op1被拒绝,而且u4可以执行操作op1和op3,但由于u3和u4同属于角色r4,则u4仅能执行操作op3。
ARBAC模型的实现过程如图2所示。具体实现过程如下:
(1)用户登录系统后,通过角色管理模块查询角色数据库,激活相应角色。
(2)用户向系统发送某客体资源访问权限的逻辑授权,访问控制管理模块接受这一请求,并交由权限管理模块进行判断。
(3)权限管理模块在逻辑授权数据库中查询,若无该客体相关访问权限的逻辑授权(有可能该用户是该客体资源的创建者),则在逻辑授权数据库中增加定义该客体的访问许可权限;若有该客体相关访问权限的逻辑授权,则判断该用户发送的访问许可是否与逻辑授权数据库中的逻辑授权相一致。若一致,即通知访问控制管理模块同意这一访问要求;若不一致,需经过逻辑授权规则演算,确认后通知访问控制管理模块返回拒绝操作的指令。
(4)访问控制模块得到权限管理模块的指示后将信息反馈给用户。
(5)用户访问客体资源数据库里的客体信息或者被禁止访问。
(6)用户退出登录。
图2 ARBAC模型的实现过程
现有一个全国联网的某连锁店监控视频网络,其组成如图3所示,其角色的层次关系如图4所示。
图3 某连锁店监控视频网络组成
图4 角色的层次关系
它们的角色继承关系是由上往下继承,总部用户对应的角色headquarters有最高权限。
假设二级代理A1用户产生一个视频文件Monitor1.hie,它发送逻辑授权 permissions= <only{A1{read,write}},由于 A1所对应的角色为 subagent A1,其上级角色为agent A,依据角色继承原则,角色agent A对应的用户A可以对Monitor1.hie进行读写操作。若此时有一个用户C2想访问文件Monitor1.hie,由于其对应角色subagent C1不是subagent A1的上级角色,于是拒绝其访问。
针对基于TCP/IP协议联网的分布式协同环境下安全访问控制的复杂性问题,本次研究中提出一种自适应的ARBAC模型,并通过实例解释应用该模型。该模型用于实践,可保障服务器无人值守的情况下的系统内数据安全。
[1]王子仁,陆亿红.RBAC在信息系统中的应用研究[J].计算机应用,2007(27):240-241.
[2]唐宁九,张旭.分布式对象管理的几种常用技术[J].计算机应用研究,2001(8):74-77.
[3]刘琼波,施军,尤晋元.分布式环境下的访问控制[J].计算机研究与发展,2001,38(6):735-740.
[4]谭文芳,胡南军,陈贵海.基于CORBA的分布式访问控制[J].小型微型计算机系统,2011,22(11):1359-1363.
[5]孙军红,王新红.一种分布式环境下基于角色的访问控制模型[J].计算机工程与应用,2011,47(23):84-87.
[6]窦文阳,王小明,张立臣.普适计算环境下的安全分布式访问控制系统研究[J].计算机科学,2013,40(6):132-186.
[7]Sandehu R,Coyne E,Feinstein H.Role-based Access Control Models[J].IEEE Computer,1996,29(6):38-47.
[8]Fereaiolo D F,Sandhu R,Gavrila S,et al.Proposed NIST Standard for Role-based Access Control[J].ACM Transactions on Information and System Security,2001,4(3):224-274.
[9]Anti.American National Standard for Information Technology-Role-based Access Control[C]//ANSI Int'l Committee for Information Technology Standards.2004:359.
[10]季星,朱晓洁,王东.基于Web服务的分布式协同环境中DRBAC访问控制[J].科学技术与工程,2007,7(12):2885-2893.
[11]陈刚,陈长琴,李光军.基于角色和部门的两级访问控制模型[J].武汉科技大学学报(自然科学版),2006,29(4):398-400.