APP下载

SOA平台下Web服务的安全认证协议综述*

2015-03-14韩宝栋

舰船电子工程 2015年6期
关键词:单点访问控制消息

韩宝栋

(海军驻广州四二七厂军事代表室 广州 510715)



SOA平台下Web服务的安全认证协议综述*

韩宝栋

(海军驻广州四二七厂军事代表室 广州 510715)

Web服务的安全作为近年来一个重要研究领域得到了越来越多的重视。论文分析了SOA平台下Web服务的安全性问题,并对解决这些安全问题的Web服务安全规范做了系统的总结。着重描述WS-Security规范以及衍生的其他规范,并对实现跨域单点登陆的SAML规范以及描述安全策略的XACML进行一定的分析和比较。

Web服务; WS-Security; 安全声明标记语言; 可扩展的访问控制标记语言

Class Number TP393

1 引言

近年来随着面向服务的体系结构SOA(Service Oriented Architecture)的兴起,作为实现SOA的Web服务技术也得到越来越多的青睐。SOA是通过不同功能模块(服务)之间的接口和协议将这些功能模块(服务)联系起来的一个体系结构。这些功能模块独立于不同的硬件平台和操作系统中,通过SOA使得这些服务可以以一种通用和统一的方式实现联系和交互。

Web服务在企业应用领域得到迅速的发展,通过基于XML的服务描述语言WSDL描述的Web服务变得更加动态和灵活。然而Web服务的动态,松耦合的特性则是影响Web服务安全的绊脚石。Web服务的动态性使得服务的发布者不了解这个服务将会在何种系统环境中被使用,同时服务的消息安全也无法得到保障。而且企业之间的应用让Web服务不仅仅局限在小型的局域网内,复杂的互联网对Web服务的安全有着更高的要求。由于如今的Web服务是端到端的传输,传统的基于SSL的点对点传输协议Https早已经不能保证Web服务在大的网络环境下的安全,同时仅仅在传输层保障安全的Https也无法保证消息在接收端不被攻击和窃取,因此新的传输协议迫在眉睫。

Microsoft、IBM等公司联合参与成立的标准化组织OASIS,致力于研究Web服务的安全传输和身份认证,于2004年制定了WS-Security规范来保障Web服务在新的网络背景下的安全,同时制定了XML Encryption、XML Digital Signature、SAML以及XACML标准确保基于SOAP的Web服务的消息可以安全地传输。本文综述Web服务中的相应规范以及近年来基于这些规范和标准研究出的技术,综合比较并给出了相应的分析。

2 Web服务传输规范综述

学术界从各个侧面对Web服务安全中的核心问题进行了深入的探讨,从理论和实际应用中提出了一系列新颖的方法和改进策略。

2.1 基于WS-Security规范的认证

为了规范地解决Web服务的安全问题,OASIS在2004年提出了WS-Security规范的1.0版本,并与2006年提出了WS-Security的改进版。文献[4]详细分析了WS-Security规范,通过对利用WS-Security规范的SOAP消息的具体分析,得出WS-Security规范的具体安全认证机理:在SOAP消息中,使用XML Signature技术保障消息的完整性,通过XML Encryption

保障消息的机密性以及利用安全令牌(X.509证书或Kerberos票据)解决SOAP消息的身份认证基于SAML规范的认证。通过该文献的分析可以得出WS-Security规范下SOAP消息的框架,如图1所示。

图1 WS-Security规范下SOAP消息框架图

WS-Security解决了Web服务在安全方面的三大问题:消息完整性,消息机密性以及身份认证,从而实现SIAO消息的安全传输,利用WS-Security规范,可以提供更多的安全模型。在文献[5]中作者使用WS-Security规范开发了一个Web服务的安全系统,并且研究发现出WS-Security规范可能需要注意的问题,指出系统可能会受到消息的重传攻击:一个获取正确SOAP消息的攻击者不断向服务器发送这个SOAP消息,导致服务不断被调用。虽然可以用时间戳技术解决提出了一个更安全的解决方案:一个简化的挑战响应模型,如图2所示。

图2 简单挑战-响应模型

文献[6]中提出了一种保障Web服务环境安全的框架,利用WS-Security规范设计基于角色的权限控制模型,通过网络化学习的应用软件来分析系统所要求的Web服务安全环境,最后利用RBAC(Role Based Access Control)模型搭建这个安全系统的框架[7]。文献[8]针对REST(Representational State Transfer)[9]风格的Web服务,首先分析了传统Https认证方式的不足,而后提出一种可扩展的基于WS-Security中UsernameToken方式的安全验证方法。文献[10]结合WS-Security规范,综合运用SOAP,DES和RSA技术,给出了一种基于加密技术的Web服务安全模型,实现跨平台的解决方案。

