信息系统安全——Web Service的安全调用

前言

信息化已经深入国家行政机关、企事业实际业务之中,下属机构通过信息系统服务接口,定期向上级单位或监管部门提供业务数据、调查数据。在实际调用过程中,比较常用的是Web Service方法来传递数据,本篇就讨论此接口的安全调用。

了解Web Service

这里涉及到软件开发的知识,能使得运行在不同机器上的不同应用无须借助附加的、专门的第三方软件或硬件, 就可相互交换数据或集成。简单的说就是在两个不同的软件项目间,搭建数据传输的方法。Web Service也很容易部署, 因为它们基于一些常规的产业标准以及已有的一些技术,诸如标准通用标记语言下的子集XML、HTTP。Web Service减少了应用接口的花费。

信息系统安全——Web Service的安全调用

威胁Web Service

Web Services是在开放的Internet上运行的,这种环境即使受到防火墙的保护,也依然会受到黑客、计算机病毒的攻击。而且在商业环境中,每个Web服务的状态都可能涉及经济利益和商业机密,如网络购物服务中有电子货币信息;信息查询服务中有商业机密(如价格、货物种类等)。在Web Services运行过程中,对其状态的非法读取和恶意修改都将对安全性构成严重的威胁。

众所周知,Web服务是使用XML进行数据交换的,而XML在默认情况下是明文编码的;同时,大部分Web服务使用HTTP协议作为传输协议,同样,HTTP也是使用明文方式来传输数据的。这就造成了在不加密的传输协议上传输不加密的信息,从而使信息传输的保密性受到威胁。比如,接口服务被非法调用,通过接口服务对数据进行篡改、信息系统入侵。尽管在生产环境中,大多数都建立VPN通道来承载接口调用,但依托于VPN机制进行内部攻击的情况还是无法杜绝。所以,关键应在Web Service服务端建立认证机制,从源头上解决非法调用的漏洞。

那么,从哪些方面来保障调用的安全性呢?我们来参下《网络等级保护标准2.0》,Web Service的调用,已经跨越了网络和通信安全范畴,对它安全技术的参考范畴主要集中在设备和计算安全、应用和数据安全层级上。上图中,在技术要求部分,通过身份鉴别和访问控制方面,进行对访问Web Service资源权限的控制。本篇也会通过列举

身份鉴别和访问控制两个方案,来部署安全的Web Service调用。如果你对软件工程了解,更加容易理解本篇内容。

访问控制

在这里,我叫它代码安全。完全通过代码的方式来建立访问控制认证。最常用的是使用 SoapHeader(SOAP 标头)自定义访问控制,SoapHeader 多数情况下用来传递用户身份验证信息。下面,我将介绍如何编写访问控制。

首先,我们先部署一个Web Service服务,这里用到Windows IIS。

1、Web Service站点部署

>编写一个Web Service服务代码,两三年没写过代码了,好亲切啊!

信息系统安全——Web Service的安全调用

>在IIS建立站点:

信息系统安全——Web Service的安全调用

把先前生成的代码,复制到站点目录中。同时将身份验证改为匿名认证。

信息系统安全——Web Service的安全调用

>在浏览器中打开.asmx文件,如果显示下图,Web Service部署成功

信息系统安全——Web Service的安全调用

2、编写Web Service访问控制

>在Web Service项目中,建立MySoapHeader.cs类文件,用以初始化登陆信息

信息系统安全——Web Service的安全调用

>在调用服务前,加入用户访问控制

信息系统安全——Web Service的安全调用

上图中,只有用户名和密码都为test,才可以调用,这里也可以扩展为生物识别方法。

3、客户端调用

这里,我们分别使用正确和错误的信息

信息系统安全——Web Service的安全调用

信息系统安全——Web Service的安全调用

信息系统安全——Web Service的安全调用

只有提供正确的登录信息才能调用相应服务。

身份鉴别

这种方案,是基于 Windows身份验证为Web services 配置传输层安全机制。当你通过 HTTP 协议去访问一个使用 Windows身份验证保护的资源时,服务器通常会在 HTTP 请求的 Response 中加入一个"401 需要身份验证"的 Header,来通知客户提供用户凭证,以使用资源。如果你正在使用 Internet Explorer 或者 Mozilla Firefox 这样的可视化浏览器来访问需要认证的资源,浏览器会弹出一个窗口,让你输入用户名和密码,如果所输入的用户名在资源使用者的验证列表,并且密码完全正确,此时,用户才可以访问受限的资源。

信息系统安全——Web Service的安全调用

>认证基本流程

信息系统安全——Web Service的安全调用

>Web services 客户端访问受限 Web services 服务流程

信息系统安全——Web Service的安全调用

下面就介绍下如何部署基于Windows身份验证的Web Service服务。

>首先,需要在操作系统建立一个用户,用来做身份验证。本例用户名为wsuser。

>在IIS管理器中配置身份验证为Windows身份验证

信息系统安全——Web Service的安全调用

>客户端编写服务认证

信息系统安全——Web Service的安全调用

> 客户端调用

信息系统安全——Web Service的安全调用

这里,我们使用正确window用户信息

信息系统安全——Web Service的安全调用

信息系统安全——Web Service的安全调用



分享到:


相關文章: