属性访问控制模型

2024-09-19

属性访问控制模型(精选8篇)

属性访问控制模型 第1篇

随着面向服务的架构 (SOA) 的广泛推广和应用, 面向服务的架构下的安全性值得引起足够的重视。基于SOA的属性访问控制模型的研究具有十分重要的意义。本文探讨了基于SOA的属性访问控制模型, 相对于传统的访问控制模型来说, 本文提出的模型具有更多的优点, 是一个很好的访问控制模型。

2. 基于SOA的属性访问控制模型中的各个组成部分定义

属性 (Attribute) :它是角色的构成要素, 也就是说, 对角色在特定的观察角度上所进行的描述。例如, 能够对“移动公司业务员”这一角色增加所位于的地点属性来描述其所在的分公司信息。

用户 (User) :U= (ul, u2, un) , 就是系统中所涉及的全部用户所组成的一个集合。

角色 (Role) :本文提出的角色是动态的, 在将角色激活之后, 角色所拥有的权限才被确定, 也就是说, 当角色被激活的时候, 它可以拥有多个不同的属性值, 并且能够拥有多个不同的权限。

根据上述属性、用户和角色的定义, A, B, C分公司的移动公司业务员可以分别定义为:

移动公司业务员.Position=A

移动公司业务员.Position=B

移动公司业务员.Position=C

规则 (Rules) :通常情况下, 在具体的权限控制的设计的过程中, 一系列的因素都必须被考虑到, 例如时间日期, 空间位置等等。结合本文设计的基于SOA的属性访问控制模型中的角色动态性的要求, 本文在角色和权限之间, 将规则的概念引入进来。通过这些规则来对角色所拥有的权限进行一个动态的映射。

操作对象 (Object) :是权限的最终实施对象, 也就是说, 在对于特定的一个客体所进行的特定的一项操作中, 操作对象就是这个客体。

3. 基于SOA的属性访问控制模型中的规则的表述

在XML文档之内, 定位信息的标准方式是XPath。通过XPath, 能够在XML文档中对文本数据、各个组成部分、属性以及其他信息进行访问。XPath这种语言一方面是非常精密的, 另一方面, 也是非常复杂的, 对于本文设计的模型中的规则的描述, 可以借用XPath在定位树型结构时候的强大功能, 如下所示是相关的概念:

在移动公司中, 首先定义角色移动公司业务员, 该角色拥有属性Position。属性赋值在用户角色映射时能够自动完成。定义操作对象“业务清单”, 为其定义属性BusinessAmount。添加“角色一规则一权限”之间的对应关系

角色:移动公司业务员

规则:

Rulel:role In/移动公司业务员/descendant-or-self (是移动公司业务员或其子角色)

Rule2:role@Position业务清单@Position

(角色位置属性与业务清单位置属性相同)

权限:操作x对象=写x业务清单

这样就只需要定义“移动公司业务员”一个角色就能满足需求, 方便了角色的创建和维护。

为适应工作流中对于时间、空间等的限制要求, 能够对规则做进一步的扩展。引入限制规则集Restricted_Rule= (Time, Position, System status}。只有当所有规则都为真时, 用户才能够对指定对象进行操作。例如移动公司业务员只有在工作时间可以写业务清单, 其他时间只能够对业务清单进行读操作。

4. 结束语

本文提出的基于SOA的属性访问控制模型, 已经在实际的面向服务的架构的系统中得到具体的应用。通过实践发现, 相对于传统的访问控制模型来说, 本文提出的模型是非常可行的, 能够满足面向服务的架构下的安全需求。

摘要:本文提出了基于SOA的属性访问控制模型, 在角色中通过属性的引入, 能够在相同访问控制效果下, 使得角色的创建和维护工作量得到大幅度的降低。另外, 通过规则的引入, 能够支持角色属性, 并且也能够支持工作流访问控制模型中出现的按照时间、空间、系统状态等上下文进行访问控制的需求。

关键词:SOA,属性访问控制模型,安全

参考文献

[1]王小明, 付红, 张立臣.基于属性的访问控制研究进展[J].电子学报, 2010, (07) .

[2]张毅, 高东怀, 许卫中, 许浩.基于用户属性的终端安全防护系统研究与实现[J].科学技术与工程, 2009, (18) .

[3]霍远国, 马殿富, 刘建, 李竹青.面向Web服务资源的两层访问控制方法[J].计算机科学, 2010, (07) .

[4]程相然, 陈性元, 张斌, 杨艳.基于属性的访问控制策略模型[J].计算机工程, 2010, (15) .

[5]朱益盛, 顾绍元.基于角色和属性的访问控制模型[J].福建电脑, 2006, (10) .

属性访问控制模型 第2篇

随着互联网中的云计算应用越来越广泛,微软,谷歌等IT业巨头都在不断的扩建自己的云计算平台,但是伴随着云计算应用范围的不断增大,信息安全已经成为了制约与计算平台发展的重要原因之一,一些涉及到网络安全的技术逐步被人重视,Window Azure平台是微软开发的一款云计算平台,其主要作用是通过Internet平台为其他运行的应用程序服务,最大可能的保证性能不降低。如何能够最大限度的利用Win?dows Azure平台的数据存储安全技术,从而能够保证云计算平台具有开发的安全性和灵活性是目前研究的重点。目前访问控制技术是元计算平台领域中一种非常重要的技术,它的思想是采用一定的策略,首先对主体进行验证,然后对客体的访问权限进行设置,可以很好地保证云计算环境中的访问权限的的安全性,从而保证云计算机节点的资源能够合理的被使用,从而避免来自系统内部的破坏。

访问控制是一种重要的技术,是保证云计算平台的信息机密性和完整性的重要组成部分。本文针对在Windows Azure 云计算模型的基础上,针对现有的任务-角色访问控制模型,提出一种新的访问控制模型。该模型可以在一定程度上有效地减少资源调度的耗时以及数据访问控制的安全性。

属性访问控制模型 第3篇

伴随着信息技术的持续快速创新,物联网与云计算趁势崛起。物联网将用户端延伸和扩展到了任何物品与物品之间,进行信息交换和通信[1]。同样云计算尤其是以数据存储为主的存储型云平台,存储着大量高价值资源,方便了用户对资源的获取。然而随着云计算与物联网的发展,对数据的保护要求也越来越高,物联网中物物之间的信息交换需遵守一定规则,防止对信息的越权访问[2]。云存储平台在共享资源的同时,必须严格控制用户请求,以防泄露重要信息给不恰当的用户,造成损失。

访问控制技术在数据安全性方面有着无可替代的地位,其主要通过检验用户是否有足够的权限来访问资源,来允许或拒绝用户的请求[3]。访问控制大致经历了以下几个历程:自主访问控制、强制访问控制、角色访问控制、属性访问控制[4]。自主访问控制强调由客体的属主对自己的客体进行管理,由属主自己决定是否将自己的客体访问权或部分访问权授予其他主体,是一种比较宽松的访问控制,同时访问权限具有传递性。强制访问控制中每个用户只能访问到那些被标明可以由他访问的信息,相比自主访问控制是一种更严格的控制。基于角色的访问控制是实施面向企业安全策略的一种有效的访问控制方式,与自主访问控制与强制访问控制不同的是角色访问控制授权基于角色,它简化了用户的权限管理,减少系统的开销,在访问控制史中是巨大进步[5]。

云计算尤其是以数据存储为主的存储型云平台[6],其注册用户基数极其庞大,每个注册用户对云平台中的资源访问权限各不相同[7],应用传统的角色访问控制系统为每个注册用户分配不同的角色,必将导致庞大的角色数。物联网将用户端延伸和扩展到了任何物品与物品之间,对物品操作类型由最基本的“读、写、增、删、改、查”扩充为“读、写、增、删、改、查、打开、复制、移动等等”,对角色的赋权时往往需先赋予某项特定权限方可,比如:赋予读权限需先赋予打开权限,如此需付出额外的授权,增加授权次数。

然而目前对角色访问控制的研究主要还是静态角色,在云计算和物联网这类复杂的环境中,传统的角色访问控制必然会因为用户数的暴增导致角色数的急剧增长[8],致使对角色的管理维护造成极大的不便。同样的授权形式单一化,也使得角色访问控制在对角色的授权的性能上很不理想[9]。因此要求人们对角色访问控制作必要的扩展,使角色更具动态性,实现同一个角色不同的权限的目的,以减少角色数,来便于角色的管理与维护。同时也需进一步丰富授权形式,来降低权限分配的次数,适应诸如云计算物联网的复杂环境。

本文针对上述两个问题,提出基于属性值变化的动态角色访问控制,利用属性访问控制的思想,对角色本身添加相关属性,通过对角色上的属性赋予不同的属性值,从而使得拥有不同属性值的同一角色拥有不同权限,实现角色的动态性。同时引入权限多态性和动作继承的思想,将对资源的各种操作建立继承关系,达到赋予子操作权限时,自动继承父操作权限,从而减少授权次数,提高性能。

