位置:51电子网 » 技术资料 » 嵌入式系统

基于SOAP扩展加强Web服务安全的方法

发布时间:2008/5/27 0:00:00 访问次数:494

web服务与现有的远程过程调用相比拥有较多优势:它是松散耦合的,与语言和平台无关;能够实现跨企业、跨因特网的远程调用。过去,由于缺少标准的通信底层结构,因而造成各个组织之间数据交换存在障碍。而简单对象访问协议(soap)解决了这个问题。它通过网络发送soap消息请求、调用并从一个应用程序返回soap消息结果。soap消息结构是用扩展标记语言(xml)表示的。xml已经发展成一种国际标准的网络语言,可以用于任何平台和系统。由于消除了基于rpc的系统之间数据交换的障碍,因而基于soap消息规范的web服务得到广泛应用,但soap消息规范本身并没有直接提供任何机制去解决其安全性问题。本文将利用soap头和soap扩展加强web服务的安全性,以满足企业对web服务安全性的需求

1 web服务简介

web服务通过使用soap消息处理数据交换和应用程序逻辑远程调用,使用基于xml的消息处理作为基本的数据通信方式。这样消除了使用不同组件模型、操作系统和编程语言的系统之间所存在的差异。web服务的核心特征之一是服务的实现与使用之间的高度抽象化,通过基于xml的消息处理去创建和访问服务的机制。web服务的使用者和提供者之间除输入、输出和位置之外无需互相了解其他信息。

2 soap消息规范

soap是一种基于xml消息结构的轻量级协议。soap的总体设计目标是使其尽可能地简单,并提供最少的功能。soap定义了一个消息处理框架,但它没有包含任何应用程序或传输语义,因此,soap是模块化的并具有很强的扩展性。

2.1 web服务中soap的请求/响应模式

soap消息的请求/响应模式如图1所示。计算机a发送一个soap消息向计算机b请求某个服务,该消息表明了计算机a感兴趣的服务。计算机b收到请求后,翻译(反序列化)soap消息,并调用该服务请求。同时计算机b会创建一个soap响应,并把它发送回计算机a。计算机a收到消息后对其进行翻译,然后在屏幕上显示给用户。

2.2 soap消息的结构

soap消息由以下3个主要部分组成:

(1)soap包封装(envelope):它是soap头和soap体的包容器,可以包含xml命名空间、属性以及其他信息。

(2)soap头(header):这部分包含可选信息。可选的header元素可以包含不与特定消息直接相关的附加消息。按照此方式,web服务可以通过soap头来提供某一类web服务方法所需要的功能。例如,一个web服务可能包含若干个web服务方法,如果在调用每个web服务方法之前需要验证调用者的身份,则可以将这些身份信息加载在soap头中。

(3)soap体(body) 它包含实际的方法调用或响应数据。

2.3 soap的安全性

soap规范消息的加密/解密、认证和授权等安全机制一直受到人们的广泛关注。因为soap的一个很重要的设计目标就在于它的简单性,所以soap标准在制定规范时并没有过多考虑soap的安全性要求。soap消息框架本身没有直接提供任何机制去处理数据访问控制、机密性和完整性等功能。下面是一个用户信用卡查询结果的soap响应消息的样例(此处只显示soap体这一部分)。由于该soap消息在传输前没有经过加密,因此在传输过程中它很容易被非法用户访问到,必须采用一种机制对soap响应消息进行加密。

3 实现原理

这里使用公钥加密(public key encryption)的方法。这种加密机制中有2个不对称的密钥,即公钥和私钥。公钥用于对数据进行加密;私钥由用户密存,用于对已被公钥加密过的信息进行解密。在此应用中客户端(web服务的使用者)首先要生成一对密钥(公钥和私钥)。由于服务端(web服务的提供者)发送回客户端的部分数据需要在传输时进行加密保护,因此客户端将它的公钥(还可以附上它的身份信息以便在服务端进行身份验证)放在soap header中发送给web服务端。web服务端一旦得到公钥,就可以利用公钥对soap响应消息进行有选择性地加密,然后将加密后的soap消息返回给客户端;客户端收到加密的soap消息后用它的私钥来解密和读取数据。数据加密和解密的过程如图2所示。

在web服务端发出soap响应消息之前要对敏感数据进行加密,可以利用soap扩展解决这个问题。soap扩展在客户端或服务器上处理消息时可以在特定阶段中检查或修改消息。当web服务的htyp处理器收到某个soap请求消息时,将把soap消息反序列化为对象,传递到web方法中。在完成web方法调用之后,对象结果又被序列化为soap响应消息,传给客户端。由于soap扩展允许在特定阶段访问或修改消息,因此服务器端就可以在对象结果被序列化为soap响应消息之后利用客户端传来的公钥进行选择性地加密,然后再将加密的soap响应消息传给客户端。客户端收到加密的soap响应消息后会把它反