随着近年来移动设备的不断兴起,Web服务在移动端的安全也受到了重视。文献[11]利用WS-Security规范中XML加密和签名技术并结合无线应用协议WAP中的无限二进制XML规范WBXML和无限会话协议WSP为移动Web服务的消息提供安全解决方案。由于移动Web服务处在发展的阶段,技术成熟度有待提高,因此未来移动Web服务的安全问题也一定会有更深一步的讨论和研究。

综合近年来基于WS-Security规范的Web服务安全问题,业界提出了很多安全模型,有些结合了其他的加密算法或框架,但是核心点依然在WS-Security规范中XML加密、签名和身份认证。它弥补了传统Web服务认证方式中消息端到端的安全缺陷并达到认证灵活性的特点。然而,这种方式也有一定的缺点,因为改进的消息SOAP头需要人工添加加密和签名等信息,导致开发成本提高,而且这种方式要求服务器在每次调用的时候都必须进行验证,大大增加了服务器的负荷。针对这些问题,基于SAML的单点登录认证技术应运而生。

2.2 基于SAML规范的认证

安全声明标记语言(Security Assertion Markup Language,SAML)[12]是由OASIS提出的一种基于XML的安全性标准,用于Internet中不同的安全域中交换身份验证和授权凭证,现如今SAML已经发展到2.0版本。在使用SAML的系统中,权限信息通过声明传递,系统中有三个部分,分别为主体Subject即用户,信任方Relying Party即服务提供方(Service Provider,SP),声明方Asserting Party即身份提供方(Identity Provider,IP),其工作机理如图3所示。

单点登录(Signal Sign-on,SSO)技术是SAML最主要的应用模式,在单点登录模式中,用户在Web源站点进行了身份认证,该站点即为该用户生成SAML声明,表明该用户通过身份认证,同时将该声明相关联的票据分配给用户,用户可以调用该站点的Web服务;当该用户从该站点访问其目的站点的Web服务时,目的站点通过用户提供的票据,与原站点进行通信,确定用户的身份,避免再次身份认证的过程,从而实现了单点登录。其示意图如图4所示。

图3 SAML工作机理

图4 SAML单点登录示意图

SAML的逐渐成熟使得基于SAML的跨平台,跨安全域的单点登录技术不断使用在不同的Web服务安全模型中。文献[13]针对跨站点认证的局限,提出了基于SAML的单点登录方法,Web服务站点在提供服务的同时提供身份信息。这种方法由于Web服务的信任关系由服务提供者和请求者双方直接建立,不存在第三方的身份提供者,因此存在一定的局限性。文献[14]提出的方法避免了前者出现的局限性,通过共同信任的第三方建立间接的信任关系,并在第三方服务上实现登录。文献[15]提出了一种新的SSO机制,将SAML绑定到信令控制协议(Session Initiation Protocol,SIP)[16]协议中。通过集成SAML的服务(Relying Party)发送SAML请求到发行权威机构(Issuing Authority),发行权威机构返回有关该请求主体的SAML声明指示它的安全认证信息。

由于SAML在实现单点登录后并未对用户进行一定的访问控制如服务访问时间和允许的范围,这样可能会造成用户身份票据和访问令牌的重传攻击。文献[17]针对SAML单点登录过程存在的用户安全风险扩散问题,提出了一种以用户为中心的基于代理签名的单点登录协议。在建立安全会话时添加访问控制机理以限制用户单点登录访问服务的时间和范围,达到抵抗重传攻击的目的。

针对SAML本身存在局限因素,因此在一些系统设计过程中需要与其他相应技术相结合,从而弥补缺陷实现安全的Web服务认证和访问。

2.3 基于XACML规范的认证

可扩展的访问控制标记语言(eXtensible Access Control Markup Language,XACML)[18]是由OASIS发布的一种基于XML的开放标准语言,被设计用于描述安全策略以及对Web服务以及企业安全应用信息进行访问的权限。XACML以其平台无关性,通用性,可扩展,可移植以及模块化等特性,被广泛用于Web服务访问控制策略的执行。

XACML访问控制框架中包括策略执行点PEP(Policy Enforcement Point),上下文管理器(Context Handler),策略信息点PIP(Policy Information Point),策略决策点PDP(Policy Decision Point),策略管理点PAP(Policy Administration Point)等功能模块,其具体执行的基本过程如图5所示。