1 动态角色访问控制

在传统的基于角色的访问控制当中,主体与客体之间存在角色这一概念,对客体的访问权限,不直接赋予主体,而是分配给角色,使得角色拥有访问客体的权限,进而再将角色分配给主体,从而使得主体拥有角色所拥有的权限,因此授权的基本单位为角色[10]。以角色为授权单位可以简化主体因身份的变化而对其权限的重新分配。

然而,传统的角色访问控制,其权限在角色激活之前就已经固定即静态角色,角色激活后,其拥有的权限若不主动为其重新分配将一直保持不变[11],然而人们往往会碰见同一“角色”(现实生活中的角色)在不同环境下拥有不同权限的需求,传统角色访问控制往往会将此“角色”细分为多个角色以区分,如图1所示。

在图1中公司A在全国各地拥B子公司,C子公司,D子公司,B子公司的经理只能对B的所有资料读写操作,同样C、D子公司的经理同样只能对本子公司的资料进行读写操作。传统角色访问控制往往将现实中的“经理”角色细分为三个如图1中的角色B、C、D,角色B赋予对B子公司资料读写操作,以此类推,分别将三个角色分配给三个子公司经理,实现“经理”角色在不同环境下拥有不同权限。此类解决方案伴随公司规模的扩大,子公司数日益增长,弊端将逐渐显露,为每个子公司经理都创建角色分配权限,必然会导致角色数大大增加,这就为角色的管理,和为角色权限的分配带来极大的复杂性。

1.1 动态角色访问控制(ARBAC)模型

动态角色访问控制由主体、角色、客体及权限集合组成,其中角色与传统角色访问控制相比,新增角色属性对角色进行补充。通过添加属性至角色,将赋权时间点由角色创建时赋权推迟至为角色上属性赋值时授权,使得角色的权限不仅仅依赖于角色本身,更多地依赖角色上的属性值,最终实现角色权限因属性值的变化而变化即角色动态性。

定义1.主体(S):S={s1,s2,s3,…},与传统的访问控制相同,si代表系统中动作的实施者。

定义2.角色(R):R={r1,r2,r3,…},动态角色,即角色ri的权限会随着ri上的属性变化而变化。

定义3.属性(P):属性是对角色的具体补充,角色可以因为属性的不同而拥有不同的权限。

假设sub表示代表子公司属性,那么ri.sub=B可表示角色ri可以对公司B的业务进行读写操作的权限,而ri.sub=C表示角色ri可以对公司C的业务进行读写操作权限。

定义4.权限(Permission):动作与客体的笛卡尔积,即动作×客体。

例如:读×业务单,表示读业务单的权限。

定义5.客体(O):表示动作的实施对象,可认为是系统中的所有资源。

动态角色访问控制模型建立过程如图2所示,可以分为以下几步:

①创建主体,角色,属性,权限。

②为角色添加属性。

③将角色分配给用户,同时填充属性值。

④根据角色及其属性值,赋予相应的权限。

⑤最终主体拥有该角色的权限。

根据此步骤回到之前图1所示的角色分配案例,在主体与权限创建之后以动态角色的思想创建一个“经理”角色r,分配“子公司”属性sub给角色r,那么角色的完整描述可记为r.sub。与静态角色不同之处角色r.sub虽然创建,但其所对应的权限并未固定,待将此角色分配给子公司经理时,根据经理所属子公司,填充属性sub,角色r.sub将依据设定的规则自动获取权限。如此无论公司规模扩大,只需创建一个“经理”角色,通过修改属性值即可实现同一角色不同权限,大大减少角色数,方便管理与维护。

1.2 动态角色与权限自动映射

动态角色权限赋予位于角色属性填充后,伴随属性值得变化,其权限须实时修改。静态角色访问控制,权限仅在创建角色时赋予,之后固定不变,因此可以人工分配权限[12]。动态角色的权限分配若也采用人工方式,因其属性的得多变性,人工方式必然极其麻烦。

定义6.资源属性:对定义3扩充,属性P对访问控制构成元素(主体、角色、客体)补充描述,若是对资源进行描述,称之为资源属性。

映射规则形式化描述如下:

角色r:经理

客体o:公司资料

条件condition:r.sub==o.sub(经理分公司属性等于公司资料分公司属性)

权限:读写×公司资料

将映射规则配置好,待角色属性赋值或发生变化时,自动去查询映射规则配置表,获取其拥有的权限。

2 授权优化

在角色访问控制当中,常常见到如下场景,“主体s对客体o可以读,可以写[13]”,常见的解决方案是定义一个角色r,赋予角色r读写客体o的权限,将角色r分配给主体s,至此主体s即拥有对客体o的读写权限,授权如图3所示:

尽管图3的授权方案满足了需求,但考虑到两次权限的分配是针对同一主体s和同一客体o的,那么当存在n个主体(s1,s2,s3,…,sn)和n个客体(o1,o2,o3,…,on)时,如果任意一个主体si(1≤i≤n)对任意一个客体oi(1≤i≤n)都有读写的权限,自然需要对角色r进行2n次授权,如图4所示。

由此可见,随着客体数量的增加,授权次数将成倍的增加,以这种方案作为解决方案,必然将大量的时间消耗在授权过程当中,因此必然需要提出一种更优的授权解决方案。

2.1 多态权限

针对图4中出现的冗余授权,可以看出,产生的原因在于对于一个特定的权限pi,其操作呈现出单一性,即权限pi要么代表对客体oi有读权限,要么代表对客体oi有写的权限,不存在一种权限pi其代表对客体oi既拥有读权限又拥有写权限。

定义7.多态权限p:如果权限p呈现多态性,那么存在一个客体o,使得权限p在客体o允许多种操作共存。

根据定义7,对图4中的权限进行适当的修改,权限p1表示对客体o1拥有读权限和写权限,权限pi表示对客体oi拥有读权限和写权限,以此类推如图5所示。

在此授权方案当中,同样假设当存在n个主体(s1,s2,s3,…,sn)和n个客体(o1,o2,o3,…,on)时,如果任意一个主体si(1≤i≤n)对任意一个客体oi(1≤i≤n)都有读写的权限,那么对角色r的授权次数为n,相比第一种授权方案来说有了明显的改善。

然而人们所处的现实生活往往比想象中的更复杂,以至于授权也变的越来越复杂[14],权限的多态性虽然在一定程度上简化了授权的复杂性,然而在某些场合下反而会使得授权更加繁琐。比如:定义三个主体分别为s1、s2、s3,一个客体o,两类操作“r”(读操作),“w”(写操作),主体s1对客体o具有读权限,主体s2对客体o具有写权限,主体s3对客体o具有读写权限。定义三元组(s,o,a)表示主体s对客体o具有操作的权限,那么可以将之前的描述形式化为如下的形式:

①(s1,o,r):主体s1对客体o具有读权限。

②(s2,o,w):主体s2对客体o具有写权限。

③(s3,o,r∧w):主体s3对客体o具有读写权限。

如果采用第一种授权方案即权限是单一的,则必然要生成两种权限p1、p2,权限p1允许对客体o读,权限p2允许对客体o写,于是:

①(s1,o,r)只需将p1赋予角色r、r分配给s1即可。

②(s2,o,w)只需将p2赋予角色r、r分配给s2即可。

③(s3,o,r∧w)需要分别将p1、p2赋予角色r,r分配给s3即可(2次授权)。

如果采用第二种授权方案,生成权限p3允许对客体o读写,那么:

①(s1,o,r)只需将p1赋予角色r,r分配给s1即可。

②(s2,o,w)只需将p2赋予角色r,r分配给s2即可。

③(s3,o,r∧w)只需将p3赋予角色r,r分配给s3即可(1次授权)。

对比之下,可以明显发现对于(s3,o,r∧w)授权次数由原来的两次缩减为一次,但是却付出了新的代价:相比第一种方案,第二种方案需要单独开辟一类新的权限p3。

综上所述:单一性,使得权限结构十分清晰,扩展性强,能够将多个单一权限组合分配给同一角色,实现角色多权限,而授权次数是其不足之处。多态性,授权简单,能够实现角色一次授权即可拥有多样的权限,而扩展能力是其瓶颈,因为往往一个权限混合了多种操作在内,尤其是在操作类型增多的情况下,不得不以开辟新的权限为代价来弥补扩展性能的低下。

2.2 动作继承

本文在2.1节中介绍了两种授权方案,都存在不足之处,本节将引进动作继承的概念,结合前面所述的两类授权方案形成结构清晰,授权次数少的更优的方案。

