首页> 中国专利> 一种基于角色的域间访问控制系统

一种基于角色的域间访问控制系统

摘要

本发明提供了一种基于角色的域间访问控制系统,包括用户认证模块、用户上下文安全信息库、域控制模块和客体访问控制模块,用户上下文安全信息库记录经过用户认证模块认证通过的用户信息,域控制模块接收经过用户认证模块认证通过的访问请求,根据用户信息和访问请求中的客体信息确认用户是本域访问还是跨域访问,根据访问类型分配用户角色,将角色分配结果传给用户上下文安全信息库,客体访问控制模块接收来自用户上下文安全信息库的用户信息和来自域控制模块的访问请求,判断经过角色分配后的用户是否有权访问客体,若是,用户实施访问,将访问结果返回给用户。本发明通过角色变更使得用户权限适应不同的访问客体,满足了用户域间访问的需要。

著录项

  • 公开/公告号CN101286845A

    专利类型发明专利

  • 公开/公告日2008-10-15

    原文格式PDF

  • 申请/专利权人 华中科技大学;

    申请/专利号CN200810047656.3

  • 申请日2008-05-12

  • 分类号H04L9/32;G06F17/30;

  • 代理机构华中科技大学专利中心;

  • 代理人曹葆青

  • 地址 430074 湖北省武汉市洪山区珞喻路1037号

  • 入库时间 2023-12-17 20:53:53

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2014-07-02

    未缴年费专利权终止 IPC(主分类):H04L9/32 授权公告日:20110209 终止日期:20130512 申请日:20080512

    专利权的终止

  • 2011-02-09

    授权

    授权

  • 2008-12-10

    实质审查的生效

    实质审查的生效

  • 2008-10-15

    公开

    公开

说明书

技术领域

本发明涉及采用信息安全技术对计算机资源进行访问控制的系统。

背景技术

访问控制(Access Control)就是通过某种途径显式地准许或限制访问能力及范围的一种方法。通过访问控制服务,可以限制对关键资源的访问,防止非法用户的侵入或者因合法用户的不慎操作所造成的破坏。

访问控制基本模型包括三个部分:

1)主体(Subject):发出访问操作、存取要求的主动方,简记为S。通常指用户或用户某个进程等;

2)客体(Object):被访问的对象,简记为O。通常可以是被调用的程序、进程、要存取的数据、信息等资源;

3)控制策略(Policy):是主体对客体的操作行为集和约束条件集。简记为P。控制策略是主体对客体的访问规则集,这个规则集直接定义了主体对客体可以的作用行为和客体对主体的条件约束。

访问控制参考模型形象的描述了访问控制系统三个要素之间的行为关系,我们可以使用三元组(S,O,P)来表示。其中S表示主体,O表示客体,P表示许可。当用户(主体S)提出一系列对受保护的资源(客体O)的访问请求后,由访问控制决定组件(Access Control DecisionFunction)ADF来判断是否允许或拒绝这次请求,因此这种情况下,必须先要确认是合法的主体,也就是对主体进行认证。主体通过验证,才能访问客体,但并不保证其有权限可以对客体进行操作。客体对主体的具体约束由访问控制实施机构AEF(Access Control Enforcement Function)来实现。AEF保证只有被ADF允许的访问申请才能作用在目标上。

访问控制中对资源的访问控制主要包含以下几个方面:

1)保密性控制(Data Confidentiality):防止数据资源被非法读出。

2)完整性控制(Data Integrity):防止数据资源被非法改写。

3)有效性控制(Data Availability):防止数据资源被非法用户破坏,保证任何情况下系统处于工作状态。

4)可维护性:必须有相应的集中管理机制及安全管理工具,可以进行简单、方便、有效的管理操作。

最初的访问控制仅仅是对进入系统的控制,如简单的用户/口令认证。随着网络的发展,访问控制技术发展的很快,有许多访问控制策略被提出来。其中比较著名的访问控制策略主要是:自主型访问控制DAC和强制性访问控制MAC。

