APP下载

一种改进的Web 服务访问控制模型

2012-07-02张尚韬

关键词:请求者访问控制主体

张尚韬

(福建信息职业技术学院,福州350003)

0 引言

随着网络技术的迅速发展,对访问控制服务的质量也提出了更高的要求,传统的访问控制模型(自主访问控制DAC,强制访问控制MAC,基于角色的访问控制RBAC等)已经很难满足这些需求,主要体现在以下2个方面:(1)传统的访问控制模型主要是单域的,即服务提供者和请求者都在同一个管理域内,而在Web服务应用环境下,服务提供者和请求者通常来自不同的域,彼此是陌生的。因此,要解决这种跨域的访问控制问题。(2)传统的访问控制模型一般都是静态授权,即由管理员事先按照一定的规则给主体指定权限,然后将这些指定关系保存起来。然而在Web服务这样的分布式环境下,服务请求者和提供者之间通常是建立一种临时的、动态的关系。服务消费者通过网络发现新的服务提供者,并实时地访问服务提供的数据。对Web服务的服务端而言,根本无法提前判断什么用户会在什么时候访问什么数据,很难实现这种静态授权,因此需要一种动态授权机制。而基于属性的访问控制模型采取动态性的、粒度细的机制授权,因此它比传统的访问控制模型适合动态的、分布式的 Web服务环境。

本文结合Web服务的特征,提出了一种改进的基于属性的Web服务访问控制模型。在原有访问控制模型的基础上,通过引入XML加密模块和签名模块,完善了XACML访问控制模块,从而使其能够更加安全和有效地根据主体、客体和资源等的相关属性信息进行授权,能更加有效地保护资源请求者的合法利益以及请求资源的安全性。

1 基于属性的Web服务访问控制模型

结合SAML和XACML标准[1],给出了基于属性的 Web服务访问控制体系架构[2]。其中,SAML[3]在Web服务中作为请求主体属性的载体,而XACML作为访问控制策略语言。此架构的基本观点不是直接在主体和客体之间定义授权,而是利用它们的属性作为授权的基础,即授权决策是根据参与决策的相关实体的属性来进行。这里涉及的实体分为3类:主体(subject)、资源(resource)和环境(environment),而属性是指与实体相关的一些特征。

(1)主体属性:主体是对资源进行操作的实体。每个主体都有很多与其身份和特点相关的属性,如IP地址、角色、身份、年龄、职位等;

(2)资源属性:资源是被主体操作的实体。它可以是一个文档、一个文件或者数据库中的一组数据。跟主体一样,资源的很多属性也可以作为访问控制判断的依据。例如一个Word文档就有题目、作者和创建日期等属性;

(3)环境属性:环境属性是与事务处理相关的属性,如时间、日期、系统状态、安全级别等。

图1所示为基于属性的Web服务访问控制系统的具体构架。

图1 Web服务访问控制系统架构

由图1可知XACML模块是Web服务访问控制系统的核心,它由策略执行点PEP、策略决策点PDP、策略管理点PAP以及策略信息点PIP组成。当主体通过SOAP客户端访问Web服务之前,必须从属性授权机构获取SAML声明,并将获得的SAML声明嵌入到SOAP消息的头部发送给Web服务的服务器端。PEP收到SOAP消息后,从它头部的SAML声明中提取出属性信息,然后创建一个基于主体、资源和环境属性的授权请求。PDP收到PEP发送过来的授权请求后,从策略库中提取相应的XACML策略来判断请求是否合法,并将决策结果返回给PEP,由PEP来执行相应的操作。在整个过程中,PDP向PEP提供了授权服务。实现一个授权决策的算法可能非常复杂,但是SAML作为主体属性的载体本身只关心传递相应决策的结构,它没有定义具体的决策过程,具体的决策过程是由XACML来完成的。