定义8.动作继承:操作op1、op2,如果op1继承op2,那么一旦角色r被赋予了对特定客体op1的权限,此角色将被自动赋予对同客体op2的权限。

例如:如图6所示,定义四类操作,分别为read(读),write(写),delete(删除),create(增加),假设“写”,“删除”,“增加”都继承于“读”,那么角色一旦被赋予“写”或者“删除”或者“增加”特定客体的权限,那么此角色将被自动赋予对同客体“读”的操作权限。

在有了动作继承这一概念之后,再次回顾之前的案例中1、3两种情况如下:

①(s1,o,r):主体s1对客体o具有读权限。

②(s3,o,r∧w):主体s3对客体o具有读写权限。

本文利用动作继承的概念可以很方便的制定出结构十分简单,且授权次数少的方案,在案例中只需定义两类基本权限p1,对客体o具有读权限,p2,对客体o具有写权限,同时定义继承关系为:“写”继承“读”,那么对于情况1,只需将权限p1赋予角色r,再将角色r分配给主体s1即可,而对于情况3来说,只需将权限p2赋予角色r,再将角色r分配给主体s3,发现在情况3中并没有显式的给角色r赋予权限p1(“读”权限),仅仅给角色r赋予了权限p2(“写”权限),但因为动作继承的缘故,“写”继承“读”,即当赋予角色r权限p2后,将自动的被赋予权限p1,如图7所示。

由此可见,动作继承的加入,使得权限重新回归到了原始的单一性,权限的结构十分清晰,方便管理,很容易将多个权限组合分配达到多权限的目的(扩展性提高),同时授权次数也缩减,一定程度上提高授权性能。

2.3 动态角色、动作继承、多操作权限联合

将之前的案例进一步扩展为如下形式:

①(s1,o,r):主体s1对客体o具有读权限。

②(s2,o,r∧w):主体s2对客体o具有读写权限。

③(s3,o,w):主体s3对客体o具有写权限(不具有读权限)。

④(s4,o,delete∧create):主体s4对客体o具有增加、删除的权限(不具有读权限)。

定义继承关系为“写”,“增加”,“删除”继承“读”。

定义权限p1,对客体o具有读权限;权限p2,对客体o具有写权限;权限p3,对客体o具有增加权限;权限p4,对客体o具有删除权限。

授权过程如图8所示。

对于(s1,o,r),将权限p1赋予角色r,再将角色r分配给主体s1(s1对o有读权限)。

对于(s2,o,r∧w),将权限p2赋予角色r,再将角色r分配给主体s2(s2对o有写权限)。

对于(s3,o,w),将权限p2赋予角色r,再将角色r分配给主体s3(s3对o有写权限)。

对于(s4,o,delete∧create),将权限p3,p4赋予角色r,再将角色r分配给主体s4(s4对o有增加、删除的权限)。

显然在(s3,o,w),(s4,o,delete∧create)的授权过程当中是存在问题的,因为定义了继承关系“写,增加,删除继承读”,在此继承关系的基础上对s3分配了带有写权限的角色,“写”继承“读”,那么s3将会自动拥有“读”的权限,而恰恰s3不允许拥有“读”权限。同理(s4,o,delete∧create)。

在更复杂的环境当中,出现这类问题的概率是相当大的,因此得设计一个继承开关,当开关为true(打开状态)时,那么运用继承,相反当开关为false(关闭状态)时,那么不运用继承,通过这个开关动态式的选择是否使用继承关系。根据前面所述的动态角色原理,很容易在角色上添加一个“继承(inherit)”属性,其属性值为布尔类型true或者false,根据inherit这个属性的值来动态开启或关闭继承关系。加入inherit属性后的授权方案如图9所示。

对于(s1,o,r),将权限p1赋予角色r,再将角色r分配给主体s1(s1对o有读权限),且角色“继承”属性值:inherit=true。

对于(s2,o,r∧w),将权限p2赋予角色r,再将角色r分配给主体s2(s2对o有写权限),且角色“继承”属性值:inherit=true,s2对o同时拥有读权限。

对于(s3,o,w),将权限p2赋予角色r,再将角色r分配给主体s3(s3对o有写权限),且角色“继承”属性值:inherit=false,取消s3对o的读权限。

对于(s4,o,delete∧create),将权限p3、p4赋予角色r,再将角色r分配给主体s4(s4对o有增加、删除的权限),且角色“继承”属性值:inherit=false,取消s4对o的读权限。

再进一步对(s4,o,delete∧create)思考,目前只是对角色r分配两次权限p3、p4,关闭inherit属性来实现的,如果说还存在角色r2,r3,r4,…,rn,那么当n的值大到一定程度时仍采用对每个角色ri都进行两次权限分配,必然不如采用多态权限(对角色ri进行一次权限分配从而获得多项权限)的性能来的好。是否采用多态权限应结合实际情况,如果多个操作权限如“创建”、“删除”需要同时分配给非常多的角色时,不如将两个操作权限合二为一为“创建删除”后再进行分配。

3 结束语

传统角色访问控制在复杂环境下性能低下,主要原因有两个,其一是角色本身的静态特质,角色创建后期拥有的权限除非特殊情况一般长期保持不变,灵活性受限[15],其二授权机制中存在大量冗余授权,致使性能上存在很多浪费。本文针对这两种情况设计动态角色,多态权限、动作继承,结合三者长处形成的新的角色访问控制,提高访问控制性能。将来的主要工作将建立完整模型,并利用模型检测思想验证模型的正确性,检测存在不合理之处,加以改善。

摘要:访问控制是信息安全中保证数据机密性和完整性的有效机制,尤其是基于角色的访问控制模型更是获得了广泛的应用。然而随着云计算、物联网等新型系统的出现,数据呈爆炸式增长,用户数也呈现出急速上升的现象,进而使得传统角色访问控制模型中用户角色的分配与管理的复杂性日益增大,其在扩展性和性能上已经不能满足此要求。文中在传统角色访问控制的基础上,提出了一种新的访问控制模型—基于属性值变异的动态角色访问控制模型。首先对角色添加属性来实现角色由静态到动态的转变,提高了角色访问控制的可扩展性,其次在对资源的操作上引入继承的概念,以避免不必要授权,简化了角色的授权,提高了访问控制系统的性能。

属性访问控制模型 第4篇

随着计算机技术和Internet的高速发展, 网络环境日益开放, 用户通过网络可以访问的资源也日益复杂与丰富。网络环境的访问控制已成为网络环境发展的一个急待解决的问题。正是在这种情况下, 特权管理基础设施PMI应运而生。PMI的概念是在2000年X.509v4中提出的, 作为新的技术, PMI以及基于角色的访问控制机制RBAC的提出大大缓解了网络环境中资源的权限管理问题。

本文从应用的角度, 通过分析PMI中标准RBAC模型与属性证书之间的联系, 提出了一个基于属性扩展的RBAC访问控制模型, 旨在简化PMI的授权与访问控制过程, 提高此过程的效率。文章首先介绍了PMI中标准RBAC模型以及属性证书的相关理论, 接着提出基于属性扩展的RBAC模型, 最后对此模型的实现进行了描述。

1 RBAC访问控制策略

访问控制是一种用来保护网络资源的安全机制, 其原理是在访问者访问目标资源之前验证访问者的权限。

在访问控制过程中, 最简单的一种授权方法就是直接为网络用户授权, 将用户与权限进行静态绑定。直接授权方式如图1所示, 用户“001”被赋予“read”读权限, 用户“002”被赋予“write”写权限, 用户“003”被赋予“add”添加权限和“write”写权限。但在实际情况中, 用户的基本信息和用户的权限信息是在不断变化的, 某个用户基本信息的任何改变都可能导致此用户所有权限信息的改变。因此, 要在数据库中维护用户与访问权限之间的大量不断更新的数据是一项相当耗费资源的工作。

针对这个问题, 基于角色的访问控制策略被提出。RBAC也称为基于角色的访问控制, 其基本思想是用户通过“角色”的身份来访问资源, “角色”作为对用户授权的一种间接手段。RBAC的管理中不需要直接对每个用户分配访问权限, 而只需对用户分配角色, 对角色分配权限。用户通过其拥有的角色来获得资源的访问权限。采用RBAC策略, 将“用户-权限”关系分解为“用户-角色”与“角色-权限”两个子关系, 标准RBAC策略示意如图2所示。在图2中, 用户“001”被赋予“role1”角色, 用户“002”被赋予“role2”角色, 而角色“role1”、“role2”被分别赋予“read”, “write, add”权限。在实际情况中, 角色的信息更新并不频繁, 并且角色与权限之间的关系相对固定, 因而用户权限的改变被简化为用户角色的更改。采用RBAC模型, 减少了不必要的重复工作, 增强了灵活性和可操作性, 而且用户和角色、角色和访问权限之间多对多的关系与实际组织中的成员、岗位与责任结构关系是一致的。

