浅谈Web服务的安全性问题

时间:2022-03-27 06:38:50

浅谈Web服务的安全性问题

摘要:该文主要对讨论了Web安全性问题,在传统的Web安全性问题的基础上提出了一种可靠的Web服务的安全模型。

关键词:Web服务;SSL;安全模型

中图分类号:TP393文献标识码:A文章编号:1009-3044(2011)13-3050-02

Discusses the Problem of Safety in Web Services

HE Ting1, HUANG Dong2

(1.Guizhou University Vocational and Technical College, Guiyang 550003, China; 2.China Nuclear Power Engineering Co., Ltd, Zhengzhou 450052, China)

Abstract: This paper mainly discussed the safety problems of web, in traditional web security problems are put forward on the basis of a reliable web service security model.

Key words: web service; SSL; security model

Web服务是Internet中最重要的服务之一,根据web访问的结构,可以将web服务的安全威胁分为3类:web服务器的安全威胁、web浏览器的安全威胁以及服务器和浏览器之间通信的安全威胁。其中,web服务器和浏览器的安全问题是计算机系统自身的安全性问题,传统的web安全性问题指的是服务器和浏览器之间通信的安全,本文主要讨论了传统的web安全性问题,并在此基础上提出了构建一种可靠的Web服务的安全模型。

1 传统的web服务安全解决方案

提供web服务安全的方法一种方法是使用IPSec,网络层的IPSec对于Web 服务安全来说,是一个很重要的标准。同SSL/TLS一样,它也提供主机审计认证,数据完整性和数据机密性的功能,使用IPSec的好处是它对终端用户和应用是透明的,并能提供一种一般性的解决方案;另一种更一般的解决方案仅在TCP上实现安全,这种解决方案主要是安全套接字层(SSL)和传输层安全(TLS)协议,它们被用来提供传输层的Web服务安全,SSL/TLS在点对点(point-to-point)的会话中,可以完成包括审计,数据完整性,机密性这样的要求。

SSL可以嵌入到特殊的软件包中,例如Netscape和Microsoft Explorer浏览器都配置了SSL,大部分服务器也都实现了该协议。

1.1 SSL体系结构

SSL使用TCP提供一种可靠的端对端的安全服务。SSL不是单个协议,它由两层协议组成。SSL中定义的三个较高层次协议分别是:握手协议、密码变更规格协议和报警协议。SSL协议中两个重要的问题是SSL会话和SSL连接,会话是客户与服务器之间的一种关联,连接是一种能够提供合适服务类型的传输。

1.2 SSL记录协议的运行流程

SSL记录协议对各种更高层协议提供基本的安全服务。尤其是,超文本传输协议是为Web客户端/服务器的交互提供传输服务的协议,它可以在SSL的顶层运行。记录协议要传输应用消息是,先将数据分段成一些可操作的块,然后选择压缩或不压缩数据,再生成MAC、加密、添加头并将最后的结果作为一个TCP分组送出。对收到的数据,首先解密,然后做完完整性验证、解压缩、重组,最后把数据递送到更高层用户。

1.3 握手协议

SSL最重要的部分是握手协议。这一协议允许客户端和服务器相互认证,并协商加密和MAC算法以及用于保护SSL记录中所发送数据加密密钥。握手协议在任何应用数据被传输之前使用,由客户端和服务器之间的一系列消息交换组成。

1.4 密码计算

我们主要关注两个问题:

1) 通过密钥交换创建一个共享主密钥。共享主密钥是通过安全密钥交换方式为本次会话创建的一个一次性48字节的值。创建过程分两步完成。第一步:交换预备主密钥。第二步:双方计算主密钥。客户端和服务器都按照下面方法计算主密钥:

Master_secrect=Md5(pre_ Master_secrectOOSHA('A' OO

pre_ Master_secrectOOClientHello.randomOO

ServerHello.random)) OO

Md5(pre_ Master_secrectOOSHA('BB' OO

pre_ Master_secrectOOClientHello.randomOO

ServerHello.random)) OO

Md5(pre_ Master_secrectOOSHA('CC' OO

pre_ Master_secrectOOClientHello.randomOO

ServerHello.random)) O

其中,ClientHello.random和ServerHello.random是在初始hello消息中交换的两个现时值。

2) 密码参数产生。其方法是主密钥利用散列函数来产生安全字节序列,字节序列足够长以便生成所有需要的参数。

然而,仅有传输层和网络层的这些安全机制是远远不够的,Web服务的安全性是提供一种综合的,全方位的安全保障。

2 构建一种可靠的Web服务的安全模型

2.1 Web服务的协议栈

Web服务体系架构中不同操作与交互的实现,则需要有一系列分层的协议规范,具体协议栈如表1所示。

Web服务能够被服务请求者调用,则必须是能通过网络进行访问的,由于HTTP的普遍性,使它成为了Internet中Web服务的标准网络协议。Web服务还能够支持其它Internet协议,包括FTP与SMTP等。

2.2 Web服务的基本工作过程

要建立面向服务的集成系统可以利用Web服务。我们不用改变现有的各种应用,当然也不需要关心它们技术的不同(比如是java,还是.net),可以利用Web服务的消息驱动机制,使它们协同工作和交互。XML 消息传递是Web服务体系结构最重要的基础,XML 消息传递的行业标准协议是SOAP,服务的调用者通过在传输层协议之上绑定SOAP消息来请求服务。Web服务的基本工作过程是通过发送SOAP消息到一个由URI来鉴别的服务点(由一个SOAP server来接受消息),来请求特定的Web服务(操作),接收到消息的响应结果或者错误提示。在传输层之外,当消息数据被接受和中转的时候,数据的完整性以及其他的安全信息就可能泄漏或者丢失。这要求Web服务的请求者/提供者必须信任那些中间节点对消息的获得和处理(那些中间节点可能需要处理消息,生成新的消息)。

2.3 Web服务的安全模型

我们把Web服务的安全模型建立在三个层次上:传输层的点对点安全、应用服务级的安全和策略和端对端的安全性。在这三个层次的基础上我们构建的Web服务的安全模型的工作流程是:

1) 服务方可以要求请求者的消息证明一组声明(例如,名称、许可、密钥、性能等等)。这一组声明和相关的信息就是端点策略。

2)请求方可以通过把安全令牌与消息关联起来发送,使得消息既证明了发送者具有要求该操作又可以要求特定的操作的声明。

3)如果请求者无法给出必需的声明,那么请求者或它们的代表可以通过与其它Web服务联系设法获得必需的声明。这里其它的Web 服务,指的是安全性令牌服务(security token service),我们接下来可以要求它们自己的一组声明。安全性令牌服务通过签发安全性令牌不同信任域之间的信任。

传统的web服务安全性中的传输层的安全协议(如SSL/TLS),只能对全部的信息进行加密,而不能选择性地对部分信息进行加密,导致在传送大量数据的时将引发严重的性能问题。我们提出的web服务安全模型中的Web服务支持对SOAP消息的指定部分进行加密或签名可以减少因安全处理而导致的性能损失,这是提高性能的另一个关键。我们可以把安全模型应用于基于Web服务的信息系统中,以期在保证安全的同时提高系统性能。

参考文献:

[1] Stallings W.网络安全基础应用与标准[M].白国强,译.3版.北京:清华大学出版社,2007:175-189.

[2] 陈广山.网络与信息安全技术[M].北京:机械工业出版社,2007:167-185.

注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文

上一篇:变压器空载补偿在企业节能的应用 下一篇:基于有线网络实训室构建无线局域网的应用与研...