基于rbac和xacml的xml文档访问控制系统

基于rbac和xacml的xml文档访问控制系统

ID:20448080

大小:1.94 MB

页数:70页

时间:2018-10-10

上传者:U-22107
基于rbac和xacml的xml文档访问控制系统_第1页
基于rbac和xacml的xml文档访问控制系统_第2页
基于rbac和xacml的xml文档访问控制系统_第3页
基于rbac和xacml的xml文档访问控制系统_第4页
基于rbac和xacml的xml文档访问控制系统_第5页
资源描述:

《基于rbac和xacml的xml文档访问控制系统》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

上海交通大学工程硕士基于RBAC和XACML的XML文档访问控制系统第一章绪论1.1论文选题背景随着电子商务、电子政务等网络应用的发展,特别是近两年以XML为基础的Web服务(WebServices)技术逐渐成熟并部署应用,这些Web服务技术已经越来越普及,而这些应用都基于同一个基础——XML(eXtensibleMarkupLanguage,可扩展标记语言)。XML是W3C(WorldWideWebConsortium,万维网联盟)于1998年2月正式发布的一种描述数据结构的语言,由于其良好的扩展性、自描述性以及内容与表现形式的分离,XML和基于XML的协议正在迅速地成为数据格式化和交换信息的通用方法,在网络上的运用日益广泛。但随之而来的安全问题也引起了人们的广泛注意,非法访问、非法篡改、假冒伪造、拒绝服务、抵赖等行为时有发生。同时,XML将引发一些新的危险因素,传统安全解决方案难以满足新的安全需要,安全问题已经成为XML技术大规模应用的障碍之一。目前的一些安全解决方案,都是基于安全大平台概念,安全措施基本差不多(主要是外防措施:防火墙、防入侵检测、防病毒、密码等),进入平台里面大家都一样,无级别之差。这样的安全平台,若被突破一点,就很可能就会突破全网,控制一点,就可能就会控制了整个系统。因此,安全解决方案应当基于系统安全基本原理―访问控制原理(AccessControl)。信息系统构成的物理、系统、网络、应用、管理五个层面的安全保护都应有访问控制。访问控制的对象就是具有很高经济、社会价值的信息资源和信息系统硬件与软件资源。信息系统安全保护等级的划分基于对信息资源的访问控制原理,访问控制原理也贯穿于分级保护、纵深防护、立体防护、综合防范之中。信息安全等级保护就是要采取有效的访问控制技术措施,加强系统内部的访问控制[1]。传统访问控制的方法是以一整份文档或一个资源为控制对象,没办法对文件或资源里的内容来做细粒度访问控制。就现存网络上的存取方式而言,不同使用者所允许的存取内容可能有所不同,传统的作法必须把同一份文档分成多份不同的子文档,再让各个使用者存取不同的子文档,以满足使用者存取机制。这导致子文档间的重复率提高、文件档案管理更为复杂,导致原有模式已不能有效满足使用者的需求。为能有效解决上述问题,许多专家学者提出利用XML特性来改善原有的存取控制模式[2]。由于XML文档本身结构化的树型结构使得对一个文档内部某一具体元素或属性的访问进行控制变得容易,XML突破了传统无法对部分文档内容做访问控制的信息安全限制,并展现它在信息安全上的潜力。为确保XML文档能安全的交换及存储,XML安全便成为一个非常重要的研究课题。国际-1- 上海交通大学工程硕士基于RBAC和XACML的XML文档访问控制系统上许多研究机构和标准化组织正在研究XML安全技术,并已形成W3C标准或标准草案,包括XML加密(XMLEncryption)[3]、XML数字签名(XMLDigitalSignature)[4]、XKMS密钥管理规范(XMLKeyManagementSpecification)[5]、XML访问控制标记语言(eXtensibleAccessControlMarkupLanguage,XACML)[6]及安全声明标记语言(SecurityAssertionMarkupLanguage,SAML)几个方面。同时,20世纪90年代开始,美国国家标准与技术研究所研究并设计出了新的访问控制技术——RBAC[7](Role-BasedAccessControl,基于角色的访问控制),由于其能够减少授权管理的复杂性,降低管理开销,而且还能为管理员提供一个控制安全复杂度的环境,近年来也成为访问控制的研究热点。本论文根据这些标准和标准草案及相关技术对基于RBAC和XACML的XML文档访问控制技术进行研究,就XML安全相关的标准和访问控制策略进行探讨,并利用XML相关技术和XML加密、XML签名及XACML技术,结合基于角色的访问控制策略(RBAC),提出了XML文档的访问控制模型,给出在原型系统中关键技术的实现方法和实例。1.1国内外相关技术发展现状和趋势XML主要关心的是数据和数据的传输、处理、显示、存储等,随着XML的应用越来越广泛,对于XML安全性的需求也日益强烈,如访问控制、加密、数字签字等,而且XML在电子商务、电子政务等重要领域有广泛的应用。因此对XML相关的安全领域的研究具有很重要的意义。为此W3C和IETF(TheInternetEngineeringTaskForce,互联网工程任务组)及其他几个团体共同开发了XML相关安全标准,具体包括以下几个主要的标准:XML加密(XMLEncryption):是XML文档加密的标准,XML加密不仅可以像SSL、TLS一样给文档的整体加密,还可以就文档的某一部分进行加密,让不包含机密信息的部分以明文的形式存在。这样,如果一个文档只是某些敏感部分需要进行保护,就可以单独进行加密。对于同一个文档中的不同部分用不同的密钥进行加密,你就可以把同一个XML文件发给不同的接受者,而接受者只能看见和他相关的部分。XML签名(XMLSignature):XML签名和XML加密紧密相关,和安全认证签名相似,XML也是用于确保XML文件内容没有被篡改的。运用它可保证信息完整性,签名确认和不可否认性。XML密钥管理规范(XKMS):是分发和注册公钥的规范,和XMLEncryption、XMLSignature联合使用,是用来帮助开发者将网络安全措施和电子商务、电子政务应用相结合的技术。它定义了分发和注册XML签名规范所使用的公共密钥的方法。XKMS包括了两部分:XML密钥注册服务规范(X-KRSS)和XML密钥信息服务规范(X-KISS)。X-KRSS是用于注册公共密钥的,而X-KISS是用在XML签名提供的密钥方面。这个规范到目前为止还是工作草案。-2- 上海交通大学工程硕士基于RBAC和XACML的XML文档访问控制系统XML访问控制标记语言(XACML):XACML是OASIS(OrganizationfortheAdvancementofStructuredInformationStandards,结构化信息标准促进组织)制定的一个用以整合各方面(如IBM和米兰大学)努力成果的一个标准。它和安全声明标记语言(SAML)共同使用,它提供了一种标准化XML文件接入控制决定的工具。XACML的目标在为XML文档提供一个精细的访问控制模型和访问控制规范语言。OASIS于2005年2月1日发布了最新版本2.0,提出了XACMLProfileforRoleBasedAccessControl(RBAC)的CommitteeDraft01[8]。目前这些标准和规范的一些解决方案现在已经可以应用了,比如PhaosTechnology的PhaosXML和IBM的alphaWorks。目前,国内外对XML访问控制的研究也有很多,XACML用于编写和实施基于XML的访问控制策略,但是这个规范没有说明如何去实现控制XML文档访问权限的模型。Dimiani等人讨论了基于DTD(DocumentTypeDefinition,文档类型定义)的面向XML文档的访问控制[9]。文献[10]中提出了一种细粒度的访问控制模型,这个模型定义了元素上的访问权限。文献[11]给出了用于实现RBAC模型的DTD文件。对于XML文档仓库的基于RBAC的访问控制方法在文献[12]中给出,文献[13]提出了一种使用XML在分布式环境中管理安全策略的方法,文献[14]讨论了XML的访问控制技术,并提出了一种临时授权模型为XML提供了精细的控制机制。文献[14]提出了一种多粒度访问控制系统,它是XACML规范基础上的扩展,并简略地描述了它的体系结构。以上的各种研究结果要么基于DTD技术,要么没有给出确定的实现技术,或者访问控制模型是基于自主访问控制策略的,并没有文章直接讨论基于RBAC和XACML的XML文档访问控制模型。在国内,有部分对XML文档的访问控制研究项目是国家和省级信息专项资助的研究项目[15]。综上所述,对基于RBAC和XACML的XML文档访问控制还都处于理论分析和研究阶段。当前国内外XML安全的发展趋势呈现如下现象:首先在国外,XML数据安全技术在企业和电子商务中开始普遍使用。XML技术和相关安全标准被广泛应用在金融、贸易、服务等活动中,制定了相应的法律确定电子签名的有效性;其次在国内,随着政府和企业信息化程度提高,公文逐渐电子化,电子商务、电子政务及WebService的发展,其安全也越来越重要。我国也制定了相应《电子签名法》。因此,更加安全、易于使用、结合分布式计算的需要已经成为XML数据安全系统的发展趋势。1.1主要研究内容及创新点在XML、XMLSecurity相关技术规范和基于角色的访问控制策略(RBAC)的基础上,本-3- 上海交通大学工程硕士基于RBAC和XACML的XML文档访问控制系统论文提出了“基于RBAC和XACML的XML文档访问控制模型”,将基于角色的访问控制技术和XMLSecurity技术结合起来,对如何使用XACML技术来实现对XML文档的多粒度访问控制进行了深入的研究,研究了原型系统中关键技术的实现方法并给出程序示例。本论文的创新点1、将基于角色的访问控制(RBAC)与XML文档的细粒度结合,提供了精细的用户访问控制授权机制。2、利用XACML的访问控制策略描述能力和临时授权模式,为XML文档的访问控制提供了非常灵活的权限管理方式。3、结合XML文档的加密、数字签名等安全技术,可在开放的网络环境中实现XML数据的安全传输和存储。4、提出了基于XACML的XML文档访问控制模型,给出了原型系统中关键技术的实现方法和例子。1.1本论文组织和结构本论文共计六章,每章具体内容如下:第一章绪论。介绍论文选题背景、国内外相关技术发展现状和趋势、主要研究工作及论文组织结构。第二章XML及XMLSecurity技术介绍。阐述了当前XML技术概念、结构及相关技术,介绍了信息安全的基本概念和对称密码、非对称密码。对PKI技术、XKMS作了简介。第三章访问控制与XACML技术分析。阐述了访问控制技术的基本概念、发展背景、体系架构等,分析了目前主要的访问控制策略DAC、MAC、RBAC实现技术和优缺点,详细讨论了基于角色的访问控制策略和RBAC96模型,重点分析了XACML的基本概念和体系结构。第四章基于RBAC和XACML的XML文档访问控制模型。根据XML安全相关规范,对XML文档进行安全需求分析、功能设计、提出了基于XACML的XML文档访问控制模型,对模型的主要功能模块进行了分析。第五章XML文档访问控制模型原型设计。分析了基于RBAC和XACML的XML文档访问控制模型原型应用,讨论了原型的关键部分实现技术,对示例提供代码和分析。第六章总结和展望。对本论文进行总结和未来发展进行展望。-4- 上海交通大学工程硕士基于RBAC和XACML的XML文档访问控制系统第二章XML与XMLSecurity技术介绍1.1XML及相关技术2.1.1XML概述XML(eXtensibleMarkupLanguage)与HTML一样,都是SGML(StandardGeneralizedMarkupLanguage,标准通用标记语言)。XML是Internet环境中跨平台的,依赖于内容的技术,是当前处理结构化文档信息的有力工具。扩展标记语言XML是一种简单的数据存储语言,使用一系列简单的标记描述数据,而这些标记可以用方便的方式建立,虽然XML占用的空间比二进制数据要占用更多的空间,但XML极其简单易于掌握和使用。Web的广泛应用使得人们对信息的查找、显示、处理和交换的需求日益增长。虽然HTML作为生成Web网页的标准,使用户能够访问文本和图片以及可以在文本和图片文档之间浏览,但它具有很大的局限性,主要体现在:不能解决所有解释数据的问题——像是影音文件或化学公式、音乐符号等其它型态的内容;效能问题——需要下载整份文件,才能开始对文件做搜寻的动作;扩充性、弹性、易读性均不佳。为了弥补HTML的缺点,W3C组织于1996年开始开发可扩展标记语言XML(eXtensibleMarkupLanguage)。1998年2月XML1.0版正式发布。随即,XML便成为近年来国外许多科研机构和软件产品开发的研发热点,受到了广泛的支持,各大软件厂商如IBM、Microsoft、Oracle、Sun等都积极支持并参与XML的研究和产品化工作,先后推出了支持XML的产品或者将改造原有的产品以支持XML,而W3C也一直致力于完善XML的整个理论体系。XML在国内的研究也已经开展。2002年我国正式颁布了国家标准GB/T18793-2002《信息技术-可扩展置标语言(XML)1.0》,等效采用W3CREC-XML-19980210,国内对XML的研究也是方兴未已。XML是标准通用标记语言(SGML)的一个子集,它针对Web应用,简化了一些SGML的不常用的内容。采用一组用来形成语义置标的规则集合,这些置标可把文档的各个部分按预先定义的语义结构组织起来并进行结构化的验证。使用XML,可以以容易而且一致的方式格式化和传送数据。用户可以根据文档的内容定义自己的标记语言,因此具有可扩展性和有效性。XML的可扩展、有结构、可验证的特点使XML已在国内外得到大量应用,它已经成为了当今信息交换的基础,是构成电子政务、电子商务的基石。-5- 上海交通大学工程硕士基于RBAC和XACML的XML文档访问控制系统1.1XML的结构XML是一种能够表示任意数据内容的元标记语言,即人们可以根据需要任意定义有自己的标记和属性的标记语言,并为该XML文档制定一个DTD或XMLSchema来对其结构和内容进行限制,符合相关联的DTD/XMLSchema限制的XML文档被称为“合法的”。虽然XML文档本身没有包含语义的信息,但是通过分析与其相关的DTD/XMLSchema可以得到该文档的模式(Schema)。从本质上看,XML提供了一种树形的结构,XML文档中的标签表示数据的含义而不是数据的显示形式。这种固定的文档结构使得XML的词法分析器可以以操作树的方法操作任何格式良好的XML文档。其主要优点如下:•良好可扩展性。XML允许各个不同的行业根据自己独特的需要制定自己的一套标记,同时,它并不要求所有浏览器都能处理这些个标记,同样也不要求一个标记语言能够适合各个行业各个领域的应用,这种具体问题具体分析的方法更有助于标记语言的发展。•内容与形式分离。XML中信息的显示方式已经从信息本身中抽取出来,放在了“样式表”中。这样做便于信息表现方式的修改,便于数据的搜索,也使得XML具有良好的自描述性,能够描述信息本身的含义甚至它们之间的关系。•遵循严格语法要求。XML不但要求标记配对、嵌套,而且还要求严格遵守DTD或XMLSchema的规定。这增加了文档的可读性和可维护性,也大大减轻了开发人员的负担。•便于异构系统之间信息传输。不同企业、不同部门中往往存在着许多不同的系统,XML可以用作各种不同系统之间的交流媒介,是一种非常理想的数据交换语言。XML文档举例以下图2-1中的XML文档示例表示了一个简单的XML文档,它包含了联系人和其个人资料:-6- 上海交通大学工程硕士基于RBAC和XACML的XML文档访问控制系统<联系人列表><联系人><姓名>刘德华001<公司>厦门信晖工贸有限公司 liu@xmxh.cn <电话>(0592)5085888 <地址><街道>湖滨北路275号 <城市>厦门 <省份>福建 361012 图2-1XML文档示例Fig.2-1ExampleforXMLDocumentNamespacesinXMLXML文档中很可能会定义许多名字相同而意义不同的元素或属性,尤其在把不同的XML文档合并时,更容易产生冲突。名称空间(namespaces)就是为了解决这个问题而提出的。它用URI(UniformResourceIdentifiers,通用资源标志符)加以区别,是在XML文件的元素和属性中出现的所有名称的集合。DTD(DocumentTypeDefinition)DTD定义可以在XML文档中出现的元素、这些元素出现的次序、它们可以如何相互嵌套以及XML文档结构的其它详细信息。XMLSchema使用XMLSchema,会有更多的能力来定义什么样的XML文档是有效的。它与DTD相比有几个优势:•XMLSchema使用XML语法。换句话说,XMLSchema是一个XML文档。这意味着可以像处理任何其它文档一样处理模式定义。•XMLSchema支持数据类型。尽管DTD确实支持数据类型,但很明显这些数据类型是从发布的角度开发的。XMLSchema支持DTD中的所有原始数据类型(诸如标识和标识引用之类的类型)。它们还支持整数、浮点数、日期、时间、字符串、URL和其它对数据处理和验证有用的数据类型。-7- 上海交通大学工程硕士基于RBAC和XACML的XML文档访问控制系统•XMLSchema是可扩展的。除了XMLSchema规范中定义的数据类型以外,还可以创建自己的数据类型,并且可以基于其它数据类型派生出新的数据类型。•XMLSchema有更强的表达能力。例如,可以用XMLSchema定义任何属性值不得超过2个字符,或定义任何元素的值必须与正则表达式[0-9]{5}(-[0-9]{4})?相匹配。而DTD无法做这些事。XSL/XSLT/XPath/Xlink/XPointerXSL(ExtensibleStylesheetLanguage,可扩展样式表语言)定义了一组元素(称为格式化对象),它们描述应该如何格式化数据。XSLT(ExtensibleStylesheetLanguageforTransformation)用于转换的可扩展样式表语言是一个描述如何将XML文档转换成别的东西的XML词汇表。XPath(XMLPathLanguage,XML路径语言)是描述XML文档中位置的语法。使用XSLT样式表中的XPath来描述希望转换XML文档的哪个部分。XPath也用在其它XML标准中,这就是为什么它是独立于XSLT标准的原因。XLink(XMLLinkingLanguage,XML链接语言)定义将不同资源链接在一起的各种方法。XPointer(XMLPointerLanguage,XML指针语言)使用XPath作为引用其它资源的方法。它还包括对XPath的一些扩展。1.1XML的解析DOM/SAX/JAXP/JDOMDOM(DocumentObjectModel,文档对象模型)为XML文档的已解析版本定义了一组接口。解析器读入整个文档,然后构建一个驻留内存的树结构,然后代码就可以使用DOM接口来操作这个树结构。DOM提供了一组丰富的功能,可以用这些功能来解释和操作XML文档,但使用它们是有代价的:•DOM构建整个文档驻留内存的树。如果文档很大,就会要求有极大的内存。•DOM创建表示原始文档中每个东西的对象,包括元素、文本、属性和空格。如果只需关注原始文档的一小部分,那么创建那些永远不被使用的对象是极其浪费的。•DOM解析器必须在代码取得控制权之前读取整个文档。对于非常大的文档,这会引起显著的延迟。为了解决DOM问题,创建了SAX(SimpleAPIforXML)接口,SAX的几个特征解决了DOM的问题:-8- 上海交通大学工程硕士基于RBAC和XACML的XML文档访问控制系统•SAX解析器向代码发送事件。当解析器发现元素开始、元素结束、文本、文档的开始或结束等时,它会告诉代码。可以决定什么事件重要,而且可以决定要创建什么类型的数据结构以保存来自这些事件的数据。如果没有显式地保存来自某个事件的数据,它就被丢弃。•SAX解析器根本不创建任何对象,它只是将事件传递给应用程序。如果希望基于那些事件创建对象,这将由程序代码来完成。•SAX解析器在解析开始的时候就开始发送事件。当解析器发现文档开始、元素开始和文本等时,代码会收到一个事件。应用程序可以立即开始生成结果;不必一直等到整个文档被解析完毕。JDOM是基于Java技术的开放源码项目,它试图遵循80/20规则:用DOM和SAX20%的功能来满足80%的用户需求。JDOM使用DOM解析器,因此它是作为一组相对较小的Java类被实现的。JDOM已经被接受为JSR-102。尽管DOM、SAX和JDOM为大多数常见任务提供了标准接口,但仍有些事情是它们不能解决的。例如,在Java程序中创建DOMParser对象的过程因DOM解析器的不同而不同。为了解决这个问题,Sun发布了JAXP(JavaAPIforXMLParsing)。该API为使用DOM、SAX和XSLT处理XML文档提供了公共接口。JAXP提供的诸如DocumentBuilderFactory和DocumentBuilder之类的接口为不同的解析器提供了一个标准接口。还有一些方法可以允许控制底层的解析器是否可以识别名称空间,以及是否使用DTD或XMLSchema来验证XML文档。1.1安全基本概念和技术2.1.1基本安全服务网络作为一个开放的平台,由于资源的共享性和互操作性,它也面临着各种各样的安全威胁,如信息窃取、恶意欺骗、伪装、非法修改以及各种扰乱破坏等。针对网络的信息安全问题,人们提出了一些安全措施,比如安全套接字层(SSL)、IP层安全标准(IPsec)等,在一定程度上缓解了网络信息安全的困境,但只满足信息安全的部分要求。针对以上可能存在的各种安全问题,如果不能完整有效地解决,必然会影响整个网络和应用的发展。为此,国际标准化组织ISO在网络安全体系的设计标准(IOS7498-2)中提出了层次型的安全体系结构,并定义了如下的五个基本安全服务功能:1.身份认证服务,确认发送者和接收者的真实身份;-9- 上海交通大学工程硕士基于RBAC和XACML的XML文档访问控制系统2.访问控制服务,确保授予访问数据、系统或应用程序的权力,可以限制对关键资源的访问;3.数据保密服务,确保数据不能被非授权的第三方访问;4.数据完整性服务,确保数据在传输过程中不能被有意或无意的修改;5.不可否认服务,通过接收到的消息和第三方权威机构,确保发送方不能否认其发送的消息。因此必须从技术上保证在业务过程中能够提供以上五个基本的安全性服务,而作为五个安全服务之一的访问控制服务,在网络安全体系结构中具有不可替代的作用。它可以限制对关键资源的访问,防止非法用户的侵入或合法用户的不慎操作所造成的破坏。2.1.1对称加密和非对称加密对称加密对称密钥密码术早已被人们使用了数千年,它包括任何加密形式——从简单的替换密码到较复杂的构造方式,其中同一个密钥既用于加密也用于解密所涉及的文本。所谓对称性,即指加密和解密使用完全相同的密钥。加密和解密有两个相关的函数,如图2-2对称加密示意图所示:图2-2对称加密示意图Fig.2-2SymmetryencryptEk(M)=C,其中M是明文,C是密文,k是密钥Dk(C)=M,其中C、M和k的意义同上它们具有基本的属性:Dk(Ek(M))=M对称加密可以分为块加密和流加密:块加密将定长的明文块转换成等长的密文,这一过程在密钥的控制之下,使用逆向变换和同一密钥来实现解密,块加密算法包括:AES、3DES、IDEA、-10- 上海交通大学工程硕士基于RBAC和XACML的XML文档访问控制系统SAFER、Blowfish和Skipjack等;流加密作用于由若干位组成的一些小型组,通常使用称为密钥流的一个位序列作为密钥对它们逐位应用“异或”运算,流加密算法包括:RC4、SEAL等。对称加密术给定一个设计良好的算法,则过程的安全就在于密钥的保密。因此,对称密码术的主要挑战在于密钥的分布形式,即通讯双方如何共享同一密钥。非对称加密(公钥加密术)非对称密码体制提供的安全性取决于难以解决的数学问题,例如,将大整数因式分解成质数。非对称密码以如下方式使用不同的密钥:Ek1(M)=C,其中k1是加密密钥Dk2(C)=M,其中k2是解密密钥非对称密码具有以下的基本属性:Dk1(Ek2(M))=M在非对称密码中,通讯双方不必共享同一密钥。然而,密钥k1和k2在数学上是相关的,以便使加密和解密处理相关联。公钥加密系统使用这样两个密钥,一个是公钥,用来加密文本,另一个是安全持有的私钥,只能用此私钥来解密,也可以使用私钥加密某些信息,然后用公钥来解密,而公钥是大家都可以知道的,这样拿此公钥能够解密的人就知道此消息是来自持有私钥的人,从而达到了认证作用。公钥加密算法包括:RSA、Diffie-Hellman、ElGamal等。1.1单向散列函数单向散列函数H(M),对一则任意长度的消息进行处理,并返回一个具有固定长度m的散列值h:h=H(M),其中h的长度为m;这一算法的安全源于其单向性,而不是其内部工作方式的保密性。H(M)具有以下属性:给定M,很容易计算出h给定h,很难计算出满足H(M)=h的M给定M,很难找到一则消息M',使得H(M)=H(M')散列算法是数字签名的基本部分,SHA(SecureHashAlgorithm,安全散列法算法),由美国国家标准和技术局(NationalInstituteofStandardsandTechnology,NIST)与美国国家安全局(NationalSecurityAgency,NSA)联合设计,它产生一个160位散列,用于数字签名算法(DigitalSignatureAlgorithm,DSA)。SHA-1,在某些文献中简称为SHA,是1994年发表的SHA的修-11- 上海交通大学工程硕士基于RBAC和XACML的XML文档访问控制系统订版。SHA和SHA-1都是安全散列标准(SecureHashStardard,SHS)的一部分。对于任意长度的消息,散列算法都将生成一个代表该消息的固定长度的散列。简单的理解为取一串输入码(称为预映射或信息),并把它们转化为长度较短、位数固定的输出序列即散列值(也称为信息摘要或信息认证代码)的过程。散列函数值可以说是对明文的一种“指纹”或是“摘要”所以对散列值的数字签名就可以视为对此明文的数字签名。同时,消息认证代码(MessageAuthenticationCode,MAC)是一种使用密钥的单向函数,可以用它们在系统上或用户之间认证文件或消息。HMAC(用于消息认证的密钥散列法)就是这种函数的一个例子。1.1数字签名与数据完整性“数字签名”用来保证信息传输过程中信息的完整和提供信息发送者的身份认证和不可抵赖性。数字签名技术的实现基础是公开密钥加密技术,是用某人的私钥加密的消息摘要用于确认消息的来源和内容。公钥算法的执行速度一般比较慢,把单向散列函数和公钥算法结合起来,所以在数字签名时,首先用单向散列函数(消息摘要函数)将消息转变为消息摘要,然后对这个摘要签名。使用数字签名并不保证机密性,因为消息是作为明文发送的。为了进一步保证机密性,而不是发送明文消息,可以用发送人的专用密钥对它进行加密,此过程如图2-3加密的数字签名所示。图2-3加密的数字签名[16]Fig.2-3Digitalsignatureencrypted-12- 上海交通大学工程硕士基于RBAC和XACML的XML文档访问控制系统1.1PKI概念和构成2.1.1基本概念公钥基础设施(PublicKeyInfrastructure,PKI)是解决信任和加密问题的基本解决方案。基于网络的增值应用需要一个真正可靠、稳定、高性能、安全、互操作性强、完全支持交叉认证的PKI系统。PKI的本质就是实现了大规模网络中的公钥分发问题,建立了大规模网络中的信任基础设施。PKI是创建、管理、存储、分发和撤消基于公钥加密的公钥证书所需要的一套硬件、软件、策略和过程的集合。PKI为开放的Internet和Intranet环境提供了四个基本的安全服务:身份认证、机密性、数据完整性和不可抵赖性。另外,PKI还提供了其他的安全服务,主要包括以下两个:•授权,确保发送者和接收者被授予访问数据、系统或应用程序的权力;•可用性,确保合法用户能正确访问信息和资源。2.1.2PKI组件PKI作为一组在分布式计算系统中利用公钥技术和X.509证书所提供的安全服务,企业或组织可利用相关产品建立安全域,并在其中发布密钥和证书。在安全域内,PKI管理加密密钥和证书的发布,并提供诸如密钥管理(包括密钥更新,密钥恢复和密钥委托等)、证书管理(包括证书产生和撤销等)和策略管理等。PKI产品允许一个组织通过证书级别或直接交叉认证等方式来同其他安全域建立信任关系,这些服务和信任关系不能局限于独立的网络之内,而应建立在网络之间或Internet之上,为电子商务和网络通信提供安全保障,所以具有互操作性的结构化和标准化技术成为PKI的核心。一个典型的PKI系统如下图2-4典型PKI系统组成所示,其中包括PKI策略、软硬件系统、证书机构CA、注册机构RA、证书发布系统和PKI应用等。-13- 上海交通大学工程硕士基于RBAC和XACML的XML文档访问控制系统图2-4典型PKI系统组成Fig.2-4TypicalPKIsystemcomposition•PKI安全策略建立和定义了一个组织信息安全方面的指导方针,同时也定义了密码系统使用的处理方法和原则。它包括一个组织怎样处理密钥和有价值的信息,根据风险的级别定义安全控制的级别。•证书机构CA是PKI的信任基础,它管理公钥的整个生命周期,其作用包括:发放证书、规定证书的有效期和通过发布证书废除列表(CRL)确保必要时可以废除证书。•注册机构RA提供用户和CA之间的一个接口,它获取并认证用户的身份,向CA提出证书请求。它主要完成收集用户信息和确认用户身份的功能。•证书发布系统负责证书的发放,如可以通过用户自己,或是通过目录服务。目录服务器可以是一个组织中现存的,也可以是PKI方案中提供的。数字证书:数字证书是一种数字标识,可以说是Internet上的安全护照或身份证明。数字证书提供的是网络上的身份证明。数字证书是一个经证书授权中心数字签名的包含公开密钥拥有者信息和公开密钥的文件。最简单的证书包含一个公开密钥、名称以及证书授权中心的数字签名。一般情况下证书中还包括密钥的有效时间,发证机关(证书授权中心)的名称,该证书的序列号等信息,证书的格式遵循ITUTX.509国际标准。-14- 上海交通大学工程硕士基于RBAC和XACML的XML文档访问控制系统1.1XML安全2.1.1XML安全标准概述XML的优势来自于它的语义和结构的灵活性和可扩展性。但是正是这些优点引入了一些重要的安全问题。随着越来越多的公司通过网络用XML来传输和处理结构化的数据,XML文档的安全问题也越来越重要。目前,加密整个XML文档、测试其完整性和确认其发送方的可靠性是一个简单的过程。但是,越来越有必要对文档的某些部分也使用这些功能,以便以任意顺序加密和签名认证,以及涉及不同用户或发起方。为了促进上述问题得解决,推动XML应用和安全服务的发展,W3C、IETF和OASIS提出了一系列新的XML安全服务标准,来为以XML作为数据交换载体的应用提供安全性保障。一些已经发布的标准是针对XML的安全问题的,这些标准还在进一步地发展以便人们能够对XML内容进行颗粒化管理和控制。在与XML相关的安全性领域方面,规范的最重要部分是XML加密(XMLEncryption)、XML数字签名(XMLSignature)、XML密钥管理规范(XKMS)、XML访问控制标记语言(XACML)及安全声明标记语言(SAML)等。在目前的XML安全相关规范中规定,消息摘要使用SHA-l算法,消息鉴别编码使用HMAC算法,数字签名使用DSA和PKCS1算法。在安全模式上,可以使用基于对称密钥和基于公开密钥两种体制。XML签名和加密密切相关,在概念上和安全证书签名类似的XML签名是用来确保XML文档内的内容没有发生改变。为了帮助弥补文件系统和剖析器的排版变化,XML签名非常依赖“规范化”的概念,这让签名能够在XML文档所碰到的各种环境中起作用。在和XML加密联合使用的时候,XML签名能够保证所接收的数据就是所发送的数据。2.1.2XML加密除了在传送XML文件时采用标准方式(加密整个文档)进行加密外,W3C和IETF制定了XML加密(XMLEncryption)标准来对一个XML文档中的数据和部分内容进行加密。这样,如果一个文档只是某些敏感部分需要进行保护,可以单独进行加密。对于同一个文档中的不同部分用不同的密钥进行加密,就可以把同一个XML文件发给不同的接受者,而接受者只能看见和他相关的部分。一旦采用这个这个方法对一个XML文件进行加密,在加密部分的首尾就会出现两个EncryptedData元素标记,表示该文件是以W3C公布的标准进行加密的。真实的标识名被“CipherData”和“CipherValue”所替代;数据本身显示为一连串的密码。这个标准使XML数-15- 上海交通大学工程硕士基于RBAC和XACML的XML文档访问控制系统据提供者可以根据用户的不同对内容进行颗粒化的控制。而且,由于数据本身而不是整个文件是加密的,整个文件还是可以被XML解析器识别和处理。如图2-5xenc:EncryptedData模式图所示,XML加密语法的核心元素是EncryptedData元素,该元素与EncryptedKey元素一起用来将加密密钥从发起方传送到已知的接收方,EncryptedData是从EncryptedType抽象类型派生的,包含除加密密钥之外所以经过加密的内容。要加密的数据可以是任意数据、XML文档、XML元素或XML元素内容;加密数据的结果是一个包含或引用密码数据的XML加密元素。当加密元素或元素内容时,EncryptedData元素替换XML文档加密版本中的该元素或内容。当加密的是任意数据时,EncryptedData元素可能成为新XML文档的根,或者可能成为一个子代元素。当加密整个XML文档时,EncryptedData元素可能成为新文档的根。CipherData可以封装,也可以引用原始加密数据。在第一种情况下,CipherValue元素的内容显示采用Base-64编码的原始数据,而在第二种情况,使用CipherReference元素,这包括了一个指向加密数据位置的URI。图2-5xenc:EncryptedData模式图Fig.2-5Modelofxenc:EncryptedData如图2-6xenc:EncryptedKey模式图所示,当对加密密钥进行加密时,得到的结果就放置在EncryptedKey元素中。-16- 上海交通大学工程硕士基于RBAC和XACML的XML文档访问控制系统图2-6xenc:EncryptedKey模式图Fig.2-6Modelofxenc:EncryptedKeyXML加密示例下面的示例说明了加密XML文档的不同方式:加密的颗粒度如何根据要求的不同而不同,以及可能出现什么结果。图2-7XML加密-信用卡中的XML数据显示了带有信用卡和其它个人信息的未加密XML文档。信用卡显示DehuaLiu的银行帐户和信用卡信息,包括10000美元限额、卡号和有效期的信息 DehuaLiu 5200830002665588 AgriculturalBankofChina 06/09图2-7XML加密-信用卡Fig.2-7XMLencryption-creditcard-17- 上海交通大学工程硕士基于RBAC和XACML的XML文档访问控制系统在某些情况下(例如,隐藏支付机制的信息),可能希望加密除客户名称以外的所有信息,图2-8XML加密-子元素和内容加密的XML数据演示了如何这样做。除姓名之外子元素和内容全部被加密的XML加密文档。 DehuaLiu A22B44C55 图2-8XML加密-子元素和内容加密Fig.2-8XMLencryption-subelementandcontentencrypt DehuaLiu A22B44C55 AgriculturalBankofChina 06/09 图2-9XML加密-部分元素加密Fig.2-9XMLencryption-partelementencrypt但在其它情况下,可能只需要隐藏一些敏感内容-来自销售商或其它第三方,图2-9中显示了只隐藏信用卡号的XML加密文档。-18- 上海交通大学工程硕士基于RBAC和XACML的XML文档访问控制系统 A22B44C55 图2-10XML加密-全部内容加密Fig.2-10XMLencryption-wholecontentencrypt可能还有必要加密文档中的所有信息,图2-10XML加密-全部内容加密显示隐藏了全部内容的XML加密文档。1.1XML签名XML签名和XML加密紧密相关,XML是用于确保XML文件内容没有被篡改的,可实现数据的完整性、身份验证服务。为了适应各种文件系统和解析器在格式上的不同,XML签名采用了“规范化(Canonicalization)”。这就使得XML签名可以适应XML文件可能遇到的各种环境。当对内容进行签名时,“规范化”使用文件里的数据和标识产生一个独一无二的签名,忽略了一些诸如段落结束或者制表符之类的次要信息。收到一个文件后,客户系统就开始进行“XML签名解密转换”,它通过辨认信息是在标识前还是标识后来区分内容和签名:内容在标识后,而签名在标识前。通过比较运算结果和文件中的签名,可以确认数据的完整性。XML签名和XML加密结合在一起,可以确保数据发送和接收的一致性。规范的XML对应用了密码散列算法的消息进行最轻微的更改也会产生不同的值。这为消息完整性方面提供了信任,并适于通常用法,但是也引入了进一步的复杂性-两个XML文档虽然在逻辑上相等,但可能在确切文本比较中不同。像行定界符、空标记、空格、在属性中使用十六进制而不是名称以及在特定情况下存在注释或注释变体这样的事情都可以成为文档的逻辑结构不受影响而实际彼此不同的实例。规范的XML规范描述了一种生成文档的物理表示(也成为范式)的方法,该范式解释允许的变体,以便如果两个文档具有同一范式,则认为两个文档在给定应用程序上下文中是逻辑相等的。XML签名(XMLSignature)-19- 上海交通大学工程硕士基于RBAC和XACML的XML文档访问控制系统如图2-11ds:Signature模式图所以示,我们将所有签名信息封装在一个单独的元素之中,可以以一种灵活的方式将此元素嵌入在XML文档中恰当的位置。实际签名的信息是位于SignedInfo元素之间,在签名的部分中包含用于计算SignatureValue元素的算法的引用,而那个元素本身位于签名部分之外。SignatureMethod引用行上的是将规范的SignedInfo转换成SignatureValue所用的算法。它是密钥相关的算法和摘要算法(在这里是DSA和SHA-1)的组合,可能还具有象填充这样的操作。KeyInfo元素在这里(该元素是可选的)指出用来验证签名的密钥。图2-11ds:Signature模式图Fig.2-11Modelofds:Signature如图2-12ds:KeyInfo模式图所示,是签名的核心元素,它的子元素主要有,主要定义签名的对象、签名算法和摘要生成算法。元素给出的是规范化方法描述,在做签名运算之前,有必要对被签名元素做规范化处理,在比特流的层次上就统一它们,以使他们在物理上相同。元素确定数字签名所采用的算法,一般采用摘要算法和加密算法的相结合的方法,并将计算结果存储在元素中,即数字签名值。元素至少包括一个元素,主要描述签名对象的信息,包括位置(由URI确定),摘要算法,摘要值等。可以有多个,从而可以对多个对象进行签名。元素也是可选的,主要描述密钥信息,W3C预先定义了DSA,RSA等多种密钥算法。元素主要记录了签名的一些附加信息,如签名时间等。另外,当对文档的不同部分进行签名的时候,或要求使用相同或者不相同的密钥时,可用子元素对不同的要求进行说明。-20- 上海交通大学工程硕士基于RBAC和XACML的XML文档访问控制系统图2-12ds:KeyInfo模式图Fig.2-12Modelofds:KeyInfoXML签名示例可以将XML签名应用到任意数据内容。那些应用到相同XML文档中数据的签名称为封装或被封装的签名,而那些数据在签名元素外部的签名称为分离签名。图2-13简单分离签名取自签名候选推荐文档,它是一个简单分离签名的实例。-21- 上海交通大学工程硕士基于RBAC和XACML的XML文档访问控制系统kh2wj5dueie7scuis8njha7u8nk=WC0DFFfBLtTfds=......