2 基于属性扩展的RBAC策略

若直接采用RBAC模型, 仍然存在问题:用户与角色之间依然是静态对应关系。如果一个网络系统中存在大量的用户, 管理用户与角色之间关系的工作量依然十分繁重。针对这个问题, 基于属性扩展的RBAC策略被提出。在描述基于属性扩展的RBAC策略之前, 需要介绍一个重要的概念:属性证书AC (Attribute Certificate) 。

属性证书是由PMI权威机构AA (Attribute Authority) 签发的将实体与其所拥有的权力属性绑定的一种数据结构, 主要用于授权管理。属性扩展RBAC就是利用属性证书结构中的属性项来确定用户的角色。属性证书的结构如表1所示。

在属性证书结构中, “属性”项的内容是属性证书持有者所具有的属性, 在实际工作中, 对网络用户分配的角色与用户的属性之间具有密切的联系。利用用户属性与用户角色之间的联系可以对标准RBAC模型进行改进, 规定一系列匹配规则, 利用规则与用户属性证书中的用户属性确定用户的角色, 从而将用户与角色之间进行动态匹配。可以将这种改进的RBAC模型称为基于属性扩展的RBAC模型。基于属性扩展的RBAC模型如图3所示。

在图3中, 从用户的属性证书得知, 用户001具有属性:部门“Dpt”为“dpt1”;职位“Place”为“employee”。用户002和用户003具有属性:部门“Dpt”为“dpt2”;职位“Place”为“employer”。此外, 规则集包括两条规则:

(1) “若部门为‘dpt1’且职位为‘employee’则角色为‘role1’。”

(2) “若部门为‘dpt2’且职位为‘employer’则角色为‘role2’。”

在基于属性扩展的RBAC策略中, 由于采用了“匹配规则”的概念, 用户与角色之间实现了动态匹配。当用户的基本信息发生变更时, 只要用户的属性证书得以更新, 用户的权限就能够获得更新。相对于标准RBAC策略, 基于属性扩展的RBAC进一步降低了工作强度, 提高了灵活性和可操作性。

3 扩展RBAC的实现

3.1 PMI的访问控制抽象模型

在P M I的访问控制抽象模型中, 访问控制执行点A E F (Access Control Enforcement Function) 接收访问者的资源访问请求信息, 并将资源访问请求以决策请求的形式提交给访问控制决策点ADF (Access Control Decision Function) , 决策点从LDAP服务器和其他数据库中查找到访问者的各种证书及相关信息, 并根据这些信息做出决策, 将决策结果返回至访问控制执行点, 执行点根据决策结果决定访问者是否访问资源。PMI的访问控制抽象模型如图4所示。

3.2 基于属性扩展RBAC的访问控制模型

在PMI访问控制抽象模型的基础上, 提出基于属性扩展的R B A C访问控制模型, 如图5所示。在基于属性扩展的RBAC访问控制模型中, 访问控制服务器接受经过认证的用户访问请求, 并将访问请求以XML文件的形式发送至决策服务器。决策服务器解析XML形式的访问请求, 并从数据库中取用户属性、匹配规则、角色权限信息, 作出决策, 将决策结果以XML文件的形式发送回访问控制服务器。访问控制服务器解析XML, 并根据决策结果决定用户是否对目标服务进行访问。

3.3 访问请求与决策结果的XML描述

在基于属性扩展RBAC模型中, 采用XML文件的形式来表示访问控制服务器与决策服务器之间传送的访问请求与决策结果。以下分别用一个例子来描述XML文件形式的访问请求与决策结果。

例1.XML形式的访问请求

在此访问请求中, 根节点表示节点的内容是访问请求。节点表示用户的基本信息;节点表示访问者请求的网络资源。其中, 代表资源的序号, 代表对资源的请求操作。

例2.XML形式的决策结果

在此决策结果中, 根节点表示节点的内容是决策结果。节点表示用户的基本信息;的内容是访问者请求的网络资源, 资源的序号“res_ID”和对资源的操作“action”均作为节点的属性;表示决策的结果。

4 结束语

本文结合特权管理基础设施 (P M I) 中属性证书与标准RBAC策略的基本理论, 描述了基于属性扩展的R B A C访问控制策略, 并提出了一种可行的基于属性扩展的RBAC访问控制模型。文章重点研究了基于属性扩展的RBAC策略的特点、优势及其实现的相关问题。在今后的工作中, 还需要对策略具体实现过程中的某些细节问题进行进一步的深入研究, 如:如何实现从用户属性证书中提取属性, 如何利用各种信息进行决策等等。最后, 希望本文能抛砖引玉, 有助于读者对PMI访问控制更进一步了解。

参考文献

[1]关振胜.公钥基础设施PKI与认证机构CA[M].北京:电子工业出版社.2002.1.

[2]冯登国.网络安全原理与技术[M].北京:科学出版社.2003.

[3]谭强, 黄蕾.PMI原理与实现初探[J].计算机工程.2002.

[4]吴立军, 苏开乐.基于角色PMI的电子政务安全模型[J].计算机工程与应用.2004.

[5]薛伟, 怀进鹏.基于角色的访问控制模型的扩充和实现机制研究[J].计算机研究与发展.2003.

[6]Boeyen S. X.509 (2000) : Overview of PKI & PMI Frameworks (4th Edition) [Z]. http://www.entrust.com/resourcecenter/pdf/509_overview.pdf.2003.

计算机访问控制模型 第5篇

1 自主访问控制模型

计算机访问控制模型有很多种, 而自主访问控制模型就是其中一种。所谓自主访问控制模型, 简单的说, 就是按照自主访问控制策略要求而构建的模型, 该模型只需要合法用户进行计算机访问, 而不允许非法用户访问, 此种模型允许用户将自己的访问权限转移给其他用户。相关学者也将此种模型, 称之为任意访问控制模型。现阶段已经有很多系统都应用此种控制模型。自主控制模型的实现应用步骤如下:第一, 判断用户的身份是否合法;第二, 按照用户的权限, 提供相应的信息资源。有些情况下, 主体控制权限需要进行必要的修改, 而此种修改通常情况下, 由特殊用户负责, 或者特殊用户组负责。

自主访问控制模型比较灵活, 便于用户访问, 并且使得DAC应用范围更加广泛。因为用户能够进行权限传递, 这就是的不具备访问权限的用户必须通过权限传递从另一个用户中获得相应的访问权限。这样虽然方便了用户, 但是却存在着比较大的安全隐患, 无法保证数据保护安全合理有效。

自主访问控制模型最典型的优势就是授权主体有权限将客体访问权限收回或者授予权限。此种控制模型主要是借助控制矩阵以及控制列表来储存相应的访问信息, 这样就能够有效的限制主体访问能力。

2 强制访问控制模型

此种模型的研发之初主要是为了能够完善自主访问控制策略。研究者最初阶段研发了各种类型的计算机访问控制模型, 每种模型都有非常准确的定义, 后来逐渐发展成为此种控制模型。自主访问控制模型, 将用户以及客体资源分为了不同的级别, 用户级别确定之后, 自身无法改变, 只有管理人员能够有权利改变。强制访问控制策略属于多级访问控制策略, , 明显特征就是访问主体能够进行强制性的控制。强制访问控制模型, 预先会确定各个安全级别属性, 之后分别给予各个访问主体以及受控对象, 如果访问主体要进行相应的访问, 模型会对访问主体所拥有的安全级别进行分析, 依据分析结果再确定是否能够授予访问主体相应的访问权限。强制访问控制模型对访问主体会标记两个并于同的标识, 受控对象也是如此。第一个是具有安全等级的标记点, 此标记点就偏序关系;第二个为非等级分类标记。至于安全等级的具体层次, 这要结合安全主体与客体对象进行具体分析。如果进行偏序关系的考量, 主体与客体访问方式目前可以分为四种类型:首先, 向下读类型, 此种类型是主体与客体相比, 安全级别更高, 主体能够进行查阅方面的读操作;其次, 向上读类型, 主体与客体相比, 安全等级比较低, 能够进行列读操作;再次, 向下写类型, 主体与客体相比, 安全级别更高, 主体能够进行动作操作或者是执行写操作;最后, 向上写操作, 主体与客体相比, 安全级别比较低, 能够进行的相应的动作与写的操作。

3 基于角色的访问控制模型

计算机访问控制模型中, 基于角色的访问控制模型应用更加的广泛, 几乎所有的人数比较多的大型企业都应用此种模型。所谓角色的访问控制模型简单的说就是将访问权限进行角色上的分配, 用户依据自己的角色来进行相应的访问。最简单的例子就是高校将访问权限分为教师、学生等, 不同角色的人选择进入不同的网页中, 获取不同的信息资源。基于角色的访问控制模型主要以控制主体为重点, 按照访问对象的比较职权以及所要承担的相应的责任进行角色划分, 从而将角色与访问权利有效的联系起来。在这里, 角色就是桥梁, 沟通访问主体与计算机数据信息。

