基于属性证书和策略的RBAC应用研究

时间:2022-08-16 06:12:50

基于属性证书和策略的RBAC应用研究

摘要:简单回顾了RBAC模型的概念以及属性证书的定义,从理论上探讨了如何应用X509v4标准的属性证书来实现基于角色的权限管理。在访问控制基本框架的和属性权威概念的基础上提出一个具体的RBAC系统,并分析了证书管理、角色指派、决策控制的各个环节。详细探讨了用于实现基于策略的RBAC所用到的一系列相互配合的策略及其之间的联系。

关键词:属性证书;RBAC;X509v4;策略;访问控制;PMI

中图分类号:TP393文献标识码:A文章编号:1009-3044(2007)03-10805-03

21世纪是信息时代,网络应用的日益普及与科技的快速发展,改变了人们的思维与行为模式,使得人与人之间的沟通更为迅速与便利,企业更运用资讯科技来提升自我的竞争能力和工作效率,以适应全球化趋势。互联网没有边界和国界,必定面临全球范围的攻击威胁为保护网络资源免受威胁和攻击,访问控制作为安全服务的重要部分越来越受到关注,RBAC(RoleBasd Access Control)作为一种新型的访问控制模型,以它独有的特点被广泛应用于各种信息安全的案例当中,而结合属性证书与基于策略的决策为RBAC应用带来了更大的安全性与便利性。

1 RBAC概述

1.1 网络安全服务

互联网没有边界和国界,必定面临全球范围的攻击威胁;为保护网络资源免受威胁和攻击,在密码学及安全协议的基础上发展了网络安全体系中的五类安全服务,国际标准化组织ISO已经有了明确的定义,它们分别是:(1)身份认证(2)访问控制(3)数据机密性(4)数据完整性(5)不可抵赖性。

1.2 访问控制模型

访问控制正是实现既定安全策略的系统安全技术,它管理所有资源访问请求,根安全策略的要求,对每个资源访问请求做出是否许可的判断,能有效地防止非法用户访问系统资源和合法用户非法使用资源。访问控制技术最早产生于20 世纪60 年代,随后出现了两种重要的访问控制技术:自主访问控制(Discretionary Access Control ,DAC) 和强制访问控制(Mandatory Access Control ,MAC) ,当前在信息系统开发中更应该关注基于角色的访问控制(Role - Based Access Control ,RBAC)。由于DAC 和MAC 安全性的缺陷及其基于用户的机制造成的添加用户和功能时操作的复杂性,现代信息系统广泛采用使用新型的访问控制技术RBAC。

1.3 RBAC模型

基于角色的访问控制(RBAC) 是由David Fenaiolo、Richard Kuhn 等提出的,它强调用户的权限不是由用户名而是由用户在组织中的角色决定的,通过角色间接地访问系统资源。由此可以看出,在RBAC 模型中主要存在三个实体:用户、角色和权限。RBAC的主要思想是权限与角色关联,而通过用户被指派给合适的角色后,用户与权限相关联,用户可以很容易地被重新指派到另一个角色,而角色也可以根据需要赋与新的权限,这样极大地减少了权限管理的复杂性,降低管理开销,由于具备灵活性,RBAC 更能适合于大中型企业的应用环境,尤其是网络环境的应用,并且RBAC 能直接支持三个著名的安全原则:最小特权、职责分离、数据抽象。目前对RBAC 已有广泛的研究, 专家和学者们也提出了一些RBAC 模型,Sandhu提出的RBAC96最有代表性。RBAC96 模型包括了四个不同层次,RBAC0 模型称为基本模型,它规定了任何RBAC 系统所必须的最小需求,RBAC1 称为层次模型,它在RBAC0 基础上增加了角色层次(Role Hierarchies)概念,RBAC2 称为约束模型,它在RBAC0 的基础上增加了约束(Constraints)概念,RBAC3 称为合并模型,它包括了RBAC1、RBAC2,由于传递性,RBAC3 也包括RBAC0。

其模型如图1所示:

图1 RBAC96模型

2 PMI构架与属性证书(AC)

2.1 属性证书(AC)概述

