基于SOAP 的Web 服务访问控制的设计与实现*
2010-10-09张津铭
张津铭
(烟台职业学院,山东 烟台 264670)
基于SOAP 的Web 服务访问控制的设计与实现*
张津铭
(烟台职业学院,山东 烟台 264670)
针对Web服务的访问控制及安全模型进行了深入研究;参考N IST RBAC/Web模型提出了一个基于SOAP扩展的Web服务安全模型;针对该安全模型中的基于角色的Web服务访问控制模型进行了详细的研究和设计。
Web服务;访问控制;简单对象存取协定;安全模型
在当今的IT领域,Web服务技术正在日益受到关注。Web服务被普遍认为是新一代应用程序的集成,是通向新的商业模式的大门,也是企业之间相互联系的前所未有的重要途径。调查显示,Web服务安全性已经成为多数企业的最大关注点,但由于Web服务安全机制非常复杂,这使得多数企业对大多数Web服务不得不采用较简单和保守的方式进行配置,从而使得Web服务安全得不到有效保障。
本文主要针对Web服务的访问控制,即SOAP的授权安全机制进行研究,以提供对Web服务消息级的安全保护。对Web服务访问控制技术的研究不仅对Web服务技术自身发展具有重大的研究意义,而且对Web服务的重要应用-动态电子商务的健康、快速发展有着很大的应用价值。
1 Web服务访问控制
访问控制(Access Control)就是通过某种途径显式地准许或限制访问能力及范围的一种方法。访问控制系统一般包括:
(1)主体(Subject):发出访问操作、存取要求的主动方,通常指用户或用户的某个进程;
(2)客体(Object):被调用的程序或欲存取的数据访问;
(3)安全访问政策:一套规则,用以确定一个主体是否对客体拥有访问能力[1]。
一个安全的网络需要可靠的访问控制服务作保证,尤其是当网络规模比较大、用户比较多的时候。通过访问控制服务,可以限制对关键资源的访问,防止因非法用户的侵入或者合法用户的不慎操作所造成的破坏。
Web服务的访问控制就是针对用户对Web服务空间进行操作的控制,Web服务的访问控制包括了用户、服务空间和操作这3个正交的概念。用户是Web服务的调用者,是访问控制的主体,服务空间是所有原始的Web服务及动态增加的Web服务,操作是用户行为的基本单位。用户、服务、操作是有限的集合。用户、服务空间和操作这3个正交的概念用图1所表示的坐标系来表示,其中U轴、WS轴、OP轴分别表示用户(主体)、服务空间及操作集合的元素,坐标原点是这3个集合中都不取的空间点,可以表示为(0,0,0)。空间(U, WS,OP)中的点(ui,w si,opi)表示用户ui对服务空间中的w si进行操作opi。
图1 (U,WS,OP)空间
Web服务的访问控制是指对用户在服务空间的操作进行授权。设以下映像从F:U x WS x OP-> {0,1}是将(U,WS,OP)空间中的点映像到{0,1}的集合。若空间点(ui,w si,opi)映像到“1”,表示用户ui有对服务空间点w si进行opi操作的授权。若空间点(ui,w si,opi)映像到“0”,表示用户ui没有对服务空间点w si进行opi操作的授权。因此Web服务访问控制可以表示为映像到“l”的(U,WS,OP)空间的空间点的集合,即在(U,WS,OP)空间取子集D:D={(ui,w si,opi)|ui∈U,w si∈WS,opi∈OP,且F(ui, w si,opi)=1}。其中映像F:U x WS x OP->{0,1}表示体现某一访问控制策略的授权规则。
在Internet上会存在多个管理域,Web服务的访问可能要跨过多个管理域,在每个管理域的访问控制策略是由用户制定的。由于各个管理域之间的Web服务访问需要交互与协调,所以在Web服务访问控制的研究中有以下几个方面的关键问题。
(1)通用性。Web服务访问控制的通用性是指其访问控制机制可以实现多种用户根据不同需求自定义的访问控制策略。在(U,WS,OP)空间中体现访问控制策略的授权规则为在该空间建立子集的方法,即映像F:U x WS x OP->{0,1},从而在(U,WS,OP)空间中访问控制的通用性可以表述为(U,WS,OP)空间的任意子集D={(ui,w si,opi)|ui∈U,w si∈WS,opi∈OP,且F(ui,w si,opi)=1}都可以用Web服务访问控制模型表示。
(2)自主控制。自主控制是指各个管理域都可以由用户独立地制定本管理域的访问控制策略,即一个管理域中访问控制策略的制定不受其它管理域访问控制策略的干涉及Web服务分布结构的影响。
(3)多个管理域间访问控制的互操作。Web服务访问控制需要提供单一系统映像。在跨管理域的授权中由于服务访问的主体和客体可能属于访问控制策略不同的管理域,访问控制可能会发生冲突,这就需要一定的协调机制。访问控制的互操作要满足两条原则[2]。自主原则,即在某一管理域中允许的服务访问通过互操作也允许;安全原则,即在某一管理域中禁止的服务访问通过互操作也禁止。
(4)访问控制的管理。由于具有多个管理域、多种安全策略、大量的用户及服务请求以及异构的信息资源,访问控制又存在多种粒度,同时Web服务的访问是开放动态的,所以应该使用一个易于管理的访问控制机制,以降低访问控制管理的复杂度,同时Web服务的访问还应该提供访问控制管理的辅助工具。
综上所述,Web服务访问控制器需要为安全管理员提供辅助智能以简化安全管理。
2 Web服务访问控制模型的设计
本文通过对访问控制技术的研究,利用N IST RBAC/Web模型构造了一个在Web服务安全模型下的访问控制器,提出了基于角色的Web服务访问控制模型,并把它应用到Web服务安全模型中,如图2所示。
本文研究主要内容是Web服务访问控制技术,即动态性Web服务安全调用,因此图2中的Web服务的访问控制是本文研究的核心内容。访问控制模型不是孤立存在的,它必须建立在整个Web服务框架之下,所以模型中也设计了WSDL生成器、UDD I服务器等,使得系统模型能运行在Web服务平台上。
在提出的Web服务访问控制的关键问题的基础上,本文参考N IST的RBAC模型[3],提出一个基于角色的Web服务访问控制模型,即WS-RBAC,并把它运用到Web服务安全模型中。WS-RBAC模型以角色表示用户、服务空间和操作三者之间的对应关系。角色是(U,WS,OP)空间的子集,并且具有动态性。动态性是指与角色关联的用户、服务空间和操作可以由安全管理员进行修改。在本文中,为简单起见,主要研究某一个时刻角色具有的静态性质。
图2 基于SOAP的Web服务安全模型
定义1 在WS-RBAC模型中,角色表示用户、服务和操作的对应关系。其中:
①U为三维空间中Web服务访问的用户空间。
②WS是三维空间中服务空间。
③OP是三维空间中的操作空间。
④定义P=WS×OP,其中WS×OP={(w si,opi)|w si∈WS,opi∈OP},权能(ability)为P的子集合,权限(permission)为P中的元素。
⑤定义角色Role为(U,WS,OP)空间中满足下列约束条件的子集合
H:WS×OP->{0,1},G:U->{0,1},则
Role={(ui,w si,opi)|ui∈U,w si∈WS,opi∈OP,且H(w si,opi)=l,G(ui)=l}。
定义1是对N IST的RBAC模型中的角色在WS-RBAC模型中重新定义的。映像从H:WS×OP ->{0,1}表示将权限映像到{0,l}集合,其中映像到“l”的权限表示该角色拥有的权限;G:U->{0,1}表示将用户映像到{0,l}的集合,其中映像到“l”的用户是该角色关联的用户。可见,角色是(U,WS,OP)空间中的子集,这个子集需要满足的条件是对其中的任意用户,映像从H:WS×OP->{0,1}所确定的权限集合是相等的,从而构造了用户、服务和操作的一个对应关系。角色的定义体现出了角色是权限和用户之间的数据中间层这一RBAC模型的本质特征:映像H:WS×OP->{0,1}表示为角色授权,而G:U->{0,1}表示角色与用户的关联。通过这两个彼此独立的映像分离了对角色进行授权和为用户分配角色的过程。
定义2 角色的继承。设X,Y为角色,
X={(ui,w si,opi)|ui∈U,w si∈WS,opi∈OP,且H1(w si,opi)=l,G1(ui)=l}
Y={(uj,w sj,op j)|uj∈U,w sj∈WS,op j∈OP,且H2(w sj,op j)=l,G2(uj)=l}
若W 2={(w sj,opj)|w sj∈WS,op j∈OP,且H2(w sj,op j)=l}是W 1={(w si,opi)|w si∈WS,opi∈OP,且H1(w si,opi)=l}的子集合,且V 1={ui|ui∈U,且G1(ui)=l}是V 2={uj|uj∈U,且G2 (uj)=l}的子集合,则称X继承了Y,表示为X≥Y,特别有:
X>Y,当W 1≠W 2或者V 1≠V 2。
X=Y,当W 1=W 2且V 1=V 2。
定义2是对N IST的RBAC模型中的继承在WS-RBAC模型中重新定义的。在角色继承的定义中,W 1、W 2、V 1、V 2分别为角色X、Y关联的用户集合和权限集合,在(U,WS,OP)空间中,V 1、V 2分别为角色X、Y在U轴的投影,W 1、W 2分别为X、Y在WS轴与OP轴构成的平面的投影。
角色继承的性质:
①传递性:即若X≥Y,且Y≥Z,则X≥Z,其中X、Y、Z为角色;
②单向性又称不可逆性:即若X>Y,则Y≯X,其中X、Y为角色。
继承是角色具有的重要性质,通过角色的继承,基于角色的访问控制可以按照一个企业或组织的职务层次结构制定访问控制策略,从而访问控制策略更加直观。通过角色的继承,减少了为角色授权和为用户分配角色的工作量,从而减少了授权可能出现的错误。
3 基于SOAP的Web服务访问控制器的设计
Web服务访问控制器是系统安全性的第二道关口,只有经过认证之后的安全SOAP消息才能发送到访问控制器。访问控制器将决定该SOAP访问的权限,以及返回响应的结果。任何一个SOAP请求在通过访问控制器的时候将产生三种结果:被完全拒绝,完全通过,部分通过。当SOAP请求最终到达SOAP服务器,它将产生SOAP结果,经重新加密和验证后回送给确定的客户。
3.1 授权的对象
在传统的授权系统中,任何请求所要访问的实体就是一个对象,授权将决定请求是否有权访问这个实体对象。在Web服务调用访问中,任何一个授权对象都对应着一个RPC调用,也是SOAP Body的一个节点。因此访问控制器就是对该请求的XML元素和属性进行处理。对单个元素和属性的处理可以用于:
●评价请求的状态(例如某个参数只有拥有一定值时才能被通过)。
●对具体请求加以具体的访问控制(如某个参数必须填写)。
在本文中利用XPath语言来表示授权对象。XPath是一门由表达式组成的语言,本质上是与具有层次结构的XML数据模型相匹配的查询语言,主要是对XML节点的定位[4]。它包括可以通过按任何方向浏览树来选择节点的位置表达式以及其它如基本字符串、数字计算和布尔代数的表达式。位置路径可以从根节点开始,也可以从当前节点开始。
利用XPath表达式对节点的定位过程分成三步:
●用于确定目标节点和当前节点的相对位置,其结果是节点集。
●缩小范围,确定某个节点。
●精确定位。
XPath表达式的简单例子:
/authors/author[@period="classical"]
这是一个绝对位置路径,含义是:在根节点为“autho rs”的XML文档中,查询period属性(attribute)值为classical的autho r元素(element)。本文采用XML的XPath语言来表示授权对象。
3.2 授权的主体
授权主体是请求被检测而授权(拒绝或许可)被授予的实体。在本文的模型中,主体应该有以下特征:
●用户的标志(代表客户是谁)
●用户请求的角色(例如管理员)
●用户所在的管理域
在模型中,采用基于角色的访问控制,发出调用请求的主体通过一个三维向量(user,domain,roleid)来判断一个特定的来自某个具体的机器、用户和能力。
3.3 授权的语法
授权由三维向量(Subject,Object,Sign)组成,其语法表示如下:
●Subject代表请求者,包括身份、组、位置、角色。
●Object是SOAP消息的成分,也是授权需要引用的信息,采用XPath语言表达。
●Sign是一个布尔量,+和-,代表通过或者拒绝。
如果授权的对象是信封,那么授权的内容就是全部。如果授权的结果是“-”的,那么请求就是被完全拒绝。当然对象也可能是SOAP请求树的任何一个元素。
一个简单的查询服务样例:首先假设金融公司的策略是只向公司的具有Common角色的客户提供查询服务,而其它不具备这个角色的客户都不能使用该服务,因此通过检查角色Common的授权信息就可以得到他们的权限。
Evelope/Body/Quote Info
3.4 访问控制
访问控制器将要对每个SOAP请求进行再次去除。有些SOAP请求要被拒绝,有些SOAP请求要适当修改,将那些无权限的请求去掉。也就是访问控制器要负责对SOAP请求的节点添加一个许可或拒绝的标志。访问控制策略对SOAP请求树的同一个节点可能有多个授权,因此决定有没有访问权限要根据策略的优先级别。
(1)如果该请求有多个激活角色,取它们权限的并集。因此当角色存在冲突的时候,权限为“+”。
(2)因为角色是可以继承的,指定于某个角色的访问权限优先于它所继承的权限。
(3)对某个用户指定的权限优先于他所激活角色的权限。
(4)对某个用户指定的权限优先于他所在组的权限。
任何一个请求树根据以上的策略将在树的节点上添加一个标志“+”或者“-”,因此在判断是否有权限的时候只要看其节点的值为“+”还是“-”。
4 结束语
本文主要对Web服务访问控制技术问题进行了深入研究。参考已有的Web服务访问控制模型和N IST RBAC/Web模型,提出了一种基于SOAP扩展的Web服务安全模型。在这个模型中主要设计了基于角色Web服务访问控制模型。对Web服务访问控制从授权对象、授权主体、授权语法和访问控制等方面做了详细的分析与设计。
基于SOAP的Web服务访问控制的设计和实现,解决了Web服务安全中的Web服务授权问题,从而使Web服务在消息级安全应用上得到了更可靠的保障。
[1]李伟琴,杨亚平.基于角色的访问控制系统[J].电子工程师,2000,26(2):16-21.
[2]James Joshi,A Rif Ghafoor,Walid G A ref,et al.Digital government security infrastructure design challenges[J].IEEE Computer,2001,34(2):66-72.
[3]Elliotte Rusty,Harold,W.scott Means.XML技术手册[M].北京:中国电力出版社,2001.
[4]David F Ferraiolo,Ravi Sandhu,Serban Gavrila,et al.Proposed NIST standard for role-based access control[J].ACM Transon Information and System Security,2001,4(3):224-274.
Research for SOAP-Based Access Control of Web Service
ZHANG Jin-ming
(Yantai Vocational College,Yanta i264670,China)
The paper research the access control of web services、security theory and security model tho roughly.Based on the security model for Web services and NIST RBAC/Web model,design the SOAP’s extension-based security model for Web services.In the thesis,research and design the WS-RBAC model mainly.
web services,access control,SOAP,security model
TP393
A
1671-4288(2010)02-0045-05
(责任编辑:肖恩忠)
2009-12-04
张津铭(1980-),男,山东龙口人,烟台职业学院信息工程系助教。研究方向:软件工程、网络安全。