角色可以看作是一组操作的集合, 不同的角色具有不同的操作集, 这些操作集由系统管理员分配给角色。在下面的实例中.我们假设Tchl, Tch 2, Tch 3, …, Tch i是对应的教师, Studl, Stud 2, Stud3, …、Studj是相应的学生, Mngl, Mng 2, Mng3, …, Mngk是教务处管理人员, 那么老师的权限为Tch MN= (查询成绩、上传所教课程的成绩) ;学生的权限为Stud MN= (查询成绩、反映意见) ;教务管理人员的权限为Mng MN= (查询、修改成绩、打印成绩清单) 。那么, 依据角色的不同, 每个主体只能执行自己所制订的访问功能。用户在一定的部门中具有一定的角色, 其所执行的操作与其所扮演的角色的职能相匹配, 这正是基于角色的访问控制 (RDAC) 的根本特征, 即:依据RBAC策略, 系统定义了各种角色, 每种角色可以完成一定的职能, 不同的用户根据其职能和责任被赋子相应的角色, 一旦某个用户成为某角色的成员, 则此用户可以完成该角色所具有的职能。系统管理员负责授予用户各种角色的成员资格或撤销某用户具有的某个角色。例如学校新进一名教师Tchx, 那么系统管理员只需将Tchx添加到教师这一角色的成员中即可, 而无需对访问控制列表做改动。需要加以注意的是, 相同的用户, 可以有不同的角色, 换言之, 相同的访问对象, 能够被赋予不同的角色, 最简单的例子就是, 该访问对象扮演教师的角色, 但是也能够同时扮演进修学生的角色。同样, 一个角色可以拥有多个用户成员, 这与现实是一致的, 一个人可以在同一部门中担任多种职务, 而且担任相同职务的可能不止一人。因此RBAC提供了一种描述用户和权限之间的多对多关系, 角色可以划分成不同的等级, 通过角色等级关系来反映一个组织的职权利责任关系, 这种关系具有反身性、传递性和非对称性特点, 通过继承行为形成了一个偏序关系, 比如Mng MN>Tch MN>Stud MN。RBAC中通常定义不同的约束规则来对模型中的各种关系进行限制.最基本的约束是“相互排斥”约束和“基本限制”约束, 分别规定了模型中的互斥角色和一个角色可被分配的最大用户数。RBAC中引进了角色的概念, 用角色表示访问主体具有的职权和责任, 灵活地表达和实现了企业的安全策略。

结束语

综上所述, 可知上述介绍的三种计算机访问控制模型相比较而言, 基于角色的访问控制模型的整体安全级别更高, 不仅具有良好的灵活性, 同时能够解决企业用量数量多的问题, 因此企业可以尝试着应用此种模型。

摘要:计算机访问控制模型主要有三大类型, 分别为自主访问控制模型、强制访问控制模型、基于角色的访问控制模型。这三种控制模型各具优势, 先进性是越来越好。分别对这三种模型进行了介绍, 希望能够提供借鉴。

关键词:计算机,访问控制模型,企业

参考文献

[1]郎波.面向分布式系统访问控制的信任度量化模型[J].通信学报, 2010 (12) .

[2]曲延盛, 罗军舟, 李伟, 王鹏, 谭晶.可信可控网络资源控制的冲突检测机制[J].通信学报, 2010 (10) .

[3]张颖君, 冯登国, 陈恺.面向空间索引树的授权机制[J].通信学报, 2010 (9) .

[4]王小明, 付红, 张立臣.基于属性的访问控制研究进展[J].电子学报, 2010 (7) .

历史信息约束的角色访问控制模型 第6篇

目前,RBAC(Role Based Access Control,基于角色的访问控制)模型作为保护信息资源的手段已经广泛用于各种系统。RBAC通过模拟企业或组织内部的各种角色(工作岗位)来达到数据模型和现实概念之间的统一,为管理用户权限提供了极大的便利和灵活性。在访问控制模型中,最重要的原则之一就是最少特权原则,也就是仅仅赋予用户足够完成工作的权限。约束RBAC(Constrained RBAC)模型通过引入责任分离(Separation of Duty)来解决利益和职责的冲突,实现最小特权原则,其中包括静态责任分离(Static Separation of Duty,SSD)和动态责任分离(Dynamic Separation of Duty)。SSD是在用户分配角色时进行约束,防止用户拥有相冲突的角色;DSD是在用户建立会话时进行约束,防止用户一次激活多个角色。但是在实际需求中,往往需要基于用户历史信息进行授权约束,例如,某企业规定,在销售部工作过的员工不能担任技术部的职务,在后勤部工作过的员工不能担任财务部的职务,SSD和DSD就很难实现这种约束。为了更好地实现最小特权原则,本文提出了将有限状态机(Finite State Machine,FSM)引入约束RBAC模型,构成一种新型的FSM_RBAC模型,用于记录和表示用户授权历史信息,对相关授权约束提供直接支持。

1 SSD和DSD的分析与不足

在RBAC模型中,授权约束是通过SSD和DSD关系来描述并实施的。SSD的目的是防止用户被赋予有责任或利益冲突的角色,是在用户赋予角色时实施的约束,以验证对用户授权的合法性。SSD的形式化描述为:

(1)SSD⊆(2ROLES×N)是由(rs,n)这样的二元组组成的集合,其中每个rs都是一个角色集(role set),n是不小于2的自然数。SSD的含意是对于每个(rs,n)∈SSD中的角色集rs,任何用户都不能被赋予n或n个以上的角色。正式描述为:

DSD的目的是防止用户同时激活多个有责任或利益冲突的角色,而这些角色独立激活时并没有任何冲突。DSD是在用户使用角色(赋予的权限)时实施的约束,确保用户没有滥用权限。DSD的形式化描述为:

(2)DSD⊆(2ROLES×N)是由(rs,n)这样的二元组组成的集合,其中每个rs都是一个角色集(role set),n是不小于2的自然数。DSD的含意是对于每个(rs,n)∈DSD中的角色集rs,任何主体都不能被激活n或n个以上的角色。正式描述为:

可以看出,SSD和DSD关系在设计上是从角色的角度来考虑的,所定义的约束也是针对角色的,而没有任何有关用户的信息。而在现实应用中,有时候需要从授权策略上根据用户的授权历史信息做出一些规定,需要有能够记录和表示用户授权历史信息的访问控制模型,而SSD和DSD的不足在于它们没有记忆性,不能记录用户的授权历史信息,这就使得RBAC难以适用某些应用环境。

2 将FSM引入RBAC模型

2.1 FSM的基本思想

有限状态机是一种概念性机器,它能采取某种操作来响应一个外部事件。具体采取的操作不仅能取决于接收到的事件,还能取决于各个事件的相对发生顺序。之所以能做到这一点,是因为机器能跟踪一个内部状态。为一个事件而响应的行动不仅取决于事件本身,还取决于机器的内部状态。另外,事件还有可能会使机器的状态发生迁移。这样一来,任何逻辑都可建模成一系列事件/状态组合。能够使机器状态发生迁移的事件也称为激励。

有限状态机是记录历史信息的有效手段,任何状态之间的迁移都是由一定的激励引起的,所以从起始状态到目标状态的全部激励就是目标状态的历史事件。有限状态机由一个六元组(S,S0,I,O,f,g)来定义,其中S是有限状态集,S0是起始状态,I是输入有限集,O是输出有限集,f和g分别是状态迁移函数和输出函数。

2.2 FSM_RBAC模型

用FSM来描述用户的授权历史信息,针对RBAC模型的具体情况,定义下列元素:有限状态集S定义为用户状态(含初态S0),是用户授权历史信息的标识;输入有限集I定义为激励角色(stimulant role)集,激励角色是指能够引起用户状态迁移的那些角色;输出有限集O定义为ARS(Available Role Set,可用角色集),是用户在某状态下对应的可用角色;状态迁移函数和输出函数的具体定义见下文。根据有限状态机的定义,输出函数能够确定状态S和输出O之间的一一对应的关系,在FSM_RBAC模型中,为了表示的方便,我们用(s,ARS)这样一个二元组来表示这种对应关系,即用户状态和可用角色集的对应关系。有了以上定义,FSM_RBAC的形式化定义如下:

(1)STATES,STIMU_ROLES,ARS(用户状态,激励角色,可用角色)。

(2)user_state(u:USERS)→STATES用户u到相应状态的映射。

(3)trans_state(s:STATES,sr:STIMU_ROLES)→STATES状态s在输入激励角色sr时的状态转换映射,即状态迁移函数。

