ComputerApplicationsandSoftwareVol123,No.8Aug.2006
基于XACML和RBAC的访问控制系统
高 扬 张家钰 吴 敏
(东华大学计算机科学与技术学院 上海200051)
摘 要 Web环境下的企业信息系统容易受到来自企业内外的安全威胁,需要一种灵活高效的访问控制来保护企业的资源。在
给出RBAC基本概念和XACML策略机制的基础上,提出了基于XACML和RBAC的访问控制模型。关键词 XML RBAC XACML 访问控制
ACCESSCONTROLSYSTEMBASEDONXACMLANDRBAC
GaoYang ZhangJiayu WuMin
(CollegeofComputerScienceandTechnology,DonghuaUniversity,Shanghai200051,China)
Abstract EnterpriseInformationSystembasedonWebtechnologyiseasytobethreatenedfrominteriororexterior,Itπsnecessarytodevel2opaneffectiveandflexibleaccesscontrolmechanismtoprotectenterpriseπsassets.AfterintroducingbasicconceptofRBACandXACML,thispaperproposesaccesscontrolsystembasedonXACMLandRBAC.Keywords XML RBAC XACML Accesscontrol
1 引 言
近年来,XML技术得到了广泛的关注,它提供了一套跨平台、跨网络、跨程序语言的数据描述方式,具有可扩展性和自描述性等优点,正好可以解决企业信息集成中数据孤立性和应用异构性等问题。然而在开放式环境下,对XML资源的访问存在着很大的安全性隐患,需要一种灵活高效的访问机制,既保证合法用户能够方便快捷地访问资源,又要阻止非法用户的访问请求或合法用户的非法访问请求。基于角色的访问控制(RolebasedAccessControl,RBAC)是一种灵活、高效的访问控制方法,它有效地克服了传统访问控制(DAC,MAC等)技术中存在的不足之处,减少授权管理的复杂性和降低管理开销,已经被应用到操作系统、数据库管理系统中。可扩展访问控制标记语言(ExtensibleAccessControlMarkupLanguage,XACML)定义了一种通用的用于保护资源的策略语言和访问决策语言,在2003年2月被批准为OASIS的一个开放性标准。XACML和RBAC的结合将会为企业信息集成提供一种安全高效的访问控制机制。
图1 NISTRBAC2001参考模型
核心RBAC是最基本的模型构件,任何RBAC系统都必须
具备核心RBAC,它包括五个基本要素集:用户(USERS)、角色(ROLES)、对象(OBS)、操作(OPS)和访问权限(PRMS)。
RBAC在用户和权限之间引入了角色的概念,安全管理员根据
实际需要定义各种角色,并设置和角色相对应的访问权限,而用户根据其职责被指派为不同的角色。这样,访问权限和角色相关联,角色再与用户关联,从而实现了用户与访问权限的逻辑分离。核心RBAC中也引入了会话(Session)的概念,会话是一个用户与一个角色子集间的映射关系。一个用户可以建立多个会话,但是一个会话只能有一个用户参与。其模型定义如下:
・U、R、P和S(用户、角色、权限和会话)・PAΑP×P:权限-角色分配的多对对关系・UAΑU×P:用户-角色分配的多对对关系
・user:S→U(每个会话Si到单一用户user(Si)的映射)・roles:S→2R(会话Si到角色集合)
roles:S→2Rrole(Si)Α{r|(user(Si),r)∈UA}的映射,并且Si具有
2 RBAC模型概述
NIST在2001年8月提出了一个RBAC建议标准(NISTRBAC2001参考模型,图1),它综合了RBAC模型的基本特征,
统一了相关术语,定义了主要模型构件,充分体现了最小权限、
职责分离和数据抽象的安全原则,对RBAC技术的发展有着重要的推动作用。NIST的RBAC参考模型包括核心RBAC(CoreRBAC)、层次RBAC(HierarchicalRBAC)、有约束的RBAC(包括静态职责分离[SSD]和动态职责分离[DSD])等模型构件。
权限Ur∈role(Si){p|(p,r)∈PRA}
在现实的组织或部门中,不同的角色拥有的权限集不同,但是不同角色的权限集之间可能会有交集。为了避免角色———权限分配的冗余,层次RBAC引入了角色继承的概念,通过角色
收稿日期:2004-08-25。高扬,硕士生,主研领域:网络信息安全。
© 1994-2009 China Academic Journal Electronic Publishing House. All rights reserved. http://www.cnki.net
66
计算机应用与软件2006年
的偏序关系体现了责任权力关系,大大简化了角色———权限的分配。
在有约束的RBAC中,SSD指在用户———角色分配时实施约束:一个用户仅可分配到一个互斥角色集中至多一个角色;一个用户拥有的角色数目受到限制。DSD指用户可以被授予多个角色,甚至是有冲突的角色,但是每个用户在一次会话中能够激活的角色数目受到限制。
3 XACML相关技术
由于XML语言在词法、语法上的易扩展性和各大平台开发商、工具开发商对XML的大力支持,使其成为XACML的基础语言。XACML提供了一种策略语言,这种策略语言允许管理员定义访问控制需求,以便获取所需的应用资源,同时还包括一种访问决策语言,用于描述对资源的运行时请求。
现元素。在HierarchicalRBAC中,角色的层次关系主要体现了权限的继承关系,在XACML策略中,通过角色A中权限 图2 XACML决策模型 XACML决策机制(图2)主要由策略执行点(PolicyEnforce2 mentPoint,PEP)、策略信息点(PolicyInformationPoint,PIP)、策 略管理点(PolicyAdministrationPoint,PAP)、上下文处理器(Contexthandler)等功能模块构成。当客户端向服务器提出访问请求时,策略执行点(PEP)将接收到的访问请求转发给上下文处理器。上下文处理器向策略信息点(PIP)提出属性请求,策略信息点(PIP)从主体、资源、环境功能模块获取相关属性,返回给上下文处理器。上下文处理器将这些属性和资源信息以及请求信息进行一定的处理,并向策略决定点(PDP)提出包含必要信息的决策请求。策略判决点根据策略管理点提供的可用策略依照既定的逻辑对该决策请求做出判决,并返回判决结果。策略决策点把响应上下文(包括授权决策)返回给上下文处理器。接着上下文处理器将结果返回给策略执行点,由策略执行点来实施决策结果,向任务服务提交任务请求或者拒绝用户请求。 4 基于XACML和RBAC的访问控制模型 4.1 用XACML实现RBAC的基本构件 表1 RBAC构件与XACML元素对应关系 RBACUsersRolesObjectsOperationsPermissions SubjectsSubjectAttributesResourcesActions Role XACML 授予医生该权限的代码如下: 在RBAC模型中,CoreRBAC要求每个用户能够拥有多个角色,每个角色也可分配给多个用户,每个角色拥有多种权限,每种权限可分配给多个角色。XACML策略可以满足上述所有的要求,表1给出了RBAC中的基本组件在XACML中的对应实 © 1994-2009 China Academic Journal Electronic Publishing House. All rights reserved. http://www.cnki.net 第8期 高扬等:基于XACML和RBAC的访问控制系统 67 ontheWeb,ACMTrans.InformationandSystemSec.,Vol.4,No.1,Feb.2002. [2]XinwenZhang,JaehongPark,RaviSandhu,Schema2basedXMLSecuri2 ty:RBACApproach,17thIFIP11.3WorkingConferenceonDataandApplicationSecurity,EstesPark,Colorado,U.S.A.August4~6,2003.[3]许长枫、何大可、刘爱江,“RBAC授权模型及其属性证书实现机制 4.2 基于XACML和RBAC的访问控制模型 该模型(图3)采用User2Pull架构,所有的RBAC构件(用 户、角色、权限等)都以XML格式定义,使用符合XML标准的SAML保证信息的安全传递,使用户认证信息、用户———角色分配请求和响应信息等都基于标准格式。 的应用研究”,《计算机应用研究》,2004年第3期. (上接第64页) 影响进度的原因及分析,人员分配和装备活动情况。5.统计查询:根据作战计划的多种条件进行查询、查看、管理。统计在不同时期不同作战计划的各种统计信息,以供指挥部门在统计数据的基础上进行决策。 文档管理模块包含所有的文档基本操作。上载、保存、删除。这其中包括对文档的简单权限管理,以确保文档由适当的人来管理。 系统管理模块:1.用户管理;2.系统数据库维护;3.系统配置管理;4.系统日志管理。 辅助功能模块:1.任务提醒:针对不同的用户,自动提示必须开始的任务和落后执行的任务;2.报表功能:提供各种形式的报表;3.Email功能:以邮件形式传递文件和某些作战信息。 图3 基于XACML的RBAC访问控制模型 3.6 数据库管理的设计与实现 在整体系统的应用中,每一个数据库操作请求都将导致一 次数据库访问,而数据库的连接不仅要开销通讯和内存资源,还要完成用户验证、安全性检验等任务。多个用户同时操作将导致系统的资源开销急剧增加。使用传统的模式,通常是在主程序(如Servlet、Beans)中建立数据库连接,然后进行SQL操作,取出数据,最后断开数据库连接。必须管理每一个连接,确保他们能被正确关闭,如果出现程序异常而导致某些连接未能关闭,将导致数据库系统中的内存泄露,最终我们将不得不重启数据库。 为了降低系统的开销,增强系统的稳定性、安全性,数据库连接管理模块使用数据库连接池技术。当程序中需要建立数据库连接时,只须从内存中取一个来用而不用新建。同样,使用完毕后,只需放回内存即可。而连接的建立、断开都有连接池自身来管理。同时,我们还可以通过设置连接池的参数来控制连接池中的连接数、每个连接的最大使用次数等等。通过使用连接池,将大大提高程序效率,同时,我们可以通过其自身的管理机制来监视数据库连接的数量、使用情况等。 模型包括身份认证和授权访问两个部分,身份认证是授权 访问的基础。在XACML决策机制中,角色———用户分配不在XACMLPDP的描述范围内,模型中用一个角色服务器来完成角色———用户分配,所以角色服务器同时承担了认证和分配角色的任务。该模型的身份标识与鉴别机制采用PKI/X.509公钥体系实现。为了实现RBAC机制采用ITU2TX.509V4格式,X.509V4中引入了公钥证书扩展项,这种证书扩展项可以保存任何类型的附加数据,从而使用户证书中既包含一般的用户属性和公钥信息,又包含了该用户拥有的角色信息。角色信息的维护由管理员通过控制台软件来完成,在进行用户———角色分配时需要实施相应的安全策略。当用户首次访问时,向系统发出访问请求,用户首先和角色服务器建立会话,进行身份认证和获取用户的角色,在进行私钥加密和认证服务器公钥解密操作成功后,包含认证信息和角色信息的证书被存储到客户端机器上。在证书的有效期内,用户无需再访问角色服务器获取角色信息。在获取证书后,用户可以和授权服务器建立会话,把证书信息发送给授权服务器进行验证,如果证书有效并且验证成功,则授权服务器将使用证书中的角色信息进行基于角色的访问控制。授权服务器将事务请求结果的资源信息和访问请求转发给策略服务器的策略执行点进行策略评估,并把结果返回给授权服务器。最后,允许还是拒绝用户的访问请求被返回到客户端。 4 结束语 将工作流技术应用于作战计划编制与管理,实现了计划编制工作的自动处理,加强了作战计划执行的协调和交流,提高了部队的信息化程度,为现代战争的作战部队和武器系统实施高效指挥与控制提供新的实现方法和途径。 5 结束语 通过将传统RBAC访问控制技术和XACML访问控制策略相结合,提出了一种基于XACML和RBAC的访问控制模型,在简化了授权管理的同时,又使模型具有安全性、可扩展性、互操作性等特点。 参考文献 [1]范玉顺,工作流管理技术基础,清华大学出版社,2001年4月.[2]刘铁铭、范玉顺,“基于工作流的企业过程的建模和仿真技术研 究”,《清华大学学报》,2000年. [3]赵大哲、牛军珏、孙艳春,“协作式工作流管理系统总体设计”,《软 参考文献 [1]JoonS.Park,R.Sandhu,andGail2JoonAhn,Role2BasedAccessControl 件学报》,2002年. [4]廖胜芳等,网络技术原理及应用,北京航空航天大学出版社, 1987年. © 1994-2009 China Academic Journal Electronic Publishing House. All rights reserved. http://www.cnki.net 因篇幅问题不能全部显示,请点此查看更多更全内容