web服务与现有的远程过程调用相比拥有较多优势:它是松散耦合的,与语言和平台无关;能够实现跨企业、跨因特网的远程调用。过去,由于缺少标准的通信底层结构,因而造成各个组织之间数据交换存在障碍。而简单对象访问协议(soap)解决了这个问题。它通过网络发送soap消息请求、调用并从一个应用程序返回soap消息结果。soap消息结构是用扩展标记语言(xml)表示的。xml已经发展成一种国际标准的网络语言,可以用于任何平台和系统。由于消除了基于rpc的系统之间数据交换的障碍,因而基于soap消息规范的web服务得到广泛应用,但soap消息规范本身并没有直接提供任何机制去解决其安全性问题。本文将利用soap头和soap扩展加强web服务的安全性,以满足企业对web服务安全性的需求

1 web服务简介

web服务通过使用soap消息处理数据交换和应用程序逻辑远程调用,使用基于xml的消息处理作为基本的数据通信方式。这样消除了使用不同组件模型、操作系统和编程语言的系统之间所存在的差异。web服务的核心特征之一是服务的实现与使用之间的高度抽象化,通过基于xml的消息处理去创建和访问服务的机制。web服务的使用者和提供者之间除输入、输出和位置之外无需互相了解其他信息。

2 soap消息规范

soap是一种基于xml消息结构的轻量级协议。soap的总体设计目标是使其尽可能地简单,并提供最少的功能。soap定义了一个消息处理框架,但它没有包含任何应用程序或传输语义,因此,soap是模块化的并具有很强的扩展性。

2.1 web服务中soap的请求/响应模式

soap消息的请求/响应模式如图1所示。计算机a发送一个soap消息向计算机b请求某个服务,该消息表明了计算机a感兴趣的服务。计算机b收到请求后,翻译(反序列化)soap消息,并调用该服务请求。同时计算机b会创建一个soap响应,并把它发送回计算机a。计算机a收到消息后对其进行翻译,然后在屏幕上显示给用户。

2.2 soap消息的结构

soap消息由以下3个主要部分组成:

(1)soap包封装(envelope):它是soap头和soap体的包容器,可以包含xml命名空间、属性以及其他信息。

(2)soap头(header):这部分包含可选信息。可选的header元素可以包含不与特定消息直接相关的附加消息。按照此方式,web服务可以通过soap头来提供某一类web服务方法所需要的功能。例如,一个web服务可能包含若干个web服务方法,如果在调用每个web服务方法之前需要验证调用者的身份,则可以将这些身份信息加载在soap头中。

(3)soap体(body) 它包含实际的方法调用或响应数据。

2.3 soap的安全性

soap规范消息的加密/解密、认证和授权等安全机制一直受到人们的广泛关注。因为soap的一个很重要的设计目标就在于它的简单性,所以soap标准在制定规范时并没有过多考虑soap的安全性要求。soap消息框架本身没有直接提供任何机制去处理数据访问控制、机密性和完整性等功能。下面是一个用户信用卡查询结果的soap响应消息的样例(此处只显示soap体这一部分)。由于该soap消息在传输前没有经过加密,因此在传输过程中它很容易被非法用户访问到,必须采用一种机制对soap响应消息进行加密。

3 实现原理

这里使用公钥加密(public key encryption)的方法。这种加密机制中有2个不对称的密钥,即公钥和私钥。公钥用于对数据进行加密;私钥由用户密存,用于对已被公钥加密过的信息进行解密。在此应用中客户端(web服务的使用者)首先要生成一对密钥(公钥和私钥)。由于服务端(web服务的提供者)发送回客户端的部分数据需要在传输时进行加密保护,因此客户端将它的公钥(还可以附上它的身份信息以便在服务端进行身份验证)放在soap header中发送给web服务端。web服务端一旦得到公钥,就可以利用公钥对soap响应消息进行有选择性地加密,然后将加密后的soap消息返回给客户端;客户端收到加密的soap消息后用它的私钥来解密和读取数据。数据加密和解密的过程如图2所示。

在web服务端发出soap响应消息之前要对敏感数据进行加密,可以利用soap扩展解决这个问题。soap扩展在客户端或服务器上处理消息时可以在特定阶段中检查或修改消息。当web服务的htyp处理器收到某个soap请求消息时,将把soap消息反序列化为对象,传递到web方法中。在完成web方法调用之后,对象结果又被序列化为soap响应消息,传给客户端。由于soap扩展允许在特定阶段访问或修改消息,因此服务器端就可以在对象结果被序列化为soap响应消息之后利用客户端传来的公钥进行选择性地加密,然后再将加密的soap响应消息传给客户端。客户端收到加密的soap响应消息后会把它反

相关IC型号

热门点击

 

推荐技术资料

DFRobot—玩的就是
    如果说新车间的特点是“灵动”,FQPF12N60C那么... [详细]
版权所有:51dzw.COM
深圳服务热线:13692101218  13751165337
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!