基于角色的访问控制RBAC是由Ferraiolo等人于20世纪90年代初提出来的。美国国家标准化和技术委员会(NIST)成立了RBAC研究机构,专门对基于角色的访问控制进行研究。Sandhu等人在对RBAC进行深入研究的基础上,在1996年提出了一个基于角色的访问控制参考模型,即RBAC96模型。此后,又相继提出了RBAC97、RBAC99以及各种扩展模型。RBAC的核心思想是通过引入“角色”这一“中介”,将用户和权限分离,使用户和具体权限不再直接相关,用户通过角色来拥有访问权限,有了“角色”的介入使系统的权限管理更加方便和灵活。SandhuR.S于1996年正式提出的RBAC模型,包含RBAC0,RBAC1,RBAC2和RBAC3四种模型,分别就RBAC的基本组成:角色、用户以及权限之间的关系做出定义(RBAC0),考虑了角色层次架构(RBAC1),加入了安全策略限制(RBAC2),同时支持角色继承和安全策略(RBAC3)等,在此之后的RBAC研究基本上基于这这个架构。目前RBAC基本上成为主流控制技术,大有取代DAC和MAC的趋势。

RBAC主要包括以下几个方面的原则:

1)角色继承

角色继承是RBAC的一个重要内容。它是指一个角色可以继承另一些角色,也就是说,一个角色可直接或间接地继承另一些角色的访问许可。

2)最小权限原则

所谓最小权限原则是指:用户所拥有的权力不能超过他执行工作时所需的权限。实现最小权限原则,需分清用户的工作内容,确定执行该项工作的最小权限集,然后将用户限制在这些权限范围之内。

3)职责分离

RBAC机制可被系统管理员用于执行职责分离的策略。静态职责分离是指只有当一个角色与用户所属的其他角色彼此不互斥时,这个角色才能授权给该用户。动态职责分离是指只有当一个角色与一主体的任何一个当前活跃角色都不互斥时,该角色才能成为该主体的另一个活跃角色。

4)角色容量

在创建新的角色时,要指定角色的容量。在一个特定的时间段内,有一些角色只能由一定人数的用户占用。

传统RBAC控制模型没有域的概念,但是现实的系统中,基于域的资源控制大量存在,特别是对于不同域的资源控制,这要求不同域的用户可以互相访问资源,但是又要求用户权限不能平等。同时,用户访问不同域的资源,也即用户所处的上下文环境发生了变化,这就要求权限动态改变以适应所处的环境。现有RBAC控制模型中,用户角色作为一种相对静止的概念,无法满足这种动态变化。另外,现有基于RBAC的扩展模型中,虽然有域或者等同概念的提出,但仍然不能解决用户跨域访问角色变更问题,并且对资源访问控制粒度过粗。

发明内容

本发明的目的在与提出一种基于角色的域间访问控制系统,通过角色变更使得用户权限适应不同的访问客体,满足用户域间访问的需要。

一种基于角色的域间访问控制系统,包括用户认证模块31,其特征在于,还包括用户上下文安全信息库34、域控制模块32和客体访问控制模块33,

用户上下文安全信息库34用于记录当前经过用户认证模块31认证通过的用户信息;

域控制模块32用于接收经过用户认证模块31认证通过的访问请求,根据用户信息和访问请求中的客体信息确认用户是本域访问还是跨域访问,根据访问类型分配用户角色,将角色分配结果传送给用户上下文安全信息库34,并将用户访问请求传送给客体访问控制模块33;

客体访问控制模块33用于接收来自用户上下文安全信息库34得用户信息和来自域控制模块32的访问请求,判断经过角色分配后的用户是否有权访问客体,若是,用户实施访问,并将访问结果返回给用户。

所述域控制模块包括域上下文感知器321、子域控制器322、中央域控制器323和角色分配器324;

