APP下载

基于Web Services的安全中间件的优势及其设计与实现

2009-06-18黄良玮陈楚明戴晓勉

软件工程 2009年6期
关键词:编程语言中间件应用程序

郑 金 黄良玮 陈楚明 戴晓勉

今天,基于PKI的传统安全中间件已基本满足了我们大部分的网络安全需求,但这仍是远远不够的。本文探讨了传统安全中间件与基于Web Services的安全中间件各自的运作模式及区别,进而总结出基于Web Services的安全中间件的优势:松耦合性、跨平台性与跨编程语言性。紧接着提出基于Web Services的安全中间件的设计方案,其突出点在于采用了Web Services实现应用程序与安全中间件之间的通讯,并在最后给出了本系统的部分细节实现方案。

随着Web Services由技术概念到实践应用的不断发展,种种迹象表明,Web Services将是未来应用架构的一个极为重要的模式。

安全中间件是中间件的一种,为我们提供了CA认证、数字证书、数字签名等安全相关的通用编程抽象。应用程序人员不必拥有专业的安全知识,即可通过调用安全中间件的相关API方便地使用所需的安全功能,从而使开发人员能够专注于业务逻辑的开发。

目前,传统的基于PKI(Public Key Infrastructure)的安全中间件已经可以满足我们大部分的安全要求,但是这仍然是不够的,因为传统安全中间件基本上都是采用调用API的方式,从而直接导致了应用程序与安全中间件的紧耦合性、平台相关性与编程语言相关性。

基于Web Services的安全中间件的优势

具有松耦合性与跨平台跨编程语言正是Web Services技术的最大特性,下面将讨论传统安全中间件与基于Web Services的安全中间件的各自运作模式及他们的不同,并总结出基于Web Services的安全中间件的优势。

传统安全中间件产品一般以PKI为基础,建立在X.509等安全标准之上,为开发人员提供了加密、认证、授权、验证等安全接口。下面是传统安全中间件与基于Web Services的安全中间件的运作模式对比图:

由图1左边可以看出,应用程序是采用API调用方式使用安全中间件的,即传统安全中间件是作为函数库与应用程序部署在一起的,这些都使得应用程序与安全中间件之间产生了紧耦合,导致整个系统过于复杂而不好维护,丧失了灵活性。另外,安全算法是需要大规模计算的,对于计算资源宝贵的移动设备来说,以上并不是一个理想的解决方案。

采用Web Services技术的安全中间件,通过SOAP协议实现应用程序与安全中间件之间的通讯。如图1右边所示,在本设计中,应用程序与安全中间件之间的通讯采用了Web Services技术,通过SOAP协议进行通讯。同时,为了保证应用程序与安全中间件之间网络通讯的安全,本系统中采用SSL用于保证传输层上的点对点完整性和机密性,在应用层面上则是采用WS-Security规范保证SOAP消息的安全性。

在以上的对比分析中我们可以得知,在基于Web Services的安全中间件中,不管是J2EE或.Net编程技术,都可以通过标准的SOAP协议与安全中间件进行通信,实现了编程语言无关性。再者,由于Web Services技术是基于网络HTTP协议通过网络进行通信,从而去掉了应用程序与安全中间件需要部署在同一操作系统、服务器上的限制,进而实现了平台无关性。最后,假设日后安全中间件内部模块进行了更新升级,也不会影响到应用程序,无需再编译、再部署,从而实现了应用程序层与安全中间件层之间的松耦合性。

由此可得出基于Web Services的安全中间件的优势有:编程语言无关性,平台无关性与松耦合性。

基于Web Services的安全中间件的总体设计

本文将设计与实现一个基于Web Services的安全中间件,该安全中间件从理论上讲,能够实现传统安全中间件的所有功能,并且是基于SOAP通讯的,实现了松耦合及跨平台跨编程语言性。

本中间件的功能主要分成两大块——证书模块与密码模块。

