一种基于信任度的访问控制方法及其系统的制作方法

文档序号:7845504阅读:191来源:国知局
专利名称:一种基于信任度的访问控制方法及其系统的制作方法
技术领域
本 发明涉及一种基于信任度的访问控制方法及其系统,该系统扩展了传统角色访问控制模型,属于计算机访问控制领域。
背景技术
云计算是ー种将地理上分布的、异构的计算资源、存储资源、信息资源、知识资源等资源通过网络互联互通,从而实现资源共享和协同工作的目的。云计算的參与实体具有自主性,实体之间的协作具有动态性。因此,云计算的ー个关键问题就是如何在动态变化环境下进行访问控制,即如何管理和执行授权策略。本文将云计算中每个參与实体及其运行环境称为ー个“自治域”。ー种典型的云计算应用场景是两所大学H和G各自有一套面向学校内部的课程信息化系统,两所大学为推动学科建设,决定共享课程信息化系统中的在线课堂资源,即两所大学H和G的师生均可在线学习对方的课程。在该场景中,參与实体H和G及各自的运行环境分为称为自治域H和自治域G,则上述的云计算访问控制问题就细化为跨域访问控制问题。一般而言,访问控制包括四个部分,访问主体単元(Subiect Unit, SU),访问控制执行单兀(Access Control Execution Unit, ACEU),访问控制判定单兀(Access ControlDecision Unit, ACDU)和目标客体单兀(Object Unit,0U),如图I所不。访问主体单兀SU也称为发起端主体単元,是指电脑中系统资源和应用资源的使用者,或可执行程序等系统实体的主动部分;目标客体単元主要指网络资源,数据库资源,Webserver资源,系统文件等属于系统实体的被动部分;访问控制执行单元ACEU负责建立访问主体単元SU与目标客体単元OU之间的通信桥梁,并在遵从访问控制判定単元ACDU判定结果的基础上实施访问控制操作。目前,常用的访问控制方法主要有自主访问控制(Discretionary AccessControl, DAC)、强制访问控制(Mandatory Access Control, MAC)、属性访问控制(Attributed-based Access Control, ABAC)和角色访问控制(Role-based AccessControl, RBAC)。DAC是ー种基于主体身份实施对客体访问控制的方法,该方法的核心思想是主体能够自主地的将其对客体的访问权限或访问权限子集授予其它主体。MAC是ー种基于主体安全级别和客体安全级别的访问控制方法,其中安全级别是由安全管理员强制分配的,主体和客体都不能改变安全级别属性。主体对客体的访问控制判定必须遵循如下规则(I)仅当主体的安全级别大于或等于客体的安全级别时,该主体具有读取客体资源的权限。(2)仅当主体的安全级别等于客体的安全级别时,该主体对客体资源才具有写的权限。ABAC把实体(主体、客体和环境)属性组概念贯穿于访问控制策略、模型和实现机制三个层次,把与访问控制相关的时间、实体空间位置、实体行为、访问历史等信息当作主体、客体、权限和环境来统ー建模,通过定义属性之间的关系描述复杂的授权和访问控制约束,具有描述能力丰富,可扩展性好的特点,但属性定义困难,实际应用价值不大。RBAC是ー种面向封闭系统环境的集中式访问控制模型,通过引入角色的概念实现了主体和客体的逻辑分离,并将权限描述为角色对客体的可访问能力。RBAC通过为主体关联ー个或者多个角色的方式,间接达到了关联主体及其可访问客体的目的,如图2所示。综上所述,相对于DAC和MAC,RBAC角色及其权限具有稳定性,因此在应用于主体具有动态性的信息化系统中,极大的简化了权限管理的复杂度;相对于ABAC模型,RBAC模型角色定义清晰,实现简単、应用范围广。但RBAC模型也存在无法适用分布式协同开发环境的不足。