域上下文感知器321用于接收来自用户上下文安全信息库34的用户信息和经过用户认证模块31认证通过的访问请求,判断用户和客体是否属于同一域,若是,则将用户信息和访问请求传送给子域控制器322,否则将用户信息和访问请求传送给中央域控制器323;

子域控制器322用于接收来自域上下文感知器321的用户信息和访问请求,复位用户原本域角色,将用户访问请求传送给所述客体访问控制模块33;

中央域控制器323用于接收来自域上下文感知器321的用户信息和访问请求,查询预存的客体域间可访问性列表以判断来自用户所属域的用户是否有权访问客体所属域,若是,将客体域间可访问性列表、用户信息和访问请求传送给角色分配器324;

所述客体域间可访问性列表包括客体名称、客体所属域ID、异域可访问域ID列表和客体可访问角色列表,客体可访问角色列表包括本域用户可访问角色列表和异域用户可访问角色列表;

角色分配器324用于接收来自中央域控制器323的客体域间可访问性列表、用户信息和访问请求,判断用户是否为全局用户,若是,保持用户角色不变;否则,将用户当前角色的权限集P1与所述本域用户可访问角色列表对应的权限集P2作比较:若P1包含P2,将用户所属域作为异域的异域用户可访问角色列表分配给用户;若P1与P2交集为空,将随机生成的例外角色分配给用户;否则,将P1与P2的权限交集对应的角色列表分配给用户;

将角色分配结果传送给用户上下文信息库34,并将访问请求传送给所述客体访问控制模块33。

所述客体访问控制模块33包括事前评估单元331、客体访问单元332和事后审查单元333,

事前评估单元331接收来自角色分配器324的访问请求和来自用户上下文安全信息库34的用户信息,判断经过角色分配后的用户是否有权访问客体,若是,驱动客体访问单元332以实施具体访问,访问完毕后驱动事后审查单元333对访问结果作进一步的审核以滤掉不属于当前用户权限的结果对象,最后将审核后的访问结果反馈给用户。

所述事前评估单元331和事后审查单元333的审核方法为:逐一提取用户被分配的角色,采用投票制判断担任该角色的用户是否有权访问客体,汇总投票结果,根据预定授权策略确定用户是否有权访问客体或者访问结果属于用户权限;

投票规则如下:

I若角色包含于预存所述客体可访问角色列表,投赞成票;

II若角色不包含于所述客体可访问角色列表:当角色为例外角色,且客体可访问角色列表不包括任一例外角色,保持中立;否则,投反对票。

本发明将不同域资源的用户划分域(组),从而为不同域的资源用户进行了细粒度划分,为克服现有RBAC模型的缺陷创建基础条件;同时,为解决不同域的资源对权限不一样的要求,采用了角色动态分配,对目标资源访问控制,采用角色动态分配;另外,为对目标资源中领域对象的精细化控制,对返回值进行审查,从而将符合用户角色的领域对象返回给用户。本发明通过角色变更适应了上下文环境的变化,满足了本域和跨域的访问需求。

附图说明

图1为一种基于角色的域间访问控制模型;

图2为域模型示意图;

图3为本发明控制模型的实现框架示意图;

图4为客体访问控制子系统访问序列图。

具体实施方式

下面参照附图具体描述本发明:

图1为基于角色的域间访问控制模型,包括用户集U101、角色集R112、权限集P114、用户会话分配US、会话集S104、用户角色指派UR,角色权限指派RP和会话角色激活的定义与现有的RBAC模型相同。

用户域分配UD,为用户集U和域集D之间的二元关系,假定UD∈U×D是一个域分配集合,那么(u,d)∈UD表示用户u被分配了一个域d。用户域分配分两种情况:非全局用户只能属于一个子域;全局用户属于整个系统的所有域。用户所分配域是用户角色的属性之一;

客体域分配OD是客体所对应域的分配列表,是客体元素的属性之一;

