首页 > 代码库 > 一种基于RBAC模型的动态访问控制改进方法
一种基于RBAC模型的动态访问控制改进方法
本发明涉及一种基于RBAC模型的动态访问控制改进方法,属于访问控制领域。对原有RBAC模型进行了权限的改进和约束条件的改进,具体为将权限分为静态权限和动态权限,其中静态权限是非工作流的权限,动态权限是工作流中的权限;将约束条件分为静态约束和动态约束,其中静态约束包括最小权限约束和职责分离约束,动态约束使动态权限按照工作流进行操作。采用本发明的方法改进后的RBAC模型具有以下优势:为传统的RBAC模型中增加了动态特性;跟纯动态模型相比较具有更高的效率;保证需要按顺序执行的权限能够按顺序执行,使得系统更加安全;克服了传统的RBAC模型的不能适用于工作流的系统的不足,使得系统更加接近于现实世界。
技术领域
[0001] 本发明涉及一种基于RBAC模型的动态访问控制改进方法,属于访问控制领域。
技术背景
[0002] 随着计算机网络的不断发展及大量分布式技术的使用,企业越来越注重信息化管理,数据的共享,使得数据的安全性受到了极大的挑战,在未经授权许可的情况下对数据进行访问可能会带来很大的隐患。这使得访问控制成为现在普遍关注的热点。
[0003] —般访问控制包括四个部分,访问者(Initiator),访问控制执行功能单元 (AEF),访问控制决策功能单元(ADF)和目标单元(Target),如图1所示。其中访问者也称为发起端主体单元,指电脑中的系统资源和应用资源的使用者,或可执行程序等系统实体的主动部分。访问控制执行功能单元负责建立访问者与目标之间的通讯桥梁,其操作必须按照ADF的请求决策结果来实施。此外,在一个完善的权限管理系统中,AEF通常还包括对访问者的身份认证,传输信息的封包以及机密性检查等其他功能。访问控制决策功能单元作为访问控制系统的核心部分,它依据AEF传送过来的操作要求以及相关的访问控制决策信息,做出正确的访问控制决策交由AEF做进一步的操作。目标单元主要指外设,网络资源,数据库资源,Webserver资源,系统文件等属于系统实体的被动部分。
[0004] 早期的访问控制主要有两种:自主访问控制(DAC)和强制访问控制(MAC)。
[0005] DAC是一种基于主体身份或主体所在组来控制其对客体访问的方法。DAC的核心思想是客体的拥有者可以自主的控制其他主体对其客体的访问,并且可以自主的决定是否将访问权限传递给其它主体或组。虽然DAC的权限传播思想具有很好的灵活性和可伸缩性,但也带来了安全隐患,使其难以满足安全性要求高的系统。
[0006] MAC是通过对比主体的安全级别和客体的安全级别,最终确定主体能否存取客体。安全级别是由安全管理员强制分配的,主体和客体都不能改变安全级别属性。主体的安全分类级别称为许可证级别(Clearance Level),客体的安全分类级别称为密级(Classification Level)。当某一主体以某种安全级别进入系统时,系统要求他对任何客体的存取必须遵循如下规则:(I)仅当主体的许可证级别大于或等于客体的密级时,该主体才能读取相应的客体。(2)仅当主体的许可证级别等于客体的密级时,该主体才能写相应的客体。MAC的这个属性使它适用于安全要求很高的系统中,但也使它缺少了灵活性。
[0007]目前常见的访问控制模型有基于角色的访问控制模型(RBAC)和基于任务的访问控制(TBAC)。其中RBAC是通过引入角色的概念来实现用户和权限的逻辑分离,用户通过获得角色得到权限来对客体进行操作,从而实现了权限的管理。RBAC被认为是最能代替DAC和MAC的访问控制。但RBAC是一种静态的授权机制,它不能被运用到工作流系统中;TBAC是以任务和活动为中心,是一种上下文相关的访问控制模型,适合处理工作流中有时效性和流动性的数据信息,但这种主动的访问控制模型不能处理非工作流的任务,如业务查询等,并且TBAC不支持角色的层次关系,不适合企业的组织结构层次。
[0008] 基于以上的分析,针对实际的情况,把RBAC中的权限分为静态权限和动态权限,把约束条件分为静态约束和动态约束。静态权限主要是非工作流的权限,比如查询,动态权限主要是工作流中的权限。静态约束是传统RBAC中的约束,如互斥的角色,互斥权限等,动态约束是使动态权限按工作流的要求按顺序,按规则的激活。这样在传统的RBAC模型中加入了动态性,使之既适应非工作流任务的情況,也适应工作流任务的情況,也对应了现实中角色组织机构,提高了 RBAC的适用性。
发明内容
[0009] 本发明是为了克服现有技术的缺陷,提出了一种基于RBAC模型的动态访问控制改进方法。
[0010] 本发明是通过以下技术方案实现的。
[0011] 本发明的一种基于RBAC模型的动态访问控制改进方法,对原有RBAC模型进行两方面的改进:权限的改进和约束条件的改进,具体包括:
[0012] (I)将权限分为静态权限和动态权限,静态权限是非工作流的权限,动态权限是工作流中的权限,这样在传统的RBAC模型中加入了动态性,使之既适应非工作流任务的情况,也适应工作流任务的情況。
[0013] (2)将约束条件分为静态约束和动态约束,其中静态约束包括最小权限约束和职责分离约束,职责分离又包括静态职责分离和动态职责分离,静态职责分离指的是在给用户分配角色的时候不同时分配互斥的角色,动态职责分离是指给同一个用户分配的多个角色,在一次会话时不能同时充当有安全问题的角色组合;动态约束使动态权限按照工作流进行操作,在工作流中包括很多的工作节点,工作节点之间按顺序进行,只有前面的节点都完成了后面的工作节点才能进行,每个工作节点需要ー个或多个动态权限,这样就使得本发明适应于带工作流的系统。
[0014] 改进后的模型结构包括用户、角色、权限、会话、静态约束和动态约束。其中用户就是使用系统的人,一个用户被分配了一个或者多个角色,角色之间有相应的层次关系,ー个角色拥有ー个或多个权限,权限就是对客体的操作。当用户登录系统时就会激起ー个会话,这时系统就会在静态约束模块和动态约束模块的约束下顺利的运行。本模型使用公钥基础设施(Public Key Infrastructure,简称PKI)进行身份认证,PKI是ー种遵循既定标准的密钥管理平台,它能够为所有网络应用提供加密和数字签名等密码服务及所必需的密钥和证书管理,也即PKI就是利用公钥理论和技术建立的提供安全服务的基础设施。使用授权管理基础设施(Privilege Management Infrastructure,简称PMI)进行授权管理,PMI是授权管理基础设施,它依赖于公共密钥基础设施PKI的支持,任务g在提供访问控制和特权管理,提供用户身份到应用授权的映射功能。与PKI信任相比,两者的区别主要在于PKI证明用户的身份,并将用户的身份信息保存在用户的公钥证书中;而PMI则证明这个用户所具有的权限和属性,并将用户的属性信息保存在属性证书中,属性证书又称管理证书。
[0015] 本发明的一种基于RBAC模型的动态访问控制改进方法,采用该方法改进后的RBAC模型的工作过程为:访问发起者向AEF的PKI接ロ提交带签名的访问请求,PKI接ロ通过认证服务模块对访问发起者进行身份认证,认证成功后AEF向ADF的PMI接ロ发送决策请求,PMI接ロ向角色映射模块发送角色映射请求得到对应角色,向本地ADF决策请求。然后本地ADF通过策略管理模块从策略与属性证书数据库得到静态约束条件和动态约束条件,角色映射模块通过属性证书管理模块提取属性证书,访问发起者对应的角色通过属性证书得到自己的所有权限,包括静态权限和动态权限。这样角色在静态约束和动态约束下判断是否可以执行想要执行的权限,如果允许就能执行。当一个静态权限执行完之后或者一个工作流中的所有权限都执行完,就将执行的信息记录在记录管理子系统。
有益效果
[0017] 本发明的一种基于RBAC模型的动态访问控制改进方法,采用该方法改进后的RBAC模型具有以下优 势:
[0018] (I)在经典的约束条件之外加上了动态约束,将权限分为静态权限和动态权限,为传统的RBAC模型中增加了动态特性;
[0019] (2)保留了原有的不需要进行动态约束的权限,即静态权限,保留了传统的RBAC模型的优点,跟纯动态模型相比较具有更高的效率;
[0020] (3)结合经典的RBAC模型,加入了动态约束和动态权限,使得需要按顺序执行的权限能够按顺序执行,使得系统更加安全;
[0021] (4)改进的RBAC加入了动态部分,动静结合,克服了传统的RBAC模型的不能适用于工作流的系统的不足,对权限进行了更好的管理,使得系统更加接近于现实世界。
附图说明
[0022] 图I为一般访问控制模型的结构示意图;
[0023] 图2为本发明的基于角色的动态访问控制模型结构示意图;
[0024] 图3为本发明实施例的工作过程示意图。
具体实施方式
[0025] 下面结合附图和实施例对本发明做进一步说明。
实施例
[0027] 一种基于RBAC模型的动态访问控制改进方法,对原有RBAC模型进行两方面的改进:权限的改进和约束条件的改进,具体包括:
[0028] (I)将权限分为静态权限和动态权限,静态权限是非工作流的权限,动态权限是工作流中的权限,这样在传统的RBAC模型中加入了动态性,使之既适应非工作流任务的情况,也适应工作流任务的情况。
[0029] (2)将约束条件分为静态约束和动态约束,其中静态约束包括最小权限约束和职责分离约束,职责分离又包括静态职责分离和动态职责分离,静态职责分离指的是在给用户分配角色的时候不同时分配互斥的角色,动态职责分离是指给同一个用户分配的多个角色,在一次会话时不能同时充当有安全问题的角色组合;动态约束使动态权限按照工作流进行操作,在工作流中包括很多的工作节点,工作节点之间按顺序进行,只有前面的节点都完成了后面的工作节点才能进行,每个工作节点需要一个或多个动态权限,这样就使得本发明适应于带工作流的系统。
[0030] 改进后的模型结构包括用户、角色、权限、会话、静态约束和动态约束。其中用户就是使用系统的人,一个用户被分配了一个或者多个角色,角色之间有相应的层次关系,一个角色拥有一个或多个权限,权限就是对客体的操作。当用户登录系统时就会激起一个会话,这时系统就会在静态约束模块和动态约束模块的约束下顺利的运行。本模型使用PKI进行身份认证,PKI是ー种遵循既定标准的密钥管理平台,它能够为所有网络应用提供加密和数字签名等密码服务及所必需的密钥和证书管理,也即PKI就是利用公钥理论和技术建立的提供安全服务的基础设施。使用PMI进行授权管理,PMI是授权管理基础设施,它依赖于公共密钥基础设施PKI的支持,任务g在提供访问控制和特权管理,提供用户身份到应用授权的映射功能。与PKI信任相比,两者的区别主要在于PKI证明用户的身份,并将用户的身份信息保存在用户的公钥证书中;而?11则证明这个用户所具有的权限和属性,并将用户的属性信息保存在属性证书中,属性证书又称管理证书。
[0031] 本发明的一种基于RBAC模型的动态访问控制改进方法,采用该方法改进后的RBAC模型的工作过程为:访问发起者向AEF的PKI接ロ提交带签名的访问请求,PKI接ロ通过认证服务模块对访问发起者进行身份认证,认证成功后AEF向ADF的PMI接ロ发送决策请求,PMI接ロ向角色映射模块发送角色映射请求得到对应角色,向本地ADF决策请求。然后本地ADF通过策略管理模块从策略与属性证书数据库得到静态约束条件和动态约束条件,角色映射模块通过属性证书管理模块提取属性证书,访问发起者对应的角色通过属性 证书得到自己的所有权限,包括静态权限和动态权限。这样角色在静态约束和动态约束下判断是否可以执行想要执行的权限,如果允许就能执行。当一个静态权限执行完之后或者ー个工作流中的所有权限都执行完,就将执行的信息记录在记录管理子系统。
[0032] 在一个简单的医院业务系统中,有基础的查询功能,可以查询本医院的各种规章制度;还有基础的病人就医的功能,病人就医通常是首先到挂号处进行挂号,确定就诊科室、医师,然后,病人到相关科室进行就诊,门诊医生对病人病情确诊,填写病历,开具药品处方,病人到收费处进行药品划价,缴纳药用费后,可到药房领取药品。
[0033] 在上述这样ー个系统里,角色包括挂号处工作人员、医生、划价处工作人员和药房工作人员。其中挂号处工作人员的权限是给病人挂号,确定诊室和医生;医生的权限就是开处方药;划价处工作人员的权限就是对药品处方进行划价;药房工作人员的权限是按药品处方给病人拿药;每个角色都有的权限就是都可以查询医院的规章制度。这样,查询医院规章制度就属于静态权限,每个角色随时都可以进行查询;剰余的权限就是动态权限,必须按门诊就医的流程按顺序执行。
[0034] 应用本实施例方法,将改进后的模型应用于上述医院业务系统,如图3所示,例如一个医生进入该系统,医生为访问发起者,他先向AEF发送认证请求进行PKI身份认证,认证通过后向ADF发送角色请求得到医生角色,ADF从策略与属性证书数据库得到静态约束条件、动态约束条件和角色的属性证书,通过属性证书他就有了静态权限,可以查看医院的规章制度。拥有开处方药的动态权限,当他要执行此权限的时候,通过动态约束模块查询是不是有病人挂号并指定他的诊室了,也就是挂号处工作人员的权限是否已执行并且此エ作流里是否有他的诊室,如果是他就可以执行他的权限,如果不是就不能执行;其它角色登陆时的访问控制跟医生这个角色的基本相同;在最后一名角色即药房工作人员执行完权限后,此工作流即完成,将此工作流的所有执行的权限的相关信息记录在记录管理子系统中。
SRC=https://www.google.com.hk/patents/CN102073817B
一种基于RBAC模型的动态访问控制改进方法