(4)FSM_RBAC⊆STATES×2ROLESFSM_RBAC的含意是,对于每一个(s,ARS)∈FSM_RBAC,向处于状态s的用户所赋予的角色必须是可用角色集ARS中的元素。正式表示为:∀u∈USERS,∀(s,ARS)∈FSM_RBAC:user_state(u)=s⇒assigned_roles(u)⊆ARS。

(5)state_roles(s:STATES)→2ROLES状态s到角色集的映射,即输出函数。正式表示为:state_roles(s:STATES)={r∈ROLES|(s,ARS)∈FSM_RBAC,r∈ARS}。

(6)assigned_roles(u:USERS)→2ROLES用户u到角色集上的映射,正式表示为:assigned_roles(u)={r∈ROLES|(u,r)∈UA}。

FSM_RBAC可以用于验证对用户授权的合法性。用户状态标识用户与可用角色集之间的映射关系,也就是说,用户当前所处的状态决定着用户当前的可用角色集。用户与状态之间是多对一的关系,每个用户对应一个用户状态,而每个状态与一个或多个用户相对应。

2.3 如何使用FSM_RBAC

FSM_RBAC的使用有两种选择,一种是在向用户授权之前,首先使用FSM_RBAC得到用户在当前状态下的可用角色集,这样就能确保向用户赋予的角色取自用户的当前可用角色集,也就保证了授权的合法性,这种情况下FSM_RBAC相当于角色过滤器;另外一种是先向用户赋予角色,然后用FSM_RBAC进行验证,这种情况下FSM_RBAC的输出角色集应该定义为用户的禁止角色集。这两种方式各有利弊,前者实现简单,逻辑比较清楚;后者计算量小,但有时需要回退。前面的FSM_RBAC模型是按照前面一种使用方式来定义的,在某些情形下,后面一种方式可能更合适。

3 FSM_RBAC的应用示例

下面举例说明FSM_RBAC的应用。假设在某系统中有五个角色:r1、r2、r3、r4和r5,系统规定,如果曾经向用户u赋予过角色r1,那么就不能再向u赋予角色r3;如果曾经向用户u赋予过角色r2,那么就不能再向u赋予角色r4。

首先定义有限状态集S。状态是用户授权历史的标识,我们定义了四种状态:S0、S1、S2和S3,其中S0是初态,S1表示向用户赋予过角色r1,S2表示向用户赋予过角色r2,S3表示向用户赋予过角色r1和r2。所以S={S0,S1,S2,S3}。我们再定义输入集I,也就是激励角色集。本例中的激励角色为r1和r2,也就是规则中的前提部分所含的角色,所以有I={r1,r2}。接下来我们定义输出集O,也就是可用角色集,这个集合就是角色的全集减去用户当前状态不能赋予的角色集所得的差集。通过简单的分析就可以得出状态和可用角色集的对应关系为:S0对应{r1,r2,r3,r4,r5}、S1对应{r1,r2,r4,r5}、S2对应{r1,r2,r3,r5}、S3对应{r1,r2,r5}。所以O={{r1,r2,r3,r4,r5},{r1,r2,r4,r5},{r1,r2,r3,r5},{r1,r2,r5}}。最后定义状态迁移函数和输出函数,这两个函数的具体内容从略,可以从图1和表1中直观看出。

有了以上这些定义,就可以给出状态图和状态表了。在本例中,每个用户对应一个状态(开始为初态),每个状态对应一个可用角色集(输出),向用户赋予的角色必须属于用户当前的可用角色集;如果向用户赋予的角色是激励角色,那么进行相应的状态转换。用户状态图如图1所示,状态表如表1所示。

4 FSM_RBAC的应用范围

由于我们在FSM_RBAC的定义中将输入有限集I定义为激励角色集,输出有限集O定义为可用角色集,所以能够结合授权策略根据用户的授权历史信息保证对用户授权的合法性。但是可能还有基于用户工作时间进行授权约束的需求,例如,某企业规定,工作时间不满三年的员工不能担任项目主管,工作时间不满五年的员工不能担任部门经理。要描述这样的授权策略,需要重新定义FSM_RBAC中的元素。状态S定义为与用户的工作时间相关,输入I定义为用户的工作年限,输出O仍定义为用户的可用角色集,等等。此外,如果将输出有限集O定义为用户可以激活的角色集,那么FSM_RBAC就可以根据用户的授权历史信息验证用户使用角色(赋予的权限)的合法性,当然,此时状态迁移函数和输出函数也要做相应的改动。

可见,FSM_RBAC的具体作用由其中各元素的定义而定,赋予这些元素不同的含义就会获得不同的FSM_RBAC。因此可以说,各种基于用户历史信息的授权策略都可以通过FSM_RBAC来描述和实施,我们要做的就是根据实际需求定义FSM_RBAC中的各个元素,但是基本原理与前面讨论的模型类似。

5 结束语

本文首先分析了约束RBAC的SSD和DSD两种约束机制,指出它们都没有记忆性,因而无法实施有关历史信息的授权约束策略。将有限状态机引入RBAC模型,构成FSM_RBAC模型,就能够有效解决约束RBAC模型的记忆性问题。文中给出了一种FSM_RBAC的形式化描述,并结合一个简单的示例说明了该FSM_RBAC模型的基本思想及其具体作用。需要特别指出的是,在具体应用中,应该根据实际应用需求灵活定义和使用FSM_RBAC,不应该拘泥于本文所示例的情形。文中所给出的FSM_RBAC模型已经在军队某大型分布式数据库项目中得到应用,并取得了良好的效果。

参考文献

[1]Information Technology Industry Council(ITI)“American National Standard for Information Technology–Role Based Access Control(draft)”.April 2003.

[2]D.Ferraiolo,R.Sandhu,S.Gavrila,D.R.Kuhn,R.Chandramouli,“A Proposed Standard for Role Based Access Control”ACM Transactions on Information and System Security,vol.4,no.3(August,2001)-draft of a consensus standard for RBAC.

[3]黄健,卿斯汉,温红子.带时间特性的角色访问控制[J].软件学报.2003.

[4]杨珍,刘连忠.时间约束的角色访问控制系统的设计与实现[J].计算机应用研究.2008.

基于角色与代理的访问控制模型 第7篇

基于X.509证书的代理证书访问控制机制是在网格中广泛使用的一种访问控制机制[1]。该机制便于密钥管理,分发和数字签名,能够给用户提供认证、机密性、完整性和不可否认性服务,同时便于用户实现单点登录、权限授予等活动。

基于角色的访问控制RBAC(Role Based Access Control)[2]模型通过引入角色这一中介,实现了用户与权限的逻辑分离,这在很大程度上简化了访问控制授权管理。

目前如何将RBAC模型与代理机制相结合,从而提供一种具有两者特性的访问控制策略,已经成为人们所关心和研究的课题。本文在对RBAC模型与代理机制分别进行分析的基础上,提出基于角色与代理的访问控制RPBAC(Role and Proxy Based Access Control)模型,该模型能够很好地将两者的特点结合起来。

1 代理机制和RBAC

1.1 代理机制

基于X.509证书的代理证书访问控制机制使得用户可以方便地进行授权和委托,从而保证用户单一登录就可以完成自己的任务。尽管代理机制非常便捷,但其中也有很大的安全隐患。

如图1所示,资源提供者Z信任用户X,不信任用户Y。用户X授权用户Y,允许其以自己的身份访问资源。Y通过X的代理证书可以完成对Z所拥有资源的访问,显然此时Z本身的访问安全将受到威胁。

1.2 RBAC概述

RBAC是美国国家标准化和技术委员会(NIST)的Ferraiolo等人在90年代提出的。其基本组件包括使用者、角色、授权及会话[3,4]。

尽管RBAC简化了访问控制授权,但是RBAC本身也存在安全隐患。当一个用户拥有多个角色时,RBAC只考虑用户当前的角色,并只依据当前角色赋予相应的权限。这里为了更形象地说明这个问题,本文提出了角色屏蔽的概念。角色屏蔽是指用户的当前角色屏蔽了用户具有的其他角色。这就使得在访问时仅仅依据用户的当前角色进行授权,而不考虑其它角色。尽管在RBAC模型中要求同一用户不可以拥有两个相互排斥的角色[3],但目前角色之间的关系日益复杂,很多情况下难以确定角色之间是否相互排斥。如图2所示,用户甲有两个角色,一个是资源访问者角色,一个是资源所有者角色。资源所有者乙使用RBAC对来访用户进行访问控制,其本地安全策略设定在系统中拥有资源所有者角色的用户不可以访问其资源,以防止资源泄露。当甲以资源所有者角色访问乙时,根据访问控制机制,乙应禁止甲进行访问;而当甲以资源访问者角色访问时,乙应允许甲进行访问,这就产生了角色屏蔽。由此可见,以往单单考虑用户当前角色的授权方式并不安全。

1.3 代理机制与RBAC结合所产生的问题

如1.1和1.2节所示,如果将RBAC与代理证书相结合会产生角色屏蔽,从而影响到系统的安全。我们看下面一个实例。在系统中有以下两种角色:(1)资源提供者角色:提供资源;(2)管理者角色:对系统中资源进行统筹管理。其中,文档是资源提供者的机密,不能被竞争对手(其他具有资源提供者角色的用户)获得,其关系如图3所示。用户A具有管理者角色,B和C具有资源提供者角色。若用户A将自身的代理证书授予用户B,委托其访问C的文档。则此时,B将以A的身份对C进行访问,从而可以获得C的文档,显然是与C设定的RBAC策略相冲突的,如图4所示。

冲突发生的原因是:用户A授权用户B以自己的角色访问资源时,隐藏了B原本的角色。这就会产生角色屏蔽,从而影响了系统的安全。

2 RPBAC模型

2.1 RPBAC定义

在介绍RPBAC模型之前,本文作出以下几个定义。

定义1 角色扮演者 角色扮演者是由一个角色被用户激活后产生的一个动态对象,是用户执行该角色的代理。其集合Actors记为A。可以用一个元组<User,Role,Lifetime>表示,其中: User是Actor所代理的用户且User∈U,U是用户集;Role是被激活的角色且Role∈R, R是角色集;Lifetime为Actor的生存时间,包括两个时间项:产生时间和有效时间。

用户A激活角色B所产生的角色扮演者记为Actor(A,B)。

定义2 威胁度 在RPBAC中,威胁度是衡量角色安全性的一个标准。一个角色的威胁度越高,对用户赋予该角色时就应越谨慎。系统中每个角色的威胁度可由系统管理员进行设定,其取值范围是[1,…,10]之间的整数,值越大表明威胁度越高。角色k的威胁度记作:TD(k)。

定义3 证书链用户角色集 证书链用户角色集是证书链中每个用户所有角色的集合,该集合可以用一个元组<User,Role>表示,其中:User∈U, Role∈R。集合记作:UC。其中一个元素记为uc(useri, rolej), useri∈U, rolej∈R。

定义4 最终角色 最终角色是由证书链用户角色集中的Actors通过威胁度算法生成的。最终角色具有时效性,其生命期就是所有Actor中Lifetime的交集。记作:FR。

2.2 RPBAC模型

RPBAC模型的基本思路是:首先,由系统管理员给每个角色赋予一个威胁度。然后,根据证书链中的用户名取得所有用户具有的角色,并依据威胁度算法所设定的角色威胁度获得每个角色所对应的威胁度。再将所有角色激活,获得相应的Actor。这时每个Actor都具有一个对应的威胁度。选取其中威胁度最小的Actor,便是证书链所具有的最终角色。该模型的数学表达式为:FR=min(Actor(UC))=min(Actor(i,juc(useri,rolej))),其中uc(useri, rolej)∈UC,useri∈U, rolej∈R。其模型如图5所示。

在RPBAC模型中,如何确定角色威胁度是一个重点。在本文中提出了3种威胁度算法,这三种算法所考虑的侧重面不同,系统管理员可以根据实际情况任选其一。

在介绍威胁度算法之前先给出权值阈的定义。

定义5 权值阈 权值阈是指由系统管理员设定的资源安全权值RSV(Resource Security Value),在该值及其以上的资源称为重要资源。

三种威胁度算法如下:

算法1:考虑角色所能访问重要资源的数量,数量越多威胁度越大。该算法重点考虑角色对重要资源的覆盖面,覆盖面越大,威胁度越高。

算法2:考虑角色可访问的所有资源RSV的总值,值越大威胁度越大。该算法重点考虑角色对系统资源整体安全的影响。

算法3:考虑重要资源的RSV平均值。该算法是以上两种算法的一种平衡。在考虑重要资源数量的同时,也考虑到了对系统资源整体安全的影响。

为了更好地解释以上三种算法,考虑如下情况。证书链用户角色集中有三个角色,其中角色A有权访问3个资源,角色B有权访问5个资源,角色C有权访问7个资源,每个资源的RSV如表1所示(其中权值阈为5):

由表1不难看出,使用不同算法最终选取的FR也有所不同。采用算法1, FR=B;采用算法2,FR=C;采用算法3,FR=A。

3 总 结

本文首先介绍了RBAC与代理机制所具有的安全隐患,并指出RBAC与代理机制结合后出现的安全问题。然后在此基础上提出了基于角色与代理的访问控制模型。该模型重点解决了RBAC与代理机制相结合后所产生的角色屏蔽问题,同时很好地继承了两者在访问控制中的特点,从而进一步加强了访问控制安全。

摘要:基于X.509证书的代理证书访问控制机制与基于角色的访问控制是当前使用较为广泛的两种访问控制策略。在对两者分别研究的基础上,将其特点相结合建立了基于角色与代理的访问控制模型,进一步增强了访问控制安全。

关键词:代理,访问控制,安全

参考文献

[1]Foster I,Kesselman C.The Grid:Blueprint for a NewComputing Infra-structure[M].San Fransisco,CA Morgan Kaufmann,1999.

[2] Welch V,Siebenlist F,Foster I.Security for Grid services[J]. High Performance Distributed Computing,2003:48-57.

[3] Sandhu R, Coyne EJ, Feinstein HL, Youman CE.Role-based access control model[J].IEEE Computer,1996,29(2):38-47.

属性访问控制模型 第8篇

关键词:可信计算,信息安全,访问控制,组织结构,TORBAC

1 可信计算

1.1 可信计算的定义和基本思想

1.1.1 可信计算的定义

对于可信计算并没有统一的定义。ISO/IEC15408标准定义为:一个可信的组件、操作或过程的行为在任意操作条件下是可预测的, 并能很好地抵抗应用程序软件、病毒以及一定物理干扰所造成的破坏。它强调行为的可预测性, 能抵抗各种破坏, 达到预期的目标。

1.1.2 可信计算的基本思想

可信计算的基本思想是在计算机系统中建立一个信任根, 再建立一条信任链, 一级测量认证一级, 一级信任一级, 把信任关系扩大到整个计算机系统, 从而确保计算机系统的可信。其中一个可信计算机系统由可信硬件平台、可信操作系统和可信应用组成。如图1所示:

1.2 可信计算技术

1.2.1 可信平台的信任根

TCG (trusted computing group) 是一个国际性的可信计算平台联盟。在其规范中, 可信计算平台的信任根由3个根组成, 它们是可信度量根、可信存储根和可信报告根。可信度量根是平台开机后要首先执行的一段程序, 不可绕过、不可篡改。在可信度量过程中要对度量的结果数据进行记录存储, 以便以后应用。这个存储实体就是可信存储根。可信计算平台应当对授权访问的实体提供平台的可信状态报告。提供平台的可信状态报告的实体就是可信报告根。可信存储根和可信报告根由可信平台模块TPM充当。

1.2.2 TCG密钥管理

每个TPM对外都通过一对公私钥AIK (attestation identity key) 标识自己的身份, TPM通过AIK私钥对信息签名, 证明其来源。除了证明身份的密钥之外, TPM还可以生成和保存数据加密密钥。在TPM的硬件支持基础上, TCG软件栈 (TCG software stack, TSS) 维护一个层次化的密钥结构, 对系统和用户密钥进行有效安全管理, 并为上层应用和TPM芯片之间提供一个有用接口。在该层次化的密钥结构中, 有一个被称之为SRK (storage root key) 的根密钥, 该密钥是在系统确定或更换拥有者时由TPM产生。TCG对密钥的管理和保护方式是采用一种层次化的树形结构, 其中SRK以外的每个密钥都由其父密钥加密保护, 如图2所示:

TCG强调并从技术上支持系统拥有者和使用者角色的分离。TPM中的一些组织资源、对象和功能只能被系统拥有者访问和操作;一般使用者只能访问属于自己的对象资源。

2 传统的ORBAC模型

2.1 ORBAC模型

ORBAC模型中组织结构与角色配合使用, 大大简化系统管理员的工作复杂程度。ORBAC包含了RBAC的全部内容:核心、层次关系、责任分离。除此之外, 还加入了组织结构的层次关系, 以及组织结构与RBAC模型中各部分内容的关系。

与角色层次的关系的相同之处在于, 组织机构层次也是一个数学意义上的偏序关系, 它定义了组织结构间的等级关系, 级别高的组织可获得下级组织的权限。角色层次的关系的区别在于它是从组织的角度控制用户的访问权限。ORBAC模型如图3所示:

模型中各部分的含义在下面各定义中分别说明。引入组织结构后, 原来的RBAC模型的形式化定义中, 要增加组织结构层次的定义, 并且除受限的层次关系定义2b保持不变外, 其它定义都要进行相应改变。

2.2 ORBAC模型存在的问题

ORBAC是目前在组织结构方面得到广泛关注和大量应用的访问控制模型, 许多应用系统的权限设计都受到了它的影响。但在某些场合下, 应用起来不方便。下面将结合本文研究主题来谈一个应用ORBAC时遇到的问题。

在传统的非可信计算环境下的访问控制中, ORBAC模型只能利用设置用户的权限来实现访问控制的安全性和保密性, 然而对于来自于内部的安全威胁, 这种访问控制技术很难发挥其功效。因为这种技术只是从用户的非法操作和越权操作来进行控制, 但是内部人员可能有合法的、不受限制的访问权限, 甚至系统审计无法对这类活动进行追踪。

上述这个问题是基于可信计算技术的, 由此我们可以产生这样的设想如何将可信计算技术与传统的ORBAC访问控制结合起来, 来减少ORBAC访问控制的安全性、可靠性和保密性。针对此问题, 提出的改进的模型—TORBAC模型。其中提到的可信计算平台的信任根和信任链技术, 是基于这样的考虑:若部门希望企业中的每个员工都有权访问某个权限, 则可将这个权限授给每个员工。这时企业中的所有子部门都会继承这个权限。但是在进入的时候必须通过身份验证。可信平台开机后要首先执行的一段程序, 不可绕过、篡改。在可信度量过程中要对度量的结果数据进行记录存储。利用可信计算会进一步简化降低系统安全性和可靠性, 与目前的组织机构情况是一致的。

3 可信ORBAC模型

3.1 TORBAC (Trusted Organized RBAC) 模型

基于以上的原理分析, 我们给出改进后的访问控制模型, 如图4所示:

其中上述模型 (可信计算机终端平台可以使不同的, 不是唯一的) 各个组成部分的表示方法如下所示:用户就是在访问控制各组织的各个成员;可信计算机终端平台是用户对组织模型进行访问控制的可信平台;KMC是系统内部的可信实体, 它负责产生并向各可信计算终端平台分发密钥加密密钥 (wrapping key, WK) ;ROLES、ORGS、OPS、OBS、SSD、DSD分别代表角色集、组织结构集、操作集、资源对象集、静态责任分离、静态责任分离。UAR USERS×ROLES:用户集到角色集的分配关系的多对多映射。UAO USERS×RGS:用户集到组织结构集的分配关系的多对多映射。UA UAR∧UA:UAR与UAO的交集。RH ROLES ROLES:角色层次关系;OH ORGS ORGS:组织结构层次关;SESSIONS:会话集;User_sessions:用户会话集;Session_roles会话角色集。

3.2 TORBAC模型的工作流程

3.2.1 模型工作原理

当用户访问组织模型时, 首先从可信计算终端访问组织资源, 通过可信计算平台信任链机制验证后, 再通过系统的访问权限验证来访问组织资源, 这样达到了双重验证的效果。当从终端平台通过移动介质等读入信息时, 终端平台自动根据文件附加加密信息和解密信息。TORBAC的关键是在TPM的硬件保护和可信计算信任跟的支持下, 访问控制组织资源对用户是开放的, 并且在系统范围之外不可能获得这些组织资源。

3.2.2 基于模型的访问控制算法

基于模型访问控制算法: (1) 根据当前所请求的资源, 找出对应的角色集和部门集; (2) 检查当前用户是否在上一步中找出的角色集和部门集中; (3) 若当前用户在这个集合中, 进行下一步的检查;否则拒绝当前用户对当前所请求资源的访问; (4) 对于设置为动态冲突的系统, 检查角色冲突和部门冲突情况; (5) 若有角色冲突, 确定当前用户的当前角色。否则进行下一步; (6) 若有部门冲突, 确定当前用户的当前部门。否则进行下一步; (7) 若当前角色与当前部门仍然有冲突, 按系统规定的优先级确定当前用户是否有当前所请求资源的使用权限;否则进行下一步; (8) 若当前用户具有当前所请求资源的使用权限, 进行下一步的检查;否则拒绝访问; (9) 检查当前用户是否有使用当前所请求的使用该资源的方式; (10) 若有权按所请求方式使用该资源, 则执行 (11) 访问操作, 否则拒绝访问; (11) KMC自动从本平台中选择密钥对可信终端组织资源加密, 访问结束。

4 TORBAC模型的可行性和优越性分析

4.1 可行性分析

根据对改进模型的研究, 可知在TORBAC模型中凡是组织资源都受到收到双重保护, 首先通过可信计算机系统的可信根 (TPM) 机制。完成可信度量的存储、可信度量的报告、密钥产生、加密、数据安全存储等功能。由于TPM的保护能力, 任何人都不可能从用户终端平台获得相关的密钥加密密钥, 因此, 只要KMC保护好其密钥加密密钥, 其次, 基于组织和角色两个角度的访问控制技术对系统访问进行权限验证和身份验证。这样就使是模型的安全性、可行性得以实现。

4.2 优越性分析

(1) 防止内部人员对组织内部资料泄露。确保组织资源的保密性和安全性。

(2) 安全事件追踪。从任何一个可信终端平台访问的组织资源都会以该平台的AIK签名, 一个作用是保证信息的完整性, 其次通过该签名就可以很容易追踪出信息具体是从哪个平台泄露组织资源的, 更好的防止内部人员泄露系统内部宝贵资源, 进而体现了TORBAC模型的安全性。

(3) 应用模式不变。在可信计算环境下修改得到的TOR-BAC模型仅在传统的访问控制模型中加入了可信计算机技术;从应用和使用人员角度看, 对组织资源的访问控制仅在可信终端进行, 还有组织资源的加解密只在访问者对其在系统范围的过程中自动完成, 它在系统范围内部的存储、处理以及表现形式都保持已有模式不变。

5 TORBAC模型的应用

本节通过一个实例来说明模型应用。例:一个全国性的商业组织的组织结构, 该组织在每个主要城市都有其分支结构, 每个分支结构的组成和管理的信息资源类型都是相同的。如图5所示:

怎样有效的防止公司内部人员向外泄露内部资源, 这样就弥补了传统的访问控制的缺憾?如图6所示:

解决方案:各分公司的成员从相应的计算终端平台访问组织系统资源;公司成员用相应的身份访问组织资源;执行上文中3.2.2中的算法, 访问流程见下图 (图中其他用户和上海用户的访问方案一致, 图6中只给出来一个用户访问的情况) 。

6 结束语

TORBAC是对ORBAC的扩展, 它通过将可信计算技术融入传统的ORBAC模型中, 这样就有效地防止组织内部人员泄露内部资源, 从而提高了组织内部资源的安全性, 减少了系统管理员的设置和维护权限的工作量。而简化TORBAC模型的复杂性将作为下一步研究的重点。

参考文献

[1]李晓勇, 左晓栋, 沈昌祥.可信计算环境下敏感信息流的安全控制[J].计算机工程与设计, 2007 (15) .

[2]李帆, 郑纬民.基于角色与组织的访问控制模型[J].计算机工程与设计, 2005 (8) .

[3]徐震, 冯登国.一种使用组织结构的访问控制方法[J].计算机工程, 2006 (13) .

[4]马新强, 黄羿, 李丹宁.可信计算发展研究[J].计算机应用, 2009 (4) .

[5]TCG.TCGsoftware stack (TSS) specification, version1.10Golden[S].2003-08-20.https://www.trustedcomputinggroup.org.

[6]F.CUPPENS, P.BALBIANI, S.BENFERHAT, Y.DESWARTE, A.ABOU EL KALAM, R.ELBAIDA, A.MIGE, C.SAUREL, AND G.TROUESSIN.Organization Based Access Control.In Proceedings of IEEE4th Inter-national Workshop on Policies for Distributed Systems and Networks (POLICY2003) , Lake Come, Italy, June2003.

[7]F.CUPPENS AND A.MIGE.Modelling Contexts in the Or-BAC Model.In Proceedings of19th Applied Computer Security Associ-ates Conference (ACSAC2003) , as Vegas, Nevada, December2003.

[8]R.SANDHU AND Q.MUNAWER.How to do discretionary access control using roles[C].In:Proc.the Third ACM Workshop on Role Based Access Control.Barkley:ACM Press, 1998.

本文来自 99学术网(www.99xueshu.com),转载请保留网址和出处

【属性访问控制模型】相关文章:

角色访问控制模型06-19

属性识别模型07-15

访问控制实现05-15

强制访问控制05-29

访问控制策略08-20

文件访问控制08-31

角色访问控制09-06

存取访问控制09-10

自主访问控制技术05-30

安全访问控制机制06-27

上一篇:金融海啸分析下一篇:110kV侧备自投