在本发明,会话中不但带有用户标识、角色信息,而且带有域信息(包括用户域和用户要访问的客体域),即会话域激活呈现了进一步的域控制。对客体的请求是否经过中央域控制器,是由会话中用户域ID和要访问的客体域ID决定的,如果两者相等,不经过,否则经过。

域上下文权限约束DCRCC106,指访问域所需要的角色条件规则。即DCRCC=DCL1∪DCL2∪DCL3∪...,DCLi=P1+P2+P3+...,i=1,2,3,...P1,P2,P3,...表示为某权限,这种形式的表达式能描述复杂的安全要求。例如,域(部门)A普通用户修改资源需要有查看权限P1和修改权限P2,或者用户为全局用户,具有较高的权限。用上面的表达式描述如下:

DCRCC=(P1+P2+(UerLevel=Normal))∪(UserLevel=High)

其中,UserLevel代表用户级别,Normal代表普通用户,High代表全局用户。

域上下文权限约束是角色变更的必要条件。

对客体的访问控制,采用评估审查授权策略PP117。其步骤为:

(1)AOP(aspect-oriented programming,面向方面编程)拦截器在调用客体前进行拦截,此时拦截器以公平投票的方式决定当前会话角色是否有权限访问资源,如果通过投票,继续对资源访问,否则向用户返回警告信息。

(2)客体调用返回,AOP拦截器拦截,对返回结果审查,看是否返回超越用户权限的客体。

在评估审查的授权策略中,公平投票机制是一种灵活的权限策略控制,后面模型具体实施中会详述。

本发明将系统内的组织或机构定义为域,每一个域有各自的上级域和下级域,整个系统成树型分布,称位于根节点的域为根域。图2为一实施例示意图,根域有三个下级域,分别为域1、域2和域3,域1有域11和域12两个下级域,域2有域21和域22两个下级域,域3有域31和域32两个下级域。

域的建立基于如下元素:

(1)D:域集,指基于主体和资源所在区域的集合,在这里指系统中具有相互关系的组织或部门。

(2)DI;域ID集,指域标识符的集合,在整个系统中,域ID具有唯一性;

(3)DN:域名集,指所有域名称所组成的集合;

(4)DT:域类型集,指所有域的类型所组成的集合;

(5)DCP:域上下文参数,指与应用中访问控制有关的安全域属性,以结构Q表示,具有属性id∈DI,属性name∈DN,和属性type∈DT,还包括一个函数GetDcpValue(),用来在应用环境中取得DCP的当前值。在本发明中,GetDcpValue()为本地函数,也可能为远程函数。

系统管理员根据应用的需要,预先定义域名集DN和域类型集DT,从而决定了所有域上下文参数DCP。管理员可以根据需要,动态的增删DCP。

根域拥有关于整个系统所有域的情况,包括:

(1)所有域基本信息,包括域ID、域名name和域类型type,域ID是一个域的唯一标识。所有这些构成域ID集DI、域名字集DN和域类型集DT。从而构成域上下文参数DCP集合。DCP以哈希表的形式存储在根域中。由于域id在整个系统唯一,所以可以以域ID作为哈希值。涉及到的哈希操作有get、set和size等;

(2)域之间可访问性列表。这主要为不同域之间的访问提供便利。可访问性列表可以以数据库存储的方式存在,也可以以XML的形式存在。其中包含以下元素:客体名称,客体所属域,本域用户可访问角色列表,异域可访问域ID列表,以及异域用户可访问角色列表。例如域ID=2的客体/xxx.jsp,其域之间可访问性列表记录如下信息:

客体名称:/xxx.jsp

客体所属域ID:2

本域用户可访问角色列表:ROLE_ADMIN(管理员),ROLE_TEACHER(老师)

异域可访问的域ID为:1,3,7

域ID=1的用户访问角色名列表:DOMAIN1_ROLE_ADMIN(域1临时管理员),DOMAIN1_ROLE_TEACHER(域1临时老师);

域ID=3的用户访问角色名列表:DOMAIN3_ROLE_ADMIN(域3临时管理员),DOMAIN3_ROLE_TEACHER(域3临时老师);