PKI 主要是为信息交流提供强有力的身份认证服务和基于身份的访问控制服务(Identity-basedAccess Control),但对基于角色的访问控制服务(Rule-based and role-based Access Control)却显示出其不足,网络应用需要一种高效的授权管理机制,特权管理基础设施 PMI 应运而生。与 PKI 使用公钥证书(Public Key Certificate,PKC)绑定用户身份类似,PMI 使用属性证书(Attribute Certificate,AC)来绑定用户属性信息。属性证书(AC)是一种数据结构,它将实体的权限和数字签名绑定在一起。该概念首先在X509证书规范中引入,并且在X509v4中进一步描述了它与身份证书的关系以及属性证书的使用模式。

AC 将用户的一组属性和其他信息通过认证机构的私钥进行数字签名,使其不能伪造,用于证书的扩展使用。属性证书建立在基于公钥证书的身份认证的基础之上,PKC主要用来标示用户身份,而AC用来标示用户所具有的属性,在RBAC应用中,属性可用来存储相应的角色信息与权限信息,实现用户与角色的关联和角色与权限的关联。

属性证书中包含的信息有:证书的版本号、证书所有者的信息、证书的签发机构、用来创建数字签名的算法、证书的序列号、有效期、属性、可选的证书签发机构的唯一ID号和可选的扩展域。X.509 中定义的 AC 格式:

2.2 PMI构架

PMI 是 由X.509 v4(2000)定义的一种授权机制,它在身份认证的基础上,以属性证书的形式来实现授权管理,包括属性证书生成、管理、存储及撤销。基于PMI技术的授权管理模式主要存在以下三个方面的优势:A.授权管理的灵活性基于PMI技术的授权管理模式可以通过属性证书的有效期以及委托授权机制来灵活地进行授权管理,从而实现了传统的访问控制技术领域中的强制访问控制模式与自主访问控制模式的有机结合,与传统的授权管理模式相比,采用属性证书机制的授权管理技术对授权管理信息提供了更多的保护功能,进一步增加了授权管理机制的灵活性,并保持了信任服务体系的相对稳定性。 B.授权操作与业务操作相分离C.多授权模型的灵活支持 。

常见的PMI模型如图2所示,在RBAC应用中,对属性证书的操作即映射为对用户角色及角色权限的管理。

图2 PMI模型

3 基于属性证书的RBAC的实现

3.1 以X509属性证书形式实现RBAC

RBAC模型使用两种属性证书对用户进行角色管理、对角色进行权限管理。一种是角色分配证书(Role Assignment Attribute Certificate),其主体为用户,属性为分配给用户的角色,系统用此证书为用户分配角色;第二种是角色描述证书(Role Specificate Attribute Certificate),其主体是角色,属性为分配给角色的特权,系统通过它来定义角色所具有的权限;两者通过角色标示符(OID)关联,从而实现用户-角色-权限的关联,如图3所示:

图3 Role Assignment AC 与 Role Specification AC关系

3.2 系统总体框架

无论哪一种访问控制授权方案都可以表示成如下的基本元素和抽象。如图4:

图4 访问控制基本框架

以用访问控制基本框架,同时以属性证书为ADF作决策的依据,现提出基于属性证书的访问控制框架。首先,要提供给用户一个登陆界面,用户通过user/password形式进行登陆,AEF根据用户登陆信息对LDAP服务器进行查询,获得用户的PKC,对用户身份进行认证,当然也可以由用户采用推模式(push mode)向AEF提交自己的PKC,但考虑便携性及分布应用,本系统采用拉模式(pull mode)由AEF负责查询LDAP服务器,获取用户相关的证书,之后对属性证书的获取方式也采用此模式,不再赘述。AEF对PKC进行解析后,将用户信息及用户所要访问的资源、对资源采取的操作等信息发送给ADF。ADF对收到的信息及系统具体环境信息进行综合,对照访问控制策略做出裁决,并将是否允许用户访问的最终裁决返回给AEF。AEF根据裁决执行用户的访问操作或返回用户拒绝信息。

以上是基于策略的授权认证,是系统的主要部分,它是建立在证书已发行到LDAP服务器基础之上的,而证书的发行与管理是系统的第二大模块,它相对较容易实现,可参照PMI规范设立管理证书的属性权威(AA)。证书发行机构同样是基于策略的,这样可以对一个域内用户、资源进行管理,同时还可以支持各种授权约束。结合证书管理和访问控制两大模块,提出系统总框架如图5:

图5 基于属性证书的RBAC系统总体框架

3.3 基于策略的授权与认证

