WebService网络安全基于WSE安全架构的

点赞:11275 浏览:46274 近期更新时间:2024-04-05 作者:网友分享原创网站原创

【摘 要】随着互联网的发展,越来越多的软件系统在互联网的环境中运行,保障信息安全就变成了摆在所有人面前的一个必要问题.本文通过WebService存在的安全性弱点,引入基于WSE的安全架构的实现,介绍了针对不同的应用场景,选择不同的安全认证方式,研究了WS-Security协议的内容并实现端到端传输的安全保证方法.

【关 键 词】XML,WebService,安全令牌,SOAP,WS-Security,WSE

1.引言

WebService是近几年来伴随着互连网的高速发展而诞生的一个新技术,可以把WebService看做是一个接口,它描述了一系列的操作,是Webservice就是调用其他网站或者系统资源的一种方法.这种类型的操作可以在互联网或者局域网上通过一种标准化的XML消息传递被访问,为机器之间的互动设计的,它已然成为企业级应用增长最快的领域.

由于XML以WebService的形式对外提供怎么写作,刚开始并没有被大家广泛的接受并应用,XML的处理需要在怎么写作器端解析运行,而传统防火墙对那些针对XML的恶意攻击无力反击,因此,为了应对挑战需要花很大的精力和成本来完善它的安全性方面的工作.两大标准化组织W3C和OASIS也推出了一系列的安全技术:数字签名、对称密钥、生物辨认身份、访问控制策略、数字电子证书等各个方面.所以我们要把保障WebService的安全性作为重中之重.

2.基本WebService连接安全保护

安全性涉及诸多方面,例如身份验证和授权、数据隐私和完整性等,我们可以采取许多措施来创建安全的XMLWebService.鉴于SOAP规范中根本没有提及安全性这一事实,如何确保当今XMLWebService的安全?

首先确保保护基础结构的安全,一个安全的XMLWebService的核心是安全基础结构.分析潜在的外部环境危险,例如、病毒和自然灾害.对与危险有关的安全漏洞的后果进行预先分析并制定对策,并在这种理解和分析的基础上,创建一个精心规划的实现策略.

其次确保XMLWebService客户端与怎么写作器之间的连接安全.根据网络的范围和交互操作的活动配置文件,我们可以通过多种技术来达到这一目的.如基于防火墙的规则、安全套接字层(SSL)和虚拟专用网络(VPN).

最后通过身份验证客户端应用程序可以将用作凭据,使用散列以安全方式传送客户端凭据的简要身份验证、集成Windows身份验证、SSL上的客户端证书等.通过授权,根据客户端不同的访问级别,怎么写作器通过检查当事者的某些访问控制信息,例如访问控制列表[ACL]来确定访问权限.

3.基于WSE的安全架构

3.1WSE框架介绍

图3.1构建Web怎么写作安全性元素

WSE(WebServicesEnhancements)顾名思义是对WebService的补充与加强,是微软针对WebService推出的安全实现平台,推出的功能增强插件,目的是为了使开发者创建出更强大,包含为了实现安全认证和加密特定的类库,构建Web怎么写作安全性元素如图3.1所示.

3.2WSE的基本概念

WSE的原理就是构建一个进出的通道,类似处理SOAP的工具,用来对SOAP的消息进行处理过滤任意操作,包括添加、读取标头、更改消息内容等等.SOAP消息在使用WSE后可以自己验证自己完整性,通过使用定义在WS-Security规范中的机制加密.通过过滤器,可以对一个外面发来的消息解密同时,也可以对我们要发出去的消息进行加密处理,可以通过滤器来处理从客户端等外部发来的消息请求,也可以通过滤器来处理对外发送的消息,输入输出消息示意图如图3.2所示.正是这些过滤器的有效结合才使WS-Security具有诸多特性.

因此我们通常会使用WSE3.0增强Web-Serivice安全.WSE3.0经常使用的特性包括如下四个方面:

(1)基于消息的安全性(WS-Security):支持某些更高级的WS-*协议

(2)高效的二进制数据传输(MTOM):消息传输优化机制MessageTranissionOptimizationMechani

(3)可选的宿主环境(Host):多个宿主程序的实现,IIS外托管的支持

(4)自定义声明性策略管道(Policy):根据用户需要自定义策略

图3.2SOAP输入输出消息示意图

4.WSE3.0的安全机制的应用实现

下载WSE3.0,选择安装Tools和Samples,如果开发环境选择VisualStudio2005插件方式,选择开发过程中配置Web怎么写作WSE3.0特性.而在VisualStudio2008里包含了WCF框架类库,WCF定位为新的.NETWeb怎么写作平台,该平台能够完全替代现在对WSE所提供功能的需要.

4.1实现用户名和安全的Username-Token认证