证书模块:证书申请,即个人通过安全中间件向CA申请证书;查询证书,应用程序可以通过该功能查询自己或已收到的他人证书状态;获取证书,应用程序可通过安全中间件获取自己或他人的证书;撤销证书,在个人丢失私钥时,可以申请撤销证书;验证证书,可用于验证他人证书的有效性。

密码模块:加密解密消息,使用各种算法对消息进行加解密操作;生成会话密钥,为通信的双方生成会话密钥;数字签名,对消息进行数字签名;签名验证,可对已进行数字签名的消息进行验证其完整性和发送方身份。

总体框架:

基于Web Services的安全中间件的设计目标,是为了让所有类型的应用程序都能通过由WS-Security保护的SOAP协议来获取安全服务。本中间件总体框架如下图所示:

如图2所示,本系统采用分层的设计结构。最上层为服务发布接口,以Web Services的形式发布给应用程序,而不是传统的采用API或RPC远程调用接口,消除了应用程序层与安全服务层之间的耦合性,也使得应用程序与安全中间件无需部署在一起,大大提高了企业信息系统的整体灵活性。

安全中间件在接收到请求后对其进行解析,然后进行相应的操作并返回。在应用程序接口下面,是两个主要模块接口——证书服务与密码服务接口,设计这两个接口的目的是为了日后系统的扩展。

在两个接口的下面,是两个模块的具体实现,这里的具体实现有两种方式,一是使用各种成熟的组件直接实现服务,如Sun提供的JCE、JAAS及JSSE,微软的CryptAPI或Intel的CDSA等;二是通过统一的PKI接口调用现成的PKI设施,其好处是可以随以后需求的变更而灵活使用不同的PKI产品。PKI统一接口的下方PKI Provider xx是针对某一PKI产品所设计的专用转换接口,实现从特定PKI产品自身接口到本系统PKI统一接口的转换。

实现细节:

下面是本系统的服务接口设计,这里的服务接口是指本安全中间件开发给应用程序的服务接口。本系统的Web Service的实现采用AXIS2开源框架。下面将使用AXIS2的services.xml说明服务接口的设计,并结合使用SOAP消息格式进行详细说明。

如services.xml文件中申请证书的xml配置如下:

urn:applyCert

本文就传统安全中间件与基于Web Services的安全中间件进行探讨比较,进而总结出基于Web Services的安全中间件的优势之处在于松耦合、跨平台与跨编程语言。接着,提出基于Web Services的安全中间件的设计方案,并实现了上述三点优势。当然,本系统目前还存在一些不足之处,在完整性方面,目前仅实现了基本的安全服务功能;在标准性方面,目前采用的Web Services安全规范仍处于草案阶段而不是公认的标准;最后是实用性,本系统目前仍处于测试阶段,最终能否胜任安全强度的要求仍需进一步的考验。

参考文献

[1] JP Morgenthal. Web Services for Enterprise Application Integration. [A] Journal, 2002,2(5 ): 14 ~16

[2] 张志擦. 中间件技术. 北京:中国石化出版社,2002. 122~123

[3] 荆继武. PKI系统研究:[博士学位论文]. 北京:中国科学院研究生院,2002

[4] 张振兴. Web服务安全性的研究与实现:[D]. 华北电力大学硕士论文,2004

[5] 肖军模,刘军. 网络信息安全. 北京:机械工业出版社,2003. 23~24

[6] Markham T. Security at the network edge. Information Survivability Conference, 2001,11. 279~286

[7] Simple Object Access Protocol(SOAP)1 .1.http://www.w3c.org/TR/2000/NOTE-SOAP-20000508

[8] Paul Kearney. Message level security for Web services, Information Security Technical Report, 2005(10): 41-50

猜你喜欢

编程语言中间件应用程序
压力-体积转换在CFC编程语言中的实现解析
Java编程语言的特点与应用
删除Win10中自带的应用程序
谷歌禁止加密货币应用程序
RFID中间件技术及其应用研究
基于VanConnect中间件的设计与开发
浅谈不同编程语言对计算机软件开发的影响
面向对象Web开发编程语言的的评估方法
中间件在高速公路领域的应用
一种支持智能环境构建的中间件