图5 XACML访问控制框架执行示意图

策略执行点PEP接收客户端向服务器发送的请求,并将该请求转发给上下文处理器,上下文处理器向策略信息点PIP提出属性要求,PIP从主体、资源、环境等模块中获取属性信息并返回给上下文处理器,上下文处理器处理这些信息并向策略决策点PDP发出决策请求,PDP根绝策略管理点PAP提供的策略对该请求做出决策,并返回决策结果给上下文处理器,上下文处理器将决策结果返回给PEP,PEP根据结果做出响应用户请求或拒绝用户请求的决策。

XACML标准以其严格的策略管理保障Web服务的访问控制,业界基于XACML研究出相应的Web服务访问控制模型,实现Web服务的安全访问。文献[19]通过对XACML特点的分析提供了一种结合XACML的基于属性的Web服务访问控制模型(Attribute-Based Access Control,ABAC),区别于传统的基于用户身份的授权机制,而采用基于用户、环境等属性从而实现动态评估访问请求,对Web服务的动态性和异构性有着良好的契合。文献[20]针对Web服务访问控制的成本较高的缺陷,提出了一种统一的访问控制模型,综合了XACML的优点,采用通用的策略描述规范,减少因策略算法的复杂造成实现起来的困难和成本。文献[21]提出了一种地基于信任的Web服务访问控制模型CD-WSTBAC,该模型基于XACML和WS-Security规范,综合运用了身份认证以及访问控制策略,使得Web服务可以在不同安全域内被请求和调用。

XACML标准提供了统一的策略描述语言,因其丰富的规则和策略执行算法,使得XACML可以在异构平台上得到充分应用,满足更复杂的控制安全需求。但是,由于XACML繁琐的标签定义和复杂的访问控制策略算法,使得基于XACML的系统在实现的时候比较困难,成本较高,适用面不够广泛。

2.4 基于SAML+XACML规范的认证

由于XACML只涉及认证和授权过程[22],不保障各个实体之间信息交流的安全,同时没有定义策略执行点和策略决策点之间的通信协议,而SAML正是在不同实体间进行交流的一种标准。将两者结合起来,策略执行点PEP接收到SAML格式的带有认证声明和属性声明的请求,并将它发给上下文处理器,上下文处理器将SAML映射成XACML交与策略决策点PDP做出决策。文献[23]提出了基于SAML和XACML的Web服务访问控制模型,结合了两者的优点,利用SAML实现了单点登录,多次访问,方便用户,同时结合XACML完成访问授权控制。

2.5 其他安全认证

随着Web服务的不断发展,OASIS相继提出了一些新的标准和协议来保障在新的网络环境下的安全,如WS-Federation,WS-Authorization,WS-Policy,WS-Trust以及WS-Privacy。其中WS-Federation规范定义了一种联合不同信任领域间的身份,身份验证和授权的集成模型,解释了如何将联合模型应用于活动的请求方如SOAP应用程序。文献[24]对WS-Federation协议做了具体的分析,并对基于WS-Federation的跨域单点登录过程进行了详细的解释,发现协议存在的问题并提出相应的解决办法。

比较WS-Federation协议和SAML协议,发现两者都能实现单点登录,但两者之间是存在一定的差别: 1) 两者在认证方式上不同,前者基于WS-Trust,后者使用X.509证书或者Kerberos票据; 2) WS-Federation得到WS-Policy以及WS-Trust支持,能更好地应对分布式Web服务环境的消息可靠性和安全,而SAML没有可靠的消息或交易支持。

另外针对Web服务的安全问题,业界也提出了一些基于其他平台或算法的模型,例如文献[25]设计了一种基于DCE的可信Web服务度量模型,结合WS-Security规范和动态信用评价DEC提出了新的服务可信度量算法,建立了一个新的Web服务安全框架。文献[26]在RBAC(基于角色的访问控制)的基础上提出了基于使用控制支持动态Web服务访问控制模型WS-DAUCON,通过在RBAC模型中添加授权,义务和条件模块实现权限动态管理。

3 结语

由于Web服务技术的不断革新和发展,互联网中Web服务的安全性要求也不断地提高,正是由于各种规范的提出,安全性得到了相对的保障。然而,未来的发展对网络的要求不断提高,因此服务的安全性也需要得到更高的重视。目前很多规范已经提出了相应的改进版本,在面对更加复杂多样的网络环境和安全要求的时候,综合运用多种规范技术实现Web服务的安全传输认证则是未来发展的重要方向。

