首页 > 范文大全 > 正文

Web Service安全模型的设计与实现

开篇:润墨网以专业的文秘视角,为您筛选了一篇Web Service安全模型的设计与实现范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘要:本文通过对web service安全机制的分析,提出了Web Service安全模型,在模型中将Web访问控制和XML加密、XML签名三者结合起来,而从而能够在更大范围内加强Web Service的安全。然后对Web Service安全模型进行了功能设计,并结合EJB技术介绍了其实现方法。

关键词:Web Service;安全模型;设计

1 引言

如今Web Service技术在许多领域获得了飞速的发展,并展示了巨大的应用前景。本文通过对Web Service安全机制的分析,提出了Web Service安全模型,在模型中将访问控制和XML加密、XML签名放在同等重要的地位,使这三者相互配合及相互支撑,并对Web Service安全模型进行了功能设计,最后结合EJB技术介绍了其实现方法。

2 Web Service安全模型的基本理论

要使Web Service达到机密性、完整性、不可否认性、身份验证和授权这五项安全性要求,除了通信链路的安全性外,最重要的是要保证SOAP消息和服务本身的安全。对于SOAP消息的安全,主要有XML加密、XML签名等。但XML数字签名和XML加密技术,只能较好地解决SOAP消息的表示和传输的安全问题,却无法保证服务本身的安全。因此本文不但考虑了消息级别的安全需要,而且还考虑了服务本身的安全。对于服务本身的安全,本文采用了Web Service访问控制技术。即对用户访问施加限制,使其满足特定要求后才允许访问服务。因此本文将XML加密、XML签名以及Web Service访问控制三者结合在一起,使它们在保护Web Service时相互支撑、相互配合,达到在更大程度上保护Web Service的安全。

在实际应用时,XML加密实现交换信息的机密性,防止未经授权的用户、实体或进程窃取信息;XML签名保证信息的完整性和统一性,使得未经授权的用户不能改变或者删除信息,实现信息在传送的过程中不会被偶然或故意破坏,并且可以提供信息的原始性证明;Web Service访问控制通过给不同的用户分配不同的权限,限定用户可见范围,从而保证服务不被非法访问。Web Service访问控制为XML加密提供了密钥分发和有效期控制机制,解决了密钥交换问题。XML签名使经过加密处理后的消息在传输过程不被非法的恶意篡改,保证消息可以被接收方成功的解密。XML加密为访问控制提供了进一步验证用户身份的机会,而访问控制通过将用户标识及公钥的绑定,使得XML签名的验证更加方便。

根据Web Service安全状况以及XML加密、XML签名和Web Service访问控制之间的关联关系,本文构建了Web Service安全模型,如图1所示。图中实线部分为安全模型,整个安全模型由XML加密、XML签名及Web Service访问控制三部分组成。

3 Web service安全模型的功能设计

本文构建的Web Service安全模型由XML加密、XML签名及Web Service访问控制等三部分组成,这三部分在实现Web Service安全方面是相互关联、相互支撑的。在实际应用中,如果用户需要请求某一项服务,首先需要登录到服务提供商的系统中以获取交换密钥。服务提供商在收到登录消息后,调用XML加密处理过程进行信息解密,调用XML签名处理过程进行签名验证,然后根据用户信息调用Web Service访问控制处理过程验证其身份的合法性。如果用户身份合法,则根据用户信息及环境状况信息随机生成一个对称密钥并将其登记到访问控制信息中,最后将此密钥连同用户可承担角色信息返回给用户,当然此消息需要使用用户的公钥加密及签名处理。

根据Web Service安全模型以及XML加密、XML签名和WebS ervice访问控制之间的关联关系,本文对Web Service安全模型进行了功能设计,如图2所示。图中实线部分为安全控制模块。整个安全模块由四个子模块和三个数据源组成。四个子模块分别是:XML签名处理模块、XML加密处理模块、Web Service访问控制处理模块和消息流控制模块,其中XML签名处理模块负责处理有关消息的签名及验证;XML加密模块负责处理消息的加密及解密;Web Service访问控制模块负责用户访问权限的控制;消息流控制模块是与具体的部署有关,它主要是负责消息的处理流程,并以适当的顺序调用前三个模块,完成请求消息和响应消息处理。三个数据源分别为用户信息、密钥信息及授权信息。

4 Web service安全模型的功能实现

在开发安全模型时,可采用EJB组件技术来开发安全模型中的每一个模块,这使得安全模型不但能够适应于不同应用环境,而且还有利于单个模块的更新。

4.1 XML加密组件

XML加密组件主要用于完成信息的加密、解密工作。在此将XML加密组件设计为无状态的会话Bean。无状态的会话Bean在方法调用之间不保留任何信息,所有的事物处理必须在一个方法内结束,由于它的无状态性,使之通常占用的资源非常的少,而且还可以在用户之间进行共享,本地接口如下所示:

public interface XMLEncryption extends javax.ejb.EJBObject{

public String encryption(String template,String srcDoc,String nodeDoc,String UserID);//XML加密

public String decryption(String srcDoc, String UserID); //XML解密}

XML加密组件向外提供了二个接口,它们分别是encryption方法和decryption方法。其中encryption方法用于对消息进行加密处理,而decryption t1法用于对加密消息进行解密。

4.2 XML签名组件

XML签名组件主要用于消息的签名及签名认证工作。数字签名在Web Service安全模型中作用是用于保证消息在传输过程中完整性,同时还可以用于验证消息发送者的身份以实现不可抵赖性,从而保证交互双方的利益。与XML加密组件类似,本文将XML签名组件也设计为无状态的会话Bean,本地接口如下所示:

public interface XML Signature extends javax.ejb.EJBObject{

public String signature(String srcDoc, String templetDoc, String UserID); //XML数字签名

public boolean verify(String vrfDoc, String UserID); //XML签名验证}

XML签名组件对外提供两个方法,它们分别是signature方法和verify方法,其中signature方法用于消息的签名,而verify方法进行消息签名的验证。

4. 3 Web Service访问控制组件

Web Service访问控制组件主要用于对用户的权限进行判断以决定用户是否有权访问所要求的服务,从而达到对服务本身的保护,本地接口如下所示:

public interface AccessControl extends javax.ejb.EJBObject{

public boolean access(String SrcDoc); //访问控制}

Web Service访问控制组件的本地接口相对比较简单,它只对外提供了一个接口access方法,此方法的参数列表只有两个参数,其中参数SrcDoc为要进行授权认证的消息;参数UserlD为消息请求者的用户标识,这是进行授权验证的基本要素。在进行访问授权验证时,优先考虑针对于用户的授权,然后再考虑用户所激活的角色的授权,最后才去考虑用户所属的用户组的授权。

4.4消息流控制组件

消息控制组件,它主要用于控制请求消息和响应消息的处理,并以适当顺序调用XML加密组件、XML签名组件及Web Service访问控制组件来实现Web Service的安全。消息流控制组件与消息请求者的状态是相关的,因此在实现时将其设计为有状态的会话Bean。本文在此只给出服务器端实现的远程接口如下所示:

Public interface Message Stream Control ex tends javax.ejb.EJBObject{

public String request(String SrcDoc)throws RemoteException; //请求消息处理

public String response(String SrcDoc)throws Remote Exception; //响应消息处理}

消息流控制组件对外提供了两个方法: request和response,其参数列表中都只包含一个参数分别用于描述请求消息和响应消息。在这两个方法中,request方法用于控制请求消息处理流程,response方法用于处理响应消息处理流程。

5 结论

本文通过对Web Service安全机制的分析,提出了Web Service安全模型,在模型中将Web访问控制和XML加密、XML签名三者结合起来,从而能够在更大范围内加强Web Service的安全。

参考文献

[1] 段智华. SOAP技术及其安全性研究. IBMD eveloper Works,2001.11.

[2] 胡迎松,彭利文,池楚兵. XML Web服务的安全问题及安全技术[J]. 计算机应用研究,2003.10

[3] Bob Atkinson, Giovanni Della-Libera, Satoshi Hada. Web服务安全性(WS-Security). IBM developerWorks, 05 A pril 2002.

[4] Michael Ellis. Employ the IBM Websphere Web Services Gateway. IBM developer Works, 14D ec2004 .

(作者单位:浙江理工大学信息电子学院)