域ID=7的用户访问角色名列表:DOMAIN7_ROLE_ADMIN(域7临时管理员),DOMAIN7_ROLE_TEACHER(域7临时老师),TEMP_ROLE_GENERAL(临时例外角色);

其中TEMP_ROLE_GENERAL(临时例外用户)为例外角色,指所在域有访问权但本身无访问客体权限的用户,这种情况下用户访问角色列表中的角色名称是以TEMP为前缀的。其中,例外用户为可选信息项。

(3)全局可访问角色信息。这样做的目的是防止子域之间定义角色重复。

以上信息存储在根域服务器,每个下级域服务器都能访问到。

在上级域中定义的角色、客体类、权限可以在下级域中使用,这样也可以避免角色、权限在不同域中的重复定义。

在每个域中,主要定义与存储了本域中的用户、角色、权限、用户角色分配及角色权限的相关访问控制列表。这些信息存储在本域服务器。本域中的所有用户以及所有要访问本域的用户都能访问到。

平等域之间认证信息(用户名和密码)可以相同。

图3为本发明系统结构图。本发明包括四部分:用户认证模块31、域控制模块32、客体访问控制模块33和用户上下文安全信息库34。其中域控制模块包括域上下文感知器321、子域控制器322、中央域控制器323和角色分配器324。客体访问控制模块包括事前评估单元331、客体访问单元307和事后审查单元308,用户上下文安全信息库34是整个控制模型实现框架中各模块之间沟通的桥梁。另外,客体访问控制模块33根据域控制模块32所产生的最终用户角色对整个系统的客体进行访问控制,从而符合软件设计中模块独立性和复用性原则。

本发明各模块说明如下:

用户上下文安全信息库34,它是实现框架中各模块之间沟通的桥梁。用户上下文安全信息是用户通过用户认证31后,保存在当前会话的用户信息,它包括用户所属域domainID、用户帐号account、用户密码password、用户角色roles,可以用类UserInfo表示,类UserInfo定义domainID、account、password和roles以及获取get和设置set方法。在本发明模型中,用户上下文安全信息310是动态变化的,为方便各模块的操作,为用户上下文安全信息定义一个操作类ContextUserInfo,包括如下操作:

getUserInfoFromSession:从当前会话获得已认证用户信息;

setUserInfoToSession:将已认证用户信息加入当前会话;

updateUserInfo:更新当前会话用户信息;

isAuthentication:判断当前用户是否认证。

用户认证301,主要对用户的身份进行认证。在本发明中,用户认证基于用户帐号、密码和域id认证。用户认证的步骤如下:

(1)首先判断用户是否已经认证,即判断类ContextUserInfo操作isAuthentication是否返回true;

(2)若返回true,则进行后续操作;若返回false,则对用户进行认证处理,将通过认证的用户信息加入当前会话,即进行类ContextUserInfo的操作setUserInfoToSession;如果未通过认证,则向用户返回错误信息。

域上下文感知器321,接收用户的访问请求,对用户要访问的客体进行域判断,进行访问转向,其规则如下:

(1)若用户所属域ID与客体所属域ID相同,即用户与客体属于同一个域,则由子域控制器322控制客体资源的访问;

(2)若用户所属域ID与客体所属域ID不相同,即用户与客体不属于同一个域,则由中央域控制器323控制客体资源的访问;

子域控制器322主要用于请求中转和角色复位。如果用户对本域资源访问,子域控制器直接将请求转向客体访问控制模块;如果用户从异域返回本域(即用户访问了异域资源后再返回访问本域资源),子域控制器将用户角色复位为原本域角色;

中央域控制器323是域控制模块的核心模块,其作用是判断用户是否对客体域有访问权。中央域控制器处理请求的步骤如下:

(1)从用户上下文安全信息34获得用户所属域ID,记为userDomainID;

(2)从中央域控制器323所存储的所有子域哈希表中查找客体域ID,记为objectDomainID;

(3)根据用户域ID userDomainID和客体域ID objectDomainID从中央域控制器所存储的域之间可访问性列表里面查看用户是否对客体有访问权。若有访问权,则启动角色分配器324;否则,向用户返回错误或警告信息;

角色分配器324主要为异域访问的用户分配临时角色。角色分配的原则是:分配的角色权限不能超出用户原有角色权限,也不能超出访问客体限定权限,分配角色的步骤如下:

(1)从中央域控制器323所存储的信息里面判断用户是否为全局用户,若为全局用户,则用户当前角色不变。否则,转向步骤(2);

(2)称P1为当前用户担任角色所对应的权限集,P2为被访问客体对本域用户所要求的角色列表所对应的权限集。如果P1包含P2,将域之间可访问性列表客体域对应的当前用户所属域对客体域访问角色列表分配给当前用户;否则,求P1和P2的交集,如果交集为空,随机分配例外角色给当前用户,即在常规角色名前加上“TEMP”前缀,例如TEMP_ROLE_GENERAL,表明当前用户为例外用户,指其所在域有访问权但本身无访问客体权限的用户,这种情况下用户访问角色列表中的角色名称是以TEMP为前缀的,标示为例外角色;否则,将当前用户权限交集所对应的以“DOMAIN+当前用户域ID”为开头的角色名称列表分给当前用户。

(3)将分配结果传送给用户上下文安全信息库34。

事前评估单元331和事后审查单元333采取公平投票策略。公平投票策略作为事前评估单元331和事后审查单元333的授权机制,适应了用户异域访问时角色的动态变化。其具体应用是根据所有投票结果的组合进行资源控制,如全部赞成票通过,大多数赞成票通过,全部中立通过等。

公平投票就是用户对客体资源的可访问性进行投票,也即将当前用户所拥有的角色名列表依次与客体对异域或本域用户的可访问角色名列表比较。其投票原则如下:

(1)如果用户角色属于客体可访问列表,则投赞成票,记为greetVote=1;

(2)如果用户不属于客体可访问列表,则投反对票,记为notgreetVote=-1;

(3)如果角色前缀名为与客体可访问角色名列表中所定义的一个角色名前缀不同TEMP,则保持中立,记为abstainVote=0。例如,用户拥有的一个角色名前缀为:TEMP,而客体可访问角色名列表中均没有以TEMP为前缀的角色名,则投票器保持中立,即abstainVote=0。

在本发明中,用户异域访问,临时角色与用户在本域中的角色不同,所以采用了多投票器。分别对各种角色访问投票处理。

事前评估单元331是对客体访问单元332的前置判断,目的只是检测用户是否有权限访问客体资源。当前,AOP技术正好适应此种情形,从而将客体访问单元332与其隔离。在本模块实现中,由AOP拦截器拦截用户对客体资源的访问,而后采用公平投票的方式对要访问客体进行控制。假如采用全部赞成票通过的策略,则各投票器都投赞成票时,启动客体访问单元332,允许用户对客体资源进行访问;

事后审查333也采用AOP技术,对客体访问单元332的返回结果进行进一步的审核,目的是过滤掉不属于当前用户权限的结果对象。需要说明的是,事后审查对某些客体资源访问进行的是弱处理,如Web资源、业务方法等。

图4为客体访问控制子系统访问序列图,其过程如下:

1-访问主体向客体资源发出访问请求;

2-事前评估以投票的方式决定当前用户是否有权限调用客体资源;各投票方式是公平的,在具体的应用中,可以配置多个投票器,由各个投票器决定用户对客体资源的权限,从而可以以多种授权策略控制客体资源;

3-公平投票器从用户上下文安全信息获得当前用户信息;

4-当前用户通过事前评估,调用客体资源;

5-对客体资源进行事后审查;

6-事后审查通过以公平投票的方式排除不属于当前用户的结果对象;

7-公平投票器从用户上下文获得当前用户信息,返回结果到访问主体。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号