UsernameToken是基于的认证方式来交互的,采用怎么写作端x.509证书中的公钥对用户自身UsernameToken和其他保密信息共同加密.消息内容采用从怎么写作器上获取的公钥进行加密处理.

认证的处理过程,首先通过使用Username-Token来验证消息,客户端把用户名和等认证信息加入到SOAP消息中,然后采用X.509证书对UsernameToken进行保护,使用X.509公钥进行签名和加密后传递个怎么写作端,接着,怎么写作端收到消息后进行解密和签名验证,获得了明文信息,提取用户名在认证中鉴定.认证成功交给怎么写作器,并返回处理完的消息.图4.1UsernameToken的直接认证方式示意图

4.2实现基于X.509证书的认证

X.509证书认证在实际的应用也是比较多的,它要求主体认证方的标识语密钥绑定在一起,通过证书对主体认证方进行身份验证.认证的处理过程,客户端在获得X.509后,首先把客户端的证书绑定到消息上,使用客户端证书的私钥进行签名,接着,使用怎么写作端的公钥对消息进行加密以保证公钥在传输过程中的安全,最后发送带有客户端证书的消息.怎么写作端收到消息后,首先对消息进行验证,接着使用怎么写作端私钥对消息解密,同时客户端的公钥对消息进行数字校验,最后,如果校验成功,从消息中提取客户端的证书,提交给怎么写作进程,返回结果.

采用x.509证书的最终目的就是让双方能保持信任,并建立安全机制,实现:

(1)相互认证:互相之间通过提供标识的方式让对方验证自己的身份合法.

(2)数据保密:使用密钥加密数据.


(3)数据源的认证:利用数字签名保证数据完整性,并通过签名与证书结合来证明.

但,x.509主要依靠非对称加密,因此对资源的消耗很大.

4.3实现安全上下文令牌(SecurityCon-textToken)

当客户端和怎么写作端在交互过程中频繁传递大量数据时,使用x.509会带来很大计算开销,所以,考虑使用安全上下文令牌,作为两个终结点之间的多消息交换的轻量级令牌.安全上下文令牌SCT通过使用BaseToken,一种安全令牌依靠怎么写作来保留密钥信息,避免大的开销.通常,基本令牌会包含一些附加信息,怎么写作将根据这些附加信息与SCT一起正确地处理安全问题.以及标识信息、分组信息以及授权信息可能都由SCT所引用的基本令牌来提供.使用过程中,首先怎么写作器端应客户端的请求将SCT发送给客户端,客户端接收到SCT后,然后使用SCT对传送的消息进行加密和签名,最后将消息发送到怎么写作端.

4.4实现基于角色的认证

随着WS-Routing的出现,使用HTTP来验证Web怎么写作请求,因为路由路径上可能会使用各种不同的协议,在邮件发件人和收件人之间不再存在直接的HTTP连接,这使传输层的所有安全受到威胁.为了给Web怎么写作提供全面消息的端对端完整性和安全性,按照WS-Security规范使用X.509证书对待发邮件进行签名.这种认证方式在某些应用程序中为了管理用户方便,将用户根据权限集合来划分成不同的分类,即角色.实际应用中采用角色存储器和自定义的令牌管理器来实现安全要求,把角色与X.509证书中的策略规则进行一一映射对应.一般分为两大类,第一类的角色认证(基于策略文件)修改怎么写作器端的seolicyCache.config文件,同时在计算机的账户管理中也要做出相应的权限分配,将待管理用户分配到对应的组中,通过角色进行管理.第二类的角色认证,是基于代码的.

4.5实现WSE安全策略配置

大家容易接受的,在配置中定义安全策略(Policy),然后在WebService中运用安全策略,通过安全策略配置来区别系统的应用安全,当实际环境发生变化,只需要调整配置就可以实现对安全性能的调整,就可根据自己的需求来进行部署,提高了灵活性,不需要修改代码,避免对已实现的程序进行修改带来而重新进行调试工作.策略文件的基本元素是策略断言,多个策略断言在一起形成一个策略.首先在WebService端定义了一个名称为ServerPolicy的安全策略,接着给WebService的类MyService添加Attribute[Policy(“ServerPolicy”)]应用这个安全策略,最后在客户端定义的名称为ClientPolicy,通过serviceProxy.SetPolicy(“ClientPolicy”),当请求到达系统后,请求会按照策略中的断言顺序来进行判断,请求必须符合了所有的断言才可进入到系统中被系统接收.

5.结束语

上面详细阐述我们可以看出:通过使用WSE构建安全的WebService的简单方便,在身份认证、数据保护和授权提供解决方案上的功能强大,在交互过程中支持消息级别的安全,因为遵守WS-Security规范,具有很强的通用性,可根据不同应用场景需要选择不同的安全认证方式之应用广泛.WSE都能很好地解决了WebService的安全问题,增强了WebService的安全性,推动WebService技术的广泛应用.