一种基于权限的使用控制委托模型
2014-02-28叶春晓余一丰余龙龙
叶春晓,余一丰,余龙龙
1.重庆大学计算机学院,重庆400044
2.西南财经大学经济信息工程学院,成都611130
1 引言
UCON概念由Park和Sandhu于2002年提出,它综合并扩展了各种传统访问控制解决方案的特点,使研究者能够在一个统一的框架下以系统化的方式研究访问控制领域内的所有问题[1]。UCON创造性地提出了属性可变性和决策连续性的概念,对资源的使用决定基于主体提出访问请求时的主体属性、客体属性、授权、职责和环境因素,能够为应用资源提供更广泛、更丰富、更细粒度的访问控制保护,满足现代信息系统基于不同决策因素的授权需求。UCON已经成为访问控制领域一个新的研究方向。
使用控制概念中的“使用”表示对数字对象上权限的使用,这里的权限包括对数字对象的使用权限以及对该使用权限的委托权限[2]。UCONABC核心模型主要解决访问控制的授权过程,即对数字对象使用权限的控制。目前UCON研究主要集中于使用控制策略表达,各种应用背景下的形式化描述,实现架构和机制,而对于委托授权研究相对较少。模型的提出者在多个文献[2-4]中均强调了对委托授权的需求,但都是将它作为一个次要问题留做以后解决,这极大地制约了UCON的后续研究和应用。
RBAC等传统访问控制模型的委托研究已经相当成熟,很多的研究成果成功地解决了各自领域内的委托授权问题。尽管UCON是对传统访问控制模型的综合和扩展,但是由于属性可变性和决策连续性的特点,UCON并不像传统的访问控制模型那样显式或隐含地保存着一个访问控制列表,记录系统中每个用户拥有的操作权限;相反UCON系统中的权限是实时和动态的,只有在用户提出访问请求时才能确定其是否拥有所请求的权限。因此,传统访问控制的委托模型并不能解决一般UCON的委托授权。本文提出一种基于权限的UCON委托模型(PBUDM),利用委托授权、委托职责和委托条件三个委托决策因素控制和约束委托过程,延续了UCON的特征,而且具有灵活、简便的特点。
2 相关研究
Farzad Salim[4]等提出了一个UCON管理模型,在该模型中,属性通过主体的断言创建,断言描述创建者对其他主体或客体的权限。利用直接断言,系统安全管理员能够实现对主体的授权,利用委托断言,主体能够将管理权限委托给其他主体,由此实现了管理授权和管理权限委托的统一。但是作为一个概念模型,该模型缺少正式的定义;只涉及到管理权限的委托问题,无法实现一般使用权限的委托;管理权限的委托过程有太强的随意性,缺少必要的约束。Woochul Shin等[5]在UCON模型中加入了委托授权模块,并应用于授权会话的管理。这种扩展只是具体工程环境中的一次尝试性应用,未详细说明UCON中委托授权功能的实现方法。
张志勇等[6]在提出的UCOND模型中引入了委托者、受托者、委托上下文和委托属性的概念,展示了参与权限委托的相关主体之间的关系。该模型严格区分委托者和被委托者之间的关系,违反了UCON模型中的主体对等的核心思想,即一个主体既可以是委托者又可以是受托者。周丽丽等[7]在UCOND基础上引入可信度的概念,提出了基于UCON和动态模糊神经网络的委托授权模型,针对UCON的三个决策因素,利用动态模糊神经网络的相关算法计算出主体可信任程度,作为对主体授权的依据。该模型考虑到了分布式开放环境下主体间的可信关系,但是同UCOND一样,缺少与UCON模型之间的必然联系。李亚平等[8]提出了基于属性的UCON委托授权方案,将主体属性划分为委托属性和非委托属性,通过主体间属性值的传递来实现属性关联权限的委托。该方案并未给出实现属性与权限对应的方法,并且对于委托实施后属性的变化所造成的影响也没有加以描述和解决。
3 委托的基本特性
委托功能的实现涉及到众多委托基本特性,分别简要介绍如下:
委托粒度,是指实施委托的基本单位。可以是基于权限的细粒度、基于权限组的中粒度和基于权限-权限组的中细粒度。细粒度是指用户将一部分权限委托他人,这种方式满足最小特权原则,但管理较为复杂;中粒度是指用户将持有的权限全部委托出去,受托者将具有委托权的所有权限,该方式在一般情况下容易违背最小特权原则。
持续性,该特征描述委托的时间限制,根据委托的时限可以将其分为临时委托和永久委托。临时委托是指委托权限只在指定的时间内有效,当时间用完后由系统自动撤销;永久委托是指委托者一旦将权限委托出去后,只有通过安全管理员的管理动作才能将其取回,受托者一直持有委托权限。
单调性,该特征描述在委托实施后委托者对委托权限的持有状况,可将委托分为单调委托和非单调委托。单调委托是指在委托实施后委托者依然持有委托的权限,能够利用它们访问客体资源或再次委托给其他用户。对于非单调委托,在委托时限内,委托者不再拥有委托的权限,但是可以撤销委托,因此在委托被撤销或时限用完后可以重新获得委托权限。
委托深度,该特征定义是否允许后续委托以及后续委托的次数。单步委托不允许后续委托,即受托者不能将其获得的委托权限再委托他人。多步委托允许受托者再次将委托权限委托给其他用户。委托深度为一个正整数,表示允许的后续委托次数,当该值为1时即为单步委托,当值大于1时为多步委托。对于多步委托,当达到允许的最大委托深度时,不再允许后续委托。
委托宽度,在有些情况下,委托者需要将权限同时委托给其他多个用户,委托宽度表示在特定时间内委托者将同一权限(组)委托给的用户数量。委托宽度同样为一个正整数,当委托达到指定的最大宽度时,不再允许委托者将相关权限委托给其他用户。
委托撤销,表示委托者收回受托者持有的委托权限,分为级连撤销和非级连撤销。对于级连撤销,委托者撤销委托的同时,所有的后续委托都将被撤销;若由于管理动作,委托者不再具有委托的权限时,所有的后续委托也将失效。在非级连撤销情况下,委托的撤销不影响后续委托,即使委托者失去委托权限,受托者依然持有委托权限,只能通过管理操作予以删除。
4 PBUDM委托模型
4.1 形式化定义
4.1.1 模型组件
如图1示,PBUDM由主体(S)、主体属性(A tt(S))、权限(P)、委托授权(DA)、委托职责(DO)和委托条件(DC)等6个组件构成,其中委托授权、委托职责和委托条件是用于评估委托授权的功能性断言。各个组件定义如下:
图1 PBUDM模型组件图
主体和主体属性,与核心模型的定义相同,主体是带有属性的实体,持有或能够实施对客体的某些特权,由主体属性定义和表示。权限委托是主体与主体之间的授权行为。UCON将主体分为消费主体(CS)、提供者主体(PS)和身份主体(IS),不同类别的主体对同一客体持有不同的权限。
权限,是指主体能够对客体执行的特权,表示为二元组p(r,o),其中o为目标客体,r为定义在目标客体o上的特权。为方便下文描述,用p(o)表示权限p的目标客体,用p(r)表示权限p对应客体上的特权。UCON同样将权限分为消费权限、提供者权限和身份权限,不同类别的主体对同一客体持有相应类别的权限,本文主要处理消费主体之间消费权限的委托。根据权限的可委托性,将权限进一步划分为可委托权限(CDP)和不可委托权限(NDP)。可委托权限是指允许用户通过委托授予其他用户的权限;不可委托权限是指用户只能通过安全管理员的授权获得并且不允许委托给其他用户的权限,这一划分由系统设计者或安全管理员确定。系统为每一个主体维持一个委托权限集合SDP,用于保存其他用户委托给的权限,主体s的委托权限集记为s.SDP。
委托授权,用于在主体提出委托请求时评估委托许可的功能性断言。委托授权根据委托授权规则集中的规则评估委托主体属性、受托主体属性、委托权限以及相关约束条件,返回是否允许执行请求的委托。委托授权需要更新受托主体的委托权限集合,但不会影响相关的主体属性。
委托职责,评估在执行委托之前相关主体必须执行的强制动作的功能性断言,当系统设定的一些职责被履行时返回true,否则返回false。委托职责不一定使用主体属性,但主体属性可能被用来确定执行委托时哪些主体履行哪些职责。委托职责动作表示为二元组Ob(sb,ob),sb和ob分别是职责主体和职责客体。sb可能为委托者主体,如委托者在将权限委托给受托者之前必须确认相关许可协议,也可能为受托者主体,如委托者对受托者的委托必须经过受托者确认同意,也可能是其他未参与委托过程的主体,如委托需要告知上级主管或安全管理员,在获得同意后方可进行。因此,利用委托职责能够实现各种委托协商。
委托条件,用于评估当前的环境或系统状态,确定是否满足相关需求的断言,返回true或false。利用委托条件可以实现对委托的时间、地点或系统状态等约束。
4.1.2 委托实现
下面通过定义实例化一个委托授权断言集合,利用该断言集合表达委托授权策略和撤销策略。这是一个实现委托的最小断言集合,对于实际的应用系统,可以根据需要增加新的断言以实现对委托更丰富的控制和约束。职责动作和条件约束与实际的应用相关,本文不再定义相应的断言。下面首先引入委托树的概念。
委托树是对参与委托的主体之间关系及其约束的形象描述。树上的每一个结点表示一个主体,根结点表示初始委托者主体,初始委托者最先将权限委托给其他主体,其权限来自于UCON核心模型的授权,记委托权限p的初始委托主体为original_s(p)。除根结点外的每个结点都有一个父结点,处在父结点上的主体将权限委托给其子结点上的主体,记主体s父结点上的主体为father_s(s,p),记以主体s为根的子树上的所有子孙结点上的主体为descendant_s(s,p)。除叶子结点外的每个结点有若干个孩子结点,主体s所在结点的子结点数量即为由s发起的委托的宽度,记为w idth(s,p)。主体s所在结点在树上的深度为当前的委托深度,记为depth(s,p)。每一个委托权限都有固定的有效时限,记主体s的委托权限p的有效时限为duration(s,p)。
主体只能将自身持有的权限委托给其他主体,但是由于UCON权限的特点,只有在主体提出访问请求时才能确定其是否具有所请求的权限。因此,在委托之前必须根据授权规则判断委托者是否具有所请求委托的权限。
定义1 DA(s,p):委托授权断言,利用主体s属性评估相关授权断言(来自核心模型),确定其当前是否具有权限p。
定义2 depth(s,p)<Max_depth:委托约束断言,判断主体s所处的委托深度是否小于最大委托深度,最大委托深度Max_depth由安全管理员定义。
定义3 width(s,p)<Max_w idth:委托约束断言,判断主体s对权限p的委托宽度是否小于最大委托宽度,最大委托宽度Max_w idth由安全管理员定义。
定义4 duration⊆duration(s,p):委托约束断言,对于后续委托,判断委托者主体s请求的委托时限duration是否在其委托权限的时限范围内。
根据以上定义,委托及其撤销实现如下:
初始委托,主体s1请求将权限p委托给s2,委托时限为duration,根据UCON授权规则判断s1、s2是否具有权限p,不允许委托给主体其已有的权限,同时委托必须满足宽度的约束。符号“→”右侧表达式为其左侧表达式的必要条件。
后续委托,权限p的初始委托者当前必须继续持有该权限,同时必须满足委托深度、宽度和时限的约束。
非级连撤销,只有直接委托者才能撤销委托,撤销不影响后续委托。
级连撤销,委托撤销后,所有由受托者发起的后续委托都将被一同撤销。
4.2 带有委托功能的UCON授权模型
通过以上定义实现了UCON的委托授权与撤销,下面考虑向授权模型中加入委托功能。
根据使用控制决策因素和使用评估所处的阶段,UCON核心模型定义了若干个子模型,例如,对于授权(Authorization)决策因素,访问控制决策的评估既可以在访问前也可以在访问过程中进行,分别记做preA子模型(pre-Authorization)和onA子模型(ongoing-Authorization)。传统的访问控制模型都可以用preA模型来表达,而利用onA模型可以在权限的使用过程中对其进行更丰富的控制和约束。在实际的应用系统中,可以组合使用多个子模型以实现全面和细粒度的访问控制。UCON各个子模型的委托情形略有区别,主要体现在对委托权限的使用上,下面以使用前授权模型preA和使用中授权模型onA为例加以说明。
(1)带有委托功能的preA模型
preA模型的使用决策过程在主体访问客体之前进行,同样对于委托权限的使用,在使用前必须进行可用性判定,可用性判定根据授权模型中的授权断言判断初始委托者当前是否还具有委托权限。同时,委托权限的使用必须满足委托时限的约束。
例1在基于付费点播的数字版权管理系统中,用户需要支付一定的费用才能使用(浏览、播放等)系统中的数字资源。只有当用户的账户余额大于所需要支付的金额时,用户才具有该数字资源的使用权限。假设系统允许用户相互之间委托对数字资源的使用权限,即拥有客体访问权限的用户可以将该权限授予其他用户。利用本文提出的UCON委托模型和带有委托功能的preA模型可实现对该权限的委托和使用控制。
用户账户余额credit作为主体属性,对数字资源o的使用权限记为p(r,o),利用权限p访问数字资源需要支付的费用value作为客体o的属性。则用户s1将权限委托给s2实现如下:
(2)带有委托功能的onA模型
在onA模型中,不需要任何预先使用决策的情况下允许所有的使用请求,但是在权限的使用过程,系统持续地评估相关授权规则,当某些条件不满足时,撤销当前的使用权限并终止主体对客体的访问。同样,在委托权限的使用过程中,系统持续地评估初始委托者主体对权限的持有情况或相关授权规则,一旦其不再具有委托权限或授权规则不满足时,受托者对权限的使用将被撤销。
allowaccess(s,p(o),p(r))⇒true
stopaccess(s,p(o),p(r))⇐┌(DA(original_s(p),p)
update:Att(original_s(p)),Att(p(o))
例2在例1的应用案例中,用户s1已经将权限p委托给了s2,系统只允许有限数量的用户同时访问某一客体,为保证付费用户的服务质量,当并发访问客体o的用户数超过允许的最大数量时,委托授权用户的访问将首先被撤销。当前访问客体o的用户数usageNum作为客体属性,假设允许并发访问的最大用户数量为10,则对委托权限p的使用控制实现如下:
allowaccess(s,p(o),p(r))⇒true
stopaccess(s,p(o),p(r))⇐p(o).usageNum>10
preupdate:o.usaageNum=o.usageNum+1
postupdate:o.usageNum=o.usageNum–1
4.3 对比研究与分析
(1)本文延用了UCON的授权决策因素,利用委托授权、委托职责和委托条件断言,实现对委托过程的控制和约束。相对于现有的基于UCON的委托授权研究,本文的解决方案更适合于解决一般UCON模型的委托问题。
(2)在实际的委托过程中,一个主体既可能是委托者也可能是受托者,同现有的UCON委托研究相比,本文的解决方案不需要对参与委托的主体身份进行显式地划分,保持了主体的一致性。
(3)本文的委托授权实际上是一种权限的传递过程,委托本身不会更新任何主客体的属性信息。相对于基于属性的委托授权,UCON的委托过程与基本授权过程保持较高的相对独立性,委托授权的结果不影响基本授权的进行和权限的使用。
(4)PBUDM延续了UCON属性可变性和决策连续性的特点:受托者对委托权限的使用实际上受制于委托者对该权限的持有状况。委托实施后,委托者的某些属性可能由于其他的访问动作发生变化,根据使用控制策略,委托者不再拥有该权限时,受托者也将无法使用该权限;在受托者使用委托权限对客体的访问过程中,系统持续地评估委托者属性和使用控制决策因素,当任一条件不满足时,自动撤销受托者的当前访问。因此,尽管在形式上委托者将权限委托给了受托者,受托者持有该委托权限,但是受托者能否利用该权限实现对客体的访问,取决于其提出访问请求时的委托者属性、授权策略、职责和条件等决策因素,PBUDM对委托权限的使用控制同样具有动态性和实时性的特点。
5 结束语
在UCON委托已有研究基础之上,结合UCON授权的特点和一般权限委托的特征,提出了一种基于权限的UCON权限委托模型并给出了形式化的定义;通过实例化一个最小断言集合,利用该断言集合实现了权限的委托和撤销;将委托功能加入授权模型,实现了对委托权限的使用控制。本文模型利用委托授权、职责和条件等进行委托决策,能够很好地适应使用控制系统对权限委托的需求。同时也应注意到,UCON是一种细粒度的访问控制方法,对用户的授权是通过定义使用控制策略来实现的,每一个权限都需要制定一个相应的策略,使得UCON的管理操作十分繁琐。PBUDM基于UCON核心模型,多个权限的委托只能通过多次委托操作来实现。因此,下一步的研究重点是考虑向模型中加入基于权限组的委托机制,以方便用户的委托操作,实现一种多层次的支持不同粒度的UCON委托模型。
[1]Sandhu R,Park J.Usage control:a vision for next generation access control[J].Mathematical Methods,models,and A rchitectures for Network Security Systems,2003(1):17-31.
[2]Park J,Sandhu R.Towards usage control models beyond traditional access control[C]//Proc of the 7th ACM Symposium on Access Control Models and Technologies.[S.l.]:ACM Press,2002.
[3]Barka E,Sandhu R.Framework for role-based delegation models[C]//Proceedings of the 16th Annual Computer Security Applications Conference.New Orleans:IEEE Press,2000:168-176.
[4]Farzad S,Reid J F,Edward D.An administrative model for UCON[C]//Proceedings of the 8th Australasian Information Security Conference(AISC 2010).Queensland:Queensland University of Technology,2010:32-38.
[5]Shin W,Yoo S B.Secured Web services based on extended usage control[C]//Proceedings of Pacific-Asia Conference on Know ledge Discovery and Data Mining,2007:656-663.
[6]张志勇,普杰信,黄涛.UCOND:Usage Control委托模型及关键技术研究[J].网络安全技术与应用,2006(6):42-44.
[7]周丽丽,王凤英,王洪福.基于UCON和动态模糊神经网络的委托授权模型[J].山东理工大学学报:自然科学版,2010,24(1):22-26.
[8]李亚平,周伟良.UCONABC模型中的委托授权方案研究[J].中国科学技术大学学报,2012,42(2):154-160.
[9]Park J.The UCONABCUsage Control model[J].ACM Trans on Information and System Security,2004,7(1):1-47.
[10]Barka E,Sandhu R.A role-based delegation model and some extensions[C]//Proceedings of 23rd National Information Systems Security Conference.Baltimore:NIST,2000:101-114.
[11]Zhang Xinwen,Parisi-Presicce F,Sandhu R S,et al.Formal model and policy specification of usage control[J].ACM Transactions on Information and System Security-TISSEC,2005,8(4):351-387.