在访问控制策略中,假设主体、资源和环境分别用s、r和e来表示,它们的属性值分别用attr(s)、attr(r)、attr(e)。在基于属性的访问控制模型中,判断是否允许一个主体s在环境e下访问资源r是根据主体s、资源r以及当前上下文环境e的具体属性来决定的:can_access(s,r,e)←f(attr(s),attr(r),attr(e))其中,access通常代表一系列操作,如read、write等;f是一个布尔函数,它通过主体s、资源r和环境e的属性值来计算,其结果决定主体s的访问是否合法。f函数就是访问控制策略规则,它是根据具体的业务规则来制定的,描述了主体访问资源时必须满足的条件[4-5]。

2 改进的基于属性的Web服务访问控制模型

2.1 基于属性的Web服务访问控制模型中存在的威胁

从上面介绍的XACML数据流模型可以得到:要利用XACML数据流模型实现基于属性的访问控制需要多个组件(PEP、PAP、PDP等)之间的相互协作。各个组件之间的信息流都是以XACML格式传输的,但是XACML语言本身没有采用任何的安全措施。如果访问控制组件之间的通信信道可以被访问,那么就会存在如下威胁:(1)敏感信息泄露:XACML语言本身没有规定任何保护数据信息机密性的措施,因而存在信息泄露的威胁。这种威胁可以导致请求主体、资源和环境等的一些属性被访问,在一定情况下某些属性信息是敏感的。(2)消息修改:消息修改是指XACML组件之间交互的消息内容被修改,通过这样的修改,访问控制决策结果可能被改变,从而能够实现非授权访问。

针对以上可能出现的威胁可以采取以下的防护措施:(1)机密性保护:应用机密性保护可以只允许授权的接收者才可以读出消息中的内容。策略的机密性保护即保护策略中的部分敏感信息不被泄露,为此需要对策略中的部分信息加密。(2)策略完整性保护:策略是PDP用来评估XACML上下文的依据,是访问控制系统的核心,因此需要保护策略的完整性。策略完整性保护包括策略没有被修改、添加或者删除过。

2.2 一种改进的基于属性的Web服务访问控制模型

由XACML数据流模型组成的访问控制系统需要各个XACML组件之间的相互协作以完成授权过程。然而XACML语言本身没有采取任何安全措施,因此XACML格式的消息流在各个组件之间传递时容易受到攻击,所以必须采取必要的安全措施使威胁降到最低。

在XACML数据流模型基础上,结合XML加密和XML签名技术,提出了一种改进的基于属性的Web服务访问控制模型,具体的结构如图2所示。

同样,主体在通过SOAP客户端访问 Web资源之前必须从属性授权机构获得SAML声明[6]。在改进的模型中应用了XML加密和签名技术,当策略决策点(PDP)从策略管理点(PAP)获取相关策略时,在它们之间传递的策略是经过签名的,而且对策略中的敏感信息加过密。这样就可以保证策略中敏感信息的安全性,同时也可以保证策略在传递的过程中没有被篡改,策略执行点(PEP)就可以根据处理过的相关策略作出正确的授权。而且策略信息点(PIP)与策略决策点、策略执行点之间的属性信息都是经过XML加密技术处理过的,这样能确保属性信息中敏感信息的机密性[7]。

图2 改进的基于属性的Web服务访问控制模型

3 新的访问控制模型分析

3.1 实验模型

网上图书室实例对比分析了基于属性的访问控制模型和基于角色的访问控制模型。在业务场景比较复杂时,基于属性的访问控制模型显示出了极大的优势,接下来仍以网上图书室实例分析基于属性的访问控制模型。在此模型中要考虑到的属性信息有:(1)主体属性(请求者属性):请求者年龄和会员卡信息;(2)客体属性(图书资源属性):图书资源等级和出版时间。按照访问控制规则要求:根据年龄和会员卡信息,请求者能够阅读某一等级的新旧图书,具体的要求如图3所示。

图3 图书室结构示意图