[1] 吴文明,瞿裕忠,等.Web服务及相关技术[J].计算机应用与软件,2004,21(3):14-15,104.

[2] 卢晓霞,韩坚华.Web服务中基于信任的跨域安全认证模型[J].微型机与应用,2012,31(3):50-52.

[3] 冯超,李梁.基于SOA的Web Services安全技术研究[J].计算机与数字工程,2009,37(5).

[4] 石伟鹏,杨小虎.基于SOAP协议的Web Service安全基础规范WS-Security[J].计算机应用研究,2003(2).

[5] 王凡,李勇,等.基于WS-Security规范构筑安全的SOAP消息调用[J].计算机应用,2004,24(4).

[6] Feng He, Jia Jinle. Apply the technology of RBAC and WS-Security for secure web services environment in campus[C]//ICMLC,2006.1.1.

[7] Nassr, Nezar Steegmans. A parameterized RBAC access model for WS-BPEL orchestrated composite[C]//ICITST,2011.1.1.

[8] Dunlu Peng, Chen Li. An Extended Username Token-Based Approach for Rest-Style Web Services Environment[C]//CCSIT,2009.

[9] Chen-Da Hou, Dong Li. Sea Http: A Resource-Oriented Protocol to Extend REST Style for Web of Things[J].计算机科学与技术学报(英文版),2014(2).

[10] 全立新.一种基于加密技术的Web服务安全方法[J].制造业自动化,2011(4).

[11] 苏伟,孙磊,徐开勇.基于XML安全的移动Web Service的高效实现[J].计算机工程,2009,35(3).

[12] Stephen Farrell. Irving Reid: Security Assertion Markup Language(SAML) OASIS Standard, 5 November 2002.

[13] Jafary P, Lobov A, Lastra J L M. Enhancement of Security in the hierarchy model of control and automation by applying single sign-on for google apps[C]//Proceedings of the 6thACM Workshop on Formal Methods in Security Engineering,2008:1-10.

[15] 于继万,朱华飞.一种新的SIP SSO机制[J].计算机应用,2004(5).

[16] Rosenberg J, Schulzrinne H. SIP: Session Initiation Protocol. RFC 3261.

[17] 王曦,张斌.基于代理签名的SAML单点登录协议[J].计算机工程,2012,38(16).

[18] Godiks, Mosest. OASIS: eXtensible access control markup language(XACML) version 2.02004, committee draft 01[EB/OL].

[19] 沈海波,洪帆.Web服务中结合XACML的基于属性的访问控制模型[J].计算机应用,2006,25(12):2765-2767.

[20] 王尚平,马宏亮,等.基于XACML的服务信任协商方案[J].计算机工程,2008(11).

[21] 马晓宁,冯志勇.Web服务中基于信任的访问控制模型[J].计算机工程,2010(3).

[22] 陈英勇,辛明君,吴绍睿.面向Web服务的交互访问控制[J].计算机工程,2009,35(14).

[23] 陶宇伟,封红旗.网格服务中基于SAML和XACML的Web服务的安全访问控制[J].电子技术应用,2011(10).

[24] 沈海波.基于WS-Federation的Web服务跨域单点登录认证分析[J].计算机应用研究,2006(2).

[25] 李晓丽.基于DCE的可信Web服务度量模型的分析与研究[J].科技通报,2013,29(8).

[26] 上超望,杨宗凯,等.使用控制支持俄动态Web服务访问控制模型研究[J].计算机应用研究,2009,26(8).

Summary of Security Authenticated Protocol for Web Service on the Platform of SOA

HAN Baodong

(Navy Military Representative Office at No. 427 Factory in Guangzhou, Guangzhou 510715)

As an important research field, the security of web service gets more attention recently. By analyzing the security problems of web service on the SOA, the security specification of web service for those security issues is sumarized in this paper. The content focuses on the WS-Security and some other standards relative to it, additionally describes and compares the SAML protocol for SSO with XACML, which is used for representing the security policy.

Web service, WS-Security, SAML, XACML

2014年12月11日,

2015年1月20日

韩宝栋,男,助理工程师,研究方向:电子信息系统。

TP393

10.3969/j.issn1672-9730.2015.06.027

猜你喜欢

单点访问控制消息
一种跨策略域的林业资源访问控制模型设计
单点渐进无模成型的回弹特性
一张图看5G消息
内外网隔离中ACL技术的运用
晚步见道旁花开
单点的梦想
云计算访问控制技术研究综述
数字电视地面传输用单频网与单点发射的效果比较
企业信息门户单点登录方案设计
访问控制机制在数据库中的应用研究