......

......
图2-13简单分离签名Fig.2-13Simpleseparatesignature1.1XML密钥管理规范XKMS是W3C制定的一项标准。它定义了分发和注册XML签名规范所使用的公共密钥的方法。XKMS包括了两部分:XML密钥注册服务规范(X-KRSS)和XML密钥信息服务规范(X-KISS)。X-KRSS是用于注册公共密钥的,而X-KISS是用在XML签名提供的密钥方面的。一直以来,公钥基础设施(PKI)对加强网络业务的安全性非常重要,但从技术角度而言,PKI的部署过于麻烦,而且成本高昂,因此难以得到广泛的应用。对此,W3C提出了一种改善后的新标准,即XML密钥管理规范(XKMS)。XKMS不但继承了PKI的全部精华,而且丝毫没有减少安全性和可扩展性,同时大大降低了PKI的成本。PKI使用了一套公钥和私钥系统,避开了这些问题:私钥仅被某一个人持有;而公钥则可公-22- 上海交通大学工程硕士基于RBAC和XACML的XML文档访问控制系统开发送。此外,PKI具有层次钥匙体系和对通过层次的路径进行实时分析的功能。这些都使得无须事先安排的个人安全通信成为可能。但PKI的部署也是非常繁琐的:它要求每个用户和应用都要验证他们与之通信的每个用户的身份,以确保对方的身份真实有效,而开发人员是很难开发出相应的系统来满足这些要求的。实际上,PKI将所有的信任决定统统抛给了用户,而这就要求复杂的程序库和配置信息。XKMS的出现,使得某个客户端和应用服务器可以共享XKMS服务来彼此巩固,并处理他们之间的请求。XKMS将许多PKI协议和数据格式,如证书管理协议和简单证书注册协议等,替换成一个基于XML的协议。XKMS也可被用来实施客户对客户、应用服务器对客户、服务器对服务器等环境。在XKMS环境中,信任的决定是由一个公共的服务器完成的。XKMS用户仅需的配置工作就是服务器的URL地址和服务器将用来签名答复的证书,而使用不同的URL地址,可支持不同的信任模型。XKMS协议提供了三种基本操作:定位查找,即还原某一个加密的钥匙,以和另一个人进行安全通信;确认,即确保某钥匙处于激活状态而没有被废除;登记,用来发布或重新发布,或废除钥匙。由于XKMS是建立在XML的数字签名和加密标准基础之上,因此有许多相似之处。例如,定位查找和确认的操作均要使用一个元素,这意味着某个消息接收者可以通过拾取元素来检查发送者的身份,查看服务器的响应,而服务器则仅以私钥做出响应。1.1XML访问控制标记语言在第三章中我们将会详细讨论XML访问控制标记语言(XACML)。1.2安全声明标记语言安全声明标记语言(SAML)也是OASIS制定的标准,和XACML相对,它处理证明/授权的请求/响应的交换。一个SAML请求以HTTP方式通过SOAP被发送到一个有相应处理工具的系统去。一个SAML请求包括诸如用户姓名、密码以及其他一些关于提出请求的人的信息。这些信息被发送到一个处理应用程序那里来决定是否允许使用一项XML资源。SAML采用了一项由OASIS提出的“声明计划”。有三种声明:认证,授权决定和属性。这三种声明在一个应用中被用在不同的场合来决定谁是请求者,请求的内容,是否有权提出这项请求。-23- 上海交通大学工程硕士基于RBAC和XACML的XML文档访问控制系统第三章访问控制与XACML技术分析1.1访问控制技术2.1.1访问控制策略概述访问控制通常被称为权利管理(RightManagement)或权限管理(EntitlementManagement),用于决定那些访问者和执行程序拥有查看权限,这些访问者和执行程序可以执行的操作以及他们可以访问的设备或文件类型。访问控制限制了访问者和执行程序可以进行的操作,保证访问者只能进行授权的操作。传统的访问控制有两种模型:基于授权规则的、自主管理的自主访问控制(DiscretionaryAccessControl,DAC)和基于安全级的、集中管理的强制访问控制(MandatoryAccessControl,MAC),另外一个近年来得到广泛关注的模型就是基于授权规则的、集中管理基于角色的访问控制(RoleBasedAccessControl,RBAC)。在美国计算机安全标准《可信计算机系统评估标准》(TCSEC)中,一个主要内容就是要阻止未被授权而浏览机密信息。TCSEC规定了两个访问控制类型:自主访问控制(DAC)和强制访问控制(MAC)。DAC是指主体可以自主地将访问权限或者访问权限的某个子集授予其他主体。DAC把访问决定权留给了产生信息的信息主,主要是某些用户(特定客体的用户或具有指定特权的用户)规定别的用户能以怎样的方式访问客体。但是由于它的控制是自主的,所以也可能会因为权限的传递而泄漏信息。另外,如果合法用户可以任意运行一个程序来修改他拥有的文件存取控制信息,而操作系统无法区分这种修改是用户自己的操作,还是恶意程序的非法操作,解决办法就是通过强加一些不可逾越的访问限制。因此,又提出了一种更强有力的访问控制手段,即强制访问控制(MAC),MAC则要求所有用户遵守系统管理员建立的规则。但是它主要用于多级安全军事应用。现今人们在MAC基础上提出基于角色的访问控制(RBAC),它是一种强制访问控制形式,但它不是基于多级安全需求。其策略是根据用户在组织内部的角色制定的。用户不能任意的将访问权限传递给其他用户。这是RBAC和DAC之间最基本的不同。基于角色访问控制(RBAC)模型是目前国际上流行的先进的安全访问控制方法。它通过分配和取消角色来完成用户权限的授予和取消,并且提供角色分配规则。安全管理人员根据需要定义各种角色,并设置合适的访问权限,而用户根据其责任和资历再被指派为不同的角色。这样,整个访问控制过程就分成两个部分,即访问权限与角色相关联,角色再与用户关联,从而实现了-24- 上海交通大学工程硕士基于RBAC和XACML的XML文档访问控制系统用户与访问权限的逻辑分离。由于实现了用户与访问权限的逻辑分离,基于角色的策略极大的方便了权限管理。例如,如果一个用户的职位发生变化,只要将用户当前的角色去掉,加入代表新职务或新任务的角色即可。研究表明,角色/权限之间的变化比角色/用户关系之间的变化相对要慢得多,并且给用户分配角色不需要很多技术,可以由行政管理人员来执行,而给角色配置权限的工作比较复杂,需要一定的技术,可以由专门的技术人员来承担,但是不给他们给用户分配角色的权限,这与现实中的情况正好一致。基于角色访问控制可以很好的描述角色层次关系,实现最小特权原则和职责分离原则。1.1自主访问控制(DAC)TCSEC中定义的自主访问控制(DAC)是基于访问者身份或所属工作组来进行访问控制的一种模型。自主访问,是指具有某种访问权限的访问者可以向其他访问者传递这种访问权限,DAC访问控制是完全基于访问者和对象的身份。自主访问控制(DAC)可采用以下的概念模型来说明:问题:任何存在主动实体请求某种受控资源的计算环境中,如何描述主动计算实体(Subject,主体)对被动资源(Resource,保护对象)可允许的访问类型(Authorization,授权)。DAC概念模型:如图3-1自主访问控制(DAC)授权模型所示,类(Subject)描述一个主动实体,类(ProtectionObject)描述一个被请求的资源,一个授权规则由这两个类的关联来定义。一个关联类Right,包含访问许可的类型(读,写等),对授权持有者来说必须为true,还包含一个复制标志copy_flag可以为true或false,表明这个权限是否可以转让。另外还有一个操作(check_rights)用来让类(Subject)或对象检查请求的合法性。图3-1自主访问控制(DAC)授权模型Fig.3-1AuthorizedmodelofDAC-25- 上海交通大学工程硕士基于RBAC和XACML的XML文档访问控制系统自主访问控制(DAC)的优点是具有相当的灵活性、思想简单、容易实现。创建客体的主体具有对该客体所有的访问权限,并且可以将权限授予其他主体或从其他主体收回他所授予的权限,这比较符合人们对权限的基本认识。规则中的复制标志控制权限的转让。有些系统不允许转让权限,那么这儿的复制标志将总是为false。图3-2自主访问控制(DAC)验证请求,表示了一个请求的验证。ActiveSubject是一个用户(Actor),例如一个请求某种资源的执行进程,这个请求被一个监视器(ReferenceMonitor)解释。图3-2自主访问控制验证请求Fig.3-2ValidatedrequestofDAC自主访问控制(DAC)允许使用者在没有系统管理员干涉的情况下对他们控制的对象进行权限修改,对访问权限的转移很容易产生漏洞,使得客体的所有者最终都不能控制该客体的访问权限,并且非法主体可以间接的获得对某个客体的访问权限,这就使得DAC容易受到攻击。比如信息主A将访问权限赋予B,虽然他并没有给B授权(grant)权限,但是B可以建立新的关系,复制他可以访问的信息,如果B又赋予C访问复制信息的权利,那么C就在非A授权的情况下访问了A的信息。目前,自主访问控制(DAC)是多数商业产品访问控制系统的基础,例如Unix、Windows、Oracle和很多其他产品。-26- 上海交通大学工程硕士基于RBAC和XACML的XML文档访问控制系统1.1强制访问控制强制访问控制(MAC)对于不同类型的信息采取不同层次的安全策略。针对不同类型的数据来进行访问授权。MAC是基于被访问对象的信息敏感程度以及这些敏感信息可以赋予该访问主体的访问权限来进行权限控制的。MAC给每个访问主体和被访问对象分配敏感标签,分别称作安全审查(SecurityClearance)和安全分类(SecurityClassification)。安全审查制定了与访问主体有关的信任度,而每个安全分类则制定了访问主体或程序的信任度,比如TopSecret(TS)、Secret(S)、Confidential(C)和Unclassified(U)其中信任度TS>S>C>U。因为MAC模型是基于BLP[17]模型建立的,所以当MAC限定了哪些主体可以访问网络中哪些对象后,必须遵循BLP模型的性质:•下读规则。即访问者只能对比安全访问授权敏感程度低的数据进行相关访问和操作,而不允许信任度低的用户访问比安全访问授予权限高的数据。•上写规则。即安全访问权限仅限于被写入对象的安全级别,被访问对象不允许降级,比如Secret用户不允许向Confidential级别的资源写入数据。强制访问控制(MAC)可采用以下的概念模型来说明:问题:在某些环境中,数据和文档具有不同敏感级别,例如秘密级、机密级。用户可以凭借许可证访问文档,如何在数据和文档安全分级的环境中决定访问方式。MAC概念模型:在图3-3中表示了这个模型的基本结构,用户和数据被赋予分类或许可证。分类包括级别(高度机密、机密等)和分区(工程部、市场部等)。根据Bell-LaPadula模型定义的规则实现用户对数据的机密性访问,通过Biba模型[18]定义的规则来实现完整性。MAC的优点是管理集中,根据事先定义好的安全级别实现严格的权限管理,因此适合于对安全性要求较高的应用环境,比如美国军方就一直使用这种访问控制模型。MAC的缺点是灵活性较差,实现工作量大,并且管理不便,不适用于主体或客体经常变动的应用环境。-27- 上海交通大学工程硕士基于RBAC和XACML的XML文档访问控制系统图3-3基于MAC的多级安全模式的类模型Fig.3-3GenusmodelofmultilevelsecuritymodelbasedonMAC强制访问控制与自主访问控制的不同,在于强制访问控制基于对访问主体安全级别和访问客体安全级别比较,主体对客体的访问必须完全依据管理员所定的策略,它实际上是一种集中式的访问控制方式。而自主访问实现了用户访问控制决策,是一种分散式的控制方式。但是MAC和DAC并不完全互相排斥,MAC和DAC均实现了对不同种类信息访问的安全控制。在任何信息需要保护的环境中,强制访问控制策略前提下的自主安全提供了更细的控制粒度。强制访问控制(MAC)已经用于许多军事项目和一些高安全性需要的商业产品中,包括DBMS和安全操作系统。1.1基于角色访问控制基于角色访问控制(RBAC)的核心思想就将访问权限与角色相联系,通过给用户分配合适的角色,让用户获得相应的访问权限。角色是根据机构内为完成各种不同的任务需要而设置的,根据用户在机构中的职权和责任来设定他们的角色。用户可以在角色之间进行转换,系统可以添加、删除角色,还可以对角色的权限进行添加、删除。这样通过应用RBAC将安全性放在一个接近机构组织结构的自然层面上进行管理。基于角色访问控制(RBAC)可采用以下的概念模型来说明:问题:多数机构都具有很多不同的工作岗位,需要不同的技能和责任,为了安全考虑,用户应该根据它们的工作岗位获得权限,工作岗位可以视为人们在执行职责时扮演的角色。在一个机构中,如何根据角色为用户分配权限。RBAC概念模型:图3-4基本RBAC概念模型展示了基于角色访问控制的基本模型。类User-28- 上海交通大学工程硕士基于RBAC和XACML的XML文档访问控制系统和Role分别表示用户和预定义的角色,用户被赋予角色,按照角色的职能,赋予用户特定权限。关联类Right定义一个角色用户被授权访问保护对象的权限类型,copy_flag属性表示一个布尔值,true或false。图3-4基本RBAC概念模型Fig.3-4BasicRBACconceptmodel图3-5RBAC96模型Fig.3-5RBAC96model基于角色的访问控制(RBAC)是一种通用模型,它被认为是取代传统访问控制的有效模式。Sandhu在文献[19]中对RBAC作了进一步的研究,他们提出的RBAC96模型得到了学术界的广泛认可,从图3-5RBAC96模型中清楚地看到用户(U)、角色(R)、权限(P)和会话(S)之间的关系,此外RBAC96模型还引入了角色继承和约束的概念。约束:一组约束(Constraints)是用来决定RBAC模型前面的组成部分是否可以被接受,只-29- 上海交通大学工程硕士基于RBAC和XACML的XML文档访问控制系统有都可以接受才允许用户进行后面的操作。常见的几种约束机制包括:角色互斥,基本限制和必备角色。“角色互斥”指一个用户在同一时间只能担任两个互斥角色中的一个,例如在一个单位中同一个职员不能同时担任会计和出纳。“基本限制”规定了一个角色可被分配的最大用户数,例如总经理这个角色只能由一个人担任,而副总经理可以由四个人来担任。“必备角色”描述较为复杂,例如用户拥有了角色B时,角色A才能被分配给该用户,而在其他任何情况下角色A都不能分配给用户。角色继承:角色继承是指在一个组织中高等级角色继承低等级角色的所有权限,比如说经理拥有副经理的所有权限,副经理拥有职员的所有权限,显然角色继承是一个偏序关系,具有反身性、传递性和非对称性。有时为了实际需要应该限制继承范围。例如为了工作需要,一些职员不得不保留一些私有权限,这些权限是不能被继承的,所以需要定义一些新的角色,这些角色称为私有角色。基于角色访问控制(RBAC)具有如下的优点:①通过角色概念的引入,实现了用户与访问权限的逻辑分离,即先给角色分配权限,再给用户分配相应的角色,从而该用户具有了与该角色相关联的权限;②实现了根据用户在系统中所处的位置及作用设置相应的访问权限;③RBAC以对角色的控制取代了DAC和MAC中直接对用户的控制,增加了系统的灵活性;④最小特权原则的实施,保证了用户只具有完成特定任务所必须的权限,防止了用户具备过大的对系统资源进行访问的权限;⑤方便管理员对权限的管理。在定义好了权限和角色后,只需进行简单的角色分配或取消,即可完成用户权限的分配与取消。缺点包括:①由于在RBAC中进行了职责分离,所以使得原来对身份标识的窃取恶化为对角色的窃取;②任何一个对象或主体会因此损害到整个对象组或用户组;③角色的继承、不加限制的权限授予会导致违背安全性策略;④此外,角色重叠的模糊本质、为用户指定多种角色以及将对象指定到多个对象访问组,会使错误配置成为一种实际的风险;⑤最后,RBAC的角色层次图中的许多都只有理论模型和算法描述,实现困难,并且许多理论框架依然不清楚,没有完整的代数描述。基于角色访问控制(RBAC)在很多商业系统中都有应用,包括SunJ2EE,Microsoft的Windows2000,IBM的WebSphere和Oracle等等。-30- 上海交通大学工程硕士基于RBAC和XACML的XML文档访问控制系统1.1XACML2.1.1XACML概述可扩展访问控制标记语言XACML是一项由OASIS指导制定的XML规范。它提供了一套语法来管理对系统资源的访问,是基于XML的安全性标准,用于表示控制信息访问的规则和策略。这些规则和策略与整体访问控制和保密策略的上下文的目标资源有关。目前多数系统都以专有的方式实现访问控制和授权,典型的访问控制和授权包括三个主要实体:主体、资源和动作。主体请求得到对资源执行动作的权限,在专有访问控制系统中,这些实体及其属性的信息保存在资料库中,这种资料库称为访问控制链表(AccessControlList,ACL)。不同的专有系统有不同的实现ACL的机制,因此难以交换和共享信息。当前大多数访问控制和授权系统都实现了专用的、简化的模型,通常遵循如下方式:•处于特定环境中的主体(Subject)首先向系统发出请求。•系统随后检查其资料库,并为该请求授权,或拒绝该请求。资料库包括目标(Object)资源信息、主体信息和主体可能隶属的组的信息。所有这些信息都存储在资料库中,并总称为访问控制列表(ACL)。ACL首先出现于二十世纪七十年代,目前仍在使用。随着时间的推移,人们以各种方式实现了各种解决方案,而这些解决方案则成为了专用的解决方案。另外,由于安全性的问题,某些解决方案尚不完善,过于简单。通常可以发现新发布的软件产品很少考虑或根本就没有考虑到安全性的问题。这就需要使用新的技术来弥补。而XACML就是这样的技术,采用它主要将解决以下问题:•创建一种可移植的、标准的方式来描述访问控制实体及其属性。•提供一种机制,以比简单地拒绝访问或授权访问更细粒度的控制访问,也就是说,在“允许”或“拒绝”之前或之后执行某些操作。可扩展的访问控制标记语言XACML是在XML的基础上建立起来的,本身符合XML1.0规范。XACML的初衷是开发一项访问控制和授权系统的标准。OASIS于2001年4月专门成立了一个技术委员会来讨论并制定用于XML文档访问控制的一种策略描述语言XACML,并期望对这个语言进一步扩展,发展为一种可以描述授权信息的统一的策略描述语言,其目的是定义一个XML访问控制标记语言规范来表达对网上的信息资源进行访问控制的策略。此规范的核心是围绕一个四元组,来定义授权策略:-31- 上海交通大学工程硕士基于RBAC和XACML的XML文档访问控制系统其中subject代表授权实体,object代表资源,目前对于object的说明还仅仅限于XML文档,action代表对资源的操作,condition是关于请求者可以对特定资源采取特定操作的先决条件的声明,用来丰富访问策略的语义。XACML提供的架构具有以下优点:•XACML提供了可移植、统一的方法,用以描述这些访问控制元素。•XACML提供了标准格式,以便在不同系统间交换安全控制信息。这尤其有利于在老式系统之间转换安全性信息。•XACML的这种标准格式也使得我们可以将原来孤立的ACL联合起来,提供统一的访问控制信息。这有利于组织管理、控制和监控其资源,并同时以更好的方式调节各个实体,从而有效地使用这些信息资源。•便于非IT部门的为其自己的领域制定策略。所制定的访问控制模式不应该仅仅限于简单的允许和拒绝访问模式,还需要规定一些临时行为(ProvisionalAction),主体在最终获得对目标资源的访问权限之前,必须同意(如用户协议)或执行(如数字签名)这些行为。1.1XACML体系结构XACML是由图3-6XACML主要组件中所示的多个组件组成[20]。它的工作机制是当用户要求执行一项资源上的动作时,就会发出一个请求到保护该资源(可能是一个文件系统或Web服务器)的装置,该装置被称为PEP(PolicyEnforcementPoint,策略强制执行点)。PEP会根据请求者的属性、请求资源、动作以及其它的附属信息来构成一个请求(Request)。然后PEP会将该请求发送到PDP(PolicyDecisionPoint,策略判断点)。PDP会查阅请求以及一些关于该请求的访问控制策略信息,并最终回答该访问是否合法。这个回答返回到PEP,由PEP来对请求者作允许或拒绝的回答。-32- 上海交通大学工程硕士基于RBAC和XACML的XML文档访问控制系统图3-6XACML主要组件Fig.3-6XACMLchiefcombinationPEP和PDP可能被包容在同一个应用中,也可能被分布到不同的服务中。除了作为一个请求/应答和策略描述语言以外,XACML同时也提供其它一些关系描述:如:根据一个请求定位其对应访问控制策略,以及根据这个请求和其对应策略回答是或否等。授权请求到达策略执行点(PEP)。PEP创建一个XACML请求并发送到策略决策点(PDP),后者评估请求并返回一个响应。该响应可以是允许访问的,也可以是拒绝访问的,并具有适当的义务或称为临时行为(ProvisionalAction)[21]。临时行为(ProvisionalAction):XACML的目标之一是提供更高层次的访问控制,而不仅仅是允许和拒绝决策,临时行为是实现这种控制的机制。临时行为是PEP必须与授权决策的实施一起执行的动作。在评估策略之后,特定的临时行为与授权决策一起发送给PEP。除了强制实施授权决策外,PEP还负责执行临时行为所规定的操作。例如,临时行为可能包括:z必须对条件语句进行数字签名。z必须对隐私或不可公开的协议进行加密或数字签名。z必须处于某个位置,或者必须处于某段时间或某个特定日期。z必须使用特定的协议,比如HTTPS。z必须进行验证或记录日志。z必须使用特定的身份验证方法(如PKI)进行身份验证。PDP评估请求中的相关策略和规则后会作出决策。可以应用的策略有多种,PDP并没有评-33- 上海交通大学工程硕士基于RBAC和XACML的XML文档访问控制系统估所有的策略,而是根据策略目标选择相关的策略进行评估。策略目标包括关于主体、动作和其他环境属性的信息。为了获得策略,PDP要用到策略访问点(PAP),PAP编写策略和策略集,供PDP使用。PDP也可以调用策略信息点(PIP)服务检索与主体、资源或者环境有关的属性值。PDP作出的授权决策被发送到PEP。PEP履行义务或临时行为,并根据PDP发送的授权决策允许或拒绝访问。1.1XACML策略XACML顶层组件和相互关系:主要包括三个顶层组件,策略、PEP和PDP。为定义的请求创建XACML基础设施的过程,也是紧密围绕这三个组件进行的。图3-7策略语言模型说明了这些组件之间的联系:图3-7策略语言模型Fig.3-7Tacticlanguagemodel策略包括:XACML的多数动作发生在策略中。策略包括几种子组件:目标、规则、规则组合算法和义务。理解策略就必须理解这些子组件(Subcomponent)及各种子组件的重要性:2.1.1目标(Target):每个策略只有一个目标。该目标有助于确定策略是否与请求有关。策略和请求的相关性决定了是否要为请求评估该策略。这是通过定义目标中的三类属性(主体、资源、动作)及其属性值来实现的。目标中不一定都有这三类属性。将这些属-34- 上海交通大学工程硕士基于RBAC和XACML的XML文档访问控制系统性的值与请求中具有相同属性的值进行比较,如果匹配(对其应用某些函数之后,将会看到它们是否匹配),则认为该策略是相关的,并对其进行评估。1.1规则(rule):一个策略可以与多条规则相关联。每条规则由条件、结果和目标组成。规则的最终结果取决于条件的评估。如果条件返回Indeterminate,则该规则返回Indeterminate。如果条件返回False,则规则返回NotApplicable。如果条件返回True,则返回Effect元素的值,可以是Permit或Deny。1.2规则组合算法:如上一条规则所述,一个策略可以包含多条规则。不同的规则有可能得到冲突的结果。规则组合算法负责解决这种冲突,每一策略、每一请求都得到一个最终结果。每个策略只能使用一种规则组合算法。规则组合算法结合策略中所有规则的结果得到最终的授权决策。XACML定义了下面的规则组合算法:zDeny-overrides(拒绝覆盖):只要有一条规则的评估为Deny,那么最终授权决策也是Deny。zOrdered-deny-overrides(有序拒绝覆盖):与拒绝覆盖相同,只不过评估相关规则的顺序与将规则添加到策略中的顺序相同。zPermit-overrides(允许覆盖):只要有一条规则计算的评估为Permit,则最终授权决策也是Permit。zOrdered-permit-overrides(允许按顺序覆盖):与允许覆盖相同,只不过评估相关规则的顺序与规则添加到策略中的顺序相同。zFirst-applicable(最先应用):遇到的第一条相关规则的评估结果作为最终授权决策的评估结果。1.3临时行为(ProvisionalAction):临时行为是PEP必须与授权决策的实施一起执行的动作。在评估策略之后,特定的临时行为与授权决策一起发送给PEP。除了强制实施授权决策外,PEP还负责执行临时行为所规定的操作。2.1.1策略执行点策略执行点(PEP)根据请求者的属性、请求的资源、动作和其他信息创建请求。要创建这样的请求,需要两个主体属性、一个资源属性和一个动作属性。资源属性是资源的URI,动作属性是打开资源的动作。-35- 上海交通大学工程硕士基于RBAC和XACML的XML文档访问控制系统1.1策略决策点策略决策点(PDP)针对策略评估请求,并返回响应。因为XACML规范没有规定把策略和请求传递给PDP以便评估请求的具体机制,所以可以选择合适的任何机制。策略决策点(PDP)要做的一部分工作是根据一个请求找到对应的策略。为了实现这一点,XACML提供另一个被称为目标(Target)的特性。一个Target是一套简化了的在一个请求中Policy、PolicySet、Rule必须遇到的关于主题(Subject)、动作(Action)、资源(Resource)的条件限制。这些条件限制都使用布尔判断来比较一个请求中的参数值和一个Target里面的条件对应值。如果一个Target中的所有的条件都符合,该请求就被关联到相应的Policy、PolicySet、Rule上。作为一种检查策略适用性的方法,Target的信息中还有一种方法进行策略索引。这在当需要在同一Target中存储多种策略并且需要快速的审阅这些策略以选择最合适策略时非常有用。例如,一个Policy可能包含一个只适用于某一特定服务的Target时。当一个要求访问该服务的请求发生时,PDP就知道到哪儿去找适合判断该请求的策略。因为策略被基于他们的Target的限制条件进行了索引。一旦Policy被找到并被用于验证一个请求,其规则(Rule)即发生作用。Policy可以容纳任意数量的Rule,这些Rule中包含一个XACML策略的核心逻辑。绝大多数的Rule表现为一个条件布尔判断。当前条件为真时,“规则的结果/Rule'sEffect”(一个根据规则判断的Permit或Deny的结果)即被返回。条件的判断结果也可以为一个错误(也即“不明确/Indeterminate”)或该条件不适用于判断请求(即“不适合/NotApplicable”)。-36- 上海交通大学工程硕士基于RBAC和XACML的XML文档访问控制系统第四章基于RBAC和XACML的XML文档访问控制模型1.1XML的安全需求随着XML技术的广泛应用和深入发展,有越来越多的应用需要在开放环境下进行XML数据的交换和存储,确保信息的安全性是XML应用顺利开展的首要条件。由于XML语言自身具有的结构化和可读性好的特征,没有可靠的安全控制体系,重要文档和敏感信息的明文存储和传输都是非常危险。如何对这些以XML数据的形式分布在Web上的关键资源进行访问控制已成为电子商务、电子政务等网络应用安全的一个重要研究课题。一般说来,信息安全包括信息的身份认证、访问控制、数据保密性、完整性和不可否认性,涉及到数据的加密、签名以及访问控制等多个方面。其中访问控制是对某些关键资源进行保护,这些关键资源可位于单机上,也可能分布在网络上,其形式多种多样。同样的,XML数据交换和存储涉及的安全性内容也包括以上五点。传统访问控制的方法是以一整份文件或一个档案为控制对象,没办法对文件或档案里的部分内容进行存取控制。就现存网络上的存取方式而言,不同使用者所允许的存取内容可能有所不同。由于XML文档本身结构化的树型结构使得对一个文档内部某一具体元素的访问进行控制变得容易,XML突破了传统无法对部分文档内容做访问控制的信息安全限制,并展现它在信息安全上的潜力。如XML加密解密、XML数字签名和身份确认、可实现XML文档局部数据的安全性要求,即可提供对XML文档关键资源的细粒度安全访问服务,这些是现有的安全技术和协议无法做到的。访问控制策略是大多数应用系统必须考虑的问题。目前存在着多种访问控制策略,如自主访问控制(DAC)、强制访问控制(MAC)及基于角色的访问控制(RBAC)等。基于角色的访问控制是一种新型访问控制模型,它不仅能够实现传统访问控制的功能,同时还可以方便权限的管理,能够灵活地进行配置以适应系统的不同需求,提高系统的可扩展性。它支持角色继承、最小特权、职责分离以及角色集最大值限定四个基本的安全原则。目前每一个机构都可根据自己的需要和偏好来采用各种访问控制实现技术,包括采用各种各样的访问控制策略描述语言,这就使得所有这些对资源的访问控制往往都局限在一个机构的安全边界内,难以在各个机构之间进行互操作。而在典型的电子商务、电子政务的应用中,一个应用的完成往往涉及到多个企业或机构,客观上要求在多个企业或机构之间共享信息,即安全需要跨越边界。鉴于此,能否提供一种统一的策略描述语言来描述对各种资源的控制,从而有助于各个企业之间的安全互操作成为当前安全研究中的另一研究课题。-37- 上海交通大学工程硕士基于RBAC和XACML的XML文档访问控制系统在上述背景下,本文提出了一种基于RBAC和XACML的XML文档访问控制模型,采用基于角色的访问控制模型(RBAC),对来自外部的数据访问请求,首先必须有相应的身份认证;其次,需要有细粒度的加密和签名支持;另外,针对XML应用系统的特性,必须有相关的密钥管理设施为用户提供密钥管理。在以上条件的前提下,采用基于XACML的XML文档访问控制模型,实现基于XML数据的安全访问控制。1.1系统功能分析用例图(UseCase)描述系统外部的活动者与系统用例之间的某种联系。图4-1访问控制UserCase用具有二个活动者的用例图来描述基于RBAC和XACML的XML文档访问控制模型的功能需求。图4-1访问控制UserCaseFig.4-1AccesscontrolUsercase二个活动者为:用户、安全管理员。安全管理员负责从应用领域获取知识来组织角色权限集、建立角色继承关系、构造约束条件,同时负责管理基于角色访问控制系统,可以为用户授权某些角色和为角色授予某些权限。用户才是真正的系统用户或外部系统,能够建立资源访问会话,获得XML数据的相关权限以及关闭会话。访问资源举例的描述:举例:访问资源举例活动者:用户-38- 上海交通大学工程硕士基于RBAC和XACML的XML文档访问控制系统前提条件:已完成用户身份认证,系统空闲描述:用户提出XML文档或元素的访问请求信息,用户提交一个包含它的身份信息,一个目标文档或元素以及对这个文档或元素的操作信息的访问请求。系统给出用户能够激活的角色,根据访问请求激活的相关角色,系统建立会话。在用户建立了会话之后,用户也激活了他的角色,通过该角色就可以通过访问控制用例中的访问决策生成器检查策略库,生成对这个用户相应的访问决议。该访问决议在资源管理用例中就可以访问所需要的XML资源,也就是系统允许用户访问授权给该角色的有关权限。角色权限管理的举例描述:举例:角色权限管理举例活动者:用户前提条件:已建立角色库描述:根据领域角色的任务,建立角色库和访问权限的信息,使用XACML建立角色访问策略集。以上是针对用户的两个举例,还有用户角色管理等用例可类似地建立。图4-2XML文档访问顺序图Fig.4-2XMLdocumentsaccessorder一个安全的XML文档访问请求/响应流程可以用图4-2XML文档访问顺序图表示:1、在访问资源层验证请求者的身份信息,请求访问控制进行访问权限授权,在这一步可以过滤非法用户和越界访问者;2、访问控制分析访问请求,根据策略评估访问权限,生成访问控制决策;3、根据访问控制决策,由资源管理提出目标文档,对该XML文档做安全处理;4、形成目标文档,响应请求;-39- 上海交通大学工程硕士基于RBAC和XACML的XML文档访问控制系统1.1XML的访问控制模型2.1.1访问控制模型结构在基于角色的访问控制策略的基础上,且访问控制策略部分采用XACML策略描述,我们可以实现一种基于RBAC和XACML的XML文档访问控制模型,该模型的目的是为基于的XML关键资源提供一种集中的访问控制。这种控制在逻辑上是集中的,在实现上可实现分布的。它为最终用户提供了一个集中的控制对用户的权限进行检查,根据用户的请求生成相应的访问决议,并分散到各个应用服务器上来执行这些控制决议。除此之外利用XACML的标准化访问控制语言,它还为企业或机构间的协作提供了一个用于安全上下文操作的可扩展接口。为面向企业和企业之间的应用提供访问控制服务。模型在设计上考虑了可扩展性和灵活性,各组成部分相对独立且易于结合并可以很好地扩展。例如,对于XML关键资源的控制即可以通过一系列的XML加密和签名相结合,为Web服务和服务实现时涉及到的XML关键资源提供多粒度的访问控制,另外它们也可各自作为独立的功能或服务存在。模型执行过程:如图4-3XML文档访问控制结构,当一个请求提交到策略执行点(PEP)时,策略执行点把这个请求转交给XACML上下文处理,要求获得决策信息。XACML上下文处理从资源库(XML文档库)获得资源信息,向策略信息点取得授权角色信息和系统环境信息,做规范化处理后,向策略决策点发送包含这些信息的策略询问请求,从中获得该访问请求的授权决策信息,然后回复策略执行点,由策略执行点执行授权决策。当决策属性为permitted,则由操作执行点执行对资源的操作;如果决策属性为denied,则拒绝请求。对于决策属性的返回值,可以根据实际应用进行相应的扩充。这个模型中包含的组件功能如下:用户角色管理:截取用户的访问请求,从中析取有用的用户信息,如用户的身份、所请求的资源、所希望的操作等,并激活用户角色库,确定用户的角色授权,对这个角色的权限进行检查;如果角色所访问的资源是被保护的资源,要求对用户的身份进行认证,生成访问请求。策略执行点(PEP):策略执行点是一个对外的访问控制接口,接受用户角色管理生成的角色访问请求,将访问请求发送到XACML上下文(Context)处理,根据策略决策点(PDP)返回的授权决议信息,向操作执行点发出执行指令。XACML上下文(Context)处理:XACML上下文(Context)处理用于将XACML核心语言与应用程序环境以及其它内容相隔离。并将来自策略执行点的请求做规范化处理,而将授权决-40- 上海交通大学工程硕士基于RBAC和XACML的XML文档访问控制系统议、资源信息等从规范化格式转换为响应信息格式,回复策略执行点。它接受策略执行点(PEP)的访问请求,随后访问请求被转换为独立的、可供策略决策点(PDP)理解和处理的XACML访问请求,发给策略决策点。然后接收策略决策点响应的包含授权决策的XACML,经过转换后发给策略执行点(PEP)。策略决策点(PDP):策略决策点用于评估决策请求,根据策略集所制订的访问控制策略和自身包含的评估原则与异常(Exception)处理原则,对访问请求做出评估,并返回一个授权决议。包括以下的内容:1、冲突管理—由于系统所采用的策略描述语言允许指定“grant”和“deny”,因此会有某些访问控制请求同时被肯定和否定这种冲突,需要相应的策略来解决:-deny优先(dtp):即否定授权优先;-grant优先(gtp):即肯定授权优先;-无冲突解决策略(htp):此情况下采用缺省策略;此处需要注意的是对于XML文档的访问控制,其冲突的表现形式和有关服务的冲突表现形式不一样。对于XML文档还存在另一类冲突,即当一个用户正在write一个文档时另一个用户可能又要求read这个文档。对于此类冲突,可以利用加“锁”机制来解决。2、传播管理—传播管理是对于XML文档的访问控制专有的功能。它不同于通常概念上和角色分级联系在一起的权限的传播,而是由于XML文档自身结构化的特点而具备的相应特性。即对一个树形结构的XML文档,可以只定义用户对其中某些关键元素的访问权限,对于其它节点,利用授权传播机制来解决,从而达到简化实现的目的。No-无传播Up-向上传播,对一个元素的授权传播给其父元素Down-向下传播,对一个元素的授权传播给其子元素—仅当子元素无授权时。策略集:策略集是预先制订的访问控制策略的集合,是策略访问控制的核心部件;角色权限信息库:角色权限信息库包含了授权角色的相关信息,如角色、数字证书、授权权限等内容;策略信息点:策略信息点收集访问主体(授权角色)信息、被访问的资源(XML文档)信息和系统环境信息,作为决策评估的属性信息;操作执行点:操作执行点即授权的执行,当决策属性为permitted,deny则由操作执行点执行对资源的操作和责任(Obligations)或临时行为(ProvisionalActions)。此处需注意的是对于XML文档,它必须能够理解访问决议的语义,并据此执行相应的动作。-41- 上海交通大学工程硕士基于RBAC和XACML的XML文档访问控制系统图4-3XML文档访问控制结构Fig.4-3XMLdocumentsaccesscontrolstructure图4-4XML文档访问控制顺序图Fig.4-4XMLdocumentsaccesscontrolorder作为一个比较完整的XML文档访问控制模型一般还应该包括以下的后台模块,包括角色/权限管理、策略管理和日志管理:1、角色/权限管理—对角色的权限进行管理,将角色和相应的权限联系起来,相当于策略的定制。2、策略管理—对策略本身进行管理,包括创建、修改策略等。-42- 上海交通大学工程硕士基于RBAC和XACML的XML文档访问控制系统3、日志管理:对用户的访问历史进行记录。访问控制策略与特定XML文档的邦定:XACML支持两种类型的策略邦定,一种为采用DTD方式,单个策略与所有的依据此DTD有效的XML文档邦定。此方法需要保持一个特定的DTD和相关策略的映射;另一种方法是在每个具体的XML文档层,一个策略与每个特定的文档保持映射关系,或者直接在每个目标XML文档内设置一个元素,如目前的电子公文格式。1.1安全处理扩展利用XACML的临时行为(ProvisionalAction)模式,可实现XML文档的安全处理扩展。临时行为是PEP必须与授权决策的实施一起执行的动作,PDP在评估策略之后,将特定的临时行为与授权决策一起发送给PEP。PEP除了强制实施授权决策外,PEP还负责执行临时行为所规定的操作。安全处理扩展模块操作的对象是根据访问请求生成的原始XML文档,因此可以采用XML加密规范和XML签名规范进行安全处理:首先对其中包含的敏感信息元素采用特定的加密算法加密,或者采用非对称密钥体系的公钥进行加密,算法信息和密钥信息可以放在子元素中,加密后的信息构成元素,然后建立符合XML加密规范的EncrypedData元素,取代文档中被加密元素位置。其次是对该文档进行数字签名。首先通过消息摘要运算得到摘要值放在元素中,再建立元素和元素;通过对元素进行规范化处理产生元素,最后生成符合包含和可选的等元素的元素,嵌入XML文档内部作为目标文档,或者以外部文档形式随同目标文档发送。1.2密钥管理机制在上述模型的处理步骤中,涉及到密钥的管理问题。W3C制定的XML密钥管理规范XKMS可以在现有的PKI基础上简化密钥的管理和使用,XKMS相当于在PKI的提供者和用户之间增加了一个中间层——信任服务。这样用户不用直接跟PKI交互,而是通过信任服务(XKMS)间接地获得PKI的密钥和证书服务,把原来用户直接面对的问题转移到信任服务层,通过信任服务层,向用户提供基于XML的密钥管理服务。XKMS密钥管理结构如图4-5所示:-43- 上海交通大学工程硕士基于RBAC和XACML的XML文档访问控制系统XKMS客户端的用户分为密钥拥有者和使用者两类,他们可以根据自己的需要,向信任服务(XKMS)端发出服务请求;信任服务端由两个功能模块组成:X-KRSS(密钥注册服务系统)和X-KISS(密钥信息服务系统),分别向客户端的两类用户提供密钥信息管理服务。XKMS服务端和客户端之间采用XML消息交互通信。而XKMS与PKI提供者之间的交互的具体协议通信,可以在服务端实现,对客户端的应用而言,屏蔽了PKI的底层细节,只提供基于XML的密钥管理服务。图4-5XKMS密钥管理结构Fig.4-5XKMSkeymanagestructure1.1结论针对XML文档访问涉及的安全问题,结合基于角色的访问控制策略,本章提出了一种XML标准体系的访问控制模型,包括基于角色的访问控制(RBAC)策略的访问控制管理、基于XACML的访问控制模型、基于XML加密与签名的安全处理扩展、基于XKMS的密钥管理。该模型具有如下特点:1、完全基于XML标准体系结构;2、将基于角色的访问控制(RBAC)与XML文档的细粒度结合,提供了精细的用户访问控制授权机制。3、访问控制部分采用XACML策略描述控制,利用XACML的访问控制策略描述能力和临时授权模式,可以根据具体应用和安全需求的不同,灵活制订访问控制策略;为XML文档的访问控制提供了非常灵活的权限管理方式。-44- 上海交通大学工程硕士基于RBAC和XACML的XML文档访问控制系统4、结合XML文档的加密、数字签名等安全技术,可在开放的网络环境中实现XML数据的安全传输和存储。-45- 上海交通大学工程硕士基于RBAC和XACML的XML文档访问控制系统第五章XML文档访问控制模型原型设计1.1访问控制模型原型概述2.1.1XML应用安全需要随着计算机网络和信息处理技术的迅猛发展,政府以及企事业单位的信息化程度越来越高,传统的以纸张等物理形式承载、处理、传输和存贮的文档资料必将逐步实现电子化,在电子政务和电子商务系统中,大量的公文、证件、批示、请示、命令、调令、档案、财务、税务、人事、管理、决策等机密信息均将逐步采用基于XML的电子文档形式在网络环境中传输和保存。这些包含敏感信息的文档如果被窃取或非法篡改将造成严重的经济损失和管理与决策的混乱,甚至由于证据丢失或伪造等原因引起法律或民事纠纷。对于传统的以纸张等物理形式存在的这类文档信息,发送者主要通过签署或印章(公章和/或私章)和当前时间等人工方法加入签发单位/个人的身份信息,接收者通过预留印鉴或人为感觉进行物理地/直观地验证,但通过网上进行信息处理时,由于双方并不在现场,因此,无法确认双方的合法身份,同时信息是双方的业务秘密,在网上传输时必须保证安全性,防止信息被窃取;双方的交易非现场交易,一旦发生纠纷,必须能够提供不可否认性。为能有效解决上述问题,充分利用XML特性来改善安全性。可以利用XML安全技术,包括XML加密(XMLEncryption)、XML数字签名(XMLSignature)、XML密钥管理规范(XKMS)、XML访问控制标记语言(XACML)及安全声明标记语言(SAML)。为确保XML文档能安全的交换及存储,越来越有必要对文档的某些部分也使用这些功能,由于XML文档本身结构化的树型结构使得对一个文档内部某一具体元素或属性的访问进行控制变得容易,XML突破了传统无法对部分文档内容做访问控制的信息安全限制,一旦在应用中完全采用以上的各种安全技术,XML将展现它在信息安全上的潜力。2.1.2开发平台要求与环境本论文在Java平台上实现,但客户端并不要求一定使用Java,任何支持XML的语言均可和交互,如Java和C#等,本论文选择Java作为客户端语言。运行环境:-46- 上海交通大学工程硕士基于RBAC和XACML的XML文档访问控制系统JAVASDKv1.3BouncyCastleCryptoAPIs1.18开发工具:XMLSPY4.0EnterpriseEditionSun的XACML实现:Sun'sXACMLImplementationVersion1.21.1关键技术研究主要工作内容根据前面几章内容的讨论和分析,针对基于RBAC和XACML的XML文档访问控制模型,作者选择几个主要的关键技术,对这些关键技术实现提供了程序片段和分析,本论文研究讨论的关键技术实现主要包括以下方面:•用户/角色管理与角色授权管理;•XACML策略的创建示例;•XACML创建示例;•XML数字签名及验证;•XML数据加密及解密;1.2主要实现类说明Sun的XACML实现是OASISXACML1.0/1.1标准的一个具体实现[22]。 表5.1Sun的XACML实现Packagescom.sun.xacmlThisistherootpackage,whichcontainsthePDPclasswheremostpeoplewillwanttostart.com.sun.xacml.attrContainsmanyoftheclassesrelatedtoattributesandattributeretrieval.com.sun.xacml.attr.proxyThispackagedefinesproxyclassesforallofthestandarddatatypes.com.sun.xacml.combineAllofthecombiningalgorithmsupportisinthispackage.com.sun.xacml.condSupportforConditionsisinthispackage.-47- 上海交通大学工程硕士基于RBAC和XACML的XML文档访问控制系统com.sun.xacml.cond.clusterThispackagedefinestheFunctionClusterinterfacethatisusedtodefineaclusteroffunctionsthatareallimplementedbysomecommonclass.com.sun.xacml.ctxAlloftheclassesthatsupportthecontextschemaareinthispackage.com.sun.xacml.finderThefinderpackagesupportsallofthepiecesoftheXACMLspecificationthatrequirecustomimplementation.com.sun.xacml.finder.implThefewincludedfindermodulesareprovidedinthispackage.1.1用户角色管理与角色授权管理下面以某个局电子政务公文系统为例来具体介绍基于角色的访问控制系统的设计。这个即将建立的基于角色的访问控制的公文系统的用户角色管理和角色权限管理。2.1.1公文系统的角色定义根据分析,在公文系统中一个用户的角色,即其权限由以下几类信息组合而成:用户的行政级别、用户所属(辖)部门以及用户的业务角色。用户的级别从纵向以较粗的粒度来界定用户,级别的例子如局长、处长、科长和公文员,不同级别的用户具有不同的权限。图5-1公文系统角色层次结构Fig.5-1Documentssystemrolelevelstructure用户所属(辖)部门则从另一个维度来定义用户的职权范围。在保密单位的办公系统的安全需求中,一个原则是用户只能查看和处理其业务范围内的事情,这个业务范围就是通过用户所属 -48- 上海交通大学工程硕士基于RBAC和XACML的XML文档访问控制系统(辖)部门来表示的,如后勤处、财务处、办公室等。模型提供的一种灵活的控制是通过业务角色这个概念来实施的。业务角色可以定义得相当细,用来描述上述级别和部门两种概念无法定义的权限。在某些具体的业务中,存在某些特殊的用户具有特殊的职权,如公文处理中的机要员,这种特殊的职权无法用上述的级别和范畴的概念来表达,比如机要员和外收发人员都属于一般工作人员,并且都属于同一个部门,但是他们在公文处理中的职权就有明显的不同,因此我们引入业务角色的概念。业务角色是针对某项具体业务的一个权限的集合,一个用户在不同的业务中可能负责不同的职能,因此允许一个用户具有多个业务角色。1.1具体实现根据应用的需求采用恰当的方式建立用户——角色——权限这三者之间多对多的映射关系,将是整个公文访问控制系统安全运行的关键。此外,所建立的映射关系应提供灵活的配置功能,使映射关系具有可更改和可扩充性,以适应可能变化的应用需求,同时还可根据某些特殊需求来进行动态授权。为了实现基于角色的访问控制,这里定义了三张表来实现用户到角色、角色到权限的分配,如表5-2、5-3、5-4所示。表5-2权限信息表字段名含义数据类型Pri_Name权限名charPri_Dcsp对该权限的描述charOper_Obj操作对象charOper_Type操作类型integer表5-3角色权限信息表字段名含义数据类型Role_Name角色名charPri_Set该角色拥有的权限集合char-49- 上海交通大学工程硕士基于RBAC和XACML的XML文档访问控制系统表5-4用户角色信息表字段名含义数据类型User_Id用户idintegerUser_Name用户登录名charRole_Set用户所拥有的角色集合char在用户申请某操作时候,系统需要检测用户所拥有的角色集合,并且根据这些角色集合所包含的权限来判断该用户是否可以进行该操作,如果可行则置许可证发放标志为真,这种方式称为用户牵引方式。同时,系统为了执行某些静态约束,比如同一用户不能属于两个互斥的角色,还定义了互斥角色表。在XACML的访问控制策略中,基于角色的访问控制(RBAC)的各种数据元素分别实现为XACML中不同的元素:用户(Users):XACML主体(Subject);角色(Roles):XACML主体属性(SubjectAttributes);对象(Objects):XACML资源(Resources);操作(Operations):XACML行为(Action);许可(Permissions):XACML角色策略集(Role)和许可策略集(Permission)。如图5-2XACML角色策略集,只允许主体(Subject)拥有角色属性为经理(Manager)用户可以有Permission权限。-50- 上海交通大学工程硕士基于RBAC和XACML的XML文档访问控制系统manager PPS:manager:role 图5-2XACML角色策略集(Role)Fig.5-2XACMLroletactics(Role)1.1相关权限管理动态授权与动态约束:基于角色的访问控制中用户所拥有的权限具有相对的稳定性,但在公文处理中往往会出现某些特殊事件需要做特殊的处理,动态授权机制用来反映这一需求。例如,用户1出差,需要用户2在其出差期间代理其部分业务工作,这就需要用户2在限定的一段时间内获得他权限之外的权限。约束是基于角色的访问控制中重要的安全策略,是对用户执行权限的一些限制。静态约束在系统设计时定义,而动态约束在系统运行时执行。所谓动态授权就是系统在特殊工作状态下,将用户A的职权委托给用户B的特殊授权方式。动态约束其实是依照相关模型的安全策略对动态授权进行相应约束,防止动态授权滥用而带来安全隐患。 -51- 上海交通大学工程硕士基于RBAC和XACML的XML文档访问控制系统1.1策略的创建示例策略的创建首先要创建policy对象和需要的子组件。创建策略://CreatepolicyidentifierandpolicydescriptionURIpolicyId=newURI("ProjectPlanAccessPolicy");Stringdescription="ThisAccessPolicyappliestoanyaccountatsecf.com" +"accessingfile:///E:/Documents/Administrator/Desktop/ProjectPlan.html."; //RulecombiningalgorithmforthePolicyURIcombiningAlgId=newURI(OrderedPermitOverridesRuleAlg.algId); CombiningAlgFactoryfactory=CombiningAlgFactory.getInstance(); RuleCombiningAlgorithmcombiningAlg=(RuleCombiningAlgorithm)(factory.createAlgorithm(combiningAlgId)); //CreatethetargetforthepolicyTargetpolicyTarget=createPolicyTarget();//CreatetherulesforthepolicyListruleList=createRules();//CreatethepolicyPolicypolicy=newPolicy(policyId,combiningAlg,description,policyTarget,ruleList); //Displaythepolicyonthestdoutpolicy.encode(System.out,newIndenter());说明:policy创建的主要部分是子组件的创建。该程序说明了如何将这些子组件组合成policy对象。它说明了policy的总体结构。策略的组成过程如下:•选择策略的规则组合算法。使用了ordered-permit-override算法,因此将按照策略中规定的顺序评估规则。•创建所有必需的策略子组件之后,用它们创建policy对象。将policy对象保存到文件中以便传递给PDP。1.2XACML创建示例2.1.1访问请求用户资源访问由PEP产生的XACML请求:-52- 上海交通大学工程硕士基于RBAC和XACML的XML文档访问控制系统如图5-3PEP产生的XACML请求,访问由DehuaLiu发起,请求在 http://bbc.com/record/stars/DehuaLiu的艺人资料的读权限。DehuaLiuhttp://bbc.com/record/stars/DehuaLiuread 图5-3PEP产生的XACML请求Fig.5-3XACMLrequestPEPemerged1.1XACML策略集如图5-4是针对DehuaLiu读写DehuaLiu的艺人记录的策略集(PolicySet)。 -53- 上海交通大学工程硕士基于RBAC和XACML的XML文档访问控制系统DehuaLiucanreadorwriteDehuaLiu'srecord.DehuaLiuhttp://medico.com/record/patient/BartSimpsonread -54- 上海交通大学工程硕士基于RBAC和XACML的XML文档访问控制系统1.1访问响应如图5-5XACML请求响应是对前图5-3请求的一个响应,决策(Decision)为Permit,允许 DehuaLiu读DehuaLiu的艺人记录。Permit 图5-5XACML请求响应Fig.5-5XACMLrequestrespond2.1.1XML文档数字签名应用示例1.签名示例根据签名在XML文档中的位置,可把签名分为三种:·分离签名(DetachedSignature):元素与被签名的元素各自独立存在;·封外签名(EnvelopingSignature):元素中包含了进行数字签名的元素;·封内签名(EnvelopedSignature):元素成为被签名数据的子元素。图5-6签名示例描述封内签名EnvelopedSignature,主要程序如下:-55- 上海交通大学工程硕士基于RBAC和XACML的XML文档访问控制系统//XMLSignature//签名私钥从JavaKeystore中取得Documentdoc=XmlUtil.getDocument(xmlFileName);//得到签名文档的DOM文 //档对象Signersigner=Signer.getInstance();signer.setDocument(doc);//设置签名文档 signer.setPrivateKey(privateKey);//设置签名私钥 signer.setPublicKey(publicKey);//设置签名验证公钥 Mapns=newHashMap();ns.put("master","urn:master");//名称空间映射 XPathref=newXPath("/master:毕业论文",ns);signer.addReference(ref);//增加签名内容 XPathdest=newXPath("/master:毕业论文",ns);//签名元素位置 Documentd=signer.sign(dest);//产生签名文档图5-6签名示例Fig.5-6Exampleofsignature签名前XML文档: <论文题目>基于RBAC的XML文档访问控制研究 <作者>刘德华<指导老师>李小龙<提交时间>2008-02-01图5-7签名前XML文档Fig.5-7XMLdocumentunsigned签名后XML文档:如图5-8签名后XML文档所示。说明://ds:Signature/ds:SignedInfo签名信息,包含1个元素,1个元素和1..∞个元素。//ds:Signature/ds:SignatureValue签名值。-56- 上海交通大学工程硕士基于RBAC和XACML的XML文档访问控制系统//ds:Signature/ds:KeyInfo签名验证公钥信息。//ds:Signature/ds:SignedInfo/ds:Reference/@URI被签名元素地址。-57- 上海交通大学工程硕士基于RBAC和XACML的XML文档访问控制系统<论文题目>基于RBAC的XML文档访问控制研究<作者>刘德华<指导老师>李小龙<提交时间>2008-02-01JgyfkasYneP/GjSCdEE9+YkSjfA0=uHHTZQX6U9pq1Co8Gih2xnx6i9Fb52dIVkHb8zS1e7jXsEZ9zyI+Bm8c6twvS2wbg5qwm6qq23MVBfAJpYBOWYdKJPBAnTJMuVKUhks5m0ZyI0NIGJwUgedwORObWIwSpxHE6e8VmaPTE6EJDH7bgmwMuLg159nJ1c8FG6CU7EIH=GSQgY9m1zngcdbXUJ/G2YVTOw86XBA8S45ZooQV7gnTBFoQMd0UDV7AvGX/E85ciEGATNvHE4tpf+YbXrx+L397Ljrl/Iea8iyEcI5Pmu8Lp42zZp7dYMZlbj/26+OjM67Q+byzqByo23glY0KMX4bE/aC6kA+o6JaXcub+s5Hs= AQAB 图5-8签名后XML文档Fig.5-8XMLdocumentsigned-58- 上海交通大学工程硕士基于RBAC和XACML的XML文档访问控制系统1.1签名验证签名验证对XML签名文档进行验证,以决定签名是否有效,程序片段如下://签名验证只对签名本身进行验证,没有对签名公钥进行验证。Verifierverifer=Verifier.getInstance();verifer.setDocument(doc);//设置签名验证文档Mapns=newHashMap();ns.put("ds","http://www.w3.org/2000/09/xmldsig#");//名称空间映射XPathloc=newXPath("//ds:Signature",ns);verifier.setSignatureLocation(loc);//设置签名元素位置Booleanvalid=verifier.verify();图5-9签名验证Fig.5-9Signatureverified2.1.1XML文档加密应用示例1.加密示例该加密示例用TripleDES算法进行元素加密,程序片段如下:-59- 上海交通大学工程硕士基于RBAC和XACML的XML文档访问控制系统攻读硕士学位期间已发表的论文[1]吴克栋.访问控制技术研究.科技信息,2008(23)52,70.-64- 上海交通大学工程硕士基于RBAC和XACML的XML文档访问控制系统参考文献[1]景乾元,认真贯彻落实信息安全等级保护制度,公安部十一局。[2]吕瑞麟,陈宜惠,XMLSecurity的发展与应用,台湾,朝阳科技大学,2002.10。[3]W3C.XMLEncryptionSyntaxandProcessing.2002-12-10,http://www.w3.org/TR/2002/REC-xmlenc-core-20021210.[4]W3C.XML-SignatureSyntaxandProcessing.2002-02-12,http://www.w3.org/TR/2002/REC-xmldsig-core-20020212.[5]W3C.org.XMLKeyManagementSpecification(XKMS)Version2.0.2002-03-18,http://www.w3.org/TR/2002/WD-xkms2-20020318.[6]OASIS.cs-xacml-specification-1.1.http://www.oasis-open.org/committees/xacml/repository2003.7.24.[7]NITS,RoleBasedAccessControl,http://csrc.nist.gov/rbacProposedANSIStandard,2003.4.4.[8]AnneAnderson,XACMLProfileforRoleBasedAccessControl(RBAC),OASIS,2004.2.[9]DamianiE,VimercatiSDC,ParaboschiS,SamaratiP.DesignandimplementationofaccesscontrolprocessorforXMLdocuments.ComputerNetwork,2000.3.[10]DamianiE,VimercatiSDC,ParaboschiS,SamaratiP.Afine-grainedaccesscontrolsystemforXMLdocuments.ACMTISSEC,2002.5.[11]ChandramouliR.ApplicationofXMLtoolsforenterprise-wideRBACimplementationtasks.In:SIGSACed.Proc.ofthe5thACMWorkshoponRole-BasedAccessControl,Berlin:ACMPress,2.1.1[12]HitchensM,VaradharajanV.RBACforXMLdocumentstores.In:QingSH,OkamotoT,ZhouJY,eds.Proc.oftheInt’lConf.onInformationandCommunicationsSecurity.Springer-Verlag, 2.1.1[13]VuongNN,SmithG,DengY.ManagingsecuritypoliciesinadistributedenvironmentusingeXtensiblemarkuplanguage(XML).In:SIGAPPed.Proc.ofthe2001ACMsymposiumonAppliedcomputing.2001.-65- 上海交通大学工程硕士基于RBAC和XACML的XML文档访问控制系统[14]傅海英,李晖,王育民.XML访问控制技术研究.网络安全技术与应用,2002.9。[15]赵遐,怀进鹏.基于XML的多粒度访问控制系统.计算机工程与应用,2002.21。[16]RaghavanN.Srinivas,Java安全性的演变和理念,JavaWorld,2000.5.[17]BellDE,LaPadulaLJ.Bell-LaPadulamodelforsecurecomputersystems.TechnicalReport,1976.[18]R.C.Summers,SecureComputing:ThreatsandSafeguards,McGraw-Hill,1997.[19]R.Sandhuetal.,Role-BasedAccessControlmodels,Computer,vol.29,No2,February1996,38-47.[20]Manish.Verma,使用XACML控制信息访问,IBMdevelopWorks,2004.11.[21]BenCalbraith,WhitneyHankison著,吴旭超,王黎译:Web服务安全性高级编程,清华大学出版社2003。[22]SunMicrosystems,Inc.Sun'sXACMLImplementationforJavaVersion1.2,2004.[23]秦超,段云所,陈钟,访问控制原理与实现,教育与培训,2001.5。[24]BlakeDournaee著,周永彬,贺也平,刘娟译:XML安全基础,清华大学出版社2003年版。[25]FankP.Coyle著,袁勤勇,莫青等译,XNL、Web服务和数据革命,清华大学出版社2003年版。[26]TomMyers,AlexanderNakhimovsky著,王辉,张晓辉等译:JavaXML编程指南,电子工业出版社,2001年版。[27]金可仲,陈庆章:XLM数据交换的安全解决方案。[28]徐晓春,陆松年等,基于XACML的Web服务访问控制模型,计算机工程,2004.3。[29]陈志炜,金远平,刘莹莹,面向对象技术在基于角色的访问控制中的应用,计算机应用,2003.12。[30]张亚玲,耿莉,周峰,燕召将,加密XML的访问控制方案,计算机应用,2004.4。[31]许春根,严悍,刘凤玉,基于角色访问控制技术的UML表示,计算机工程与应用,2001.8。[32]ZhangXW,ParkJ,SandhuR.SchemabasedXMLsecurity,RBACapproach.TechnicalReport,IFIPWG11.3,2003.[33]W3C.org.ExtensibleMarkupLanguage(XML)1.0(SecondEdition).2000-10-06,http://www.w3.org/TR/2000/REC-xml-20001006.[34]W3C.org.CanonicalXMLVersion1.0.2001-03-15,http://www.w3.org/TR/2001/-66- 上海交通大学工程硕士基于RBAC和XACML的XML文档访问控制系统REC-xml-c14n-20010315.[35]W3C.org.XMLPathLanguage(XPath)Version1.0.1999-11-16,http://www.w3.org/TR/1999/REC-xpath-19991116.[36]AndrewBrown,LorenHart,andMonicaPawlan.SecuringWebServicesusingtheJavaTMPlatformandXML.2001-06-06,http://developer.java.sun.com/developer/technicalArticles/Security/xkms/.[37]FrederickHirsch.GettingStartedWithXMLSecurity.2002-08-07,http://www.fjhirsch.com/xml/xmlsec/starting-xml-security.html.[38]SamThompson.ImplementingWS-Security.IBMdeveloperWorks,2003-04,http://www-106.ibm.com/developerworks/webservices/library/ws-security.html.[39]MurdochMactaggart.EnablingXMLsecurity-AnintroductiontoXMLencryptionandXMLsignature.IBMdeveloperWorks,2001-09,http://www-106.ibm.com/developerworks/security/library/s-xmlsec.html.[40]安全专题.IBMdeveloperWorks中国网站XML&Webservices专区.http://www-900.ibm.com/developerWorks/cn/xml/theme/security.shtml.[41]安全专区.IBMdeveloperWorks中国网站.http://www-900.ibm.com/developerWorks/cn/security/index.shtml。[42]EduardoB.Fernandez等,安全模型的一种模式语言,UMLChina。 -67-

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
大家都在看
近期热门
关闭