发明内容
本发明目的是为了克服现有方案的不足,扩展RBAC模型实现,主要针对传统RBAC模型如何使云环境下实体协作动态性问题,实现了ー种适应于分布式云环境的基于信任度 的访问控制(Trust and Role based Access Control,TRBAC)方法及其系统。TRBAC 方法通过采用域间角色映射机制有效克服了传统RBAC模型具有环境封闭性的不足;通过权限集合自动划分机制有效提高了分布式云环境下权限管理的自动化程度;通过为权限添加信任值属性的方法实现了细粒度的访问控制需求。本发明的技术方案为一种基于信任度的访问控制方法,其步骤为I)建立一角色-信任度描述模型,用于描述姆ー自治域内主体的权限;2)对于某自治域B中的每一角色role,确定角色role与其他自治域A中角色映射到角色role映射关系,使自治域A中角色到自治域B角色映射满足满射关系;3)根据所述映射关系将该角色role的权限集合划分到不同的子权限集合中;将划分后的子集合关联到相应的信任度值上;4)当自治域A中主体角色请求访问自治域B中资源时,首先分析访问请求中包含的访问主体角色信息,然后将该访问主体角色映射到自治域B中的角色,并获取该访问主体角色的信任值;5)自治域B根据该访问主体角色的角色信息和信任度值,确定本次访问请求所具有的资源访问权限。进一步的,米用六兀组P =〈Role, Type, Action, Target, Context, TrustValue>描述每ー自治域内主体的权限;其中,Role为角色信息、Type为权限类型、Action为即操作方式、Target为操作目标、Context为上下文信息、TrustValue为信任值。进ー步的,将该角色role的权限集合划分为(M+2)个子权限集,包括一空集子权限集,一角色role的权限全集,其余M个权限子集分别对应M个其他自治域的权限需求;其中M为与自治域B有关的其他自治域数目。进ー步的,确定姆一角色role与其他自治域A中角色映射到角色role的映射关系,使自治域A中角色到自治域B角色映射满足满射关系的方法为I)初始化ー数组RoleArray,用于记录自治域A中角色RoleA访问自治域B中资源候选角色集合;其中,自治域B中的角色集合为Role [N],N为角色个数,每一角色对应的权限集合为PS[N],自治域B约束自治域A中角色RoleA请求者具有的权限集为PSpromise ;自治域A中角色RoleA访问自治域B中资源应该具有的角色表示为rmap ;2)设置一遍变量Num,初始化为Num = O,用于记录所述候选角色的个数;3)遍历权限集合PS [N]的每一元素j,如果^^—e GPSL/+],则确定Role [j]是候选角色,RoleArray [i+ +] = Role [j];4)令Num等于数组RoleArray中候选角色的个数,如果Num ^ O,则算法结束;如果Num = 1,则在自治域B中有且存在一个角色RoleArray[O]满足满射约束,输出rmap =RoleArray [O];5)如果Num > 1,则自治域B中存在多个角色满足满射约束,设置ー变量k,k初始化为数组RoleArray对ー个元素对应的权限个数;然后遍历候选角色数组RoleArray中前Num个数组元素的姆ー候选角色,如果候选角色RoleArray [m]所对应的权限集合个数size小于k,则更新被选角色的下标m = j,更新最小权限集数k = size,输出rmap =RoieArray[k]。进ー步的,根据所述映射关系将该角色role的权限集合划分到不同的子权限集合中的方法为I)初始化ー数组 Array [O] = Φ ,Array [Μ+1] = PSrole ;其中,自治域 B 中角色;role的权限集合为PS_,角色role的权限划分需求为(M+2),其它自治域映射到自治域B后的权限集合为PSdtjmian^ I彡r彡M ;2)依次遍历PSdraiiaiiu到PSd_in—M,按照PSd_in—r权限数目升序存放在数组Array中I到M的位置;若权限数相同,则根据domain,,I く r彡M标识从小到大的顺序排列,得到数组Array [M+2],其包括一空集和角色role在自治域B对应的权限全集PSMle ;3)令PSbase表示数组Array前j个权限集的合集,并初始化PSbase = Array [O];4)遍历数组Array中元素j并计算姆一元素Array [j]的权限集合,使其满足角色访问控制中的角色具有继承性的约束,O < j ^ M+1 ;;5)更新 PSbase 为 PSbase = PSbase U Array [j]。进ー步的,所述计算每一元素Array[j]的权限集合,使其满足角色访问控制中的角色具有继承性的约束的方法为将集合Array [j]具有的而集合PSbase不具有的权限进行并操作转换;将集合PSbase具有的而集合Array [j]不具有的权限进行差操作转换。进ー步的,自治域B根据划分的子权限集数目,计算每一子权限集对应的信任值区间。
进ー步的,自治域B根据访问主体角色的权限描述,确定该访问主体角色的信任值,并根据主体信任值赋予该访问主体对应的子权限集,对该自治域B内的客体资源进行访问。一种基于信任度的访问控制系统,其特征在于包括一角色-信任度描述模型、权限划分模块、角色映射模块、访问判定模块、权限划分模块;其中,所述角色-信任度描述模型,用于描述每ー自治域内主体的权限;所述权限划分模块,用于根据本自治域中对某ー指定角色的分割需求,对该角色的权限集合进行划分操作,将划分后的子集合关联到相应的信任度值上;所述角色映射模块,用于当其它自治域的用户访问本自治域中资源时,首先分析请求中包含的用户角色信息,并将该用户映射到本自治域中的角色,并获取该用户的信任值;所述访问判定模块,用于根据该用户的角色信息和信任度值,判定本次请求是否具有资源访问权限。进ー步的,所述角色-信任度描述模型采用六元组P =〈Role, Type, Action,Target, Context, TrustValue〉描述姆ー自治域内主体的权限;其中,Role为角色信息、Type为权限类型、Action为即操作方式、Target为操作目标、Context为上下文信息、TrustValue为信任值。进ー步的,所述权限划分模块根据其他M个自治域请求者角色映射到自治域B主体角色r的权限约束,将该角色r的权限集合划分为(M+2)个子权限集;其中,(M+2)个子权限集中包括一空集子权限集,一个为角色人的权限全集,其余M个权限子集分别对应M个其他自治域的权限需求。 如图3所示,TRBAC系统中每个自治域均主要包括以下三个模块 角色映射模块角色映射模块定义了不同自治域之间角色的映射规则,其输入是其它自治域中用户角色信息,输出是本自治域角色信息和信任度; 权限划分表述模块权限划分模块将权限集合按照信任度的约束划分到不同的子集合中。 访问判定模块 访问判定模块根据角色映射模块输出的角色信息和信任度,判定此次访问是否违反安全原则。TRBAC系统的运行原理如图4所示,权限划分模块根据本自治域中对某ー指定角色的分割需求,对该角色的权限集合进行自动化划分操作,自动将划分后的子集合关联到相应的信任度值上。所谓分割需求,是指本自治域中某一特定角色与所有其它自治域中角色的映射关系;当其它自治域的用户访问本自治域中资源时,角色映射模块首先分析请求中包含的用户角色信息,并将该用户映射到本自治域中的角色,并获取该用户的信任值;访问判定模块根据该用户的角色信息和信任度值,判定本次请求是否具有资源访问权限。因此,本发明提出了用于实现TRBAC的ー种模型和三种机制,即基于信任度的权限描述模型、基于集合论满射关系的角色映射机制、基于正负标识的权限集合划分机制和基于反三角函数的权限映射机制I)扩展角色访问控制,建立基于“角色-信任度”权限描述模型,用于描述每个自治域内主体的权限;2)当自治域A中用户访问自治域B中的资源时,根据自治域B对自治域A不同角色用户的权限约束,将自治域A中不同角色自动关联到自治域B中的不同角色,角色映射满足满射关系,例如自治域A中角色RoleA映射到自治域中角色RoleB,如算法I所示;3)根据第2)步,虽然同样是角色RoleB,但通常来说,自治域A用户访问自治域B资源的权限(通过请求IP地址等机制判断)是自治域B用户访问自治域B资源权限的子集。这种相同角色不同权限的细粒度控制需求,就需要通过信任度来细分。因此,传统角色访问控制中基干“角色”的粗粒度的用户和权限关联机制已不再适用。本文是将〈角色,信任度 > 一起作为用户和权限管理关联的依据。其中在步骤3)中,对于同样是角色RoleB,需要划分成多少个信任度区间?这与自治域B和多少个其它自治域合作相关。例如其它M个自治域均有一角色与自治域B中角色RoleB相关联,且自治域B承诺赋予的权限都不一样,则需要划分成(M+2)个子权限集合,其中I个是空集;1个是角色RoleB的权限全集;另外M个权限子集对应M个其它自治域的权限需求。每个信任度区间对应角色RoleB的权限子集,即需要(M+2)个信任度区间
,0<i<M+l。而自治域B中角色RoleB在_个信任度区丨旬具有·的ネ又限
if + 2 if + 2则按照算法2描述。3. I基于信任度的权限描述模型
本发明约定所有主体的权限均由六元组P =〈Role, Type, Action, Target,Context, TrustValue〉描述,如图5所示,其中不同元素的具体含义如下· Role :即角色信息,如教师角色,学生角色等;# Type :即权限类型,如文件类型FilePermission,网络类型NetPermission等;· Action :即操作方式,如文件写操作write,网络监听操作listen等等;· Target :即操作目标,如文件写目标为C://text. txt等等;· Context :即上下文信息,如约束资源智能在8:00-11:00时间范围内被主体访问;· TrustValue,即信任值,用于描述该资源能被访问的主体最低信任值约束;例如,信任值大于O. 5的学生角色用户,具有在上午8点到11点之间、下午14点到18点之间访问课程math, rmvb资源的权限,则其形式化描述为ぐ'student" , java.io.CoursePermission, " read" , " /math, rmvb" , {{8:00-11:00}, {14:00-18:00}},
0.5>。该权限物理意义是当学校H中用户满足以下三种情况时,不具备访问学校G中课程mathrmvb资源的权限I.学校H中用户访问学校G中课程mathrmvb资源时,角色映射后不是学生角色;2.学校H中用户访问学校G中课程mathrmvb资源吋,虽然是学生角色,但其访问时间违反了上午八点到11点之间、下午2点到6点之间的约束;3.学校H中用户访问学校G中课程mathrmvb资源时,虽然是学生角色,但信任度小于O. 5 ;其中权限和信任值的关联将根据3. 2节算法自动计算得出。3. 2基于集合论满射关系的角色映射机制要实现跨自治域的角色映射,其前提条件必须是不同自治域的角色之间满足满射关系,即要求自治域A中的每ー种角色RoleA,在自治域B中存在且只存在一种角色RoleB与之相对应。然而由于不同自治域角色定义具有独立性和差异性,对于自治域A中的每ー种角色RoleA,在自治域B中可能存在多种角色RoleB与之相对应,从而出现角色映射冲突问题。本文将着重解决不同自治域角色映射冲突问题。定义I函数f :A — B为满射,当且仅当对任意b e B,存在a e A满足f (a) = b,且不存在 f (a) = b, f (a) = c, b デ C。在上述两所大学课程合作的示例中,假设大学H具有三种角色RoleSet11= {教师,全日制学生,非全日制学生}
教师具有开课设置,查看学生信息,打分等权限; 全日制学生具有跨专业选课,课程评估,在线课程学习的权限; 非全日制学生具有选本专业课程,课程评估,在线课程学习的权限。大学G具有两种角色RoleSete = {教师,学生} 教师具有开课设置,查看学生信息,打分等权限; 学生具有跨专业选课,在线课程学习的权限;(a)学校H的视角从学校H的视角来看,学校G中的用户会访问学校H中的课程资源,并约定学校G中的用户具有在线课程学习的权限。由于在学校H中,角色全日制学生和非全日制学生的权限都包含在线课程学习这ー项。因此学校G中用户既可以映射成学校H中的全日制学生角色,也可以映射成学校H中的非全日制学生角色,这违反定义I满射约束。因此,本发明鉴于在权限设置方面存在非全日制学生に全日制学生的客观现实,将H具有的角色集合RoleSeta = {教师,全日制学生,非全日制学生}改造成RoleSet' H ={教师,全日制学生},即将非全日制学生看成是全日制学生特殊的ー种,并通过3. 3节信任度的划分来区分两种角色权限差异性。改造后满足满射约束I. RoleSetc.教师g RoleSet' Η.教师2. RoleSetc.学生·o· RoleSet' Η.全日制学生(b)学校G的视角从学校G的视角来看,学校H中的用户会访问学校G中的课程资源,并约定学校H中的用户具有在线课程学习的权限。由于在学校G中有且只有学生角色包含在线课程学习权限。根据定义1,集合A相当于学校H具有的角色集合为RoleSet11= {教师,全日制学生,非全日制学生},集合B相当于学校G具有的角色集合为RoleSete ={教师,学生},上述集合满足定义I中存在a e A满足f (a) = b的满射约束I. RoleSeta.教师·ο· RoleSetG.教师2. RoleSet11.全日制学生·o· RoleSetG.学生3. RoleSeta.非全日制学生·o· RoleSetG.学生
基于集合论满射关系的角色映射算法详细描述如算法I所示
权利要求
1.一种基于信任度的访问控制方法,其步骤为 1)建立一角色-信任度描述模型,用于描述每一自治域内主体的权限; 2)对于某自治域B中的每一角色role,确定角色role与其他自治域A中角色映射到角色role映射关系,使自治域A中角色到自治域B角色映射满足满射关系; 3)根据所述映射关系将该角色role的权限集合划分到不同的子权限集合中;将划分后的子集合关联到相应的信任度值上; 4)当自治域A中主体角色请求访问自治域B中资源时,首先分析访问请求中包含的访问主体角色信息,然后将该访问主体角色映射到自治域B中的角色,并获取该访问主体角色的信任值; 5)自治域B根据该访问主体角色的角色信息和信任度值,确定本次访问请求所具有的资源访问权限。
2.如权利要求I所述的方法,其特征在于采用六元组P=〈Role, Type, Action,Target, Context, TrustValue〉描述每一自治域内主体的权限;其中,Role为角色信息、Type为权限类型、Action为即操作方式、Target为操作目标、Context为上下文信息、TrustValue为信任值。
3.如权利要求I所述的方法,其特征在于将该角色role的权限集合划分为(M+2)个子权限集,包括一空集子权限集,一角色role的权限全集,其余M个权限子集分别对应M个其他自治域的权限需求;其中M为与自治域B有关的其他自治域数目。
4.如权利要求I或2或3所述的方法,其特征在于确定每一角色role与其他自治域A中角色映射到角色role的映射关系,使自治域A中角色到自治域B角色映射满足满射关系的方法为 1)初始化一数组RoleArray,用于记录自治域A中角色RoleA访问自治域B中资源候选角色集合;其中,自治域B中的角色集合为Role [N],N为角色个数,每一角色对应的权限集合为PS [N],自治域B约束自治域A中角色Rolej#求者具有的权限集为PSpromise ;自治域A中角色RoleA访问自治域B中资源应该具有的角色表示为rmap ; 2)设置一遍变量Num,初始化为Num= O,用于记录所述候选角色的个数; 3)遍历权限集合PS[N]的每一元素j,如果则确定Role[j]是候选角色,RoleArray [i++] = Role [j]; 4)令Num等于数组RoleArray中候选角色的个数,如果Num( O,则算法结束;如果Num = 1,则在自治域B中有且存在一个角色RoleArray
满足满射约束,输出rmap =RoleArray [O]; 5)如果Num> 1,则自治域B中存在多个角色满足满射约束,设置一变量k,k初始化为数组RoleArray第一个元素对应的权限个数;然后遍历候选角色数组RoleArray中前Num个数组元素的每一候选角色,如果候选角色RoleArray [m]所对应的权限集合个数size小于k,则更新被选角色的下标m= j,更新最小权限集数k= size,输出rmap = RoleArray [k]。
5.如权利要求4所述的方法,其特征在于根据所述映射关系将该角色role的权限集合划分到不同的子权限集合中的方法为 I)初始化一数组Array [O] = Φ ,Array [Μ+1] = PSrole ;其中,自治域B中角色role的权限集合为PSrole,角色role的权限划分需求为(M+2),其它自治域映射到自治域B后的权限集合为 PSdtjmian-,I ≤r≤M; 2)依次遍历PS domain—I 至丨J PSdomain—M, 按照PSd_b权限数目升序存放在数组Array中I到M的位置;若权限数相同,则根据domainr,I ( r≤M标识从小到大的顺序排列,得到数组Array [M+2],其包括一空集和角色role在自治域B对应的权限全集PSrole ; 3)令PSbase表示数组Array前j个权限集的合集,并初始化PSbase= Array [O]; 4)遍历数组Array中元素j并计算每一元素Array[j]的权限集合,使其满足角色访问控制中的角色具有继承性的约束,O < j ≤ M+1 ;;5)更新PSbase 为 PSbase = PSbase U Array[j]。
6.如权利要求5所述的方法,其特征在于所述计算每一元素Array[j]的权限集合,使其满足角色访问控制中的角色具有继承性的约束的方法为将集合Array[j]具有的而集合PSbase不具有的权限进行并操作转换;将集合PSbase具有的而集合Array [j]不具有的权限进行差操作转换。
7.如权利要求I所述的方法,其特征在于自治域B根据划分的子权限集数目,计算每一子权限集对应的信任值区间。
8.如权利要求7所述的方法,其特征在于自治域B根据访问主体角色的权限描述,确定该访问主体角色的信任值,并根据主体信任值赋予该访问主体对应的子权限集,对该自治域B内的客体资源进行访问。
9.一种基于信任度的访问控制系统,其特征在于包括一角色-信任度描述模型、权限划分模块、角色映射模块、访问判定模块、权限划分模块;其中, 所述角色-信任度描述模型,用于描述每一自治域内主体的权限; 所述权限划分模块,用于根据本自治域中对某一指定角色的分割需求,对该角色的权限集合进行划分操作,将划分后的子集合关联到相应的信任度值上; 所述角色映射模块,用于当其它自治域的用户访问本自治域中资源时,首先分析请求中包含的用户角色信息,并将该用户映射到本自治域中的角色,并获取该用户的信任值; 所述访问判定模块,用于根据该用户的角色信息和信任度值,判定本次请求是否具有资源访问权限。
10.如权利要求9所述的系统,其特征在于所述角色-信任度描述模型采用六元组P=〈Role, Type, Action, Target, Context, TrustValue〉描述每一自治域内主体的权限;其中,Role为角色信息、Type为权限类型、Action为即操作方式、Target为操作目标、Context为上下文信息、TrustValue为信任值。
11.如权利要求9所述的系统,其特征在于所述权限划分模块根据其他M个自治域请求者角色映射到自治域B主体角色r的权限约束,将该角色r的权限集合划分为(M+2)个子权限集;其中,(M+2)个子权限集中包括一空集子权限集,一个为角色人的权限全集,其余M个权限子集分别对应M个其他自治域的权限需求。
全文摘要
本发明公开了一种基于信任度的访问控制方法及其系统,属于计算机访问控制领域。本方法为1)建立一角色-信任度描述模型,2)对于某自治域B中的每一角色r,确定其与其他自治域A中角色映射到角色r映射关系,使A中角色到B角色映射满足满射关系;3)根据映射关系将角色r的权限集合划分到不同的子权限集合中;将划分后的子集合关联到相应的信任度值上;4)当A中主体角色访问B中资源时,首先分析访问主体角色信息,然后将其映射到自治域B中的角色,并获取信任值;5)自治域B根据该访问主体角色的角色信息和信任度值,确定本次访问请求所具有的资源访问权限。本发明有效弥补了传统角色访问控制无法适用分布式协同开发环境的不足。
文档编号H04L29/06GK102664888SQ201210116988
公开日2012年9月12日 申请日期2012年4月19日 优先权日2012年4月19日
发明者何海, 吴恒, 张文博, 黄涛 申请人:中国科学院软件研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1