在具体设计时,根据阅读者的年龄将其划分为3个群体:儿童、青少年和成年人,然后根据交纳的会费将其又分为金卡会员和普通会员。此时,涉及到的资源请求者的属性信息包括:(1)年龄属性:以区分不同的群体;(2)卡号属性:根据卡号信息可以判断请求者是否为金卡会员。而图书资源根据阅读群体的不同划分为3个级别:A、B、C3个等级,由出版时间将图书分为新图书和旧图书。故,考虑到的资源属性信息有:(1)图书等级;(2)出版时间。根据主体和客体的属性信息设计一个基于属性的访问控制模型,模型具体的执行流程如图4所示。

图4 访问控制流程图

在访问控制过程,会员的卡号信息属于需要保护的敏感属性信息,故需要采用XML加密技术对卡号信息加密,以免被非法者利用。

3.2 实验分析

在改进的基于属性的访问控制模块中,引入了XML加密技术和XML签名技术。在实验模型中,图书资源请求者的卡号信息是需要保密的属性信息,故在此需要使用XML加密技术以确保卡号信息不被非法者窃取。对图书资源的访问控制是实验的核心,而访问控制策略是访问控制的重要依据,故引入的XML签名需要对策略的完整性进行保护。

通过客户端向服务器端发送了多个Web请求,每个SOAP请求中都嵌入了不同的SAMLToken,但是只有满足条件的请求才能真正获取到Web服务,不满足条件的请求都被访问控制模块拒绝。同时,在服务器端添加XML加密和XML签名的处理链,从而能够保护图书资源请求者的合法利益和图书资源的安全性。实验结果表明,引入了XML加密和XML签名的访问控制模块能够对SOAP请求进行有效的过滤,从而防止资源请求者的敏感信息被泄露和相关资源被非法访问。

4 结语

本论文给出了一种改进的基于属性的Web服务访问控制模型。该模型主要包括XACML模块、XML加密模块、XML签名模块以及属性授权机构等。通过在XACML模型中引入XML加密模块,使XACML数据流组件之间以明文形式交互的敏感属性信息不被非法读取。在访问控制策略的安全性方面,通过在XACML模块中加入XML签名模块,可以检测出访问控制策略是否被非法篡改、添加或删除,从而能够保证授权过程的正确性。通过引入XML加密模块和XML签名模块,完善了XACML访问控制模块,从而使其能够更加安全和有效地根据主体、客体和资源等的相关属性信息进行授权,能更加有效地保护资源请求者的合法利益以及请求资源的安全性。

[1]谢舒婷,张珍.基于XACML流媒体服务器的Web访问控制模型[J].计算机技术与发展,2010,20(9):136-139.

[2]颜学雄,王清贤,马恒太.Web服务访问控制模型研究[J].计算机科学,2008,35(5):38-39.

[3]石柯,黎明,皱德清.基于SAML的图书资源联合身份访问控制机制[J].计算机工程与科学,2007,29(7):149-151.

[4]樊月华,刘洪发,刘雪涛.Web技术应用基础[M].北京:清华大学出版社,2005:95-98.

[5]李松.基于XACML统一策略的访问控制服务研究与实现[D].成都:四川大学,2006.15-20.

[6]曾巧文,陈新度,吴磊.基于SOAP消息SaaS平台应用访问控制模型[J].机电工程技术,2010,10:27-29.

[7]顾宁,刘家茂,柴晓路,等.Web Services原理与研发实践[M].北京:机械工业出版社,2006:112-115.

猜你喜欢

请求者访问控制主体
论自然人破产法的适用主体
基于D2D 多播通信的合作内容下载机制
群智感知中基于云辅助的隐私信息保护机制
汉语自然会话中请求行为的序列结构
ONVIF的全新主张:一致性及最访问控制的Profile A
基于差值诱导的Web服务评价可信度的评估
动态自适应访问控制模型
关于遗产保护主体的思考
浅析云计算环境下等级保护访问控制测评技术
大数据平台访问控制方法的设计与实现