基于策略的RBAC中,总的来说,策略指一组描述在特定范围内,满足何种条件下用户可以获得何种角色,可对那些客体采取哪些操作。策略由系统管理员制定,供ADF读取并以此为规范对用户的访问请求作出裁决。本系统定义了一组应用于X509 PMI的策略,它由一系列子策略组成,对主体、客体、动作、域、角色等进行了描述,采用了功能强大且易于理解的XML作为描述语言。它可以XML文件形式存放也可对其编码以属性证书的形式存放于LDAP。

(1)授权主体策略(Subject Policy) Subject Policy定义了可被授予角色的用户域。可用include与exclued标记来包括或排除子树,如下例,指定了用户域为除computer之外whut所有的department。

(2)角色继承策略(Role Hierarchy Policy) 此策略描述了角色间的继承关系,通过此策略可以实现RBAC模型中的角色继承。下例中Caption继承了Soldier的角色。

(3)动作策略(Action Policy)此策略定义了它所支持的所有操作,一个操作的最小访问粒度是对一个目标进行访问。每个动作都要有一个或多个参数,这个参数与从AEF传递到ADF的参数是相同的,下例中定义了以filename为参数进行读、写。

(4)客体策略(Object Policy) 同Subject Policy类似,指定客体域。

(5)角色分配策略(Role Assignment Policy)此策略定义了哪些角色可由那些SOA(根属性权威)分配给哪些主体,角色可否,分配有否时间限制。下例指出reader角色可由PolicyOwner分配给students,它在2006-09-01之前是无效的,且不允许角色。

(6)目标访问策略(Target Access Policy) 该策略描述了满足何条件时,那个角色可对那个客体域采取何种动作。这是通过两组语句来实现的,一组为判断语句,比较值为需满足的条件;另一组是一组角色、动作、客体域的集合,指定满足第一组条件后对目标访问所作的限制。下例中,reader在2006-1-1到2010-1-1间可在每星期1-5的早8点到晚7点间可进行图书阅读。

上述一系列策略的有机结合构成了基于策略的RBAC的基础,在RBAC模型中,各策略的工作情况如图6所示:

图6 各策略在RBAC应用中的作用

3.4 重要操作的具体实现方法

对LDAP查询可由JNDI(Java Naming and Directory Interface)实现, X509v4证书的生成、解析可应用第三方软件包如IAIK-JAC、PERMIS等,对XML文档的操作可由JSAX或JDOM实现,至于用户身份认证可应用PKI或SSL方式,或采用JAAS登陆模块。整个系统的部署可用JavaBean封装,部署于J2EE应用服务器上。

4 结束语

本文阐述了RBAC模型、属性证书的概念,可以看出用属性证来实现RBAC是十分可行的,这种方法既实现了RBAC的灵活性,又结合了属性证书的安全性。之后结合基本访问控制框架及属性权威,提出一个完整的基于属性证书的RBAC体系结构,详细分析了该系统的具体实现,尤其是基于策略的授权管理的观点,可以方便的管理一个域内的所有资源的访问控制。最后,给出了系统模块中主要功能的编程实现方法。总之,基于属性证书的RBAC可以有效而方便的对用户和权限进行管理,对资源访问进行控制,有较高安全性,是一种实用的资源访问控制方案。

参考文献:

[1]ITU-T Rec. X.509 (2000) | ISO/IEC 9594-8[s].The Directory: Authentication Framework.

[2]Sandhu, R. and Samarati, P. Access controls, principles and practice[M]. IEEE Communications,32(9), pp 40-48, 1994.

[3]Sandhu, R.S., Coyne, E.J., Feinstein, H.L., Youman, C.E. Role Based Access Control Models[M].IEEE Computer 29, 2 (Feb 1996), p38-43.

[4]The EC PERMIS, see [DB/OL]. and sec.isi.salford.ac.uk/permis.

[5]D.W.Chadwick, A. Otenko, E.Ball. Implementing Role Based Access Controls Using X.509 Attribute Certificates[M].IEEE Internet Computing, March-April 2003, pp. 62-69.

[6]D.W.Chadwick, A. Otenko.The PERMIS X.509 Role Based Privilege Management Infrastructure[M]. Future Generation Computer Systems, 936 (2002) 1-13, December 2002. Elsevier Science BV.

本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。

上一篇:网络信息加密技术及电子邮件的安全传输 下一篇:基于数字化的城市道路信息管理