资源描述:
《一种扩展的xacml访问控制模型的研究》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
一种扩展的XACML访问控制模型的研究重庆大学硕士学位论文学生姓名:王琪指导教师:叶春晓教授专业:计算机应用技术学科门类:工学重庆大学计算机学院二O一一年四月 ResearchonanExtendedXACMLAccessControlModelAThesisSubmittedtoChongqingUniversityinPartialFulfillmentoftheRequirementfortheDegreeofMasterofEngineeringByWangQiSupervisedbyProf.YeChunxiaoMajor:ComputerApplicationTechnologyCollegeofComputerScienceofChongqingUniversity,Chongqing,ChinaApril2011 重庆大学硕士学位论文中文摘要摘要互联网已经深刻地改变了软件世界,这是因为越来越多的应用软件系统运行于网络之上。为了节省开发应用软件的精力,为应用程序提供web服务以供调用,在此将web服务看作可复用的软件组件。在开发web服务的过程中,确保web服务执行时的安全信息访问是十分重要的事情。伴随企业信息化程度的不断提高,我们不得不重视安全信息访问的问题。幸运的是,访问控制技术能够有效地保证授权用户对于敏感信息的访问。因此,对访问控制模型及其实现的研究无疑具有非常大的理论及实用价值。世界著名的结构化信息标准促进组织OASIS(OrganizationfortheAdvancementofStructuredInformationStandards)已经构建了专用于表述安全访问控制策略的可扩展的访问控制标记语言XACML(eXtendibleAccessControlMarkupLanguage)的规范标准,XACML具有平台无关、通用、分布式以及可扩展等诸多特点。目前,基于角色的访问控制策略正日益得到广泛应用,而XACML也已经构建了基于角色的访问控制RBAC(Role-BasedAccessControl)框架来支持这种策略。遵循此框架,安全访问控制的实现将变得容易。迄今为止,已经出现了许多有关web服务访问控制模型的研究成果。然而,许多从事这方面研究的研究人员仅仅关注于允许或拒绝某个请求者访问一个web服务。通过对现有的web服务访问控制模型的研究,发现如下两个问题有待解决:①现有模型仅仅做出了“允许或拒绝”的决策,这种决策在web服务访问控制中不够精确;②通过现有模型的控制,一旦允许一个请求者调用了某个web服务,那么该web服务就必须完成所请求的一切事情而不管非安全访问的情况是否会发生。为了解决这两个问题,本文系统地研究了XACML规范、XACML策略的RBAC框架和XSLT/XPATH转换技术,而后提出了一种新型的称为Ex-XACML的访问控制模型,它是XACML的一种扩展模型,并且对该模型的主体模块进行了实现。既然数据库表结构的数据与XACML形式的数据均是结构化的数据,并且它们都能容易地通过XML形式来进行描述,因此本文主要通过XSLT/XPATH转换技术来把以数据库表结构存储的数据转换成由XACML所表述的数据。同时,为了规范统一访问请求的生成,本文实现了访问请求生成模块来生成标准的访问请求。关键词:Web服务,基于角色访问控制,Ex-XACML,信息流控制,XACMLI 重庆大学硕士学位论文英文摘要ABSTRACTInternethasdeeplychangedthesoftwareworldbecausemoreandmoreapplicationsoftwaresystemsoperateonthenet.Inordertosaveapplicationsoftwaredevelopmentefforts,webserviceswhichcanbeseenasreusedsoftwarecomponentshavebeenprovidedforapplicationstoinvoke.Inexploitingwebservices,guaranteeingsecureinformationaccesswhenwebservicesarebeingperformedisimportant.Withthelevelofenterprisesinformatizationimproving,wehavetoattachimportancetotheproblemofsecureinformationaccess.Fortunately,accesscontroltechniquecaneffectivelyensuretheauthorizedusersaccesstosensitiveinformation.Sotheresearchregardingaccesscontrolmodelsandsoftwarerealizationdoubtlesslyhasgreattheoreticalandpracticalvalue.TheworldfamousorganizationOASIS(OrganizationfortheAdvancementofStructuredInformationStandards)hassetuptheXACML(eXtendibleAccessControlMarkupLanguage)specificationstandardspeciallyusedtoexpresssecureaccesscontrolpolicies,andtheXACMLhasplatform-independent,general-purpose,distributed,extensibleandmanyotherfeatures.Nowrole-basedaccesscontrolstrategyisincreasinglywidelyused,andtheXACMLhasestablishedtheRBAC(Role-BasedAccessControl)frameworktosupportRBACstrategy.Andaccordingtotheframework,accomplishingsecureaccesscontrolbecomesverysimple.Sofar,manyresearchesaboutwebserviceaccesscontrolmodelshavebeenproposed.Butmanytheseresearchesfocusonlyonallowingordenyingarequestertoaccessawebservice.Throughstudyingtheexistingwebserviceaccesscontrolmodels,Ifoundthefollowingtwoproblemsthatshouldbedealtwith:①Theexistingmodelsonlymakean“allowordeny”decisionwhichisimpreciseinwebserviceaccesscontrol;②Accordingtothecontroloftheexistingmodels,onceallowingarequestertoinvokeawebservice,thewebservicemustdoeverythingrequestednomatterwhetherunsafeaccesswilloccur.Tosolvethetwoproblems,thispapersystematicallystudiesXACMLSpecification,RBACProfileofXACMLPolicyandXSLT/XPATHtransformingtechnique,andthenproposesannewaccesscontrolmodelnamedEx-XACMLwhichisanextensionofXACMLandaccomplishesthemainmodulesofthemodel.Sincebothdatabasetables’formandXACMLformofpolicydataareallstructureddataandtheycouldbeeasilydescribedbyXML,thispapermainlyusesXSLT/XPATHII 重庆大学硕士学位论文英文摘要transformingtechniquetoconvertthedatastoredintheformofdatabasetablestructureintothedataexpressedbyXACML.Inordertostandardizethegenerationofaccessrequest,thepaperaccomplishesamodulewhichcanbeusedtogeneratethestandardaccessrequest.Keywords:Webservice,RBAC,Ex-XACML,Informationflowcontrol,XACMLIII 重庆大学硕士学位论文目录目录中文摘要..........................................................................................................................................I英文摘要........................................................................................................................................II1绪论.........................................................................................................................................11.1课题背景...................................................................................................................................11.2研究现状...................................................................................................................................21.2.1国内研究现状....................................................................................................................21.2.2国外研究现状....................................................................................................................21.3研究目的与意义.......................................................................................................................31.4本文主要研究内容...................................................................................................................41.5论文组织结构...........................................................................................................................42相关概念与技术介绍.........................................................................................................52.1XACML概念与技术介绍........................................................................................................52.1.1XACML概要......................................................................................................................52.1.2XACML特点......................................................................................................................62.1.3XACML相关术语及概念..................................................................................................62.1.4XACML相关模型..............................................................................................................82.2RBAC概念与技术介绍..........................................................................................................122.2.1RBAC概要.......................................................................................................................122.2.2RBAC相关术语及概念...................................................................................................122.2.3RBAC相关策略实例.......................................................................................................152.2.4分派和启用角色属性......................................................................................................192.3信息流控制概念与技术介绍.................................................................................................202.3.1计算机安全......................................................................................................................202.3.2信息流..............................................................................................................................202.3.3信息流控制......................................................................................................................212.4本章小结.................................................................................................................................223基于扩展的XACML访问控制模型.....................................................................233.1Web服务.................................................................................................................................233.2XACML的体系结构..............................................................................................................233.3Ex-XACML.............................................................................................................................243.3.1Ex-XACML的定义..........................................................................................................24IV 重庆大学硕士学位论文目录3.3.2信息流检测器算法..........................................................................................................293.3.3Ex-XACML的体系结构..................................................................................................313.4本章小结.................................................................................................................................344系统设计与实现.................................................................................................................364.1开发环境与实验平台.............................................................................................................364.1.1实验所使用的主要类简介..............................................................................................364.2Ex-XACML模型功能模块设计............................................................................................364.2.1访问请求生成模块..........................................................................................................364.2.2策略执行模块..................................................................................................................374.2.3上下文处理模块..............................................................................................................394.2.4策略决策模块..................................................................................................................404.2.5策略管理模块..................................................................................................................424.2.6信息流检测器..................................................................................................................424.3从数据库数据到XACML策略的转换设计........................................................................434.3.1转换思路..........................................................................................................................434.3.2转换流程..........................................................................................................................434.3.3转换函数..........................................................................................................................464.4实验测试.................................................................................................................................474.4.1编辑发送访问请求Request............................................................................................474.4.2决策结果..........................................................................................................................494.5本章小结.................................................................................................................................495总结与展望............................................................................................................................505.1工作总结.................................................................................................................................505.2后续研究工作的展望.............................................................................................................50致谢.......................................................................................................................................51参考文献.......................................................................................................................................52附录:A.作者在攻读硕士学位期间发表的论文目录......................................................55B.作者在校期间参加的项目.................................................................................55V 重庆大学硕士学位论文1绪论1绪论1.1课题背景当前,伴随经济的快速发展,信息技术已在不同程度上渗入到经济的不同领域,亦对社会的发展做出了很多重要的贡献。与此同时,计算机技术的普及与互联网技术的广泛应用自然而然地引出了计算机安全的相关问题。计算机安全问题是当前社会必须正视的一个问题,因为它不仅关系到社会不同单位组织工作的正常开展,甚至于影响到我们的日常生活的正常进行。[18]作为计算机安全问题之一的访问控制安全问题正变得日益重要。而在互联网方面,访问控制安全性问题尤为突出。互联网已经在很大程度上改变了软件世界,这是因为越来越多的软件系统在网络上运行。为了在软件开发上节省精力,为各种应用程序提供了web服务调用(在这里,web服务可以当成可重复使用的软件组件)。在开发web服务,确保安全信息访问时,何时执行web服务是重要的。因此很多研究人员开始了对于web服务这个领域中访问控制安全性问题的研究并提出许多访问控制模型。当前已经有许多访问控制方面的相关技术与理论,例如访[19][20]问控制策略理论中便包含有自主性访问控制策略、强制性访问控制策略和基[21]于角色的访问控制策略RBAC(Role-BasedAccessControl)等等。而访问控制策略的实现技术方面则有访问控制表、授权关系表、能力表及XACML(eXtensibleAccessControlMarkupLanguage)语言标准等等。由OASIS组织提出的可扩展的访问控制标记语言XACML是描述安全访问控制策略的一种专用语言,它具有平台无关、通用、分布式、可扩展等特点。XACML[17,29,32]的XML基础让其与web服务的结合变得相对简单。当前已有许多国际大型公司及知名组织于其产品中对XACML语言提供了支持,例如Sun公司提供了可解析XACML语言的sunxacml1.2开发包。当前,基于角色的访问控制策略RBAC是访问控制策略中应用最广泛的一个。这是因为它通过角色的引入让用户的授权更加灵活和易于维护,从而弥补了传统访问控制技术中的缺陷。现在通常是通过数据库中的关系表结构来对RBAC访问策略进行描述,例如用户表、角色表、用户角色分配表、权限表及角色权限分配表等等;而对于RBAC策略里的一些约束条件则可能是经由程序代码等方法来实现。那么,为了确保安全信息访问,构建什么样的一个访问控制模型才能在适当的时候执行web服务?该模型的主体模块如何设计并实现?访问请求方的访问请求如何生成?如何把以数据库表结构形式存储的数据转换成以XACML语言形式来描述的数据?这些均是本文需要研究和解决的问题。1 重庆大学硕士学位论文1绪论1.2研究现状1.2.1国内研究现状在XACML方面,已有的XACML标准为1.0和1.1,以及当前使用较多的2.0,现在XACML3.0版本的规范也已经出现。通过认真研究比较国内的一些相关文献[25-27,30],得出的结论是,国内的大多数有关访问控制的研究主要集中在下面几个方面:①通过XACML来实现一些访问控制模型或来验证一些访问控制的概念。②XACML在web服务访问控制方面的应用。③如何制定基于XACML标准的访问控制策略。经过研究发现,它们都没有涉及到上面提出的两个问题的解决。1.2.2国外研究现状在web服务访问控制方面,到目前为止,已经公布了许多关于它的研究成果。然而,很多这样的研究成果仅将重点放在了允许或拒绝请求者访问web服务上。也有一些研究成果更进一步地解决了web服务间的协商或会话。对于协商的需要是因为某个被调用的web服务可能要调用其他的web服务。通过研究由OASIS组织提出的针对web服务访问控制的参考模型XACML(OASIS,2003),发现它是通过验证请求者的属性来决定该请求者是否可以调用某个web服务。综合以上发现,在web服务访问控制中尚有如下两个问题亟待解决:①现存的模型仅做出“允许或拒绝“的决策;②通过现有模型的控制,当某个请求者被允许调用某个web服务时,该web服务必须做该请求者所请求的一切事情,如果不安全的访问发生,那么该web服务不能够拒绝该次访问。Web服务的访问控制防止请求者和web服务里的敏感信息泄露。现已给出相当多的关于web服务的访问控制模型。下面我们来重点观察一些重要的模型。[1]文献中提出一个web服务的访问控制模型。在这个模型里,请求者使用PMI(特权管理体系)来进行认证。PMI管理着认证的检验、检索和撤销。它还使用一个基于RBAC的web服务访问控制策略来决定一个请求者是否能够调用一个web服务。一般而言,该模型仅仅决定了一个请求者是否能够调用一个web服务,但是它不能解决上面提出的两个问题。[2][3]文献中提出的模型对web服务的访问控制使用了X-GTRBAC。X-GTRBAC[4]可以使用在异构和分布的位置。而且,它适用于TRBAC,从而考虑了时间因素。虽然由Bhatti提出的模型看起来复杂,但是它不能解决上面提出的两个问题。XACML(OASIS,2003)是由关于web服务访问控制的OASIS所提出的一个参考模型。它决定一个请求者是否能够调用一个web服务。XACML的实现有很多,[1]例如文献中提出一个web服务的访问控制模型。但是它们都不能解决上面提出2 重庆大学硕士学位论文1绪论的两个问题。[5]文献中提出的模型讨论了,是否可以调用web服务的成分。需要对此讨论是因为一个web服务可以调用其他的web服务。该模型提供了一种语言来方便执行访问控制规范,这个规范描述了是否能够调用web服务的成分。一般而言,这个模型没有解决上面提出的两个问题。[6][7]文献中提出的模型结合基于角色的访问控制(RBAC)概念来定义自己的访问策略。该模型对web服务访问控制使用两层机制。第一层是服务层,它检验赋予用户(也就是请求者)和web服务的角色。授权请求者是调用web服务的候选者。我们使用术语“候选者”是因为授权请求者要通过第二层来调用web服务。第二层是属性层,它使用参数作为服务的属性并赋予该属性权限。只有当请求者拥有访问属性的权限时,它才可以调用web服务。这种模型的控制要比那些只使用一层控制的模型的控制更加精确。但是,它仍就没有解决上面提出的两个问题。许多研究关注请求者web服务间的协商。下面我们来观察它们中的一些。我们不对此讨论太多,因为那些研究的目的和本文的目的不一样。之所以讨论它们是因为在本文的模型中的基本请求也是一种协商。[8]文献中提出的Trust-Serv模型讨论了,在运行时动态选择web服务。这种选[9]择过程就是一种协商。它使用了信任协商的概念来选择允许调用的web服务。用来决定是否允许调用web服务的主要组件是证书。Trust-Serv描述了使用易于计[10]算机化的状态机的信任协商策略。由文献提出的模型使用了数字证书来管理协[11]商。它定义了协商策略。由文献提出的模型处理了web服务k层调用(一个web服务可以调用其他的web服务,这会产生多层调用)的问题。用于这个模型里的[12-16]主要组件是证书。我们观察的一些模型的目的也是关于协商的(文献)。所有这些研究都是使用一个过程或一种机制来决定是否调用一个或一系列web服务。我们并不否定这些关于协商的研究的价值。可是,它们不能够解决上面提出的两个问题。我们的调查显示,研究人员赞同对web服务有进行访问控制的需要。但是,我们所调查的模型都没有解决上面提出的两个问题。因此,本文设计了自己的Ex-XACML模型。1.3研究目的与意义XACML是一种新出现的实现访问控制的技术,现在在实际应用方面还不是相当成熟。虽然目前有许多研究者对基于XACML的web服务访问控制进行了一定的研究并给出了许多这方面的访问控制模型,但是这些研究与模型仅把重点放在了允许或拒绝请求者访问web服务上,而没有探讨web服务调用和执行期间的安全信3 重庆大学硕士学位论文1绪论息访问的问题。本文给出的在web服务中基于一种扩展的XACML的访问控制模型对这个问题进行了研究与探讨。访问请求方的访问请求的生成的研究,对于规范统一访问请求的生成具有积极的作用。该扩展模型主体模块的实现和把以数据库表结构形式存储的数据转换[40]成以XACML语言形式来描述的数据则有利于促进XACML语言在访问控制的实际应用中发挥出它突出优势。总而言之,本文所做的研究工作,尽管有些仅是一些大胆的尝试和对前人工作的一些完善,但是这无疑会对web服务中基于XACML的访问控制研究领域做出积极的贡献并对传统的基于角色的访问控制系统向新型的基于XACML的访问控制系统的过渡起到积极的作用。1.4本文主要研究内容本文所研究的主要内容如下:①给出在web服务中基于一种扩展的XACML的访问控制模型Ex-XACML并实现该模型的主体模块;②提出信息流检测器的算法并实现,而后将其嵌入到Ex-XACML模型中用于信息流安全的检测;③把以数据库表结构形式存储的数据转换成以XACML语言形式来描述的数据,从而方便该模型系统进行有效决策。1.5论文组织结构第一章就绪论部分,主要介绍了课题背景、研究现状、研究的目的与意义、本文主要研究内容和论文组织结构。第二章主要是对本文研究所涉及的基本理论与技术的介绍,比如XACML规范标准、XACML的RBAC框架和信息流控制技术。第三章在认真研究基本理论与前沿技术的基础上,提出了一个扩展的XACML访问控制模型,并详细论述了该模型构建的基本理论以及功能特点。第四章主要是针对本文所开展的几个方面的研究进行实现和实验验证。第五章是总结与展望。4 重庆大学硕士学位论文2相关概念与技术介绍2相关概念与技术介绍2.1XACML概念与技术介绍计算机技术的发展日新月异,而其中Web应用技术的成长更为迅速且它的应用规模亦在日益扩大,与此同时对Web应用至关重要的访问控制技术的研究也自然而然地成为一种趋势。值得注意的是,对越来越复杂化的数据资源的安全管理正在成为大规模网络应用系统和数据库管理系统不得不面对的难题。访问控制(AccessControl)是国际标准化组织(ISO)在网络安全标准(ISO7498-2)里所定义的五个层次型安全服务中的一个重要构成部分。访问控制机制能够对重要敏感资源的访问进行限制,对非法用户的系统进入和对合法用户的系统资源非法使用进行阻止。访问控制是一种安全机制,它同时也是信息安全理论的一个相当重要的构成部分。它允许授权主体对一些客体的访问,也拒绝向非授权主体提供服务。主体、资源和动作及其属性是典型的访问控制与授权场景所包含的三个关键实体。主体请求获得对某些资源进行相关动作的权限。例如,在访问请求“允许医生在病人病历上进行信息写入”中,主体是“医生”,目标资源是“病人病历”,动作是“信息写入”。[22,28]可扩展的访问控制标记语言XACML(eXtensibleAccessControlMarkupLanguage)是一种建立在XML基础之上的开放标准语言,是国际标准化组织制定的安全策略表述标准。2.1.1XACML概要于1993年创建的结构化信息标准推进组织OASIS(OrganizationfortheAdvancementofStructuredInformationStandards)是个非营利性的国际组织,它为安全与电子商务标准化两者做出了很大的贡献。[23]2003年2月,XACML1.0版本以OASIS标准(OASISStandard)的身份出现;2003年8月,XACML1.1版本作为OASIS委员会规范(OASISCommitteeSpecification)出现;2004年9月30日,发布了XACML2.0版委员会草案(CommitteeDraft);2005年12月XACML2.0版本及相关文档正式成为OASIS标准;2010年3月11日,出现了XACML3.0版委员会草案。简而言之,一种描述性语言其实是XACML的本质,访问控制的策略与规则以及访问控制的请求与回复是其描述的对象,甚至于整个访问控制的过程亦是其描述对象。XACML不但提供了一套语言文法的规范定义,而且给出一套逻辑算法来控制整个授权过程,更重要的是它还可以针对新功能定义、数据结构和组合逻辑算法来进行合理的扩展。它能够依据主体、资源和环境的属性与行为来控制相关5 重庆大学硕士学位论文2相关概念与技术介绍的访问——拒绝或允许。允许(Permit)、拒绝(Deny)、无法判断(Indeterminate)及不可适用(NotApplicable)是请求与策略匹配后的四种回复结果。下面两个问题是XACML所要重点处理的问题:首先,是构建某种可移植及标准的形式来对访问控制实体和其属性进行描述;其次,是提供某种更加细粒度的控制机制,即是说,较之于简单的“允许或拒绝”访问控制,该机制能够在“允许”或“拒绝”的前或后执行其他操作。XML成为XACML的描述性语言是一件相当自然的事情,这是因为XML所具有的元语言特性、语法与语义的可扩充特性和得到广泛支持的特性使得它可以向访问控制过程提供很好的支持。2.1.2XACML特点①XACML是平台无关的。XACML是基于XML的,自然而然地XML的平台无关性也延伸到XACML当中。不管运行环境是Windows抑或Unix等操作系统,不管是运行在何种LAN或WAN上,都不会影响到XACML的运行。②XACML是通用的。通过XACML规范能够制定出有通用性的访问控制策略,由于该策略能以相同的格式来书写,能以相同的方式来处理,甚至于可能是由同一个安全管理员所书写的。一个面向多组织且基于XACML的访问控制策略定然能够适用于每个组织中的访问控制应用。③XACML是分布式的。通过使用XACML,处于不同物理位置的访问控制策略可以相互引用以相同标准制定的其他策略。如此,不必集中地管理一个集成访问控制策略,而是通过不同的用户或者用户组来管理策略里各自领域内的子策略并且最后并合成总策略。④XACML是可扩展的。XACML标准自身已经定义了多种数据类型、函数以及策略组合算法。一般情况下,这已经能够表示相对完善的访问控制策略。而且XACML还允许用户自己定义所需的元素及属性来满足特殊的访问控制要求。2.1.3XACML相关术语及概念1)行为(Action):资源上的一个操作。2)可适用策略(Applicablepolicy):一套策略和策略集,为某个指定的决策请求来管理访问。3)属性(Attribute):一个主题、资源、动作或环境的特性,它可以被引用在一个判定或目标中。4)授权决策(Authorizationdecision):可适用策略的计算结果,由策略决策6 重庆大学硕士学位论文2相关概念与技术介绍点PDP返回到策略执行点PEP。“Permit”、“Deny”、“Indeterminate”或“NotApplicable”及一系列可选的义务可以作为其计算结果。5)上下文处理程序(Contexthandler):一种系统实体,它将本地请求格式的决策请求转换成XACML的规范形式,和将XACML的规范形式的授权决策转换成本地响应格式。6)决策(Decision):规则、策略或策略集运算的结果。7)决策请求(Decisionrequest):由一个PEP发送到一个PDP的请求,该请求要求该PDP给予相应的授权决策。8)职责(Obligation):一个策略或策略集里所指定的一种操作,该操作应该由PEP与授权决策的实施一起来执行。提供更高级别的访问控制是XACML的目标之一,而不只是提供允许与拒绝决策,职责为这种控制的实现提供了相应的机制。在策略评估之后,将指定的职责和授权决策一道发送给PEP,除了强制执行授权决策外,PEP还要执行职责所指定的相关操作。9)策略(Policy):一套规则,一种规则组合算法的标志符和一套可选的职责。也可以是一个策略集的组件。10)策略管理点PAP(Policyadministrationpoint):它是一个系统实体,一个策略或策略集可成为该实体所生成的对象。11)策略决策点PDP(Policydecisionpoint):用来计算可适用策略并提供一种授权决策的系统实体。12)策略执行点PEP(Policyenforcementpoint):通过制定决策请求和执行授权决策来执行访问控制的系统实体。13)策略信息点PIP(Policyinformationpoint):充当属性值来源地的系统实体。14)规则(Rule):是一个策略的组件,一个策略能够与多个规则关联。在XACML领域的一个主要角色(actor)里可以孤立存某个规则。为了要在主要角色间进行规则交换,一定要把它们封装在策略里。根据规则的内容,可对它求值。一个规则的主要组件由目标(Target)、效果(Effect)及条件(Condition)组成。a.目标:是一个规则预期计算的,可通过对主体、资源和行为的定义来识别的决策请求的集合。b.效果:一个符合条件的规则的预期结果,其值要么是“Permit”要么是“Deny”。c.条件:是一个布尔表达式,该表达式改进了规则的适用性,其计算结果可以是“True”“False”或“Indeterminate”。条件可以不存在。14)规则组合算法(Rule-combiningalgorithm):从多个规则中组合决策的过程。多个规则可以同时存在于一个策略里,然而冲突可能会发生不同的规则之间。7 重庆大学硕士学位论文2相关概念与技术介绍规则组合算法主要职责就是要处理解决这些冲突,每个策略和每个请求都将得到一个最终的结果。每一个策略只可以使用一种规则组合算法。相应的授权决策的最终获得是结合该算法与策略里全部规则的计算结果的必然产物。在XACML里,定义了如下几种规则组合算法(用户亦可自定义规则组合):a.拒绝覆盖(Deny-Overrides):在策略中的整个规则集合里,如果任何规则的计算结果是“Deny”,那么此规则组合的最终授权应该是“Deny”。也就是说,在该算法中,“Deny”结果具有优先权。b.有序的拒绝覆盖(Ordered-deny-overrides):和拒绝覆盖一样,不过计算相应规则的顺序要与把规则加入到策略里的顺序相一致。c.允许覆盖(Permit-overrides):在策略中的整个规则里,如果任何规则的计算结果是“Permit”,那么此规则组合的最终授权应该是“Permit”。也就是说,在该算法中,“Permit”结果具有优先权。d.有序的允许覆盖(Ordered-permit-overrides):和允许覆盖一样,不过计算相应规则的顺序要与把规则加入到策略里的顺序相一致。e.优先适用(First-applicable):对于最先碰到的第一个相关规则,它的计算结果将会成为最终授权决策的计算结果。15)目标(Target):每一个策略均只有一个目标,通过此目标来确定该策略与请求是否有关。经由定义目标里的三种属性(主体、资源和动作)和其属性值来实现下面这个过程,就是根据策略与请求间的相关性来确定是否应该为请求计算此策略。这三种属性不一定都存在于目标中。该属性的值和请求里有同样属性的值相比较,如果相互匹配(通过相应的匹配函数来进行匹配),那么便认为此策略是相关的,并对其进行相应计算。2.1.4XACML相关模型①数据流模型图2.1的数据流模型显示了XACML领域里的主要角色。该模型由如下几个组件构成:访问请求者(accessrequester)、策略执行点(PEP)、策略决策点(PDP)、策略信息点(PIP)、策略管理点(PAP)、主体(subjects)、环境(environment)、资源(resource)、职责服务(obligationsservice)和上下文处理器(contexthandler)。注意:通过一个存储库,该图显示的一些数据流就变得容易了。例如,通过一个存储库,上下文处理器与PIP间或者PDP与PAP间的通信就变得容易了。XACML规范不打算限制任何一个这样的存储库或为任何一个数据流规定一个专门的通信协议。8 重庆大学硕士学位论文2相关概念与技术介绍accessobligations2.accessrequestPEP13.obligationsrequesterservice3.request12.response4.requestnotification5.attributequeriescontext9.resourcePDPresource10.attributeshandlercontent11.responsecontext6.attribute8.attributequery7c.resourceattributes1.policyPIP7b.environmentattributes7a.subjectattributesPAPsubjectsenvironment图2.1数据流模型Fig.2.1Data-flowdiagram该模型通过以下步骤操作:第一步:PAP写出策略和策略集并让它们适用于PDP。这些策略或策略集表示针对一个指定目标的完整的策略。第二步:访问请求者向PEP发送一个访问请求。第三步:PEP以本地请求格式(也就是PEP能够理解的请求格式)向上下文处理器发送访问请求,该格式可选择地包含主题、资源、行为和环境属性。第四步:上下文处理器重新构造一个XACML请求上下文并把它发送给PDP。第五步:PDP向上下文处理器请求任何其他所需要的主题、资源、行为和环境的属性。第六步:上下文处理器向PIP请求这些属性。第七步:PIP获得上下文处理器所请求的属性。9 重庆大学硕士学位论文2相关概念与技术介绍第八步:PIP把请求到的属性返回到上下文处理器中。第九步:上下文处理器可选择地获得上下文里的资源。第十步:上下文处理器把请求到的属性和可选的资源发送到PDP。PDP对策略求值。第十一步:PDP返回响应上下文(包含授权决策)到上下文处理器。第十二步:上下文处理器把响应上下文转换成PEP的本地响应格式,而后把经转换后的响应信息发送到PEP。第十三步:PEP按照接收到的响应信息履行职责。第十四步:如果允许访问,那么PEP允许访问资源;否则,它将拒绝访问。②上下文模型XACML意在适用于各种应用环境。通过XACML定义的上下文模型,能够对不同的通讯消息形式(例如访问请求和访问响应等等)进行转换,让它成为符合于XACML标准的形式,从而来实现和环境里的不同实体进行无缝隙的通信及交流,并最终把它纳入到XACML访问控制的适用范围里。xacmlPolicy.xmldomain-specificxacmlContext/xacmlContext/domain-specificPDPinputsRequest.xmlResponse.xmloutputs图2.2上下文模型Fig.2.2XACMLcontext如图2.2所示,阴影区表示XACML规范的适用范围,通过XACML上下文,实现核心语言与实际应用环境相分离。XML架构定义了XACML上下文,该架构对PDP的输入与输出的规范表达进行了描述。一个XACML策略的实例所引用的属性可以是XPath表达式的形式,这个XPath表达式可以是上下文中的或是属性标志符中的,该属性标志符可通过主题、资源或环境和它的标志符、数据类型和可选的其发布者来识别该属性。执行时必须要经过转换,该转换发生在应用环境中的属性表示(例如:SAML、J2SE、CORBA等等)和XACML上下文中的属性表示之间。如何实现这一转换已经超出XACML规范的范围。在一些情况下,例如SAML,通过使用一种XSLT转换以一种自动的方式来完成转换。注意:PDP不需要直接在一[31]个策略的XACML表示上进行操作。它可以直接在一个替代表示上进行操作。10 重庆大学硕士学位论文2相关概念与技术介绍③策略语言模型XACML策略语言模型向我们表示出了XACML表示访问控制策略的一切语言元素。这同时也显示了XACML语言的特点。通过这种模型,进行访问控制体系建构与设计的人员能够完成个人的派生控制模型的形式化描述及真值检验。图2.3显示了策略语言模型。1PolicySet10..*1111PolicyCombiningAlogorithm10..*0..*11TargetPolicyObligation0..110..*1111110..*0..*0..*0..*1SubjectResourceActionEnvironmentRuleCombiningAlgorithm0..*1Rule110..11ConditionEffect图2.3策略语言模型Fig.2.3Policylanguagemodel该模型的主要组件是规则(Rule)、策略(Policy)和策略集(Policyset)。这三个元素均可包含主题(Subject)、资源(Resource)和行为(Action),进而构成“对某一资源某一用户能够执行某种操作”的权限。任何策略均要使用此三个元素里的一个或多个来表示自身。1)规则与目标规则是策略的最基本单位。它可以孤立存在于XACML领域的一个主要角色里。为了在主要角色间交换规则,必须把它们封装在策略里。根据规则的内容,可对它求值。一个规则的主要组件有目标、效果和条件(可选)。按照一个请求来检索相应的策略是PDP工作的一部分。为达到这点,XACML11 重庆大学硕士学位论文2相关概念与技术介绍提供目标(Target)元素。实际上,目标就是在一个Policy、PolicySet或Rule里碰到的有关资源(Resource)、动作(Action)与主题(Subject)的条件限制。这些条件限制通过使用布尔表达式来比较某个请求里的参数值与某个目标里的对应值。如果两者的对应项相匹配,那么就会反该请求关联到相关的Policy、PolicySet和Rule上。2)策略与策略集Policy或者PolicySet是一切XACML访问控制策略的根。一个策略由目标、规则(可选)、规则组合算法及职责(可选)构成;而一个策略集由目标、策略集(可选)、策略(可选)策略组合算法及职责(可选)构成。一个PolicySet可包含Policy或者其他PolicySet。一个策略(Policy)表示一个单独访问控制策略引用,这按照一系列规则(Rule)来实现。每个XACML访问控制策略文件均于它的XML标签根部包含唯一的一个PolicySet或者Policy,而一个Policy或者PolicySet能够包含多个规则或者策略。由于这些规则或者策略可能产生不同的访问控制判断结果,因此XACML需要某个办法来协调判断结果。XACML提供一套组合算法(Combiningalgorithms)来实现这一要求。在XACML中,PolicySet采用“策略组合算法(Policy-combiningalgorithms)”而Policy采用“规则组合算法(Rule-combiningalgorithms)”。除了XACML所提供的七种标准组合算法外,用户亦可构建个人的组合算法来满足个人要求。2.2RBAC概念与技术介绍2.2.1RBAC概要基于角色的访问控制RBAC(Role-BasedAccessControl)的出现受到广泛的关注。它不同于自主访问、强制访问等传统的访问控制。RBAC里,角色和权限相互关联,用户凭借充当适当角色里的成员来获得该角色的相应权限。如此以来,便大大地简化了权限管理。在某个组织里,角色因完成不同的任务而产生,而用户则按照其职责与资格被指派对应的角色,用户可相当容易地在不同角色指派间进行变换。不同的需求可让角色得到不同的权限,而依照需要也可从角色里回收相应的权限。总之,角色和角色的关系能够表现许多客观事物间的关系。针对于XACML的RBAC架构标准,就怎样应用XACML策略语言以来描述ANSI-RBAC规范里所定义的RBAC的核心与层次规范,进行了相关定义。而使用此架构不需要对XACML策略语言标准进行扩展。2.2.2RBAC相关术语及概念RBAC允许依据主体角色而不是严格依据不同的主体身份指派的策略。这对于访问控制系统的可扩展性和可管理性来说是重要的。12 重庆大学硕士学位论文2相关概念与技术介绍[24]此架构里的XACML策略能够解决三种类型的问题:第一种问题是,如果某个主体具有可用的角色R1、R2、…Rn,那么该主体能够由某个给定的动作来访问某个给定的资源吗?第二种问题是,某个主体允许具备某个角色吗?第三种问题是,如果某个主体具有可用的角色R1、R2、…Rn,那么这意味着该主体会具备与某个给定的角色R’相关的权限吗?即是说,角色R’是等于或者低于R1、R2、…Rn中的任何一个角色吗?在该架构里指定的XACML策略不能够这样的问题,即“某个主体会拥有多少角色?”。必须通过角色启用机构(RoleEnablementAuthority)来处理这个问题,而不是通过PDP来直接进行处理。指定于该架构中的XACML策略均这样假设,在对授权决策进行请求时某个给定主体的所有角色都已经被启用了。此架构里没有处理这样的情况,即依据某个主体所要执行的资源或动作来动态地启用角色。鉴于此,该架构里亦没有涉及动态或静态职责分离问题。这种类型的情况可能会在将来得到解决。①角色在此架构里,通过XACML的主体属性来表示角色。但有两个例外:在或的角色赋值里和在的HasPrivilegesOfRole里,通过资源属性来表示角色。可通过下面两种方式来表示角色属性,该方式取决于应用环境的需要。在一些情况下,可能有少许这样的角色属性,其中每个属性的名称是表示角色的某个名称,而每个属性的值则表示所保留的角色的名称。举个例子,在角色属性表示的第一种情况下,可能有一个角色属性的AttributeId为“&role”(本架构推荐这种标识符的使用)。而角色属性的值可能为“&role;manager”、“&role;employee”、“&role;officer”。在对XACML策略进行描述时此种表达角色的方式非常好,同时这种识别角色的方法也最有利于交互性。此外于其他应用环境下,可能会有许多不同的属性标志符,每个属性标志符表示一个不同的角色。举个例子,在角色属性表示的第二种情况下,或许有三种属性标志符出现:“urn:someapp:attributes:officer-role”、“urn:someapp:attributes:manager-role”和“urn:someapp:attributes:employeerole”。这种情形下,属性值有可能为空或包含与该角色相关的不同参数。XACML策略能够处理以该种方式来表达的角色,可是这种处理却没有第一种方式来得自然。有多个请求主体位于XACML所支持的每个访问请求里,这表明同时参与此次访问请求的是多个不同的主体。例如,一个用户至少是间接地发起了一个请求request。而后通常有一个或更多个应用程序或代码库代表此用户生成了实际上低级的访问请求。有一些应用程序或代码库在上面执行的计算设备,而且该设备可能13 重庆大学硕士学位论文2相关概念与技术介绍有一个例如IP地址的身份。XACML用一个SubjectCategory的XML属性来识别每个这样的主体,这种XML属性表示正被描述的主体类型。例如,用户拥有一个&subject-category的SubjectCategory、access-subject(这是默认的分类);生成访问请求的应用程序拥有一个&subject-category的SubjectCategory、codebase等等。在本架构里,一个角色属性可能相关联于任何一个涉及做出某个访问请求的主体的分类。②策略本架构里指定了四种类型的策略:1)RPS(Role)RPS将给定角色属性和值的拥有者与一个PPS(Permission)联系在一起,此PPS包含与给定角色相关的实际权限。RPS的元素限制了其对拥有相关角色属性与值的主体的适用性。每个RPS引用一个相应的PPS,但并不包含或引用任何其他的或元素。2)PPS(Permission)PPS包含了与给定角色相关联的实际权限。它包含元素和,描述了允许主体访问的资源与行为,同时它也包含任何更进一步的限制该访问的条件,比如日期时间。一个给定的PPS也可能包含和其他角色相关联的PPS的引用,这些角色要比给定角色的级别低,从而允许该给定的PPS继承与所引用PPS角色相关的所有权限。PPS的元素,如果存在的话,不必限制其适用的主体。3)RAP/S(RoleAssignmentor)RAP/S定义了哪些角色能够,被启用或者被分派给哪些个主体。它也可对角色的组合进行约束,或对某个给定主体所允许启用和分派的角色数目进行约束。经由角色启用机构来使用这种类型的策略。对于RAP/S的使用是可选的。4)HPORP(HasPrivilegesOfRole)假如某个PPS支持这样的一个请求,即“某个主体是否具有与某个角色相关联的特权”,那么该PPS将包含一个HPORP。PPS实例必须要存储于策略库中。而且必须由相应的RPS才能访问到PPS。之所以如此,是因为要支持层次性的角色,某个PPS必须要应用于每个主体。PPS依赖其对应的PPS。把RPS与PPS分离便能够支持层次RBAC,如此父角色(SeniorRole)便能够获得更多子角色(JuniorRole)的权限。③多角色权限(Multi-RolePermission)本架构里,可能要表达这样的策略,即“为了获得对某些权限的访问,某个用14 重庆大学硕士学位论文2相关概念与技术介绍户必须同时具有多个角色”。举例来说,要修改某个病人的护理指导时,可能要求执行该行为的主体拥有外科医生与工作人员两者的角色。该策略可通过使用某个RPS来进行表达,在此元素要求该主体拥有所有必需的角色属性。可以通过使用包含多个元素的一个单独的元素来实现这一点。相关的PPS应该指定与主体相关的权限,这些主体同时拥有所有指定的启用角色。2.2.3RBAC相关策略实例在此假设某个机构里使用两个角色,管理员(manager)和雇员(employee)。下面的实例使用了XACML2.0语法。①管理员角色的PPS图2.4的PPS中包含了与管理员角色相关的权限。管理员角色的PPS策略的PolicySetId是“PPS:manager:role”。其中含有一个Policy与PolicySetIdReference。PolicySetIdReference的意思是所引用的PolicySet的名称。在此PPS策略里所引用的PolicySet为“PPS:employee:role”。此种引用实际上体现了角色继承,说明管理员角色是继承了雇员角色的权限。图2.4管理员角色的PPSFig.2.4PPSofmanagerrole15 重庆大学硕士学位论文2相关概念与技术介绍②雇员角色的PPS图2.5的PPS包含了与雇员角色相关的权限。雇员角色的PPS策略的PolicySetId是“PPS:employee:role”。在此包含了一个Policy。此PPS策略由管理员角色的PPS策略引用。图2.5雇员角色的PPSFig.2.5PPSofemployeerole③管理员角色的RPS依据其,图2.6的RPS仅适用于拥有一个&role且属性值为“&roles;manager”的主体。指向与管理员角色相关的PPS。管理员角色的RPS策略的PolicySetId是“RPS:manager:role”。由元素能够看出,一旦一个主体具有角色manager,那么它便能够访问策略PolicySetId是“PPS:manager:role”的PPS。16 重庆大学硕士学位论文2相关概念与技术介绍图2.6管理员角色的RPSFig.2.6RPSofmanagerrole④雇员角色的RPS依据其,图2.7的RPS仅适用于拥有一个&role且属性值为“&roles;employee”的主体。指向与雇员角色相关的PPS。雇员角色的RPS策略的PolicySetId是“RPS:employee:role”。由元素能够看出,一旦一个主体具有角色employee,那么它便能够访问策略PolicySetId是“PPS:employee:role”的PPS。图2.7雇员角色的RPSFig.2.7RPSofemployeerole17 重庆大学硕士学位论文2相关概念与技术介绍⑤HPORP策略和请求一个XACML的RBAC系统有可能选择支持类似这样的查询,即“这个主体具有某个角色的特权吗?”。如果这样的话,那么每个PPS必须要含有一个HPORP。对于管理员角色的PPS来说,所包含的HPORP如图2.8所示:图2.8管理员角色的HPORPFig.2.8HPORPofmanagerrole对于雇员角色的PPS来说,所包含的HPORP如图2.9所示:图2.9雇员角色的HPORPFig.2.9HPORPofemployeerole18 重庆大学硕士学位论文2相关概念与技术介绍询问“主体Anne是否拥有与管理员角色相关的特权”的请求看起来如图2.10所示:图2.10HPORP请求实例Fig.2.10RequestexampleofHPORP2.2.4分派和启用角色属性向用户指派不同的角色属性并在会话期间启用角色属性,这些超出了XACMLPDP的范围。因此,必须由角色启用机构引用一个或多个独立的实体来实现这些功能。本架构作如下假设,在用户做出访问决策请求时,就已经给用户指派了一个有效的角色属性。然而,主体的角色属性来自于什么地方呢?一个角色启用机构(RoleEnablementAuthority)看起来是怎样的一个实体呢?这些问题依赖于程序的实现,同时也存在下面的一些可能性。在一些情况下,角色属性有可能源自一个负责维护用户信息的身份管理服务器,这些信息包括主体所被指派或允许的角色,而在此身份管理服务器充当了角色启用机构。这个服务器有可能在LDAP目录里保存了静态角色属性,而且PDP上下文处理器(PDPContextHandler)可以从此目录里获得信息。抑或该服务器可能会响应源自于PDP上下文处理器的某个主体角色属性的请求,在此该请求的传输采用了SAML属性查询的格式。角色启用机构可以利用XACMLRAP/S来决定主体是否能被允许拥有某个特定角色属性与属性值。RAP/S能够回答的问题是“某个主体允许启用某个角色吗?”。角色启用机构有必要具备某种机制来了解要为哪些个角色提交一个请求。举例来说,角色启用机构有可能持有所有可能角色的一个清单,当被要求检索与某个给定主体相关的角色时,它会为每个候选角色做出一个RAP/S请求。在本架构里,RAP/S策略有别于RPS与PPS策略。我们使用RPS和PPS策略来决19 重庆大学硕士学位论文2相关概念与技术介绍定与某个角色相关联的访问权限,而只当角色启用机构发送XACML请求时方使用RAP/S策略。没有固定形式的RAP/S策略,下面的实例提供了一个可能的形式。它含有两个XACML元素。第一个元素表示,主体Anne、Seth与Yassir能够于每天的上午9时到下午5时期间拥有角色“&role;employee”。而第二个元素则表明,主体Steve于每天的任何时段均可拥有角色“&role;manager”。2.3信息流控制概念与技术介绍信息流控制IFC(Informationflowcontrol)是一种就某种安全规范来维护一个软件系统安全的技术。随着可移动代码和安全相关的应用程序的普遍出现,有关[33]IFC的研究正在迅速崛起。信息流控制通常用于特殊的类型系统验证。但是,类型系统没有采用当代程序分析的整个指令表,从而受到限制的语言和高注释的负担。最近程序分析上的进步给予了这种技术以可行性及可伸缩性。2.3.1计算机安全技术意义上的安全被定义成受到保护而免遭危险或损失的情况,并强调了免遭来自于外界的危险。从计算机科学的角度来说,要能够识别出下面三个主要的安全层面上危险。①机密性。机密性是数据隐私的保证。只有那些有意且被授权的个人、进程或设备才能够访问机密的数据。②完整性。完整性是数据不被改动的保证。数据完整性确保信息在从发送点到接收点的传输过程中不被篡改,并包括对不可靠输入有效性的检测。③可用性。可用性是为授权用户提供对数据服务及时与可靠的访问的保证。它确保信息或资源在需要时是可用的。基于语言的安全从源代码或中间代码中派生出安全属性。为达此目的,它利用编程语言技术。由于基于语言的技术不能够验证瞬时属性,所以仅将目标放在了机密性和完整性上。2.3.2信息流传统的信息安全只考虑一个软件和它的用户的身份及数据源。一个例子就是[34,35]Bell和LaPadula的类型访问控制,这已经在所有主要操作系统里成为强制性的。其他标准的方式包括加密、签名、反病毒软件代码、防火墙、自动更新。但是,所有这些方式不能够确保整个数据处理线路的安全(端到端的安全),而仅在20 重庆大学硕士学位论文2相关概念与技术介绍计算过程里在某个点进行违规检验。问题在于这些标准的方式仅仅检验身份和数据源,而忽略了软件的语义。例如,访问控制可能只检验某个用户是否有权访问某个服务或机密数据。发布数据后,如果一个程序将机密数据公开,那么它将不再能够对其控制,因为这需要对该程序的语义进行分析。所以,对于传统方式的使用,用户只能抱希望于某款软件不要恶意使用自己的数据,而这通常只能取决于一个公司的地位与声誉了。但是,过去发生的此类事件已经公开,甚至著名的软件厂商也收集他们用户的相关信息并传送回自己的服务器。作为一种补救,基于语言的安全可为一个程序的信息流验证某种安全策略。一个信息流策略为一个给定的系统定义安全需求,比如在一个计算里如何使用数据的权限和约束。最受青睐的是端到端的安全,在那里敏感数据在整个处理路线[36]中都受到保护,例如从文件系统(带有访问控制)中,通过一个程序里的数据处理,直到最终将它呈现给某个授权用户。既然访问控制被集成到所有主要的操作系统中,所以在数据处理过程中控制信息流仍然是很大的挑战。信息流有如下两种存在形式:①显式流(ExplicitFlow):当y被赋予一个值,而该值的计算包含一个对x的引用时,从x到y的显式流出现了。y=f(x)就是显式流的一个例子。②隐式流(ImplicitFlow):在y的执行依赖于x的值的地方,从x到y的隐式流自控制流中出现了。例如,程序“if(x==0)y=0elsey=1;”便包含了从x到y的隐式流。从历史上看,一些作者将隐式流看作一种转换通道,然而,在今天,没有再发现这种分类,因为隐式流能够由基于语言的技术来检验。2.3.3信息流控制所谓信息流控制IFC是指,如何控制信息流通过某个程序通道的方法。在上面提到的计算机安全三个主要层面中,信息流控制主张机密性和/或完整性。通常完[37]整性承担了双重机密性,因此通常所描述的仅是如何维护机密性。信息流控制能够在线(在程序执行期间)或离线(通常在编译期间)进行。这两种方法有不同的优势与缺点。在线(动态)IFC的主要优势是,它不会不合逻辑地拒绝安全程序的执行,所以它是精确的。它的信息分类可以是静态的(对于整个执行过程每个变量具有一个固定的安全等级)或者是动态的(安全等级由每次任务来决定)。但是,就像大多数的动态程序分析一样,它不能表现程序的通用安全,而且它减慢了带有运行时测试的程序的执行。而且,动态检测充其量能够阻止将要发生的非法流,但是怀有恶意的对手可能获取了程序由于违反安全策略而被终止的信息,所以该程序[38]至少泄露了布尔信息。一些系统使用专门的技术来避免这种信息泄露,但是这些可能因存在副作用而非有效的。在检测隐式流中,运行时IFC的最受限的属性出21 重庆大学硕士学位论文2相关概念与技术介绍现了。为了通过控制结构来检测信息流,一个称为程序计数器PC(programcounter)的合成变量跟踪控制流结构里的数据安全性。但是,一个控制判定p的安全标签不仅限制在一个给定程序执行里由该判定所控制的语句的安全等级,而且限制在另一个执行里可能变成该判定p的一个结果的变量的安全等级。但是动态分析的特点是只分析一个执行路线而还是所有可能的路线。一种检测所有可能的隐式流的方法是,为程序的剩下部分在p的安全等级上保持PC,这使得在现实中进行动态分析有太多的限制。相比而言,静态(离线)IFC仅需要进行一次(通常在编译时)。如果程序能够被检验,那么没有程序执行能够显示非法的信息流,这避免了运行时检验的开[33]销。但是,精确的静态IFC分析是不可判定的,所以所有的静态分析需要是稳当可靠的。结果是,总有一类安全程序会被不合逻辑地拒绝。[39]作为补救,一些IFC系统如Jif提供了一种混合方法:编译器确证尽可能多的静态可能来限制必需的运行时检验次数并且仅仅在不能被静态检验的用户指定的程序点处插入动态检验。2.4本章小结历经多年的发展,访问控制技术现已形成较为完整的体系结构。灵活应用相应的访问控制技术无疑会加强计算机访问的安全。XACML的基础是XML,而通过使用XML元语言的相关特性,可相当方便地对访问控制策略进行统一的管理。本章首先详细地描述了XACML的运行原理以及策略结构;其次细致阐述了XACML策略的RBAC架构的相关内容,其中包括对该架构里规定的策略类型与相应实例的描述;最后给出了信息流控制的相关内容,对于信息流控制技术的研究目前比较热,并没有统一标准的理论,这里仅就对本文研究有帮助的相关方面的内容进行了介绍。22 重庆大学硕士学位论文3基于扩展的XACML访问控制模型3基于扩展的XACML访问控制模型在这部分,首先我们来描述Web服务。然后再来描述XACML的体系结构,因为我们的Ex-XACML模型是XACML的一种扩展。最后,我们来描述Ex-XACML。3.1Web服务图3.1(W3CWorkingGroup,2004)描述了一种基于Web服务应用的体系结构,它由三个相互协作的部分构成。这三个部分分别是服务请求方、服务提供方和服务代理。既然一个web服务可以调用另一个web服务,那么一个请求可以是一个应用程序或者是一个web服务。服务代理记录下由服务提供方提供的web服务。当一个新的web服务被提供时,服务提供方应当向服务代理登记该服务。当一个请求者请求一个web服务时,该请求方向服务代理查询该服务存在与否。如果查询结果是肯定的,那么该请求者就调用由服务提供方提供的这种web服务。在图我中,这三个部分通过基于XML的简单对象访问协议SOAP(SimpleObjectAccessProtocol)协议相互交流。总之,这三个部分可以是在同一位置上的或是分布式的。服务代理PSOAAOPSSOAP服务请求方服务提供方图3.1Web服务的体系结构Fig.3.1Webservicearchitecture3.2XACML的体系结构XACML(OASIS,2003)是由OASIS提出的一个参考模型。它提供了定义访问控制策略的机制。在不同的安全需求下,可通过该机制来定义不同的控制策略。图3.2描述了XACML的体系结构,在这里,组件“Resources”对应web服务。请注意,在原XACML模型里,“Requester”组件被描述成“User”组件。在XACML里,PAP写出策略并且策略位于策略库中。语境处理程序在XACML组件间执行格式转换。通过XACML的控制,当一个请求者请求访问一23 重庆大学硕士学位论文3基于扩展的XACML访问控制模型种资源时,PEP取得控制权来决定该请求是被允许不是被拒绝。在决策期间,PIP收集属性。被收集的属性包括,诸如资源名称的资源信息、诸如请求者角色的请求者信息、诸如系统时间的环境信息、诸如操作类型的行为信息。然后,收集来的属性被传送至PDP,该PDP通过检查这些属性是否满足与所调用的web服务相关的策略来进行决策。最终的决策返回到PEP。如果该请求被允许,那么该请求者可以访问该资源。否则,该请求将被拒绝。请求方PEP资源上下文处理器PDPPIP策略库PAP图3.2XACML的体系结构Fig.3.2XACMLarchitecture3.3Ex-XACML3.3.1Ex-XACML的定义Ex-XACML是一种扩展的XACML。因此,Ex-XACML的组件几乎与XACML的组件相同。但是,笔者将信息流检测功能赋予到Ex-XACML组件中,来解决前面提到的两个问题。在Ex-XACML中,在调用一个web服务前,请求者应当满足基本的要求。验证某个请求者是否通过了基本要求的过程,相当于在请求者和web服务间进行协商的过程。因此,基本要求就是前面提到的协商的结果。笔者的研究将重点放在了解决前面提到的两个问题上,而不仅仅是解决协商的问题。当一个请求者通过了基本要求的验证并且调用了某个web服务时,该web服务将开始运行。在其运行期间,Ex-XACML将检测会产生信息流的指令是否安全。如果某个不安全的信息流被检测出来,那么该web服务会被终止来阻止信息泄露。下面将给出Ex-XACML的定义。定义1:Ex-XACML={USR,RLE,URA,VAR,ACLS,DSOURCES,BR},其中:①USR是用户集。当某个应用程序运行时,用户们扮演着相应的角色。24 重庆大学硕士学位论文3基于扩展的XACML访问控制模型②RLE是角色集。Ex-XACML将一个对象看作一个角色。将对象看作角色是容易理解的,因为人们已经频繁地将现实世界中的对象映射成软件中的对象。RLE③URA是用户—角色的赋值集,它被定义成:USR—>2。④VAR是出现在请求与web服务中的变量集。某个变量可以是一个对象的属性、用于对象方法中的私有变量或者是一个方法的返回值。⑤ACLS是访问控制序列集(ACLs)。Ex-XACML将ACLs赋给变量,它是Ex-XACML里的权限。既然ACLs被赋给变量,那么对于变量来说控制粒度是详细且明确的。我们需要这种细粒度控制,因为不同的变量可能具有不同安全级别的信息。一般而言,应该使用角色来定义ACLs(也就是权限)。但是使用角色(也就是对象)来定义ACLs会产生不精确的控制。我们用一个例子来解释这一点。假设医生能够浏览和改变指派给自己的病人的病历;此外,医生能够浏览但不能够改变非指派给自己的病人的病历。在这种假设下,如果一个病人指派给了一个医生,那么该医生对象的方法“browse_case_history”和“change_case-history”能够访问该病人对象的属性“case_history”。另一方面,如果一个病人没有指派给一个医生,那么该医生对象的方法里仅有“browse_case_history”而非“change_case-history”能够访问该病人对象的属性“case_history”。假设我们把对象看作角色。那么,当允许一个对象访问一个变量时,该对象的每个方法都能够访问该变量。在上面的例子里,这就会允许每个医生对象的方法“browse_case_history”和“change_case-history”来访问每个病人对象的属性“case_history”。这会在上面提到的控制例子中造成麻烦。所以,使用角色来定义ACLs会产生不精确的控制。基于这种考虑,Ex-XACML使用对象方法代替角色(也就是对象)来定义ACLs。让MD表示对象方法集,ACLvar定义如下:ACLvar={RACLvar;WACLvar},MDRACLvar∈2,其中允许RACLva里的对象方法读取var。MDACLvar∈2,其中允许WACLvar里的对象方法写入var。我们需要RACL和WACL两者,因为Ex-XACML控制读、写访问。⑥DSOURCES是数据源集(DSOURCEs)。Ex-XACML里的每个变量都与一个便于写访问控制的DSOURCE相关。DSOURCE记录了对象的方法,通过该方法某个变量的数据可被写入。例如,假设变量“var”来自变量“var1”和“var2”,且由对象方法“md1”和“md2”分别写入“var1”和“var2”。那么,推导后“var”的DSOURCE是集合“{md1,md2}”⑦BR是前面提到的基本要求集。在如下文字里,我们将在描述Ex-XACML里的信息流检测策略前来描述BR。请注意,定义1中没有包括在RBAC里提到的重要组件“role-permissionassignments”和“sessions”。没有包括“role-permissionassignments”是因为ACLs说明25 重庆大学硕士学位论文3基于扩展的XACML访问控制模型了能够由角色的方法来读和/或写的变量。也就是说,“role-permissionassignments”嵌入在ACLs里。至于“sessions”,我们假设当调用web服务时自动生成一个“session”;而当该服务结束时会撤销该“session”。因此,不需要明确定义“sessions”。为了检验一个请求者是否能够调用一个web服务,该请求者和web服务应该首先通过基本要求,它构成了Ex-XACML里的BR组件(参见定义1里的第⑦项)。下面将详细描述BR组件。在我们最初的设计里,我们使用ACLs来定义基本要求。然后,我们确认了,ACLs只适合检验一个访问在一个程序里是否安全,或检验从一个程序到另一个程序的调用是否安全。但是,在可以添加或移除程序的环境下不能够使用它们来检验从一个程序到另一个程序的调用是否安全。理由是,对于定义ACLs来说知道每个程序的变量是必要的。在一个基于web服务的环境里,应用程序和web服务两者都可以被随时添加或移除。因此,我们使用了另外的机制代替ACLs来定义基本要求。该机制称为信任管理机制。为了定义这种机制,BR组件应该包含如下子组件:①安全级别数字:当请求者调用web服务时,每个该请求者的参数和该web服务的返回值都应该与一个安全级别数字相关。该数字由程序员设置,因为该请求者和web服务两者都不知道该参数和返回值的安全级别。程序员首先决定该参数和返回值的安全级别。然后,再给该参数和返回值设置合适的安全级别数字。EXAML为一个安全级别数字使用一个四位无符号数字。也就是说,安全级别数字介于0(也就是以位表示的“0000”)和15(也就是以位表示的“1111”)之间。在Ex-XACML里,较大的安全级别数字意味着更加敏感的信息。②信用级别数字:每个应用程序和web服务与一个信用级别数字相关。如安全级别数字一样,Ex-XACML为一个信用级别数字使用一个四位无符号数字。在Ex-XACML里,较大的信用级别数字意味着更加可靠的应用程序或web服务。③调用图:一个web服务可以调用其他web服务。信托管理机制需要一个调用图来表示web服务间的关系。当请求者调用一个web服务时,该关系便于识别由该请求者将要调用的web服务的组成。下面我们描述这三个子组件在信托管理机制里的使用。当创建一个新web服务时,把该服务注册到UDDI。除了这个web服务,将由新添加的web服务所调用的现存web服务也应该被注册。此外,新添加web服务的返回值的安全级别数字也要被注册。已注册的调用关系允许UDDI建立一个调用图。然后该UDDI提供给该新添加web服务一个初始信用级别数字。在我们的设计里,初始信用级别数字是15(也就是完全信任)。应用程序的信用级别数字也被注册在UDDI里,且它们的初始值也是15。给新添加的应用程序和web服务以完全信任是无害的,因为当它们企图泄26 重庆大学硕士学位论文3基于扩展的XACML访问控制模型露信息时Ex-XACML模型将会停止应用程序或web服务的执行。我们认为,无论何时新应用程序和web服务需要执行时,赋予完全信任会带来最少的限制。例如,当请求者想要调用一个新web服务时,该web服务的完全信任提高了该web服务调用的可能性。也就是说,只要新web服务不泄露信息,就可以提高对它们的利用。另一方面,如果一个新web服务泄露信息,Ex-XACML将会阻止这种泄露。而且,应用程序和web服务两者的信用级别将会按照程序执行期间它们的动态行为加以调整(参见如下描述的信用级别数字的增加/减少的规则)。综上所述,我们认为给新添加的应用程序和web服务赋予完全信任是合理的。当一个应用程序APPLI要调用一个web服务WEBSER时,APPLI的程序员赋给发送到WEBSER的每一个参数一个安全级别数字。然后Ex-XACML向UDDI发送APPLI和WEBSER的名称。收到该名称后,UDDI通过检验调用图来检索所有被调用的web服务(包括WEBSER)。该UDDI然后返回给Ex-XACML如下信息:①APPLI的信用级别数字,②被调用的web服务及它们的信用级别数字,和③被调用web服务的返回值的安全级别数字。假设:①WEB是被调用web服务的集合,②WEBcln[i]是WEB里第i个web服务的信用级别数字,③WEBsln[i]是是WEB里第i个web服务返回值的安全级别数字,④APPcln是APPLI的信用级别数字,⑤ARG是由APPLI所发送参数的集合,⑥ARGsln[i]是ARG里第i个参数的安全级别数字。有了上述六个组件,对APPLI调用WEBSER的基本要求列举如下:第一个基本要求:Min(WEBclni)>=Max(ARGslni)第二个基本要求:APPcln>=Max(WEBslni)在该基本要求里,函数“Min”从一系列数据中选取最小值,而函数“Max”则是选取最大值。第一个基本要求需要,每个被调用服务的信用级别数字必须不得小于任何由APPLI所发送参数的安全级别数字。该基本要求旨在确保,所调用的web服务不会泄露参数所携带的信息。第二个基本要求需要,APPLI的信用级别数字必须不小于任何正被调用web服务返回值的安全级别数字。该基本要求旨在确保,APPLI不会泄露由返回值所携带的信息。正如上面所提到的那样,程序员设置了参数的安全级别。此外,程序员所注册的调用关系创建了调用图。因此,在应用程序执行期间,不会改变安全级别数字和调用图。至于应用程序和web服务的信用级别数字,它们不被程序员控制。相反,它们按照应用程序和web服务的动态行为而自动增加和减少。增加/减少每次执行一个时间增量(增量长度由Ex-XACML用户定义)。增加/减少规则描述如下:信用级别数字增加规则:如果一个应用程序不泄露从在一个时间增量内它所调用的web服务中返回的信息,那么该应用程序的信用级别数字提高一个数量。27 重庆大学硕士学位论文3基于扩展的XACML访问控制模型同样,如果一个web服务不泄露从在一个时间增量内由一个应用程序所发送的参数中接收的信息,那么该web服务的信用级别数字提高一个数量。请注意,信用级别数字不应大于15。信用级别数字减少规则:如果一个应用程序泄露了从它所调用的web服务中返回的信息,那么该应用程序的四位信用级别数字右移一位(最高有效位由0填充)。同样,如果一个web服务泄露了从由一个应用程序所发送的参数中接收的信息,那么该web服务的四位信用级别数字右移一位(最高有效位由0填充)。按照上述规则,增加是缓慢的而减少是快速的。因为信息保护的重要性,所以这是合理的。至于识别一个应用程序或web服务是否泄露了信息,将由下面提出的Ex-XACML安全规则来完成。虽然下面的描述提到了应该检验一个web服务的执行,应用程序的执行也应该进行检验来确保不发生信息泄露。因此,可以很容易地获得增加/减少规则所需要的数据(也就是信息泄露是否发生在一个时间增量里)。目前为止,我们已经描述了基本要求(也就是Ex-XACML的BR组件),来检验是否允许从一个应用程序到一个web服务的调用。但是,正如我们在前面所提到的那样,允许一个调用不能够确保信息泄露不会发生。因此,当正执行所调用的web服务时,我们要确保引起信息流的每个指令都是安全的。Ex-XACML要求,当web服务里的一个信息流出现时,应该执行下面两个Ex-XACML安全规则:为了定义该规则,我们假设:(1)变量“d_var”被赋予一个值,该值来自集合“{vari|vari∈VAR,VAR在定义1里且i介于1和n之间}”,(2)该赋值出现在对象方法“md1”里,(3)“d_var”的原始ACL是“{RACLd_var;WACLd_var}”,(4)派生的第i个变量的ACL是“{RACLvari;WACLvari}”,和(5)vari的DSOURCE是“DSOURCEvari”:第一个Ex-XACML安全规则:(RACLnd_var⊆RACLvari)∧(md1∈i1nRACLvari)i1n第二个Ex-XACML安全规则:WACLd_var⊇DSOURCEvari∪{md1}i1n第一个Ex-XACML安全规则控制读取访问。条件“RACLd_var⊆RACLvari”i1要求,对“d_var”的限制必须至少要和派生“d_var”的变量一样。条件“md1∈nRACLvari”是必需的,因为方法“md1”读取派生的“d_var”变量并把派生的数据i1赋予“d_var”。第二个Ex-XACML安全规则控制写入访问。它要求,派生“d_var”的变量的数据源在“WACLd_var”内,因为来自该变量的数据要写入“d_var”。该规则也要求方法“md1”必须在“WACLd_var”内,因为由该方法来执行写入操作。把派生的数据赋给变量“d_var”后,连接操作应该改变“d_var”的ACL来防止间接的信息泄露。我们使用符号“”来表示连接操作符。通过连接在把派生的数据28 重庆大学硕士学位论文3基于扩展的XACML访问控制模型n赋给变量后,ACLd_var将会变成ACLACLvari。i1vari定义2:在集合“{vari|vari∈VAR,VAR在定义1里且i介于1和n之间}”里的变量的连接操作定义如下:nnnACL(RACL,WACL)i1varii1varii1vari该连接操作信任小于或等于读取者集合的集合。因此,连接不会降低安全级别。另一方面,连接操作信任更多的写入者。这是合理的,因为对于来自变量的数据来说应该把写入该变量的写入者看作可信任的数据源。如果一个变量被赋予一个常数,那么不会执行任何连接操作而且该变量的ACL保持不变。除了连接ACLs,对“d_var”的DSOURCE将作如下调整:nDSOURCEDSOURCE{md}d_vari1vari1“DSOURCEd_var”是派生“d_var”变量的DSOURCEs和方法“{md1}”的并集。DSOURCEs的并集是显而易见的,因为所有派生出计算结果的数据源应该考虑该结果的数据源。方法“md1”也是数据源,因为计算结果由“md1”写入到“d_var”。3.3.2信息流检测器算法为了说明下面的算法,特做以下规定和定义:规定1:D=D1∪D2∪…∪Dn∪{nil},其中,D1、D2、Dn是域的有限集合,nil是一个特殊元素。把D的每个元素称为一个原始对象(一个整数、一个字符串等等)。规定2:A是属性名称的集合。规定3:I是系统对象标志符的集合。规定4:U是所有用户标志符的集合。把系统用户称为对象且每个用户有一个唯一的用户标志符。规定5:O=I∪U。把O的每个元素称为一个对象标志符oid。规定6:读访问列表RACL。每个属性att和一个读访问列表相关联,该列表包含那些有权读取属性att的对象。规定7:写访问列表WACL。每个属性att和一个写访问列表相关联,该列表包含那些有权写入属性att的对象。规定8:权限列表PERL。每个方法m和一个权限列表相关联,该列表包含那些有权调用方法m的对象。规定9:创建访问列表CACL。每个对象o和一个创建访问列表相关联,该列表包含那些有权创建对象o实例的对象。定义3:一个非原始对象o是一个元组,其中,i∈I,A是一个属性名称集合,V是一个属性值集合(每个属性值都在D∪I内),M是一个方法名称集合。29 重庆大学硕士学位论文3基于扩展的XACML访问控制模型在此定义中,一个非原始对象有一个oid、一个有序属性集、一个有序属性值集和一个方法集。定义4:从一个对象发送到另一个对象的消息msg是一个元组,其中,m是一个方法,参数pari∈D∪I∪A,这些参数是传递到方法m的变元值。此定义表明,一个消息由所调用的方法名称和一系列参数构成。每个参数可以是一个值(一个原始对象)、一个oid或一个属性。定义5:对一个消息的回复reply要么是success、failure、NIL(一个空回复),或是一个返回值元组,其中,rpi∈D∪I,I=1,…,n。定义6:假设一个执行ei调用执行ej和执行ek,我们说,如果ej先于ek被调用,那么执行ej优先于执行ek。定义7:假设ej是一个由对象oi的执行ei所调用的对象oj的方法mj的执行。由对象oi发送到对象oj来调用ei的消息是。一个参数的RACL定义如下:①如果pari∈A,即该参数是一个属性att,那么RACL(pari)=RACL(att)。②如果pari∈I,即该参数是一个oid,那么RACL(pari)=O。③如果pari∈D,即该参数是一个原始对象(即一个计算值),那么RACL(pari)=VACL(ei),其中,正如在定义6里定义的那样,VACL(ei)是那些能够通过ei访问一个计算值的对象的集合。上面的情况①和②可以自我解释。对于情况③,pari是一个通过ei得到的计算值。当计算pari时,可能用到如下的任何一个:1)ei的一些参数。2)ei读取的一些属性。3)一个方法的一些返回值,该方法被ei所调用。4)来自上面任何一个的计算值。因此,pari至少应该得到和用来派生它的上面任何元素一样的保护。为了确定如何派生pari值,我们在定义6里定义了VACL(ei),它考虑了ei的所有参数。定义6:VACL(ei)是能够通过ei来访问一个计算值的对象的集合。VACL(ei)是被逐步构建的,当执行ei进行如下时:①在ei开始时,如果ei被一个用户调用或它没有参数,那么设置VACL(ei):=O,否则设置VACL(ei):=RACL(par1)∩RACL(par2)∩…∩RACL(parn)。②每次ei读取一个属性att时,设置VACL(ei):=VACL(ei)∩RACL(att)。③每次ei从某个方法mk的执行ek中接收一个回复时,设置VACL(ei):=30 重庆大学硕士学位论文3基于扩展的XACML访问控制模型VACL(ei)∩RACL(ek),其中,RACL(ek)是定义在定义8里的允许读取ek的回复的对象集合。请注意,情况③包含了情况②,基于本文可读性的需要而将它列出。为了确定一个回复是否应该返回到调用者或是否应该被阻止,我们定义了与执行相关联的读访问列表。定义8:假设ei是对象oi的一个方法的执行,读访问列表与它相关联。RACL(ei)是有权访问ei的回复里的信息的对象的集合。RACL(ei)是逐步构建的,当执行ei进行如下时:①如果ei是属性att的读取,那么设置RACL(ei):=RACL(att)。②如果ei是写入或创建,那么设置RACL(ei):=O。③如果ei不是读取、写入,也不是创建,那么:1)在ei开始时,设置RACL(ei):=O。2)每次ei读取一个属性att时,设置RACL(ei):=RACL(ei)∩RACL(att)。3)每次ei从某个方法mk的执行ek中接收一个回复时,设置RACL(ei):=RACL(ei)∩RACL(ek)。请注意,情况3)包含了情况2),基于本文可读性的需要而将它列出。信息流检测器的相关算法如下:Input:运行在oi上的执行ei所发送的消息msg。该消息需要oi上的执行ej。Output:Yes(产生信息流),No(没产生信息流)。1If(msg==)Then{//ej是读取2RACL(ej):=RACL(att);//更新ej的读访问列表3RACL(ei):=RACL(ei)∩RACL(ej);//更新ei的读访问列表4reply:=CreateInfoFlow(msg);//判定执行ej是否产生信息流5returnreply;}6ElseIf(msg==Then{//ej是写入7WACL(ej):=WACL(att);//更新ej的写访问列表8WACL(ei):=WACL(ei)∩WACL(ej);//更新ei的写访问列表9reply:=CreateInfoFlow(msg);//判定执行ej是否产生信息流10returnreply;}3.3.3Ex-XACML的体系结构图3.3给出了Ex-XACML的体系结构。它和图3.2的不同处在于将“信息流检测器”组件加到Ex-XACML上。该组件是一个软件代理程序,用来检验是否某个指令会产生信息流。如果某个指令产生了信息流,那么这个代理程序会将这个指令发给Ex-XACML来检验该信息流是否安全。如果这个信息流安全,就执行它。之所31 重庆大学硕士学位论文3基于扩展的XACML访问控制模型以加上这个代理程序,是因为检验某个指令会耗费太多执行时间。让该代理程序在一个单独的地方独立地执行,可以减少运行时开销。下面将描述要实现信息流检测功能将如何对图3中的组件进行安排:①策略库(PolicyRepository)存储用户、角色、用户—角色赋值、ACLs和DSOURCEs的信息。②PIP为PDP收集信息来进行决策。当某个请求者意图调用某个web服务时,PIP收集参数、返回值和接收返回值的变量。从请求者向web服务发送的信息是基于XML的嵌入到SOAP协议的信息,因此PIP是一个XML解释器。③PDP通过检验基本要求来确保某个调用是否被允许。需要检验基本要求的信息由PIP收集并从UDDI处得到。而且,在执行web服务期间,PDP也检验信息流是否安全。用来检验的必要的信息,诸如ACLs和DSOURCEs,是从策略库处得到的。④PAP进行连接运算。⑤PEP是个接口组件。当PEP从请求者那收到关于调用web服务的请求时,PEP通知PIP来收集上面(2)中提到的信息。然后,将收集来的信息发送到PDP来检验是否满足Ex-XACML的基本要求。如果检验通过,PDP将会通知PEP而且PEP将允许该请求者调用web服务。当PEP从“信息流检测器”代理处获得指令来检验信息流安全时,它会把该指令发送给PDP。然后,PDP检验是否满足Ex-XACML安全规则。如果检验通过,PEP将通知web服务继续执行。否则,PEP通知web服务终止执行。⑥“上下文处理器”正如在XACML模型中一样提供相同的功能。⑦UDDI存储应用程序和web服务的信用等级数。它也存储web服务返回值的调用图表和安全等级数。这些信息并不存储在原来的基于web服务的应用程序中的UDDI里。但是,对于Ex-XACML却是必须的。存储这些信息是对UDDI的扩展,从而来支持Ex-XACML。图3.3描述了EXACM体系结构里的三个主要组件。它们是请求者、Ex-XACML模型(包括信息流检测器)和web服务。当使用Ex-XACML时,将这个模型嵌入到编程语言中。为了防止由应用程序或web服务引起的信息泄露,我们应该使用嵌入Ex-XACML的编程语言。在实验里,我们评估了总体结果。评估组件间的个别成本是困难的。虽然目前我们没有评估“信息流检测器”和PEP间的成本,但是应该对它进行评估,因为“信息流检测器”是一个代理程序。评估该成本有助于我们获得使用代理程序的重要信息。我们把这种评估作为以后的工作。32 重庆大学硕士学位论文3基于扩展的XACML访问控制模型请求方Ex-XACMLPEPWEB服务信息流控制器上下文处理器PDPPIP策略库PAP图3.3Ex-XACML的体系结构Fig.3.3Ex-XACMLarchitecture正如前面提到的那样,已经提出相当多的关于web服务访问控制的模型。我们调查的模型通常设计策略来决定一个请求者是否可以调用一个web服务。前面明确地指出现存模型的问题:①这些模型仅仅提供“允许或拒绝”策略,和②当请求者被允许调用web服务时,这些模型在该web服务执行期间不能够拒绝非安全信息访问。Ex-XACML被设计来解决这些问题,通过提供如下特点:①该访问控制比“允许或拒绝”策略更加精确,和②这种模型会拒绝在web服务执行期间,甚至当请求者被允许调用该web服务时的非安全信息访问。如下描述证明了Ex-XACML提供了这些特点。假设:①应用程序APPLI打算调用web服务WEB,②APPLI和WEB的信用级别分别为APPcln和WEBcln,③由APPLI发送的参数的最大安全级别数字是MAXARGsln,和④WEB返回值的安全级别数字是WEBsln。当APPLI调用WEB时,APPLI应该信任WEB。否则WEB可能泄露由APPLI所发送的信息。基于这点,WEB的信用级别数字应该至少和由APPLI所发送的每个参数的安全级别数字一样。这带来下面的要求,“WEBcln>=MAXARGsln”,可通过前面部分里提到的Ex-XACML的第一个基本要求来达到该要求(请注意,第一个基本要求假设APPLI可调用一系列的web服务,但这里我们仅使用一个web服务来简化解释)。另一方面,当APPLI调用WEB时,WEB应该信任APPLI。否则APPLI可能泄露WEB的返回值。基于这点,APPLI的信用级别数字应该至少和WEB返回值的安全级别数字一样。这带来下面的要求,“APPcln>=WEBsln”,可通过Ex-XACML的第二个基本要求来达到该要求。按照上面的描述,第一个基本要求保护发送到web服务的信息,而第二个基33 重庆大学硕士学位论文3基于扩展的XACML访问控制模型本要求保护返回到请求者的值。也就是说,Ex-XACML提供了上面提到的特点:“保护请求者和web服务两者的信息”。现存模型仅仅检查请求者是否可以调用一个web服务。与现存模型相比,Ex-XACML进一步地防止在web服务执行期间的信息泄露。即,Ex-XACML提供了前面提到的两个特点。为了确保安全,现存模型通常建立严格的策略来决定请求者是否可以调用web服务。然而,“可以调用”和“安全调用”并非必然相同,因为现存模型没有检查程序执行期间的数据流。在我们的考虑中,我们建立易于通过的基本要求来过滤掉明显不可信的调用。我们说该要求易于通过是因为我们提供给每个新应用程序和web服务以完全信任来提高web服务调用的可能性。但是“易于通过”并不等同于“非安全调用”,因为Ex-XACML检查应用程序和web服务执行期间的每个数据流。任何非安全的信息将会终止web服务的执行,从而来阻止信息泄露。该阻止可以通过部分3.3里提到的两个Ex-XACML规则和连接操作来实现。按照第一个Ex-XACML安全规则,当变量VAR的值派生自一系列变量时,VAR的安全级别应该至少和该变量集合里的每个变量的安全级别一样,从而阻止高安全级别变量的值流向低安全级别变量。按照第二个Ex-XACML安全规则,当变量VAR的值派生自一系列变量时,VAR应该信任该变量集合里每个变量的数据源。这个规则阻止由不可信数据源造成的信息讹误。而且,该Ex-XACML连接操作防止了间接的信息泄露。按照上面的描述,Ex-XACML显然提供了“拒绝在web服务执行期间,甚至当请求者被允许调用该web服务时的非安全信息访问”的特点。至于特点“该访问控制比‘允许或拒绝’策略更加精确”,我们使用部分1里的例子来解释它。假设:①web服务WEB在某些情况下管理敏感信息(比如银行客户的帐号和密码)和在其他情况下的非敏感信息(比如由银行提供的广告),②应用程序APPLI打算调用WEB,和③APPLI仅能访问WEB里的非敏感信息。因为APPLI不能访问由WEB所管理的敏感信息,所以从APPLI到WEB的调用将会被现有模型所提供的“允许或拒绝”策略拒绝。但是,Ex-XACML会允许该调用,因为APPLI和WEB两者最初获得完全信任。只要APPLI不要求WEB访问敏感信息(也就是,当APPLI调用WEB时,每个WEB信息流满足两个Ex-XACML规则),WEB的执行就能完成。另一方面,如果APPLI打算通过WEB来访问敏感信息,WEB的执行将会终止并且APPLI的信用级别将会降低。根据上述情况,Ex-XACML比“允许或拒绝”策略提供了更加精确的策略。3.4本章小结针对当前Web服务领域对安全的需求,本文给出一种Ex-XACML访问控制模34 重庆大学硕士学位论文3基于扩展的XACML访问控制模型型,它是XACML的一种扩展模型。它植入信息流检测的概念来确保安全信息访问且它的BR组件确保了是否允许从一个应用程序到一个web服务的调用。因此该模型具有如下特点:①它比“允许或拒绝”策略更加精确;②它会拒绝在web服务执行期间,甚至当请求者被允许调用该web服务时的非安全信息访问。35 重庆大学硕士学位论文4系统设计与实现4系统设计与实现4.1开发环境与实验平台本文以MyEclipse8.0为开发平台,J2SDK1.6为开发环境。所使用的主要工具如下:WindowsXPsp2操作系统,Sun公司所开发的SunXACMLImplementationVersion1.2,Apache团体组织的Tomcat5.0,用于GUI设计的Swing。4.1.1实验所使用的主要类简介Sun公司按照OASISXACML标准设计了SunXACMLImplementationVersion1.2,本文基于它对Ex-XACML模型的相关功能进行了实现。图4.1简介了所使用的主要类:图4.1主要类简介Fig.4.1Mainclasses4.2Ex-XACML模型功能模块设计Ex-XACML模型主要包括五个相应的模块,它们分别是访问请求生成模块、策略执行模块、上下文处理模块、策略决策模块和策略管理模块。下面来逐个描述它们的设计思路。4.2.1访问请求生成模块为了确保访问请求者访问请求的规范一致性,要有一个专门的模块来对访问请求者发送的访问请求进行统一规范的处理,这便是访问请求生成模块所要处理36 重庆大学硕士学位论文4系统设计与实现的事情。①请求者发送请求的格式如下:②经过访问请求生成模块格式化后的信息格式如图4.2所示:图4.2格式化后的访问请求信息格式Fig.4.2Informationformatofaccessrequestafterformatted4.2.2策略执行模块策略执行模块PEP其实是个接口组件。当该模块从请求者那收到关于调用web服务的请求时,PEP通知PIP来收集参数、返回值和接收返回值的变量等信息。然后,将收集来的信息发送到PDP来检验是否满足Ex-XACML的基本要求。如果检验通过,PDP将会通知PEP而且PEP将允许该请求者调用web服务。当PEP从“信息流37 重庆大学硕士学位论文4系统设计与实现检测器”代理处获得指令来检验信息流安全时,它会把该指令发送给PDP。然后,PDP检验是否满足Ex-XACML安全规则。如果检验通过,PEP将通知web服务继续执行。否则,PEP通知web服务终止执行。①策略执行模块的数据流模型图4.3给出了策略执行模块的数据流模型,它的执行步骤如下:第一步:访问请求者将通过访问请求生成模块处理过的访问请求发送给策略执行模块PEP。第二步:PEP收到访问请求后通知PIP收集所需要的信息,而后将所收集来的信息以访问决策请求的形式发送到策略决策模块PDP来检验是否满足Ex-XACML的基本要求。第三步:如果通过基本要求的检验,PDP以访问决策回复的形式通知PEP来允许访问请求者所请求的动作;否则就拒绝所请求的动作。第四步:当PEP从“信息流检测器”代理处获得指令来检验信息流安全时,它会以安全检验请求的形式把该指令发送给PDP来要求进行安全检验。第五步:PDP检验是否满足Ex-XACML安全规则,并将安全检验结果通知PEP。第六步:策略执行模块PEP将最终的访问结果反馈给访问请求者并依据结果来决定是否执行相关操作。af..访访问问请结求果d.安全检验请求策略执行模块e.安全检验结果bc..访访问问决决策策请回求复图4.3策略执行模块数据流模型Fig.4.3Data-flowmodelofpolicyenforcementmodule②策略执行模块涉及的主要函数及输入输出38 重庆大学硕士学位论文4系统设计与实现主要函数:1)由访问请求产生访问决策请求:CreateDecisionRequest(accessRequest):=accessDecisionRequest。2)发送访问决策请求并等待访问决策回复:SendDecisionRequest(accessDecisionRequest):=accessDecisionReponse。3)发送安全检验请求并等待安全检验结果:SendSecurityCheckRequest(securityCheckRequest):=securityCheckResult。4)由访问决策回复和安全检验结果来执行访问控制:ExecuteAccess(accessDecisionReponse,securityCheckResult):=accessResult。输入:经过访问请求生成模块格式化后的访问请求:accessRequest:=(User,Role1,Role2,…,Rolek,Operation,Object)输出:访问结果:反馈给访问者的信息及决定是否执行相关动作。4.2.3上下文处理模块上下文处理模块的功能是在XACML上下文格式与所用系统的相关信息格式间进行格式转换,而且提供了一种消息机制。①上下文处理模块的数据流模型图4.4给出了策略执行模块的数据流模型,它的执行步骤如下:第一步:与所用系统相关的访问决策请求格式,还要含有用户、角色、操作、对象及其他约束信息。格式转化模块会提取这些信息并且生成遵循XACML上下文的决策请求。第二步:消息模块使用SOAP封装XACML决策请求并为它的传送做好准备。第三步:将由SOAP封装的XACML决策请求发送到策略决策模块PDP,并且等待PDP给出的决策结果。第四步:消息处理模块接收到由SOAP封装的XACML决策结果后对SOAP封装进行拆封,并提取XACML上下文格式的决策结果。第五步:将决策结果提交到格式转化模块,把其转化成适合系统的决策格式,有可能只是一个布尔值。第六步:将决策结果发送到策略执行模块进行进一步的处理。39 重庆大学硕士学位论文4系统设计与实现上下文处理模块c.XACML决策请求a.访问决策请求b.XACML决策请求SOAP消息格式消转息换模模块块d.XACML决策回复f.访问决策回复e.XACML决策回复SOAP消息图4.4上下文处理模块数据流模型Fig.4.4Data-flowmodelofcontexthandlermodule②上下文处理模块涉及的主要函数及输入输出主要函数:1)把本系统自身格式的访问决策请求转换成XACML上下文格式的访问决策请求。ToXacmlRequest(accessDecisionRequest):=xacmlAccessDecisionRequest。2)发送XACML上下文格式的访问决策请求并等待访问决策回复:SendXacmlRequest(xacmlAccessDecisionRequest):=xacmlAccessDecisionReponse。3)通过XACML上下文格式的访问决策回复,产生本系统自身格式的访问决策回复:SendSecurityCheckRequest(securityCheckRequest):=securityCheckResult。输入:本系统自身格式的访问决策请求:accessDecisionRequest:=(User,Role1,Role2,…,Rolek,Operation,Object)输出:本系统自身格式的访问决策回复:accessDecisionResponse:=(permit|deny)。4.2.4策略决策模块策略决策模块PDP通过检验基本要求来确保某个调用是否被允许。需要检验基本要求的信息由PIP收集并从UDDI处得到。UDDI存储应用程序和web服务的信用等级数。它也存储web服务返回值的调用图表和安全等级数。存储这些信息是对40 重庆大学硕士学位论文4系统设计与实现UDDI的扩展,从而来支持Ex-XACML。而且,在执行web服务期间,PDP也检验信息流是否安全。用来检验的必要的信息,诸如ACLs和DSOURCEs,是从策略库处得到的。①策略决策模块的数据流模型图4.5给出了策略执行模块的数据流模型,它的执行步骤如下:第一步:从策略执行模块PEP经由上下文处理模块发送出的由SOAP所封装的XACML决策请求。经过策略决策模块里的上下文处理模块对SOAP消息进行拆封,从而提取出XACML决策请求。第二步:将XACML决策请求发送到XACML策略决策点进行决策。XACML策略决策点通过决策请求及访问控制策略来产生决策结果,与此同时把相应的决策时间、决策请求及决策回复相关信息存储到审计信息库里。第三步:将获得的XACML决策结果发送到上下文处理模块,让它对其进行SOAP的封装。第四步:上下文处理模块将SOAP所封装的XACML决策结果发送到策略执行模块中的上下文处理模块。策略决策模块Xb.XACML决策请求A策a.XACML决策请求C略SOAP消息上M略库下策文L处策理略模审决审d.XACML决策回复块计策信计SOAP消息c.XACML决策回复点息信息库图4.5策略决策模块数据流模型Fig.4.5Data-flowmodelofpolicydecisionmodule②策略决策模块涉及的主要函数及输入输出主要函数:41 重庆大学硕士学位论文4系统设计与实现1)访问决策MakeDecision(xacmlAccessDecision,xacmlPolicy):=xacmlAccessDecisionReponse。2)存储审计信息:StoreAuditInfo(xacmlAccessDecisionRequest)。输入:1)XACML上下文格式的访问决策请求:xacmlAccessDecisionRequest:=(User,Role1,Role2,…,Rolek,Operation,Object)。2)XACML访问控制策略:xacmlPolicy:=(Subjects,Resources,Actions,Condition)。输出:XACML上下文格式的访问决策回复:xacmlAccessDecisionResponse:=(permit|deny)。4.2.5策略管理模块策略管理模块PAP主要承担对访问控制策略的管理工作,该模块可依据策略决策模块PDP所发出的策略查询请求,从策略库中查询相应策略,而后再发送到PDP中进行使用。当然这只是该模块对策略的查询功能,它还具有对策略的添加、删除以及修改等功能。PAP的功能与数据库的功能十分相近,因此可使用数据库技术对它进行实现。4.2.6信息流检测器信息流检测器的功能是通过web服务调用信息msg来检测是否产生信息流,而后依据检测结果来决定是否通知策略决策模块进行产生信息流的安全规则验证。①信息流检测器的数据流模型图4.6给出了信息流检测器的数据流模型,它的执行步骤如下:第一步:将web服务调用信息msg发送到信息流检测器。第二步:判断是否产生信息流,如果产生信息流则通知策略决策模块进行相应的安全规则检验,否则继续跟踪执行的web服务。42 重庆大学硕士学位论文4系统设计与实现a.msg信息流检测器b.信息流检测结果图4.6信息流检测器数据流模型Fig.4.6Data-flowmodelofinformationflowchecker②信息流检测器涉及的主要函数及输入输出主要函数:信息流产生判定函数:CreateInfoFlow(msg):=(Yes|No)。输入:web服务调用信息msg:msg:=输出:信息流产生结果:reply:=(Yes|No)。4.3从数据库数据到XACML策略的转换设计4.3.1转换思路把存储于数据库中的数据转换成XACML策略期间,重点注意如下两点:①转换的等价性。从数据库数据到XACML策略的转换,数据库里的信息要确保其在转换过程不可丢失,进而让转换后的XACML策略与数据库里的信息等价。本文仅针对存储于数据库里的角色权限数据的主要部分进行转换。②转换模块间的松耦合性。从源数据到目的数据的转换,设计了多个转换模块,模块间的影响要做到透明,即模块的任何变动均是相互独立的,不会影响到其他模块的正常运行。4.3.2转换流程图4.7给出了从数据库数据到XACML策略的转换流程,下面对该流程进行说明:43 重庆大学硕士学位论文4系统设计与实现数据库数据1换转XML形式的数据库数据2换转RPS策略PPS策略RAPS策略SDPS策略XACML策略集合图4.7转换流程Fig.4.7Conversionprocess①转换1。利用XSLT/XPATH技术由数据库里提取出SQL语句集合并存储为XML文档的格式。通过这些SQL语句集合,可对用户表、角色表及用户角色分配表等表述角色权限的数据库表进行查询。通过XML文档方式存储的SQL语句集合,其内容如图4.8所示:图4.8XML文档方式的SQL语句集合Fig.4.8XMLdocumentforSQLstatementset44 重庆大学硕士学位论文4系统设计与实现②转换2。将XML形式的数据库数据转换成XACML策略形式。这里通过使用XSLT/PATH技术来实现该转换。这里仅对RPS类策略的转换情况进行阐述,其他三类策略的转换情况与之相类似。生成RPS类策略的对应XSLT转换文件内容如图4.9所示:45 重庆大学硕士学位论文4系统设计与实现图4.9RPS类策略的对应XSLT转换文件Fig.4.9XSLTconversionfileforRPStypepolicy4.3.3转换函数如图4.10所示,函数xsltToXML所进行的就是一个利用XSLT技术来实现XML文档转换的过程。srcxml、destxml及xslt分别为转换的源XML文件、转换产生的目标文件及所使用的转换文件。46 重庆大学硕士学位论文4系统设计与实现图4.10转换函数Fig.4.10Conversionfunction4.4实验测试用户(请求方)James发送一个web服务调用请求(这里指对http://medico.com/record/patient/MedicalRecords进行读取操作,且有意让其能够通过基本要求检验从而能够调用该web服务),并有意设定在这个读取操作过后12秒将触发对该web服务的下一个读取操作(目的是产生一个经安全规则检验不能通过的信息流)。下面是实验测试过程。4.4.1编辑发送访问请求Request47 重庆大学硕士学位论文4系统设计与实现图4.11编辑发送访问请求Fig.4.11Editingandsendingaccessrequest通过编辑而生成的XACML格式的访问请求Request的内容如下:图4.12格式化的访问请求Fig.4.12Formattedaccessrequest48 重庆大学硕士学位论文4系统设计与实现4.4.2决策结果图4.13决策结果Fig.4.13Decisionresults4.5本章小结本章对Ex-XACML模型的六个主要功能模块进行了设计实现,并设计实现了从数据库到XACML策略的转换,最后通过实验测试体现了对于XACML格式访问请求Request进行决策的过程,并得到决策结果。49 重庆大学硕士学位论文5总结与展望5总结与展望5.1工作总结在开发web服务,确保安全信息访问时,何时执行web服务是重要的。因此国内外很多研究人员开始了对于web服务这个领域中访问控制安全性问题的研究并提出许多访问控制模型。当前已经有许多访问控制方面的相关技术与理论,例如[19][20]访问控制策略理论中便包含有自主性访问控制策略、强制性访问控制策略和[21]基于角色的访问控制策略RBAC(Role-BasedAccessControl)等等。而访问控制策略的实现技术方面则有访问控制表、授权关系表、能力表及XACML(eXtensibleAccessControlMarkupLanguage)语言标准等等。本文介绍并分析了当前国内外对于web服务这个领域中访问控制安全性问题的研究情况,发现在web服务访问控制中尚有如下两个问题亟待解决:①现存的模型仅做出“允许或拒绝“的决策;②通过现有模型的控制,当某个请求者被允许调用某个web服务时,该web服务必须做该请求者所请求的一切事情,如果不安全的访问发生,那么该web服务不能够拒绝该次访问。为了解决这两个问题,本文提出了嵌入信息流检测器的访问控制模型Ex-XACML。而后,本文仔细研究了①XACML语言、②XACML策略的RBAC框架技术、③信息流控制技术等相关理论和技术。在对这些技术和理论进行研究分析的基础上,认真做好下面几个方面的研究工作:①给出在web服务中基于一种扩展的XACML的访问控制模型Ex-XACML并实现该模型的主体模块;②提出信息流检测器的算法并实现,而后将其嵌入到Ex-XACML模型中用于信息流安全的检测。③把以数据库表结构形式存储的数据转换成以XACML语言形式来描述的数据,从而方便该模型系统进行有效决策。本文所提出的Ex-XACML访问控制模型,它是XACML的一种扩展模型,它植入信息流检测的概念来确保安全信息访问且它的BR组件确保了是否允许从一个应用程序到一个web服务的调用。从而有效解决了在web服务访问控制所存在的两个问题。5.2后续研究工作的展望系统需要完善和改进的地方有:①减少“信息流检测器”的运行时间开销。②进一步改进信息流检测器算法。③解决大批量XACML策略的存储与检索问题。50 重庆大学硕士学位论文致谢致谢本论文是在导师叶春晓教授的悉心指导和严格要求下完成的。在三年的研究生学习期间,叶老师在学习上和生活上给予了我多方面的指导和无微不至的关怀,而且严谨的治学态度、广博的学识和宽以待人的处事风格使我终身受益。值此论文完成之际,谨向导师表示崇高的敬意和最诚挚的谢意。衷心感谢同门尉法文、宋为涛、韩永征、黄廷森和代东序,与他们的交流合作使我学到了很多东西,感谢他们在学习上、生活上对我的关心和帮助。感谢我的家人,特别是我有孕在身的妻子,这么多年来始终如一的关心及支持,让我在逆境中获得前进的动力。他们在经济上和精神上给了我无私的帮助,使我能够全身心的投入到学习和研究工作中去。最后,谨向百忙中抽出宝贵时间评审本论文的专家、学者致以最诚挚的谢意!王琪二O一一年四月于重庆大学51 重庆大学硕士学位论文参考文献参考文献[1]Shen,H.-B.,Hong,F..Anattribute-basedaccesscontrolmodelforwebservices[J].IEEEInternationalConferenceonParallelandDistributedComputingApplicationsandTechnologies,2006:74–79.[2]Bhatti,R.,Bertino,E.,Ghafoor,A..Atrust-basedcontext-awareaccesscontrolmodelforwebservices[J].IEEEICW’04,2004:184–191.[3]Bhatti,R.,Ghafoor,A.,Bertino,E.,Joshi,J.B.D..X-GTRBAC:anXML-basedpolicyspecificationframeworkandarchitectureforenterprise-wideaccesscontrol[J].ACMTransactionsonInformationandSystemSecurity,2005,V8(2):187–227.[4]Bertino,E.,Bonatti,P.A.,Ferrari,E..TRBAC:atemporalrole-basedaccesscontrolmodel[J].ACMTransactionsonInformationandSystemSecurity,2001,V4(3):191–233.[5]Seamons,K.E.,Winslett,M.,Yu,T..Limitingthedisclosureaccesscontrolpoliciesduringautomatedtrustnegotiation[C].NetworkandDistributedSystemSecuritySymposium,2001.[6]Bertino,E.,Squicciarini,A.C.,Martino,L.,Pacim,F..Anadaptiveaccesscontrolmodelforwebservice[J].InternationalJournalofWebServiceResearch,2006,V3(3):27–60.[7]张清源.基于RBAC的多域间策略合成机制研究与实现[D].上海交通大学,2010.[8]Wonohoesodo,R.,Tari,Z..Arolebasedaccesscontrolforwebservices[C].Proceedingsofthe2004IEEEInternationalConferenceonServiceComputing,2004:49–56.[9]Yu,T.,Winslett,M.,Seamons,K..Supportingstructuredcredentialsandsensitivepoliciesthroughinteroperablestrategiesforautomatedtrustnegotiation[J].ACMTransactionsonInformationandSystemSecurity,2003,V6(1):1–42.[10]Koshutanski,H.,Massacci,F..Interactivecredentialnegotiationforstatefulbusinessprocesses[R].LectureNotesinComputerScience,2005:256–272.[11]Skogsrud,H.,Benatallah,B.,Casati,F..Trust-Serv:model-drivenlifecyclemanagementoftrustnegotiationpoliciesforwebservices[C].InternationalWorldWideWebConference,2004:53–62.[12]Mecella,M.,Ouzzani,M.,Paci,F.,Bertino,E..Anaccesscontrolenforcementforconversation-basedwebservices[C].InternationalWorldWideWebConference,2006:257–266.[13]Paurobally,S.,Jennings,N.R..Protocolengineeringforwebserviceconversations[J].EngineeringApplicationsofArtificialIntelligence,2005,V18(2):237–254.[14]Srivatsa,M.,Iyengar,A.,Mikalsen,T.,Rouvellou,I.,Yin,J..Anaccesscontrolsystemforwebservicecompositions[C].2007IEEEInternationalConferenceonWebServices,2007:1–8.52 重庆大学硕士学位论文参考文献[15]Ardagna,C.A.,Damiani,E..Awebservicearchitectureforenforcingaccesscontrolpolicies[J].ElectronicNotesinTheoreticalComputerScience142,2006:47–62.[16]Sirer,E.G.,Wang,K..Anaccesscontrollanguageforwebservices[J].ProceedingsoftheSeventhACMSymposiumonAccessControlModelsandTechnologies(SACMAT’02),2002:23–30.[17]WorldWideWebConsortium.ExtensibleMarkupLanguage(XML)1.0[DB/OL].(2004-02-04).http://ww-w.w3.orgTR/REC-xml/.[18]卢亚辉.工作流系统的访问控制模型及其安全性分析的研究[D].清华大学,2008.[19]鲁剑锋.访问控制策略的安全与效用优化方法研究[D].华中科技大学,2010.[20]翟志刚,毛宇光,王建东.UCON_(onA)模型的安全研究[J].四川大学学报(工程科学版),2010.[21]闫季鸿,王帅,蒋文蓉,等.Web服务中基于XACML的RBAC应用研究[J].上海第二工业大学学报,2008,25(2).[22]OASIS.eXtensibleAccessControlMarkupLanguageversion1.1[S/OL].http://www.oasis-open.org/committees/xacml/repository/cs-xacml-specification-1.1.pdf.[23]蒋小莺.SAML在WebSSO中的应用研究[J].电脑知识与技术,2010.[24]TimMoses,EntrustInc.Coreandhierarchicalrolebasedaccesscontrol(RBAC)profileofXACMLv2.0[S].OASIS(OrganizationfortheAdvancementofStructuredInformationStandards),Feb2005.[25]霍远国,马殿富,刘建,等.面向Web服务资源的两层访问控制方法[J].计算机科学,2010,37(7):125-129.[26]孙建华,巴特尔,王平泉,等.基于XACML的Web服务访问控制研究[J].计算机安全,2009.[27]姜俊萍.基于RBAC模型的通用权限管理组件的设计与实现[D].复旦大学,2010.[28]OASIS.eXtensibleAccessControlMarkupLanguage(XACML)version2.0[S/OL].2005.http://flocs.oasis-open.org/xacml/2.0/access_control-xacml-2.0-core-spec-os.pdf.[29]WorldwideWebConsortium.XMLPathLanguage(XPath)2.0[EB/OL].http://www.w3.org/TR/XPath20/,Nov,2005.[30]吴克栋.基于RBAC和XACML的XML文档访问控制系统[D].上海:上海交通大学,2009.[31]王尚平,马宏亮,张亚玲,等.基于XACML的Web服务信任协商方案[J].计算机工程,2008,34(11):137-139.[32]WorldWideWebConsortium(W3C),DocumentObjectModel(DOM)Level2SpecificationVersionl.0[EB/OL].http//www.w3.org/TR/WD-DOM-Level-2,1999-03-04.[33]A.SabelfeldandA.Myers.Language-basedinformation-flowsecurity[J].IEEEJournalonSelectedAreasinCommunications,January2003,V21(1):5–19.[34]王超,蔡茂捷.基于Bell-Lapadula和Biba的改进安全模型与应用[J].信息安全与通信保53 重庆大学硕士学位论文参考文献密,2010.[35]刘彦明,董庆宽,李小平.BLP模型的完整性增强研究[J].通信学,2010,31(2).[36]余俊隆,闵联营,龚晓秋.基于策略的Web服务访问控制的研究[J].计算机与数字工程,2009,37(1).[37]郭慧.企业IT危机预警模型研究[D].武汉理工大学,2010.[38]张爱华,林园.一种基于安全标签的访问控制模型的设计和实现[J].计算机应用研究,2007(1).[39]A.C.Myers,S.Chong,N.Nystrom,L.Zheng,etal.Jif:Javainformationflow[CP].[40]李颖.数据库中RBAC数据到XACML策略的转换研究[D].重庆大学,2007.54 重庆大学硕士学位论文附录附录A.作者在攻读硕士学位期间发表的论文目录:[1]王琪,叶春晓.含信息流检测的扩展的访问控制模型.计算机安全.2011年第4期正刊.B.作者在校期间参加的项目:[1]国家自然科学基金项目.基于本体的网格访问控制研究。项目编号:60803027.[2]中央高校基本科研业务费科研专项自然科学类项目.RBAC中多安全策略的支持.项目编号:CDJZR10180023.55